PerichMillerPopulation2018#

class torch_brain.datasets.PerichMillerPopulation2018(root=None, recording_ids=None, transform=None, dirname='perich_miller_population_2018', **kwargs)[source]#

Bases: torch_brain.datasets.mixins.SpikingDatasetMixin, torch_brain.datasets.dataset.Dataset

Motor cortex (M1 and PMd) spiking activity and reaching kinematics from four macaques performing center-out and random target reaching tasks. The monkeys were trained to move a cursor from a central target to one of eight peripheral targets arranged in a circle.

Preprocessing

To download and prepare this dataset, run

brainsets prepare perich_miller_population_2018

Tasks: Center-Out and Random Target

Brain Regions: M1, PMd

Dataset Statistics

  • Subjects: 4

  • Total Sessions: 111 (84 Center-Out, 27 Random Target)

  • Total Units: 10,410

  • Events: ~11.1M spikes, ~15.5M behavioral timestamps

References

Perich, M. G., Miller, L. E., Azabou, M., & Dyer, E. L. Long-term recordings of motor and premotor cortical spiking activity during reaching in monkeys. Neuron. Dataset: Dandiset 000688.

Parameters:
  • root (Optional[str]) – Root directory for the dataset. Defaults to processed_dir from brainsets config.

  • recording_ids (Optional[list[str]]) – List of recording IDs to load.

  • transform (Optional[Callable]) – Data transformation to apply.

  • dirname (str) – Subdirectory for the dataset. Defaults to “perich_miller_population_2018”.

get_sampling_intervals(split=None)[source]#

Returns a dictionary of sampling intervals for each recording. This represents the intervals that can be sampled from each session.

This dictionary will be used by torch_brain’s Samplers to know where to sample from.

The default method returns intervals containing the entire domain of each recording. This behavior can be overridden by subclasses to give out custom sampling intervals.

Returns:

Dictionary mapping recording IDs to their time domain intervals.

apply_namespace(data, namespace)#

Apply a namespace prefix to specified nested attributes in the data.

This method modifies the data object in-place by prepending the namespace to string attributes or string arrays specified in namespace_attributes.

Can be overridden by subclasses to apply the namespace in a custom way.

Parameters:
  • data (Data) – The Data object to modify.

  • namespace (str) – The namespace prefix to prepend (e.g., “experiment1/”).

Return type:

Data

Returns:

The modified torch_brain.data.Data object (same instance, modified in-place).

compute_average_firing_rates()#

Compute and return the average firing rates for all units in the dataset.

Returns:

DataFrame indexed by unit ID, containing a column ‘firing_rate’ (Hz)

with the average firing rate for each unit in the dataset.

Return type:

pd.DataFrame

get_recording(recording_id, _namespace='')#

Get lazy-loaded torch_brain.data.Data object for a recording.

Parameters:
  • recording_id (str) – The ID of the recording to load (same as from recording_ids()).

  • _namespace (str) – Optional namespace prefix to apply to attributes.

Return type:

Data

Returns:

Lazy torch_brain.data.Data object containing the full recording.

get_recording_hook(data)#

Hook method called after loading a recording in get_recording().

Subclasses can override this method to perform custom processing on recordings after they are loaded but before they are returned.

Parameters:

data (Data) – The Data object that was just loaded.

get_unit_ids()#

Return a sorted list of all unit IDs across all recordings in the dataset.

Return type:

list[str]

property recording_ids: list[str]#

Sorted list of recording IDs in the dataset.