Skip to content

Session Analysis Example

This example demonstrates how to perform analysis on a single session.

Loading and Processing Data

from vrAnalysis.sessions import B2Session
from vrAnalysis.processors.spkmaps import SpkmapProcessor

# Create session
session = B2Session.create(
    mouse_name="mouse001",
    date="2024-01-15",
    session_id="001"
)

# Load data
session.load_data()

# Generate spike maps
processor = SpkmapProcessor(session)
maps = processor.process(
    bin_size=5.0,
    by_environment=True,
    min_occupancy=0.1
)

# Access maps
for env_idx, env in enumerate(maps.environments):
    occ_map = maps.occmap[env_idx]
    spk_map = maps.spkmap[env_idx]

    # Perform analysis on maps
    # (analysis code here)

Analyzing Place Cells

from vrAnalysis.processors.spkmaps import SpkmapProcessor

# Generate spike maps and reliability
processor = SpkmapProcessor(session)
maps = processor.process(bin_size=5.0, by_environment=True)
reliability = processor.get_reliability(envnum=0)  # Get reliability for environment 0

# Access results
reliability_scores = reliability.reliability  # Array of reliability scores per ROI

Visualizing Results

# Plot spike maps for cells with high reliability
# (You'll need to implement plotting based on your visualization needs)
import matplotlib.pyplot as plt

# Example: plot spike map for a single ROI
roi_idx = 0
if maps.by_environment:
    spk_map = maps.spkmap[0][roi_idx]  # First environment, specific ROI
    occ_map = maps.occmap[0]
else:
    spk_map = maps.spkmap[roi_idx]
    occ_map = maps.occmap

# Create rate map (spikes per second)
rate_map = spk_map / (occ_map + 1e-6)  # Avoid division by zero

plt.imshow(rate_map, aspect='auto', origin='lower')
plt.colorbar(label='Firing rate (Hz)')
plt.title(f"ROI {roi_idx}")
plt.show()