From f249e51316be905107811501c8d697b222b4d213 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Mon, 29 Dec 2025 09:28:08 -0500 Subject: [PATCH 01/14] feat: add microelectrode electrophysiology example dataset Add microephys dataset demonstrating extracellular (ecephys) and intracellular (icephys) recordings in NWB format to the dataset listing. --- dataset_listing.tsv | 1 + microephys/README | 41 +++++++++++++++++++ microephys/dataset_description.json | 27 ++++++++++++ microephys/participants.json | 24 +++++++++++ microephys/participants.tsv | 3 ++ .../ecephys/sub-mouse01_ses-01_channels.tsv | 34 +++++++++++++++ .../ecephys/sub-mouse01_ses-01_electrodes.tsv | 33 +++++++++++++++ .../ecephys/sub-mouse01_ses-01_probes.tsv | 2 + ...sub-mouse01_ses-01_task-reach_ecephys.json | 33 +++++++++++++++ .../sub-mouse01_ses-01_task-reach_ecephys.nwb | 0 .../sub-mouse01_ses-01_task-reach_events.json | 21 ++++++++++ .../sub-mouse01_ses-01_task-reach_events.tsv | 21 ++++++++++ .../sub-mouse01_ses-01_task-rest_ecephys.json | 33 +++++++++++++++ .../sub-mouse01_ses-01_task-rest_ecephys.nwb | 0 .../ses-01/sub-mouse01_ses-01_scans.tsv | 3 ++ .../icephys/sub-mouse02_channels.tsv | 5 +++ .../icephys/sub-mouse02_electrodes.tsv | 3 ++ .../icephys/sub-mouse02_probes.tsv | 3 ++ .../sub-mouse02_task-IVcurve_events.json | 17 ++++++++ .../sub-mouse02_task-IVcurve_events.tsv | 11 +++++ .../sub-mouse02_task-IVcurve_icephys.json | 28 +++++++++++++ .../sub-mouse02_task-IVcurve_icephys.nwb | 0 microephys/sub-mouse02/sub-mouse02_scans.tsv | 2 + 23 files changed, 345 insertions(+) create mode 100644 microephys/README create mode 100644 microephys/dataset_description.json create mode 100644 microephys/participants.json create mode 100644 microephys/participants.tsv create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_channels.tsv create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_probes.tsv create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json create mode 100644 microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb create mode 100644 microephys/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_channels.tsv create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_electrodes.tsv create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_probes.tsv create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json create mode 100644 microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb create mode 100644 microephys/sub-mouse02/sub-mouse02_scans.tsv diff --git a/dataset_listing.tsv b/dataset_listing.tsv index 45d324219..e59980c36 100644 --- a/dataset_listing.tsv +++ b/dataset_listing.tsv @@ -93,3 +93,4 @@ emg_MultiBodyParts EMG recording from multiple body parts with different electro emg_TwoHDsEMG High-density EMG grid recordings from two body parts demonstrating grid placement documentation n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg emg_TwoWristbands EMG recordings using two wristbands with dry electrodes to capture forearm muscle activity n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg mri_chunk Example MRI dataset to illustrate BIDS chunk entity. A single subject, two chunks. [@valosekj](https://github.com/valosekj) anat T1w +microephys Example microelectrode electrophysiology dataset demonstrating extracellular (ecephys) and intracellular (icephys) recordings in NWB format ecephys, icephys channels, ecephys, electrodes, events, icephys, probes, scans diff --git a/microephys/README b/microephys/README new file mode 100644 index 000000000..953c5984b --- /dev/null +++ b/microephys/README @@ -0,0 +1,41 @@ +Example Microelectrode Electrophysiology Dataset +================================================= + +This example dataset demonstrates the BIDS microelectrode electrophysiology +(microephys) specification for both extracellular (ecephys) and intracellular +(icephys) recordings. + +Dataset Structure +----------------- + +The dataset contains two subjects: + +- sub-mouse01: Extracellular electrophysiology (ecephys) recordings + - Session 1: Two recording sessions with different tasks + - Uses a silicon probe (Neuropixels-like) with 32 electrodes + +- sub-mouse02: Intracellular electrophysiology (icephys) recordings + - Patch-clamp recordings from identified neurons + - Current-clamp and voltage-clamp recordings + +Data Format +----------- + +All electrophysiology data is stored in NWB format (.nwb files). +Note: In this example, placeholder .nwb files are used to demonstrate +the file structure. In a real dataset, these would contain actual +neural recording data. + +Metadata Files +-------------- + +Each recording includes: +- *_probes.tsv: Information about recording probes/pipettes +- *_electrodes.tsv: Electrode positions and properties +- *_channels.tsv: Recording channel configurations +- *_ecephys.json or *_icephys.json: Recording parameters and metadata +- *_events.tsv: Event timing for task-related recordings + +For more information about the BIDS microelectrode electrophysiology +specification, see: +https://bids-specification.readthedocs.io/en/latest/modality-specific-files/microelectrode-electrophysiology.html diff --git a/microephys/dataset_description.json b/microephys/dataset_description.json new file mode 100644 index 000000000..3301f5e4c --- /dev/null +++ b/microephys/dataset_description.json @@ -0,0 +1,27 @@ +{ + "Name": "Example Microelectrode Electrophysiology Dataset", + "BIDSVersion": "1.10.0", + "DatasetType": "raw", + "License": "CC0", + "Authors": [ + "Jane Doe", + "John Smith" + ], + "Acknowledgements": "This example dataset demonstrates the BIDS microelectrode electrophysiology specification.", + "HowToAcknowledge": "Please cite the BIDS specification and this example dataset.", + "Funding": [ + "NIH Grant R01-12345", + "NSF Grant BCS-67890" + ], + "ReferencesAndLinks": [ + "https://bids-specification.readthedocs.io" + ], + "DatasetDOI": "doi:10.0000/example", + "GeneratedBy": [ + { + "Name": "Manual", + "Description": "Example dataset created manually for demonstration purposes" + } + ], + "SourceDatasets": [] +} diff --git a/microephys/participants.json b/microephys/participants.json new file mode 100644 index 000000000..9d7f566fa --- /dev/null +++ b/microephys/participants.json @@ -0,0 +1,24 @@ +{ + "participant_id": { + "Description": "Unique participant identifier" + }, + "species": { + "Description": "Species of the subject" + }, + "strain": { + "Description": "Strain of the subject" + }, + "sex": { + "Description": "Sex of the subject", + "Levels": { + "M": "male", + "F": "female" + } + }, + "age": { + "Description": "Age of the subject in postnatal days (P)" + }, + "weight": { + "Description": "Weight of the subject" + } +} diff --git a/microephys/participants.tsv b/microephys/participants.tsv new file mode 100644 index 000000000..082bf0e8a --- /dev/null +++ b/microephys/participants.tsv @@ -0,0 +1,3 @@ +participant_id species strain sex age weight +sub-mouse01 Mus musculus C57BL/6J M P90 25g +sub-mouse02 Mus musculus C57BL/6J F P85 22g diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_channels.tsv b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_channels.tsv new file mode 100644 index 000000000..a2d18f587 --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_channels.tsv @@ -0,0 +1,34 @@ +name reference type units sampling_frequency gain low_cutoff high_cutoff status status_description +ch001 ref01 LFP uV 1000 500 0.1 300 good n/a +ch002 ref01 LFP uV 1000 500 0.1 300 good n/a +ch003 ref01 LFP uV 1000 500 0.1 300 good n/a +ch004 ref01 LFP uV 1000 500 0.1 300 good n/a +ch005 ref01 LFP uV 1000 500 0.1 300 good n/a +ch006 ref01 LFP uV 1000 500 0.1 300 good n/a +ch007 ref01 LFP uV 1000 500 0.1 300 good n/a +ch008 ref01 LFP uV 1000 500 0.1 300 bad high_noise +ch009 ref01 LFP uV 1000 500 0.1 300 good n/a +ch010 ref01 LFP uV 1000 500 0.1 300 good n/a +ch011 ref01 LFP uV 1000 500 0.1 300 good n/a +ch012 ref01 LFP uV 1000 500 0.1 300 good n/a +ch013 ref01 LFP uV 1000 500 0.1 300 good n/a +ch014 ref01 LFP uV 1000 500 0.1 300 good n/a +ch015 ref01 LFP uV 1000 500 0.1 300 good n/a +ch016 ref01 LFP uV 1000 500 0.1 300 good n/a +ch017 ref01 HP uV 30000 500 300 10000 good n/a +ch018 ref01 HP uV 30000 500 300 10000 good n/a +ch019 ref01 HP uV 30000 500 300 10000 good n/a +ch020 ref01 HP uV 30000 500 300 10000 good n/a +ch021 ref01 HP uV 30000 500 300 10000 good n/a +ch022 ref01 HP uV 30000 500 300 10000 good n/a +ch023 ref01 HP uV 30000 500 300 10000 good n/a +ch024 ref01 HP uV 30000 500 300 10000 good n/a +ch025 ref01 HP uV 30000 500 300 10000 good n/a +ch026 ref01 HP uV 30000 500 300 10000 good n/a +ch027 ref01 HP uV 30000 500 300 10000 good n/a +ch028 ref01 HP uV 30000 500 300 10000 good n/a +ch029 ref01 HP uV 30000 500 300 10000 good n/a +ch030 ref01 HP uV 30000 500 300 10000 good n/a +ch031 ref01 HP uV 30000 500 300 10000 good n/a +ch032 ref01 HP uV 30000 500 300 10000 good n/a +sync01 n/a SYNC V 30000 1 n/a n/a good n/a diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv new file mode 100644 index 000000000..ed2c4e9aa --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv @@ -0,0 +1,33 @@ +name probe_name hemisphere x y z impedance shank_id size material location +e001 probe01 L 0 0 0 1.2 0 12 iridium-oxide MOp +e002 probe01 L 0 0 25 1.1 0 12 iridium-oxide MOp +e003 probe01 L 32 0 0 1.3 0 12 iridium-oxide MOp +e004 probe01 L 32 0 25 1.4 0 12 iridium-oxide MOp +e005 probe01 L 0 0 50 1.2 0 12 iridium-oxide MOp +e006 probe01 L 0 0 75 1.1 0 12 iridium-oxide MOp +e007 probe01 L 32 0 50 1.3 0 12 iridium-oxide MOp +e008 probe01 L 32 0 75 1.2 0 12 iridium-oxide MOp +e009 probe01 L 0 0 100 1.1 0 12 iridium-oxide MOp +e010 probe01 L 0 0 125 1.2 0 12 iridium-oxide MOp +e011 probe01 L 32 0 100 1.1 0 12 iridium-oxide MOp +e012 probe01 L 32 0 125 1.3 0 12 iridium-oxide MOp +e013 probe01 L 0 0 150 1.2 0 12 iridium-oxide MOp +e014 probe01 L 0 0 175 1.1 0 12 iridium-oxide MOp +e015 probe01 L 32 0 150 1.2 0 12 iridium-oxide MOp +e016 probe01 L 32 0 175 1.1 0 12 iridium-oxide MOp +e017 probe01 L 0 0 200 1.3 0 12 iridium-oxide MOp +e018 probe01 L 0 0 225 1.2 0 12 iridium-oxide MOp +e019 probe01 L 32 0 200 1.1 0 12 iridium-oxide MOp +e020 probe01 L 32 0 225 1.2 0 12 iridium-oxide MOp +e021 probe01 L 0 0 250 1.1 0 12 iridium-oxide MOp +e022 probe01 L 0 0 275 1.3 0 12 iridium-oxide MOp +e023 probe01 L 32 0 250 1.2 0 12 iridium-oxide MOp +e024 probe01 L 32 0 275 1.1 0 12 iridium-oxide MOp +e025 probe01 L 0 0 300 1.2 0 12 iridium-oxide MOp +e026 probe01 L 0 0 325 1.1 0 12 iridium-oxide MOp +e027 probe01 L 32 0 300 1.3 0 12 iridium-oxide MOp +e028 probe01 L 32 0 325 1.2 0 12 iridium-oxide MOp +e029 probe01 L 0 0 350 1.1 0 12 iridium-oxide MOp +e030 probe01 L 0 0 375 1.2 0 12 iridium-oxide MOp +e031 probe01 L 32 0 350 1.1 0 12 iridium-oxide MOp +e032 probe01 L 32 0 375 1.3 0 12 iridium-oxide MOp diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_probes.tsv b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_probes.tsv new file mode 100644 index 000000000..469bebc83 --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_probes.tsv @@ -0,0 +1,2 @@ +probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material +probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L IMEC NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json new file mode 100644 index 000000000..fcc8f2f35 --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json @@ -0,0 +1,33 @@ +{ + "TaskName": "Reach to Grasp", + "TaskDescription": "Subject reaches and grasps objects of different shapes and sizes while neural activity is recorded from motor cortex", + "InstitutionName": "Example University", + "InstitutionAddress": "123 Main St, City, State 12345, USA", + "InstitutionalDepartmentName": "Neuroscience Department", + "PowerLineFrequency": 60, + "Manufacturer": "IMEC", + "ManufacturersModelName": "Neuropixels 1.0", + "SamplingFrequency": 30000, + "SoftwareName": "Open Ephys", + "SoftwareVersions": "0.6.0", + "SoftwareFilters": { + "LowpassFilter": { + "Half-amplitude cutoff (Hz)": 300, + "Roll-off": "6dB/Octave" + } + }, + "HardwareFilters": { + "HighpassFilter": { + "Half-amplitude cutoff (Hz)": 0.1, + "Roll-off": "6dB/Octave" + } + }, + "RecordingType": "continuous", + "RecordingDuration": 1800, + "PharmaceuticalName": ["isoflurane"], + "PharmaceuticalDoseAmount": [1.5], + "PharmaceuticalDoseUnits": ["percent"], + "BodyPart": "BRAIN", + "BodyPartDetails": "Primary Motor Cortex", + "SampleEnvironment": "in-vivo" +} diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb new file mode 100644 index 000000000..e69de29bb diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json new file mode 100644 index 000000000..0b4a3f271 --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json @@ -0,0 +1,21 @@ +{ + "trial_type": { + "Description": "Type of event", + "Levels": { + "cue_onset": "Visual cue presented to initiate reaching movement", + "reach": "Subject performs reaching movement" + } + }, + "success": { + "Description": "Whether the reach was successful", + "Levels": { + "true": "Successful grasp", + "false": "Failed or incomplete reach" + } + }, + "StimulusPresentation": { + "OperatingSystem": "Linux Ubuntu 20.04", + "SoftwareName": "Custom MATLAB scripts", + "SoftwareVersion": "R2021a" + } +} diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv new file mode 100644 index 000000000..777f6b824 --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv @@ -0,0 +1,21 @@ +onset duration trial_type response_time success +0.0 0.5 cue_onset n/a n/a +0.52 1.2 reach 0.52 true +2.0 0.5 cue_onset n/a n/a +2.48 1.1 reach 0.48 true +4.0 0.5 cue_onset n/a n/a +4.65 1.3 reach 0.65 false +6.0 0.5 cue_onset n/a n/a +6.55 1.0 reach 0.55 true +8.0 0.5 cue_onset n/a n/a +8.51 1.2 reach 0.51 true +10.0 0.5 cue_onset n/a n/a +10.60 1.1 reach 0.60 true +12.0 0.5 cue_onset n/a n/a +12.58 1.4 reach 0.58 true +14.0 0.5 cue_onset n/a n/a +14.72 1.2 reach 0.72 false +16.0 0.5 cue_onset n/a n/a +16.49 1.0 reach 0.49 true +18.0 0.5 cue_onset n/a n/a +18.53 1.1 reach 0.53 true diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json new file mode 100644 index 000000000..1a0b3f80f --- /dev/null +++ b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json @@ -0,0 +1,33 @@ +{ + "TaskName": "Resting State", + "TaskDescription": "Spontaneous neural activity recording during quiet wakefulness", + "InstitutionName": "Example University", + "InstitutionAddress": "123 Main St, City, State 12345, USA", + "InstitutionalDepartmentName": "Neuroscience Department", + "PowerLineFrequency": 60, + "Manufacturer": "IMEC", + "ManufacturersModelName": "Neuropixels 1.0", + "SamplingFrequency": 30000, + "SoftwareName": "Open Ephys", + "SoftwareVersions": "0.6.0", + "SoftwareFilters": { + "LowpassFilter": { + "Half-amplitude cutoff (Hz)": 300, + "Roll-off": "6dB/Octave" + } + }, + "HardwareFilters": { + "HighpassFilter": { + "Half-amplitude cutoff (Hz)": 0.1, + "Roll-off": "6dB/Octave" + } + }, + "RecordingType": "continuous", + "RecordingDuration": 600, + "PharmaceuticalName": ["isoflurane"], + "PharmaceuticalDoseAmount": [1.5], + "PharmaceuticalDoseUnits": ["percent"], + "BodyPart": "BRAIN", + "BodyPartDetails": "Primary Motor Cortex", + "SampleEnvironment": "in-vivo" +} diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb b/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb new file mode 100644 index 000000000..e69de29bb diff --git a/microephys/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv b/microephys/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv new file mode 100644 index 000000000..5be7e3a6a --- /dev/null +++ b/microephys/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv @@ -0,0 +1,3 @@ +filename acq_time +ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb 2024-03-15T09:30:00 +ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb 2024-03-15T10:15:00 diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_channels.tsv b/microephys/sub-mouse02/icephys/sub-mouse02_channels.tsv new file mode 100644 index 000000000..a509ba1b6 --- /dev/null +++ b/microephys/sub-mouse02/icephys/sub-mouse02_channels.tsv @@ -0,0 +1,5 @@ +name reference type units sampling_frequency recording_mode gain ground status +patch01_vm n/a VM mV 20000 current-clamp 10 AgCl good +patch01_im n/a IM pA 20000 current-clamp 5 AgCl good +patch02_vm n/a VM mV 20000 voltage-clamp 10 AgCl good +patch02_im n/a IM pA 20000 voltage-clamp 5 AgCl good diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_electrodes.tsv b/microephys/sub-mouse02/icephys/sub-mouse02_electrodes.tsv new file mode 100644 index 000000000..bdd7f02ab --- /dev/null +++ b/microephys/sub-mouse02/icephys/sub-mouse02_electrodes.tsv @@ -0,0 +1,3 @@ +name probe_name hemisphere x y z impedance pipette_solution internal_pipette_diameter external_pipette_diameter material location +patch01 pipette01 L 0 0 0 5.2 K-gluconate 1.5 2.5 borosilicate-glass VISp2/3 +patch02 pipette02 R 0 0 0 4.8 K-gluconate 1.5 2.5 borosilicate-glass VISp2/3 diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_probes.tsv b/microephys/sub-mouse02/icephys/sub-mouse02_probes.tsv new file mode 100644 index 000000000..e75651efc --- /dev/null +++ b/microephys/sub-mouse02/icephys/sub-mouse02_probes.tsv @@ -0,0 +1,3 @@ +probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer electrode_count coordinate_reference_point associated_brain_region associated_brain_region_id reference_atlas +pipette01 patch-pipette -1.8 0.5 -2.2 30 0 0 L Sutter 1 tip Visual Cortex Layer 2/3 VISp2/3 Allen-CCF-2017 +pipette02 patch-pipette -1.8 -0.5 -2.2 30 0 0 R Sutter 1 tip Visual Cortex Layer 2/3 VISp2/3 Allen-CCF-2017 diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json new file mode 100644 index 000000000..b3269a416 --- /dev/null +++ b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json @@ -0,0 +1,17 @@ +{ + "trial_type": { + "Description": "Type of event", + "Levels": { + "sweep": "Current injection sweep" + } + }, + "current_injection_pA": { + "Description": "Amount of current injected in picoamperes", + "Units": "pA" + }, + "StimulusPresentation": { + "OperatingSystem": "Windows 10", + "SoftwareName": "pClamp", + "SoftwareVersion": "11.0" + } +} diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv new file mode 100644 index 000000000..cd3701bd0 --- /dev/null +++ b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv @@ -0,0 +1,11 @@ +onset duration trial_type current_injection_pA +0.0 0.5 sweep -100 +1.0 0.5 sweep -50 +2.0 0.5 sweep 0 +3.0 0.5 sweep 50 +4.0 0.5 sweep 100 +5.0 0.5 sweep 150 +6.0 0.5 sweep 200 +7.0 0.5 sweep 250 +8.0 0.5 sweep 300 +9.0 0.5 sweep 350 diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json new file mode 100644 index 000000000..ab91b36d8 --- /dev/null +++ b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json @@ -0,0 +1,28 @@ +{ + "TaskName": "IV Curve Characterization", + "TaskDescription": "Current injection protocol to characterize intrinsic membrane properties and generate current-voltage curves", + "InstitutionName": "Example University", + "InstitutionAddress": "123 Main St, City, State 12345, USA", + "InstitutionalDepartmentName": "Neuroscience Department", + "PowerLineFrequency": 60, + "Manufacturer": "Molecular Devices", + "ManufacturersModelName": "MultiClamp 700B", + "SamplingFrequency": 20000, + "SoftwareName": "pClamp", + "SoftwareVersions": "11.0", + "HardwareFilters": { + "BesselFilter": { + "Half-amplitude cutoff (Hz)": 10000, + "Roll-off": "12dB/Octave" + } + }, + "SoftwareFilters": "n/a", + "RecordingType": "epoched", + "BodyPart": "BRAIN", + "BodyPartDetails": "Visual Cortex", + "SampleEnvironment": "ex-vivo", + "SliceThickness": 300, + "SliceThicknessUnits": "um", + "TissueOrigin": "Primary Visual Cortex", + "CellType": "pyramidal" +} diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb b/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb new file mode 100644 index 000000000..e69de29bb diff --git a/microephys/sub-mouse02/sub-mouse02_scans.tsv b/microephys/sub-mouse02/sub-mouse02_scans.tsv new file mode 100644 index 000000000..c66e54856 --- /dev/null +++ b/microephys/sub-mouse02/sub-mouse02_scans.tsv @@ -0,0 +1,2 @@ +filename acq_time +icephys/sub-mouse02_task-IVcurve_icephys.nwb 2024-03-16T14:00:00 From 5071ec387b5d1f50d9068f66c738130c5472e531 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 11:28:59 -0500 Subject: [PATCH 02/14] refactor(microephys): restructure ecephys data to subject level with Allen CCF coords - Move ecephys metadata files from session to subject level directory - Remove session identifier from channels, electrodes, and probes filenames - Add Allen CCFv3 coordinate system JSON with spatial reference metadata - Add electrode positions table with 32 electrodes mapped to Allen CCF space --- .../sub-mouse01_channels.tsv} | 0 .../sub-mouse01_electrodes.tsv} | 0 .../sub-mouse01_probes.tsv} | 0 ...-mouse01_space-AllenCCFv3_coordsystem.json | 7 ++++ ...ub-mouse01_space-AllenCCFv3_electrodes.tsv | 33 +++++++++++++++++++ 5 files changed, 40 insertions(+) rename microephys/sub-mouse01/{ses-01/ecephys/sub-mouse01_ses-01_channels.tsv => ecephys/sub-mouse01_channels.tsv} (100%) rename microephys/sub-mouse01/{ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv => ecephys/sub-mouse01_electrodes.tsv} (100%) rename microephys/sub-mouse01/{ses-01/ecephys/sub-mouse01_ses-01_probes.tsv => ecephys/sub-mouse01_probes.tsv} (100%) create mode 100644 microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json create mode 100644 microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_channels.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_channels.tsv similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_channels.tsv rename to microephys/sub-mouse01/ecephys/sub-mouse01_channels.tsv diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_electrodes.tsv rename to microephys/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_probes.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_probes.tsv rename to microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json b/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json new file mode 100644 index 000000000..dc2f07c65 --- /dev/null +++ b/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json @@ -0,0 +1,7 @@ +{ + "MicroephysCoordinateSystem": "AllenCCFv3", + "MicroephysCoordinateUnits": "um", + "MicroephysCoordinateSystemDescription": "Allen Mouse Brain Common Coordinate Framework version 3. The origin is at the anterior commissure. X is anterior-posterior (anterior positive), Y is inferior-superior (superior positive), Z is left-right (right positive). Coordinates are in micrometers.", + "MicroephysCoordinateProcessingDescription": "Electrode positions were registered to the Allen CCF using anatomical landmarks and histological verification.", + "MicroephysCoordinateProcessingReference": "https://doi.org/10.1016/j.cell.2020.04.007" +} diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv new file mode 100644 index 000000000..33a59ac7d --- /dev/null +++ b/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv @@ -0,0 +1,33 @@ +name probe_name hemisphere x y z impedance shank_id size material location +e001 probe01 L 5700 4200 3800 1.2 0 12 iridium-oxide MOp +e002 probe01 L 5700 4200 3775 1.1 0 12 iridium-oxide MOp +e003 probe01 L 5732 4200 3800 1.3 0 12 iridium-oxide MOp +e004 probe01 L 5732 4200 3775 1.4 0 12 iridium-oxide MOp +e005 probe01 L 5700 4200 3750 1.2 0 12 iridium-oxide MOp +e006 probe01 L 5700 4200 3725 1.1 0 12 iridium-oxide MOp +e007 probe01 L 5732 4200 3750 1.3 0 12 iridium-oxide MOp +e008 probe01 L 5732 4200 3725 1.2 0 12 iridium-oxide MOp +e009 probe01 L 5700 4200 3700 1.1 0 12 iridium-oxide MOp +e010 probe01 L 5700 4200 3675 1.2 0 12 iridium-oxide MOp +e011 probe01 L 5732 4200 3700 1.1 0 12 iridium-oxide MOp +e012 probe01 L 5732 4200 3675 1.3 0 12 iridium-oxide MOp +e013 probe01 L 5700 4200 3650 1.2 0 12 iridium-oxide MOp +e014 probe01 L 5700 4200 3625 1.1 0 12 iridium-oxide MOp +e015 probe01 L 5732 4200 3650 1.2 0 12 iridium-oxide MOp +e016 probe01 L 5732 4200 3625 1.1 0 12 iridium-oxide MOp +e017 probe01 L 5700 4200 3600 1.3 0 12 iridium-oxide MOp +e018 probe01 L 5700 4200 3575 1.2 0 12 iridium-oxide MOp +e019 probe01 L 5732 4200 3600 1.1 0 12 iridium-oxide MOp +e020 probe01 L 5732 4200 3575 1.2 0 12 iridium-oxide MOp +e021 probe01 L 5700 4200 3550 1.1 0 12 iridium-oxide MOp +e022 probe01 L 5700 4200 3525 1.3 0 12 iridium-oxide MOp +e023 probe01 L 5732 4200 3550 1.2 0 12 iridium-oxide MOp +e024 probe01 L 5732 4200 3525 1.1 0 12 iridium-oxide MOp +e025 probe01 L 5700 4200 3500 1.2 0 12 iridium-oxide MOp +e026 probe01 L 5700 4200 3475 1.1 0 12 iridium-oxide MOp +e027 probe01 L 5732 4200 3500 1.3 0 12 iridium-oxide MOp +e028 probe01 L 5732 4200 3475 1.2 0 12 iridium-oxide MOp +e029 probe01 L 5700 4200 3450 1.1 0 12 iridium-oxide MOp +e030 probe01 L 5700 4200 3425 1.2 0 12 iridium-oxide MOp +e031 probe01 L 5732 4200 3450 1.1 0 12 iridium-oxide MOp +e032 probe01 L 5732 4200 3425 1.3 0 12 iridium-oxide MOp From d74071d426ebd23b6aa09369445c9b5f20e2e632 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 11:46:28 -0500 Subject: [PATCH 03/14] feat(ecephys): add probe model metadata for sub-mouse01 - Add probes.json sidecar with NeuroNexus A1x32-Poly3-10mm-50-177 model description and reference URL - Add model column to probes.tsv - Update manufacturer from IMEC to NeuroNexus to match probe model --- microephys/sub-mouse01/ecephys/sub-mouse01_probes.json | 10 ++++++++++ microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 microephys/sub-mouse01/ecephys/sub-mouse01_probes.json diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.json b/microephys/sub-mouse01/ecephys/sub-mouse01_probes.json new file mode 100644 index 000000000..b4f781715 --- /dev/null +++ b/microephys/sub-mouse01/ecephys/sub-mouse01_probes.json @@ -0,0 +1,10 @@ +{ + "model": { + "Levels": { + "A1x32-Poly3-10mm-50-177": { + "Description": "NeuroNexus A1x32-Poly3-10mm-50-177, a 1-shank 32-channel polytrode probe with contacts arranged in a Poly3 configuration", + "TermURL": "https://raw.githubusercontent.com/SpikeInterface/probeinterface_library/refs/heads/main/neuronexus/A1x32-Poly3-10mm-50-177/A1x32-Poly3-10mm-50-177.json" + } + } + } +} diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv index 469bebc83..3dde5c76e 100644 --- a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv +++ b/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv @@ -1,2 +1,2 @@ -probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material -probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L IMEC NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon +probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer model device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material +probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L NeuroNexus A1x32-Poly3-10mm-50-177 NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon From 49d18e8b31408364417ce1d1362b1ad21ac56b04 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 12:08:38 -0500 Subject: [PATCH 04/14] docs: rename microephys to microephys_toy and enhance README - Rename microephys directory to microephys_toy for clarity - Add "Features Demonstrated" section highlighting key BIDS features: - Allen CCF v3 space registration - Multiple probes per subject - ProbeInterface library references - Custom probe definitions via BIDS URIs - Update dataset structure to document dual-probe setup (probe01/probe02) - Add customprobe1.json ProbeInterface definition for 16-channel probe --- .../ecephys/sub-mouse01_channels.tsv | 34 ----------- .../ecephys/sub-mouse01_probes.tsv | 2 - {microephys => microephys_toy}/README | 26 +++++++- .../dataset_description.json | 0 .../participants.json | 0 .../participants.tsv | 0 microephys_toy/probes/customprobe1.json | 61 +++++++++++++++++++ .../ecephys/sub-mouse01_channels.tsv | 50 +++++++++++++++ .../ecephys/sub-mouse01_electrodes.tsv | 16 +++++ .../ecephys/sub-mouse01_probes.json | 4 ++ .../ecephys/sub-mouse01_probes.tsv | 3 + ...-mouse01_space-AllenCCFv3_coordsystem.json | 0 ...ub-mouse01_space-AllenCCFv3_electrodes.tsv | 0 ...sub-mouse01_ses-01_task-reach_ecephys.json | 0 .../sub-mouse01_ses-01_task-reach_ecephys.nwb | 0 .../sub-mouse01_ses-01_task-reach_events.json | 0 .../sub-mouse01_ses-01_task-reach_events.tsv | 0 .../sub-mouse01_ses-01_task-rest_ecephys.json | 0 .../sub-mouse01_ses-01_task-rest_ecephys.nwb | 0 .../ses-01/sub-mouse01_ses-01_scans.tsv | 0 .../icephys/sub-mouse02_channels.tsv | 0 .../icephys/sub-mouse02_electrodes.tsv | 0 .../icephys/sub-mouse02_probes.tsv | 0 .../sub-mouse02_task-IVcurve_events.json | 0 .../sub-mouse02_task-IVcurve_events.tsv | 0 .../sub-mouse02_task-IVcurve_icephys.json | 0 .../sub-mouse02_task-IVcurve_icephys.nwb | 0 .../sub-mouse02/sub-mouse02_scans.tsv | 0 28 files changed, 159 insertions(+), 37 deletions(-) delete mode 100644 microephys/sub-mouse01/ecephys/sub-mouse01_channels.tsv delete mode 100644 microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv rename {microephys => microephys_toy}/README (57%) rename {microephys => microephys_toy}/dataset_description.json (100%) rename {microephys => microephys_toy}/participants.json (100%) rename {microephys => microephys_toy}/participants.tsv (100%) create mode 100644 microephys_toy/probes/customprobe1.json create mode 100644 microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv rename {microephys => microephys_toy}/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv (67%) rename {microephys => microephys_toy}/sub-mouse01/ecephys/sub-mouse01_probes.json (67%) create mode 100644 microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv rename {microephys => microephys_toy}/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json (100%) rename {microephys => microephys_toy}/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb (100%) rename {microephys => microephys_toy}/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_channels.tsv (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_electrodes.tsv (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_probes.tsv (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json (100%) rename {microephys => microephys_toy}/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb (100%) rename {microephys => microephys_toy}/sub-mouse02/sub-mouse02_scans.tsv (100%) diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_channels.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_channels.tsv deleted file mode 100644 index a2d18f587..000000000 --- a/microephys/sub-mouse01/ecephys/sub-mouse01_channels.tsv +++ /dev/null @@ -1,34 +0,0 @@ -name reference type units sampling_frequency gain low_cutoff high_cutoff status status_description -ch001 ref01 LFP uV 1000 500 0.1 300 good n/a -ch002 ref01 LFP uV 1000 500 0.1 300 good n/a -ch003 ref01 LFP uV 1000 500 0.1 300 good n/a -ch004 ref01 LFP uV 1000 500 0.1 300 good n/a -ch005 ref01 LFP uV 1000 500 0.1 300 good n/a -ch006 ref01 LFP uV 1000 500 0.1 300 good n/a -ch007 ref01 LFP uV 1000 500 0.1 300 good n/a -ch008 ref01 LFP uV 1000 500 0.1 300 bad high_noise -ch009 ref01 LFP uV 1000 500 0.1 300 good n/a -ch010 ref01 LFP uV 1000 500 0.1 300 good n/a -ch011 ref01 LFP uV 1000 500 0.1 300 good n/a -ch012 ref01 LFP uV 1000 500 0.1 300 good n/a -ch013 ref01 LFP uV 1000 500 0.1 300 good n/a -ch014 ref01 LFP uV 1000 500 0.1 300 good n/a -ch015 ref01 LFP uV 1000 500 0.1 300 good n/a -ch016 ref01 LFP uV 1000 500 0.1 300 good n/a -ch017 ref01 HP uV 30000 500 300 10000 good n/a -ch018 ref01 HP uV 30000 500 300 10000 good n/a -ch019 ref01 HP uV 30000 500 300 10000 good n/a -ch020 ref01 HP uV 30000 500 300 10000 good n/a -ch021 ref01 HP uV 30000 500 300 10000 good n/a -ch022 ref01 HP uV 30000 500 300 10000 good n/a -ch023 ref01 HP uV 30000 500 300 10000 good n/a -ch024 ref01 HP uV 30000 500 300 10000 good n/a -ch025 ref01 HP uV 30000 500 300 10000 good n/a -ch026 ref01 HP uV 30000 500 300 10000 good n/a -ch027 ref01 HP uV 30000 500 300 10000 good n/a -ch028 ref01 HP uV 30000 500 300 10000 good n/a -ch029 ref01 HP uV 30000 500 300 10000 good n/a -ch030 ref01 HP uV 30000 500 300 10000 good n/a -ch031 ref01 HP uV 30000 500 300 10000 good n/a -ch032 ref01 HP uV 30000 500 300 10000 good n/a -sync01 n/a SYNC V 30000 1 n/a n/a good n/a diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv b/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv deleted file mode 100644 index 3dde5c76e..000000000 --- a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.tsv +++ /dev/null @@ -1,2 +0,0 @@ -probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer model device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material -probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L NeuroNexus A1x32-Poly3-10mm-50-177 NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon diff --git a/microephys/README b/microephys_toy/README similarity index 57% rename from microephys/README rename to microephys_toy/README index 953c5984b..296808fd8 100644 --- a/microephys/README +++ b/microephys_toy/README @@ -5,6 +5,25 @@ This example dataset demonstrates the BIDS microelectrode electrophysiology (microephys) specification for both extracellular (ecephys) and intracellular (icephys) recordings. +Features Demonstrated +--------------------- + +This dataset demonstrates the following key features: + +* **Registration to Allen CCF v3 space**: Electrode positions are provided in + Allen Common Coordinate Framework v3 (see space-AllenCCFv3 files) + +* **Multiple probes in a single subject**: sub-mouse01 uses two probes + simultaneously (probe01 and probe02) targeting different brain regions + +* **Probe defined in ProbeInterface Library**: probe01 uses the + A1x32-Poly3-10mm-50-177 model from the ProbeInterface library, referenced + via TermURL in the probes.json sidecar + +* **Probe defined using a custom ProbeInterface definition**: probe02 uses a + custom probe definition stored in the probes/ directory, referenced via + BIDS URI (bids::probes/customprobe1.json) + Dataset Structure ----------------- @@ -12,7 +31,9 @@ The dataset contains two subjects: - sub-mouse01: Extracellular electrophysiology (ecephys) recordings - Session 1: Two recording sessions with different tasks - - Uses a silicon probe (Neuropixels-like) with 32 electrodes + - Uses two silicon probes: + - probe01: NeuroNexus A1x32 (32 electrodes) in left motor cortex + - probe02: Custom 16-channel probe in right hippocampus CA1 - sub-mouse02: Intracellular electrophysiology (icephys) recordings - Patch-clamp recordings from identified neurons @@ -31,10 +52,13 @@ Metadata Files Each recording includes: - *_probes.tsv: Information about recording probes/pipettes +- *_probes.json: Probe model definitions with ProbeInterface references - *_electrodes.tsv: Electrode positions and properties - *_channels.tsv: Recording channel configurations - *_ecephys.json or *_icephys.json: Recording parameters and metadata - *_events.tsv: Event timing for task-related recordings +- *_coordsystem.json: Coordinate system information (Allen CCF v3) + For more information about the BIDS microelectrode electrophysiology specification, see: diff --git a/microephys/dataset_description.json b/microephys_toy/dataset_description.json similarity index 100% rename from microephys/dataset_description.json rename to microephys_toy/dataset_description.json diff --git a/microephys/participants.json b/microephys_toy/participants.json similarity index 100% rename from microephys/participants.json rename to microephys_toy/participants.json diff --git a/microephys/participants.tsv b/microephys_toy/participants.tsv similarity index 100% rename from microephys/participants.tsv rename to microephys_toy/participants.tsv diff --git a/microephys_toy/probes/customprobe1.json b/microephys_toy/probes/customprobe1.json new file mode 100644 index 000000000..8ad90cd43 --- /dev/null +++ b/microephys_toy/probes/customprobe1.json @@ -0,0 +1,61 @@ +{ + "specification": "probeinterface", + "version": "0.2.21", + "probes": [ + { + "ndim": 2, + "si_units": "um", + "annotations": { + "name": "customprobe1", + "manufacturer": "Custom Lab" + }, + "contact_positions": [ + [0, 0], + [0, 25], + [0, 50], + [0, 75], + [0, 100], + [0, 125], + [0, 150], + [0, 175], + [0, 200], + [0, 225], + [0, 250], + [0, 275], + [0, 300], + [0, 325], + [0, 350], + [0, 375] + ], + "contact_plane_axes": [ + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]], + [[1, 0], [0, 1]] + ], + "contact_shapes": "circle", + "contact_shape_params": {"radius": 6}, + "contact_ids": ["e033", "e034", "e035", "e036", "e037", "e038", "e039", "e040", "e041", "e042", "e043", "e044", "e045", "e046", "e047", "e048"], + "shank_ids": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], + "probe_planar_contour": [ + [-25, -25], + [25, -25], + [25, 400], + [0, 425], + [-25, 400] + ] + } + ] +} diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv new file mode 100644 index 000000000..7145277ab --- /dev/null +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv @@ -0,0 +1,50 @@ +name reference type units sampling_frequency gain low_cutoff high_cutoff status status_description +ch001 e032 LFP uV 1000 500 0.1 300 good n/a +ch002 e032 LFP uV 1000 500 0.1 300 good n/a +ch003 e032 LFP uV 1000 500 0.1 300 good n/a +ch004 e032 LFP uV 1000 500 0.1 300 good n/a +ch005 e032 LFP uV 1000 500 0.1 300 good n/a +ch006 e032 LFP uV 1000 500 0.1 300 good n/a +ch007 e032 LFP uV 1000 500 0.1 300 good n/a +ch008 e032 LFP uV 1000 500 0.1 300 bad high_noise +ch009 e032 LFP uV 1000 500 0.1 300 good n/a +ch010 e032 LFP uV 1000 500 0.1 300 good n/a +ch011 e032 LFP uV 1000 500 0.1 300 good n/a +ch012 e032 LFP uV 1000 500 0.1 300 good n/a +ch013 e032 LFP uV 1000 500 0.1 300 good n/a +ch014 e032 LFP uV 1000 500 0.1 300 good n/a +ch015 e032 LFP uV 1000 500 0.1 300 good n/a +ch016 e032 LFP uV 1000 500 0.1 300 good n/a +ch017 e032 HP uV 30000 500 300 10000 good n/a +ch018 e032 HP uV 30000 500 300 10000 good n/a +ch019 e032 HP uV 30000 500 300 10000 good n/a +ch020 e032 HP uV 30000 500 300 10000 good n/a +ch021 e032 HP uV 30000 500 300 10000 good n/a +ch022 e032 HP uV 30000 500 300 10000 good n/a +ch023 e032 HP uV 30000 500 300 10000 good n/a +ch024 e032 HP uV 30000 500 300 10000 good n/a +ch025 e032 HP uV 30000 500 300 10000 good n/a +ch026 e032 HP uV 30000 500 300 10000 good n/a +ch027 e032 HP uV 30000 500 300 10000 good n/a +ch028 e032 HP uV 30000 500 300 10000 good n/a +ch029 e032 HP uV 30000 500 300 10000 good n/a +ch030 e032 HP uV 30000 500 300 10000 good n/a +ch031 e032 HP uV 30000 500 300 10000 good n/a +ch032 e032 HP uV 30000 500 300 10000 good n/a +ch033 e048 LFP uV 1000 500 0.1 300 good n/a +ch034 e048 LFP uV 1000 500 0.1 300 good n/a +ch035 e048 LFP uV 1000 500 0.1 300 good n/a +ch036 e048 LFP uV 1000 500 0.1 300 good n/a +ch037 e048 LFP uV 1000 500 0.1 300 good n/a +ch038 e048 LFP uV 1000 500 0.1 300 good n/a +ch039 e048 LFP uV 1000 500 0.1 300 good n/a +ch040 e048 LFP uV 1000 500 0.1 300 good n/a +ch041 e048 HP uV 30000 500 300 10000 good n/a +ch042 e048 HP uV 30000 500 300 10000 good n/a +ch043 e048 HP uV 30000 500 300 10000 good n/a +ch044 e048 HP uV 30000 500 300 10000 good n/a +ch045 e048 HP uV 30000 500 300 10000 good n/a +ch046 e048 HP uV 30000 500 300 10000 good n/a +ch047 e048 HP uV 30000 500 300 10000 good n/a +ch048 e048 HP uV 30000 500 300 10000 good n/a +sync01 n/a SYNC V 30000 1 n/a n/a good n/a diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv similarity index 67% rename from microephys/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv rename to microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv index ed2c4e9aa..66c63062c 100644 --- a/microephys/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv @@ -31,3 +31,19 @@ e029 probe01 L 0 0 350 1.1 0 12 iridium-oxide MOp e030 probe01 L 0 0 375 1.2 0 12 iridium-oxide MOp e031 probe01 L 32 0 350 1.1 0 12 iridium-oxide MOp e032 probe01 L 32 0 375 1.3 0 12 iridium-oxide MOp +e033 probe02 R 0 0 0 1.5 0 12 iridium-oxide CA1 +e034 probe02 R 0 0 25 1.4 0 12 iridium-oxide CA1 +e035 probe02 R 0 0 50 1.6 0 12 iridium-oxide CA1 +e036 probe02 R 0 0 75 1.3 0 12 iridium-oxide CA1 +e037 probe02 R 0 0 100 1.5 0 12 iridium-oxide CA1 +e038 probe02 R 0 0 125 1.4 0 12 iridium-oxide CA1 +e039 probe02 R 0 0 150 1.6 0 12 iridium-oxide CA1 +e040 probe02 R 0 0 175 1.3 0 12 iridium-oxide CA1 +e041 probe02 R 0 0 200 1.5 0 12 iridium-oxide CA1 +e042 probe02 R 0 0 225 1.4 0 12 iridium-oxide CA1 +e043 probe02 R 0 0 250 1.6 0 12 iridium-oxide CA1 +e044 probe02 R 0 0 275 1.3 0 12 iridium-oxide CA1 +e045 probe02 R 0 0 300 1.5 0 12 iridium-oxide CA1 +e046 probe02 R 0 0 325 1.4 0 12 iridium-oxide CA1 +e047 probe02 R 0 0 350 1.6 0 12 iridium-oxide CA1 +e048 probe02 R 0 0 375 1.3 0 12 iridium-oxide CA1 diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.json b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.json similarity index 67% rename from microephys/sub-mouse01/ecephys/sub-mouse01_probes.json rename to microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.json index b4f781715..767aab5ec 100644 --- a/microephys/sub-mouse01/ecephys/sub-mouse01_probes.json +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.json @@ -4,6 +4,10 @@ "A1x32-Poly3-10mm-50-177": { "Description": "NeuroNexus A1x32-Poly3-10mm-50-177, a 1-shank 32-channel polytrode probe with contacts arranged in a Poly3 configuration", "TermURL": "https://raw.githubusercontent.com/SpikeInterface/probeinterface_library/refs/heads/main/neuronexus/A1x32-Poly3-10mm-50-177/A1x32-Poly3-10mm-50-177.json" + }, + "customprobe1": { + "Description": "Custom experimental 16-channel linear silicon probe designed for hippocampal recordings", + "TermURL": "bids::probes/customprobe1.json" } } } diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv new file mode 100644 index 000000000..990322a33 --- /dev/null +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv @@ -0,0 +1,3 @@ +probe_name type model AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material +probe01 silicon-probe A1x32-Poly3-10mm-50-177 -2.5 1.5 -4.0 15 0 0 L NeuroNexus NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon +probe02 silicon-probe customprobe1 -1.8 2.0 -3.5 10 5 0 R Custom Lab CUSTOM-001 16 50 15 2000 um tip Bregma Hippocampus CA1 CA1 Allen-CCF-2017 silicon diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json similarity index 100% rename from microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json rename to microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_coordsystem.json diff --git a/microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv similarity index 100% rename from microephys/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv rename to microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json rename to microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb rename to microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.nwb diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json rename to microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.json diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv rename to microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_events.tsv diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json rename to microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json diff --git a/microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb similarity index 100% rename from microephys/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb rename to microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.nwb diff --git a/microephys/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv b/microephys_toy/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv similarity index 100% rename from microephys/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv rename to microephys_toy/sub-mouse01/ses-01/sub-mouse01_ses-01_scans.tsv diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_channels.tsv b/microephys_toy/sub-mouse02/icephys/sub-mouse02_channels.tsv similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_channels.tsv rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_channels.tsv diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_electrodes.tsv b/microephys_toy/sub-mouse02/icephys/sub-mouse02_electrodes.tsv similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_electrodes.tsv rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_electrodes.tsv diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_probes.tsv b/microephys_toy/sub-mouse02/icephys/sub-mouse02_probes.tsv similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_probes.tsv rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_probes.tsv diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json b/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.json diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv b/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_events.tsv diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json b/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json diff --git a/microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb b/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb similarity index 100% rename from microephys/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb rename to microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.nwb diff --git a/microephys/sub-mouse02/sub-mouse02_scans.tsv b/microephys_toy/sub-mouse02/sub-mouse02_scans.tsv similarity index 100% rename from microephys/sub-mouse02/sub-mouse02_scans.tsv rename to microephys_toy/sub-mouse02/sub-mouse02_scans.tsv From 50678023de70f72aa6c6e5dc879f18578f9577c4 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 12:15:53 -0500 Subject: [PATCH 05/14] feat(data): add probe02 electrode entries for CA1 region Add 16 new electrode entries (e033-e048) for probe02 targeting the right hemisphere CA1 hippocampal region with iridium contacts in the sub-mouse01 electrode coordinates file. --- .../sub-mouse01_space-AllenCCFv3_electrodes.tsv | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv index 33a59ac7d..4ac9fa9bf 100644 --- a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv @@ -31,3 +31,19 @@ e029 probe01 L 5700 4200 3450 1.1 0 12 iridium-oxide MOp e030 probe01 L 5700 4200 3425 1.2 0 12 iridium-oxide MOp e031 probe01 L 5732 4200 3450 1.1 0 12 iridium-oxide MOp e032 probe01 L 5732 4200 3425 1.3 0 12 iridium-oxide MOp +e033 probe02 R 7800 3500 2800 1.2 0 15 iridium CA1 +e034 probe02 R 7800 3500 2750 1.1 0 15 iridium CA1 +e035 probe02 R 7800 3500 2700 1.3 0 15 iridium CA1 +e036 probe02 R 7800 3500 2650 1.2 0 15 iridium CA1 +e037 probe02 R 7800 3500 2600 1.4 0 15 iridium CA1 +e038 probe02 R 7800 3500 2550 1.1 0 15 iridium CA1 +e039 probe02 R 7800 3500 2500 1.2 0 15 iridium CA1 +e040 probe02 R 7800 3500 2450 1.3 0 15 iridium CA1 +e041 probe02 R 7800 3500 2400 1.2 0 15 iridium CA1 +e042 probe02 R 7800 3500 2350 1.1 0 15 iridium CA1 +e043 probe02 R 7800 3500 2300 1.4 0 15 iridium CA1 +e044 probe02 R 7800 3500 2250 1.2 0 15 iridium CA1 +e045 probe02 R 7800 3500 2200 1.3 0 15 iridium CA1 +e046 probe02 R 7800 3500 2150 1.1 0 15 iridium CA1 +e047 probe02 R 7800 3500 2100 1.2 0 15 iridium CA1 +e048 probe02 R 7800 3500 2050 1.3 0 15 iridium CA1 From b69a72681466c3fe8fe109b910ab47df14dabd57 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 14:27:15 -0500 Subject: [PATCH 06/14] refactor: reorder electrode columns to group spatial coordinates Move x, y, z columns adjacent to each other and relocate hemisphere column after z coordinate for better logical grouping in electrodes TSV. --- .../ecephys/sub-mouse01_electrodes.tsv | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv index 66c63062c..276fc852b 100644 --- a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_electrodes.tsv @@ -1,49 +1,49 @@ -name probe_name hemisphere x y z impedance shank_id size material location -e001 probe01 L 0 0 0 1.2 0 12 iridium-oxide MOp -e002 probe01 L 0 0 25 1.1 0 12 iridium-oxide MOp -e003 probe01 L 32 0 0 1.3 0 12 iridium-oxide MOp -e004 probe01 L 32 0 25 1.4 0 12 iridium-oxide MOp -e005 probe01 L 0 0 50 1.2 0 12 iridium-oxide MOp -e006 probe01 L 0 0 75 1.1 0 12 iridium-oxide MOp -e007 probe01 L 32 0 50 1.3 0 12 iridium-oxide MOp -e008 probe01 L 32 0 75 1.2 0 12 iridium-oxide MOp -e009 probe01 L 0 0 100 1.1 0 12 iridium-oxide MOp -e010 probe01 L 0 0 125 1.2 0 12 iridium-oxide MOp -e011 probe01 L 32 0 100 1.1 0 12 iridium-oxide MOp -e012 probe01 L 32 0 125 1.3 0 12 iridium-oxide MOp -e013 probe01 L 0 0 150 1.2 0 12 iridium-oxide MOp -e014 probe01 L 0 0 175 1.1 0 12 iridium-oxide MOp -e015 probe01 L 32 0 150 1.2 0 12 iridium-oxide MOp -e016 probe01 L 32 0 175 1.1 0 12 iridium-oxide MOp -e017 probe01 L 0 0 200 1.3 0 12 iridium-oxide MOp -e018 probe01 L 0 0 225 1.2 0 12 iridium-oxide MOp -e019 probe01 L 32 0 200 1.1 0 12 iridium-oxide MOp -e020 probe01 L 32 0 225 1.2 0 12 iridium-oxide MOp -e021 probe01 L 0 0 250 1.1 0 12 iridium-oxide MOp -e022 probe01 L 0 0 275 1.3 0 12 iridium-oxide MOp -e023 probe01 L 32 0 250 1.2 0 12 iridium-oxide MOp -e024 probe01 L 32 0 275 1.1 0 12 iridium-oxide MOp -e025 probe01 L 0 0 300 1.2 0 12 iridium-oxide MOp -e026 probe01 L 0 0 325 1.1 0 12 iridium-oxide MOp -e027 probe01 L 32 0 300 1.3 0 12 iridium-oxide MOp -e028 probe01 L 32 0 325 1.2 0 12 iridium-oxide MOp -e029 probe01 L 0 0 350 1.1 0 12 iridium-oxide MOp -e030 probe01 L 0 0 375 1.2 0 12 iridium-oxide MOp -e031 probe01 L 32 0 350 1.1 0 12 iridium-oxide MOp -e032 probe01 L 32 0 375 1.3 0 12 iridium-oxide MOp -e033 probe02 R 0 0 0 1.5 0 12 iridium-oxide CA1 -e034 probe02 R 0 0 25 1.4 0 12 iridium-oxide CA1 -e035 probe02 R 0 0 50 1.6 0 12 iridium-oxide CA1 -e036 probe02 R 0 0 75 1.3 0 12 iridium-oxide CA1 -e037 probe02 R 0 0 100 1.5 0 12 iridium-oxide CA1 -e038 probe02 R 0 0 125 1.4 0 12 iridium-oxide CA1 -e039 probe02 R 0 0 150 1.6 0 12 iridium-oxide CA1 -e040 probe02 R 0 0 175 1.3 0 12 iridium-oxide CA1 -e041 probe02 R 0 0 200 1.5 0 12 iridium-oxide CA1 -e042 probe02 R 0 0 225 1.4 0 12 iridium-oxide CA1 -e043 probe02 R 0 0 250 1.6 0 12 iridium-oxide CA1 -e044 probe02 R 0 0 275 1.3 0 12 iridium-oxide CA1 -e045 probe02 R 0 0 300 1.5 0 12 iridium-oxide CA1 -e046 probe02 R 0 0 325 1.4 0 12 iridium-oxide CA1 -e047 probe02 R 0 0 350 1.6 0 12 iridium-oxide CA1 -e048 probe02 R 0 0 375 1.3 0 12 iridium-oxide CA1 +name probe_name x y z hemisphere impedance shank_id size material location +e001 probe01 0 0 0 L 1.2 0 12 iridium-oxide MOp +e002 probe01 0 0 25 L 1.1 0 12 iridium-oxide MOp +e003 probe01 32 0 0 L 1.3 0 12 iridium-oxide MOp +e004 probe01 32 0 25 L 1.4 0 12 iridium-oxide MOp +e005 probe01 0 0 50 L 1.2 0 12 iridium-oxide MOp +e006 probe01 0 0 75 L 1.1 0 12 iridium-oxide MOp +e007 probe01 32 0 50 L 1.3 0 12 iridium-oxide MOp +e008 probe01 32 0 75 L 1.2 0 12 iridium-oxide MOp +e009 probe01 0 0 100 L 1.1 0 12 iridium-oxide MOp +e010 probe01 0 0 125 L 1.2 0 12 iridium-oxide MOp +e011 probe01 32 0 100 L 1.1 0 12 iridium-oxide MOp +e012 probe01 32 0 125 L 1.3 0 12 iridium-oxide MOp +e013 probe01 0 0 150 L 1.2 0 12 iridium-oxide MOp +e014 probe01 0 0 175 L 1.1 0 12 iridium-oxide MOp +e015 probe01 32 0 150 L 1.2 0 12 iridium-oxide MOp +e016 probe01 32 0 175 L 1.1 0 12 iridium-oxide MOp +e017 probe01 0 0 200 L 1.3 0 12 iridium-oxide MOp +e018 probe01 0 0 225 L 1.2 0 12 iridium-oxide MOp +e019 probe01 32 0 200 L 1.1 0 12 iridium-oxide MOp +e020 probe01 32 0 225 L 1.2 0 12 iridium-oxide MOp +e021 probe01 0 0 250 L 1.1 0 12 iridium-oxide MOp +e022 probe01 0 0 275 L 1.3 0 12 iridium-oxide MOp +e023 probe01 32 0 250 L 1.2 0 12 iridium-oxide MOp +e024 probe01 32 0 275 L 1.1 0 12 iridium-oxide MOp +e025 probe01 0 0 300 L 1.2 0 12 iridium-oxide MOp +e026 probe01 0 0 325 L 1.1 0 12 iridium-oxide MOp +e027 probe01 32 0 300 L 1.3 0 12 iridium-oxide MOp +e028 probe01 32 0 325 L 1.2 0 12 iridium-oxide MOp +e029 probe01 0 0 350 L 1.1 0 12 iridium-oxide MOp +e030 probe01 0 0 375 L 1.2 0 12 iridium-oxide MOp +e031 probe01 32 0 350 L 1.1 0 12 iridium-oxide MOp +e032 probe01 32 0 375 L 1.3 0 12 iridium-oxide MOp +e033 probe02 0 0 0 R 1.5 0 12 iridium-oxide CA1 +e034 probe02 0 0 25 R 1.4 0 12 iridium-oxide CA1 +e035 probe02 0 0 50 R 1.6 0 12 iridium-oxide CA1 +e036 probe02 0 0 75 R 1.3 0 12 iridium-oxide CA1 +e037 probe02 0 0 100 R 1.5 0 12 iridium-oxide CA1 +e038 probe02 0 0 125 R 1.4 0 12 iridium-oxide CA1 +e039 probe02 0 0 150 R 1.6 0 12 iridium-oxide CA1 +e040 probe02 0 0 175 R 1.3 0 12 iridium-oxide CA1 +e041 probe02 0 0 200 R 1.5 0 12 iridium-oxide CA1 +e042 probe02 0 0 225 R 1.4 0 12 iridium-oxide CA1 +e043 probe02 0 0 250 R 1.6 0 12 iridium-oxide CA1 +e044 probe02 0 0 275 R 1.3 0 12 iridium-oxide CA1 +e045 probe02 0 0 300 R 1.5 0 12 iridium-oxide CA1 +e046 probe02 0 0 325 R 1.4 0 12 iridium-oxide CA1 +e047 probe02 0 0 350 R 1.6 0 12 iridium-oxide CA1 +e048 probe02 0 0 375 R 1.3 0 12 iridium-oxide CA1 From 4af59b6a418a964994ccf9537682f12d433a4a27 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 14:27:37 -0500 Subject: [PATCH 07/14] refactor(ecephys): reorder probes.tsv columns to group model with manufacturer Move the 'model' column from position 3 to after 'manufacturer' column, improving logical grouping of device-related metadata fields. --- microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv index 990322a33..f1135e830 100644 --- a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv @@ -1,3 +1,3 @@ -probe_name type model AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material -probe01 silicon-probe A1x32-Poly3-10mm-50-177 -2.5 1.5 -4.0 15 0 0 L NeuroNexus NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon -probe02 silicon-probe customprobe1 -1.8 2.0 -3.5 10 5 0 R Custom Lab CUSTOM-001 16 50 15 2000 um tip Bregma Hippocampus CA1 CA1 Allen-CCF-2017 silicon +probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer model device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material +probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L NeuroNexus A1x32-Poly3-10mm-50-177 NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon +probe02 silicon-probe -1.8 2.0 -3.5 10 5 0 R Custom Lab customprobe1 CUSTOM-001 16 50 15 2000 um tip Bregma Hippocampus CA1 CA1 Allen-CCF-2017 silicon From a3cc0905f19ed2dc4093402df5958e571482ccec Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 14:27:53 -0500 Subject: [PATCH 08/14] fix: reorder columns in electrodes TSV to place hemisphere after coordinates Move the hemisphere column from position 3 to position 6 in sub-mouse02_electrodes.tsv, placing it after the x, y, z coordinate columns for improved logical grouping of spatial information. --- .../sub-mouse02/icephys/sub-mouse02_electrodes.tsv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/microephys_toy/sub-mouse02/icephys/sub-mouse02_electrodes.tsv b/microephys_toy/sub-mouse02/icephys/sub-mouse02_electrodes.tsv index bdd7f02ab..fa07e0467 100644 --- a/microephys_toy/sub-mouse02/icephys/sub-mouse02_electrodes.tsv +++ b/microephys_toy/sub-mouse02/icephys/sub-mouse02_electrodes.tsv @@ -1,3 +1,3 @@ -name probe_name hemisphere x y z impedance pipette_solution internal_pipette_diameter external_pipette_diameter material location -patch01 pipette01 L 0 0 0 5.2 K-gluconate 1.5 2.5 borosilicate-glass VISp2/3 -patch02 pipette02 R 0 0 0 4.8 K-gluconate 1.5 2.5 borosilicate-glass VISp2/3 +name probe_name x y z hemisphere impedance pipette_solution internal_pipette_diameter external_pipette_diameter material location +patch01 pipette01 0 0 0 L 5.2 K-gluconate 1.5 2.5 borosilicate-glass VISp2/3 +patch02 pipette02 0 0 0 R 4.8 K-gluconate 1.5 2.5 borosilicate-glass VISp2/3 From b28a843260e63091a522ebade2efae2e8d61ca50 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 14:28:17 -0500 Subject: [PATCH 09/14] refactor: reorder electrode TSV columns to group spatial coordinates Move x, y, z columns together after probe_name and relocate hemisphere column after z coordinate for more logical data organization. --- ...ub-mouse01_space-AllenCCFv3_electrodes.tsv | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv index 4ac9fa9bf..39a9fe5f6 100644 --- a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_space-AllenCCFv3_electrodes.tsv @@ -1,49 +1,49 @@ -name probe_name hemisphere x y z impedance shank_id size material location -e001 probe01 L 5700 4200 3800 1.2 0 12 iridium-oxide MOp -e002 probe01 L 5700 4200 3775 1.1 0 12 iridium-oxide MOp -e003 probe01 L 5732 4200 3800 1.3 0 12 iridium-oxide MOp -e004 probe01 L 5732 4200 3775 1.4 0 12 iridium-oxide MOp -e005 probe01 L 5700 4200 3750 1.2 0 12 iridium-oxide MOp -e006 probe01 L 5700 4200 3725 1.1 0 12 iridium-oxide MOp -e007 probe01 L 5732 4200 3750 1.3 0 12 iridium-oxide MOp -e008 probe01 L 5732 4200 3725 1.2 0 12 iridium-oxide MOp -e009 probe01 L 5700 4200 3700 1.1 0 12 iridium-oxide MOp -e010 probe01 L 5700 4200 3675 1.2 0 12 iridium-oxide MOp -e011 probe01 L 5732 4200 3700 1.1 0 12 iridium-oxide MOp -e012 probe01 L 5732 4200 3675 1.3 0 12 iridium-oxide MOp -e013 probe01 L 5700 4200 3650 1.2 0 12 iridium-oxide MOp -e014 probe01 L 5700 4200 3625 1.1 0 12 iridium-oxide MOp -e015 probe01 L 5732 4200 3650 1.2 0 12 iridium-oxide MOp -e016 probe01 L 5732 4200 3625 1.1 0 12 iridium-oxide MOp -e017 probe01 L 5700 4200 3600 1.3 0 12 iridium-oxide MOp -e018 probe01 L 5700 4200 3575 1.2 0 12 iridium-oxide MOp -e019 probe01 L 5732 4200 3600 1.1 0 12 iridium-oxide MOp -e020 probe01 L 5732 4200 3575 1.2 0 12 iridium-oxide MOp -e021 probe01 L 5700 4200 3550 1.1 0 12 iridium-oxide MOp -e022 probe01 L 5700 4200 3525 1.3 0 12 iridium-oxide MOp -e023 probe01 L 5732 4200 3550 1.2 0 12 iridium-oxide MOp -e024 probe01 L 5732 4200 3525 1.1 0 12 iridium-oxide MOp -e025 probe01 L 5700 4200 3500 1.2 0 12 iridium-oxide MOp -e026 probe01 L 5700 4200 3475 1.1 0 12 iridium-oxide MOp -e027 probe01 L 5732 4200 3500 1.3 0 12 iridium-oxide MOp -e028 probe01 L 5732 4200 3475 1.2 0 12 iridium-oxide MOp -e029 probe01 L 5700 4200 3450 1.1 0 12 iridium-oxide MOp -e030 probe01 L 5700 4200 3425 1.2 0 12 iridium-oxide MOp -e031 probe01 L 5732 4200 3450 1.1 0 12 iridium-oxide MOp -e032 probe01 L 5732 4200 3425 1.3 0 12 iridium-oxide MOp -e033 probe02 R 7800 3500 2800 1.2 0 15 iridium CA1 -e034 probe02 R 7800 3500 2750 1.1 0 15 iridium CA1 -e035 probe02 R 7800 3500 2700 1.3 0 15 iridium CA1 -e036 probe02 R 7800 3500 2650 1.2 0 15 iridium CA1 -e037 probe02 R 7800 3500 2600 1.4 0 15 iridium CA1 -e038 probe02 R 7800 3500 2550 1.1 0 15 iridium CA1 -e039 probe02 R 7800 3500 2500 1.2 0 15 iridium CA1 -e040 probe02 R 7800 3500 2450 1.3 0 15 iridium CA1 -e041 probe02 R 7800 3500 2400 1.2 0 15 iridium CA1 -e042 probe02 R 7800 3500 2350 1.1 0 15 iridium CA1 -e043 probe02 R 7800 3500 2300 1.4 0 15 iridium CA1 -e044 probe02 R 7800 3500 2250 1.2 0 15 iridium CA1 -e045 probe02 R 7800 3500 2200 1.3 0 15 iridium CA1 -e046 probe02 R 7800 3500 2150 1.1 0 15 iridium CA1 -e047 probe02 R 7800 3500 2100 1.2 0 15 iridium CA1 -e048 probe02 R 7800 3500 2050 1.3 0 15 iridium CA1 +name probe_name x y z hemisphere impedance shank_id size material location +e001 probe01 5700 4200 3800 L 1.2 0 12 iridium-oxide MOp +e002 probe01 5700 4200 3775 L 1.1 0 12 iridium-oxide MOp +e003 probe01 5732 4200 3800 L 1.3 0 12 iridium-oxide MOp +e004 probe01 5732 4200 3775 L 1.4 0 12 iridium-oxide MOp +e005 probe01 5700 4200 3750 L 1.2 0 12 iridium-oxide MOp +e006 probe01 5700 4200 3725 L 1.1 0 12 iridium-oxide MOp +e007 probe01 5732 4200 3750 L 1.3 0 12 iridium-oxide MOp +e008 probe01 5732 4200 3725 L 1.2 0 12 iridium-oxide MOp +e009 probe01 5700 4200 3700 L 1.1 0 12 iridium-oxide MOp +e010 probe01 5700 4200 3675 L 1.2 0 12 iridium-oxide MOp +e011 probe01 5732 4200 3700 L 1.1 0 12 iridium-oxide MOp +e012 probe01 5732 4200 3675 L 1.3 0 12 iridium-oxide MOp +e013 probe01 5700 4200 3650 L 1.2 0 12 iridium-oxide MOp +e014 probe01 5700 4200 3625 L 1.1 0 12 iridium-oxide MOp +e015 probe01 5732 4200 3650 L 1.2 0 12 iridium-oxide MOp +e016 probe01 5732 4200 3625 L 1.1 0 12 iridium-oxide MOp +e017 probe01 5700 4200 3600 L 1.3 0 12 iridium-oxide MOp +e018 probe01 5700 4200 3575 L 1.2 0 12 iridium-oxide MOp +e019 probe01 5732 4200 3600 L 1.1 0 12 iridium-oxide MOp +e020 probe01 5732 4200 3575 L 1.2 0 12 iridium-oxide MOp +e021 probe01 5700 4200 3550 L 1.1 0 12 iridium-oxide MOp +e022 probe01 5700 4200 3525 L 1.3 0 12 iridium-oxide MOp +e023 probe01 5732 4200 3550 L 1.2 0 12 iridium-oxide MOp +e024 probe01 5732 4200 3525 L 1.1 0 12 iridium-oxide MOp +e025 probe01 5700 4200 3500 L 1.2 0 12 iridium-oxide MOp +e026 probe01 5700 4200 3475 L 1.1 0 12 iridium-oxide MOp +e027 probe01 5732 4200 3500 L 1.3 0 12 iridium-oxide MOp +e028 probe01 5732 4200 3475 L 1.2 0 12 iridium-oxide MOp +e029 probe01 5700 4200 3450 L 1.1 0 12 iridium-oxide MOp +e030 probe01 5700 4200 3425 L 1.2 0 12 iridium-oxide MOp +e031 probe01 5732 4200 3450 L 1.1 0 12 iridium-oxide MOp +e032 probe01 5732 4200 3425 L 1.3 0 12 iridium-oxide MOp +e033 probe02 7800 3500 2800 R 1.2 0 15 iridium CA1 +e034 probe02 7800 3500 2750 R 1.1 0 15 iridium CA1 +e035 probe02 7800 3500 2700 R 1.3 0 15 iridium CA1 +e036 probe02 7800 3500 2650 R 1.2 0 15 iridium CA1 +e037 probe02 7800 3500 2600 R 1.4 0 15 iridium CA1 +e038 probe02 7800 3500 2550 R 1.1 0 15 iridium CA1 +e039 probe02 7800 3500 2500 R 1.2 0 15 iridium CA1 +e040 probe02 7800 3500 2450 R 1.3 0 15 iridium CA1 +e041 probe02 7800 3500 2400 R 1.2 0 15 iridium CA1 +e042 probe02 7800 3500 2350 R 1.1 0 15 iridium CA1 +e043 probe02 7800 3500 2300 R 1.4 0 15 iridium CA1 +e044 probe02 7800 3500 2250 R 1.2 0 15 iridium CA1 +e045 probe02 7800 3500 2200 R 1.3 0 15 iridium CA1 +e046 probe02 7800 3500 2150 R 1.1 0 15 iridium CA1 +e047 probe02 7800 3500 2100 R 1.2 0 15 iridium CA1 +e048 probe02 7800 3500 2050 R 1.3 0 15 iridium CA1 From fa0b8dced3a6d1ac7e22278844568f96e026304e Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 14:29:29 -0500 Subject: [PATCH 10/14] fix(metadata): standardize ecephys/icephys JSON fields and add cognitive atlas IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add CogAtlasID references for task definitions - Convert PharmaceuticalName and PharmaceuticalDoseUnits from arrays to strings - Fix SampleEnvironment format: "in-vivo"/"ex-vivo" → "in vivo"/"ex vivo" - Add missing RecordingDuration field to IVcurve task metadata --- .../ecephys/sub-mouse01_ses-01_task-reach_ecephys.json | 7 ++++--- .../ecephys/sub-mouse01_ses-01_task-rest_ecephys.json | 7 ++++--- .../icephys/sub-mouse02_task-IVcurve_icephys.json | 3 ++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json index fcc8f2f35..553ff7a77 100644 --- a/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json +++ b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-reach_ecephys.json @@ -1,6 +1,7 @@ { "TaskName": "Reach to Grasp", "TaskDescription": "Subject reaches and grasps objects of different shapes and sizes while neural activity is recorded from motor cortex", + "CogAtlasID": "https://www.cognitiveatlas.org/task/id/trm_4c89926767870/", "InstitutionName": "Example University", "InstitutionAddress": "123 Main St, City, State 12345, USA", "InstitutionalDepartmentName": "Neuroscience Department", @@ -24,10 +25,10 @@ }, "RecordingType": "continuous", "RecordingDuration": 1800, - "PharmaceuticalName": ["isoflurane"], + "PharmaceuticalName": "isoflurane", "PharmaceuticalDoseAmount": [1.5], - "PharmaceuticalDoseUnits": ["percent"], + "PharmaceuticalDoseUnits": "percent", "BodyPart": "BRAIN", "BodyPartDetails": "Primary Motor Cortex", - "SampleEnvironment": "in-vivo" + "SampleEnvironment": "in vivo" } diff --git a/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json index 1a0b3f80f..d9788b12c 100644 --- a/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json +++ b/microephys_toy/sub-mouse01/ses-01/ecephys/sub-mouse01_ses-01_task-rest_ecephys.json @@ -1,6 +1,7 @@ { "TaskName": "Resting State", "TaskDescription": "Spontaneous neural activity recording during quiet wakefulness", + "CogAtlasID": "https://www.cognitiveatlas.org/task/id/trm_4c8a834779883/", "InstitutionName": "Example University", "InstitutionAddress": "123 Main St, City, State 12345, USA", "InstitutionalDepartmentName": "Neuroscience Department", @@ -24,10 +25,10 @@ }, "RecordingType": "continuous", "RecordingDuration": 600, - "PharmaceuticalName": ["isoflurane"], + "PharmaceuticalName": "isoflurane", "PharmaceuticalDoseAmount": [1.5], - "PharmaceuticalDoseUnits": ["percent"], + "PharmaceuticalDoseUnits": "percent", "BodyPart": "BRAIN", "BodyPartDetails": "Primary Motor Cortex", - "SampleEnvironment": "in-vivo" + "SampleEnvironment": "in vivo" } diff --git a/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json b/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json index ab91b36d8..f0499d3f4 100644 --- a/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json +++ b/microephys_toy/sub-mouse02/icephys/sub-mouse02_task-IVcurve_icephys.json @@ -18,9 +18,10 @@ }, "SoftwareFilters": "n/a", "RecordingType": "epoched", + "RecordingDuration": 300, "BodyPart": "BRAIN", "BodyPartDetails": "Visual Cortex", - "SampleEnvironment": "ex-vivo", + "SampleEnvironment": "ex vivo", "SliceThickness": 300, "SliceThicknessUnits": "um", "TissueOrigin": "Primary Visual Cortex", From 851b6afe15ed16f5b0497504cf4fbd292bd865d2 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sun, 4 Jan 2026 18:24:44 -0500 Subject: [PATCH 11/14] Apply suggestion from @bendichter --- dataset_listing.tsv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataset_listing.tsv b/dataset_listing.tsv index 6e4317f15..f97580dd9 100644 --- a/dataset_listing.tsv +++ b/dataset_listing.tsv @@ -94,4 +94,4 @@ emg_MultiBodyParts EMG recording from multiple body parts with different electro emg_TwoHDsEMG High-density EMG grid recordings from two body parts demonstrating grid placement documentation n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg emg_TwoWristbands EMG recordings using two wristbands with dry electrodes to capture forearm muscle activity n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg mri_chunk Example MRI dataset to illustrate BIDS chunk entity. A single subject, two chunks. [@valosekj](https://github.com/valosekj) anat T1w -microephys Example microelectrode electrophysiology dataset demonstrating extracellular (ecephys) and intracellular (icephys) recordings in NWB format ecephys, icephys channels, ecephys, electrodes, events, icephys, probes, scans +microephys_toy Example microelectrode electrophysiology dataset demonstrating extracellular (ecephys) and intracellular (icephys) recordings in NWB format ecephys, icephys channels, ecephys, electrodes, events, icephys, probes, scans From 18692030cca7d8dc655f74e0af387403c8c664a4 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Wed, 4 Mar 2026 20:24:31 -0500 Subject: [PATCH 12/14] fix: update microephys_toy to match latest BEP32 schema - Add required electrode_name column to channels.tsv (ecephys and icephys) - Remove deprecated dimension_unit column from probes.tsv - Convert probe width/height/depth values from um to mm - Remove optional reference column from channels.tsv Co-Authored-By: Claude Opus 4.6 --- .../ecephys/sub-mouse01_channels.tsv | 94 +++++++++---------- .../ecephys/sub-mouse01_probes.tsv | 6 +- .../icephys/sub-mouse02_channels.tsv | 10 +- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv index 7145277ab..ff59d9540 100644 --- a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_channels.tsv @@ -1,50 +1,50 @@ -name reference type units sampling_frequency gain low_cutoff high_cutoff status status_description -ch001 e032 LFP uV 1000 500 0.1 300 good n/a -ch002 e032 LFP uV 1000 500 0.1 300 good n/a -ch003 e032 LFP uV 1000 500 0.1 300 good n/a -ch004 e032 LFP uV 1000 500 0.1 300 good n/a -ch005 e032 LFP uV 1000 500 0.1 300 good n/a -ch006 e032 LFP uV 1000 500 0.1 300 good n/a -ch007 e032 LFP uV 1000 500 0.1 300 good n/a -ch008 e032 LFP uV 1000 500 0.1 300 bad high_noise -ch009 e032 LFP uV 1000 500 0.1 300 good n/a -ch010 e032 LFP uV 1000 500 0.1 300 good n/a -ch011 e032 LFP uV 1000 500 0.1 300 good n/a -ch012 e032 LFP uV 1000 500 0.1 300 good n/a -ch013 e032 LFP uV 1000 500 0.1 300 good n/a -ch014 e032 LFP uV 1000 500 0.1 300 good n/a -ch015 e032 LFP uV 1000 500 0.1 300 good n/a -ch016 e032 LFP uV 1000 500 0.1 300 good n/a -ch017 e032 HP uV 30000 500 300 10000 good n/a -ch018 e032 HP uV 30000 500 300 10000 good n/a -ch019 e032 HP uV 30000 500 300 10000 good n/a -ch020 e032 HP uV 30000 500 300 10000 good n/a -ch021 e032 HP uV 30000 500 300 10000 good n/a -ch022 e032 HP uV 30000 500 300 10000 good n/a -ch023 e032 HP uV 30000 500 300 10000 good n/a -ch024 e032 HP uV 30000 500 300 10000 good n/a -ch025 e032 HP uV 30000 500 300 10000 good n/a -ch026 e032 HP uV 30000 500 300 10000 good n/a -ch027 e032 HP uV 30000 500 300 10000 good n/a -ch028 e032 HP uV 30000 500 300 10000 good n/a -ch029 e032 HP uV 30000 500 300 10000 good n/a -ch030 e032 HP uV 30000 500 300 10000 good n/a -ch031 e032 HP uV 30000 500 300 10000 good n/a +name electrode_name type units sampling_frequency gain low_cutoff high_cutoff status status_description +ch001 e001 LFP uV 1000 500 0.1 300 good n/a +ch002 e002 LFP uV 1000 500 0.1 300 good n/a +ch003 e003 LFP uV 1000 500 0.1 300 good n/a +ch004 e004 LFP uV 1000 500 0.1 300 good n/a +ch005 e005 LFP uV 1000 500 0.1 300 good n/a +ch006 e006 LFP uV 1000 500 0.1 300 good n/a +ch007 e007 LFP uV 1000 500 0.1 300 good n/a +ch008 e008 LFP uV 1000 500 0.1 300 bad high_noise +ch009 e009 LFP uV 1000 500 0.1 300 good n/a +ch010 e010 LFP uV 1000 500 0.1 300 good n/a +ch011 e011 LFP uV 1000 500 0.1 300 good n/a +ch012 e012 LFP uV 1000 500 0.1 300 good n/a +ch013 e013 LFP uV 1000 500 0.1 300 good n/a +ch014 e014 LFP uV 1000 500 0.1 300 good n/a +ch015 e015 LFP uV 1000 500 0.1 300 good n/a +ch016 e016 LFP uV 1000 500 0.1 300 good n/a +ch017 e017 HP uV 30000 500 300 10000 good n/a +ch018 e018 HP uV 30000 500 300 10000 good n/a +ch019 e019 HP uV 30000 500 300 10000 good n/a +ch020 e020 HP uV 30000 500 300 10000 good n/a +ch021 e021 HP uV 30000 500 300 10000 good n/a +ch022 e022 HP uV 30000 500 300 10000 good n/a +ch023 e023 HP uV 30000 500 300 10000 good n/a +ch024 e024 HP uV 30000 500 300 10000 good n/a +ch025 e025 HP uV 30000 500 300 10000 good n/a +ch026 e026 HP uV 30000 500 300 10000 good n/a +ch027 e027 HP uV 30000 500 300 10000 good n/a +ch028 e028 HP uV 30000 500 300 10000 good n/a +ch029 e029 HP uV 30000 500 300 10000 good n/a +ch030 e030 HP uV 30000 500 300 10000 good n/a +ch031 e031 HP uV 30000 500 300 10000 good n/a ch032 e032 HP uV 30000 500 300 10000 good n/a -ch033 e048 LFP uV 1000 500 0.1 300 good n/a -ch034 e048 LFP uV 1000 500 0.1 300 good n/a -ch035 e048 LFP uV 1000 500 0.1 300 good n/a -ch036 e048 LFP uV 1000 500 0.1 300 good n/a -ch037 e048 LFP uV 1000 500 0.1 300 good n/a -ch038 e048 LFP uV 1000 500 0.1 300 good n/a -ch039 e048 LFP uV 1000 500 0.1 300 good n/a -ch040 e048 LFP uV 1000 500 0.1 300 good n/a -ch041 e048 HP uV 30000 500 300 10000 good n/a -ch042 e048 HP uV 30000 500 300 10000 good n/a -ch043 e048 HP uV 30000 500 300 10000 good n/a -ch044 e048 HP uV 30000 500 300 10000 good n/a -ch045 e048 HP uV 30000 500 300 10000 good n/a -ch046 e048 HP uV 30000 500 300 10000 good n/a -ch047 e048 HP uV 30000 500 300 10000 good n/a +ch033 e033 LFP uV 1000 500 0.1 300 good n/a +ch034 e034 LFP uV 1000 500 0.1 300 good n/a +ch035 e035 LFP uV 1000 500 0.1 300 good n/a +ch036 e036 LFP uV 1000 500 0.1 300 good n/a +ch037 e037 LFP uV 1000 500 0.1 300 good n/a +ch038 e038 LFP uV 1000 500 0.1 300 good n/a +ch039 e039 LFP uV 1000 500 0.1 300 good n/a +ch040 e040 LFP uV 1000 500 0.1 300 good n/a +ch041 e041 HP uV 30000 500 300 10000 good n/a +ch042 e042 HP uV 30000 500 300 10000 good n/a +ch043 e043 HP uV 30000 500 300 10000 good n/a +ch044 e044 HP uV 30000 500 300 10000 good n/a +ch045 e045 HP uV 30000 500 300 10000 good n/a +ch046 e046 HP uV 30000 500 300 10000 good n/a +ch047 e047 HP uV 30000 500 300 10000 good n/a ch048 e048 HP uV 30000 500 300 10000 good n/a sync01 n/a SYNC V 30000 1 n/a n/a good n/a diff --git a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv index f1135e830..911a43a6b 100644 --- a/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv +++ b/microephys_toy/sub-mouse01/ecephys/sub-mouse01_probes.tsv @@ -1,3 +1,3 @@ -probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer model device_serial_number electrode_count width height depth dimension_unit coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material -probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L NeuroNexus A1x32-Poly3-10mm-50-177 NP1100-2205 32 70 20 3840 um tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon -probe02 silicon-probe -1.8 2.0 -3.5 10 5 0 R Custom Lab customprobe1 CUSTOM-001 16 50 15 2000 um tip Bregma Hippocampus CA1 CA1 Allen-CCF-2017 silicon +probe_name type AP ML DV AP_angle ML_angle rotation_angle hemisphere manufacturer model device_serial_number electrode_count width height depth coordinate_reference_point anatomical_reference_point associated_brain_region associated_brain_region_id reference_atlas material +probe01 silicon-probe -2.5 1.5 -4.0 15 0 0 L NeuroNexus A1x32-Poly3-10mm-50-177 NP1100-2205 32 0.07 0.02 3.84 tip Bregma Primary Motor Cortex MOp Allen-CCF-2017 silicon +probe02 silicon-probe -1.8 2.0 -3.5 10 5 0 R Custom Lab customprobe1 CUSTOM-001 16 0.05 0.015 2.0 tip Bregma Hippocampus CA1 CA1 Allen-CCF-2017 silicon diff --git a/microephys_toy/sub-mouse02/icephys/sub-mouse02_channels.tsv b/microephys_toy/sub-mouse02/icephys/sub-mouse02_channels.tsv index a509ba1b6..44e9f193d 100644 --- a/microephys_toy/sub-mouse02/icephys/sub-mouse02_channels.tsv +++ b/microephys_toy/sub-mouse02/icephys/sub-mouse02_channels.tsv @@ -1,5 +1,5 @@ -name reference type units sampling_frequency recording_mode gain ground status -patch01_vm n/a VM mV 20000 current-clamp 10 AgCl good -patch01_im n/a IM pA 20000 current-clamp 5 AgCl good -patch02_vm n/a VM mV 20000 voltage-clamp 10 AgCl good -patch02_im n/a IM pA 20000 voltage-clamp 5 AgCl good +name electrode_name type units sampling_frequency recording_mode gain ground status +patch01_vm patch01 VM mV 20000 current-clamp 10 AgCl good +patch01_im patch01 IM pA 20000 current-clamp 5 AgCl good +patch02_vm patch02 VM mV 20000 voltage-clamp 10 AgCl good +patch02_im patch02 IM pA 20000 voltage-clamp 5 AgCl good From 9e8d6c3c8c1607793f82e08b2cd0b1b7fa089b19 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Wed, 15 Apr 2026 20:32:00 -0400 Subject: [PATCH 13/14] Replace ad-hoc suffix/prefix annotation for age and weight - and remove not modified column definitions Apparently having just "description" disables validation of values in that column since entire "definition" record then for the column is overloaded with that one only having Description and no Format or Maximum or Units. See https://github.com/bids-standard/bids-validator/issues/386 This way we now would validate while also allowing for use of Units --- microephys_toy/participants.json | 27 +++++++++------------------ microephys_toy/participants.tsv | 4 ++-- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/microephys_toy/participants.json b/microephys_toy/participants.json index 9d7f566fa..3931e5665 100644 --- a/microephys_toy/participants.json +++ b/microephys_toy/participants.json @@ -1,24 +1,15 @@ { - "participant_id": { - "Description": "Unique participant identifier" - }, - "species": { - "Description": "Species of the subject" - }, - "strain": { - "Description": "Strain of the subject" - }, - "sex": { - "Description": "Sex of the subject", - "Levels": { - "M": "male", - "F": "female" - } - }, "age": { - "Description": "Age of the subject in postnatal days (P)" + "LongName": "Subject age", + "Description": "Subject postnatal age (in days)", + "Format": "number", + "Units": "days", + "Maximum": 365 }, "weight": { - "Description": "Weight of the subject" + "Description": "Weight of the subject", + "Format": "number", + "Units": "g", + "Maximum": 1000 } } diff --git a/microephys_toy/participants.tsv b/microephys_toy/participants.tsv index 082bf0e8a..8abe4ca3d 100644 --- a/microephys_toy/participants.tsv +++ b/microephys_toy/participants.tsv @@ -1,3 +1,3 @@ participant_id species strain sex age weight -sub-mouse01 Mus musculus C57BL/6J M P90 25g -sub-mouse02 Mus musculus C57BL/6J F P85 22g +sub-mouse01 Mus musculus C57BL/6J M 90 25 +sub-mouse02 Mus musculus C57BL/6J F 85 22 From 6d999f487c7a09d8b590a52a1f3ec7599c86290c Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Wed, 15 Apr 2026 20:54:18 -0400 Subject: [PATCH 14/14] Fixup -- should be singular, validation rules --- microephys_toy/participants.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microephys_toy/participants.json b/microephys_toy/participants.json index 3931e5665..f01e219c3 100644 --- a/microephys_toy/participants.json +++ b/microephys_toy/participants.json @@ -3,7 +3,7 @@ "LongName": "Subject age", "Description": "Subject postnatal age (in days)", "Format": "number", - "Units": "days", + "Units": "day", "Maximum": 365 }, "weight": {