From 3e863258063cd0fdbbc6df5d035326cf44f3ce9f Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 23 Jul 2025 10:24:01 -0400 Subject: [PATCH 01/17] Add ndtypes from ndx-pose, ndx-photometry, ndx-fiber-photometry --- dandi/metadata/util.py | 34 ++++++++++++++++++++++++++-- dandi/tests/test_metadata.py | 44 ++++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 4 deletions(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 5e63fd9aa..ee194699f 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -828,9 +828,9 @@ class Neurodatum(TypedDict): "technique": "fourier analysis technique", "approach": None, }, - "OptogeneticStimulusSIte": { + "OptogeneticStimulusSite": { "module": "ogen", - "neurodata_type": "OptogeneticStimulusSIte", + "neurodata_type": "OptogeneticStimulusSite", "technique": None, "approach": "optogenetic approach", }, @@ -840,6 +840,36 @@ class Neurodatum(TypedDict): "technique": None, "approach": "optogenetic approach", }, + "PoseEstimationSeries": { + "module": "ndx-pose", + "neurodata_type": "PoseEstimationSeries", + "technique": "pose estimation technique", + "approach": "behavioral approach", + }, + "PoseEstimation": { + "module": "ndx-pose", + "neurodata_type": "PoseEstimation", + "technique": "pose estimation technique", + "approach": "behavioral approach", + }, + "PoseTraining": { + "module": "ndx-pose", + "neurodata_type": "PoseTraining", + "technique": "pose estimation technique", + "approach": "behavioral approach", + }, + "FiberPhotometryResponseSeries": { + "module": "ndx-fiber-photometry", + "neurodata_type": "FiberPhotometryResponseSeries", + "technique": "fiber photometry technique; optical technique", + "approach": "calcium imaging; cell population imaging", + }, + "FiberPhotometryResponseSeries_old": { + "module": "ndx-photometry", # deprecated and replaced by ndx-fiber-photometry + "neurodata_type": "FiberPhotometryResponseSeries", + "technique": "fiber photometry technique; optical technique", + "approach": "calcium imaging; cell population imaging", + }, } diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py index 5c20acf0d..896e9c379 100644 --- a/dandi/tests/test_metadata.py +++ b/dandi/tests/test_metadata.py @@ -788,11 +788,11 @@ def test_species_map(): }, ), ( - ["OptogeneticStimulusSIte"], + ["OptogeneticStimulusSite"], { "approach": ["optogenetic approach"], "measurementTechnique": None, - "variableMeasured": ["OptogeneticStimulusSIte"], + "variableMeasured": ["OptogeneticStimulusSite"], }, ), ( @@ -803,6 +803,46 @@ def test_species_map(): "variableMeasured": ["OptogeneticSeries"], }, ), + ( + ["PoseEstimationSeries"], + { + "approach": ["behavioral approach"], + "measurementTechnique": ["pose estimation technique"], + "variableMeasured": ["PoseEstimationSeries"], + }, + ), + ( + ["PoseEstimation"], + { + "approach": ["behavioral approach"], + "measurementTechnique": ["pose estimation technique"], + "variableMeasured": ["PoseEstimation"], + }, + ), + ( + ["PoseTraining"], + { + "approach": ["behavioral approach"], + "measurementTechnique": ["pose estimation technique"], + "variableMeasured": ["PoseTraining"], + }, + ), + ( + ["FiberPhotometryResponseSeries"], + { + "approach": ["fiber photometry technique; optical technique"], + "measurementTechnique": ["calcium imaging; cell population imaging"], + "variableMeasured": ["FiberPhotometryResponseSeries"], + }, + ), + ( + ["FiberPhotometryResponseSeries_old"], + { + "approach": ["fiber photometry technique; optical technique"], + "measurementTechnique": ["calcium imaging; cell population imaging"], + "variableMeasured": ["FiberPhotometryResponseSeries"], + }, + ), ( # the tricky case of having number of instances of the data type # https://github.com/dandi/dandi-cli/issues/890 From 3d7baea85ea81ff0182dbfa8711ce1cb66151355 Mon Sep 17 00:00:00 2001 From: Cody Baker <51133164+CodyCBakerPhD@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:33:51 -0400 Subject: [PATCH 02/17] Update dandi/metadata/util.py --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index ee194699f..dfbf3f4f3 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -841,7 +841,7 @@ class Neurodatum(TypedDict): "approach": "optogenetic approach", }, "PoseEstimationSeries": { - "module": "ndx-pose", + "module": "behavior", "neurodata_type": "PoseEstimationSeries", "technique": "pose estimation technique", "approach": "behavioral approach", From 1b99658c0d36c9892be6a86d204803d4258ab69b Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:16:26 -0700 Subject: [PATCH 03/17] Update dandi/metadata/util.py Co-authored-by: Yaroslav Halchenko --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index dfbf3f4f3..2f3141e97 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -847,7 +847,7 @@ class Neurodatum(TypedDict): "approach": "behavioral approach", }, "PoseEstimation": { - "module": "ndx-pose", + "module": "motion", "neurodata_type": "PoseEstimation", "technique": "pose estimation technique", "approach": "behavioral approach", From d360e2d61d094aed64b9a7ed70bacde0ffb0d620 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:16:34 -0700 Subject: [PATCH 04/17] Update dandi/metadata/util.py Co-authored-by: Yaroslav Halchenko --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 2f3141e97..1c8b29e43 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -859,7 +859,7 @@ class Neurodatum(TypedDict): "approach": "behavioral approach", }, "FiberPhotometryResponseSeries": { - "module": "ndx-fiber-photometry", + "module": "fiberphotometry", "neurodata_type": "FiberPhotometryResponseSeries", "technique": "fiber photometry technique; optical technique", "approach": "calcium imaging; cell population imaging", From 5e4875962b89a6e2b93d1d05ab9612f0aacf1257 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:16:40 -0700 Subject: [PATCH 05/17] Update dandi/metadata/util.py Co-authored-by: Yaroslav Halchenko --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 1c8b29e43..69eb0f3d4 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -865,7 +865,7 @@ class Neurodatum(TypedDict): "approach": "calcium imaging; cell population imaging", }, "FiberPhotometryResponseSeries_old": { - "module": "ndx-photometry", # deprecated and replaced by ndx-fiber-photometry + "module": "fiberphotometry", "neurodata_type": "FiberPhotometryResponseSeries", "technique": "fiber photometry technique; optical technique", "approach": "calcium imaging; cell population imaging", From 21b1d99cc2f92ab8838013745ebe1819d6f67422 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:16:47 -0700 Subject: [PATCH 06/17] Update dandi/metadata/util.py Co-authored-by: Yaroslav Halchenko --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 69eb0f3d4..6469d141c 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -853,7 +853,7 @@ class Neurodatum(TypedDict): "approach": "behavioral approach", }, "PoseTraining": { - "module": "ndx-pose", + "module": "motion", "neurodata_type": "PoseTraining", "technique": "pose estimation technique", "approach": "behavioral approach", From 20394ffc01a49cb376a25c2f01274190e2bbcc2c Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:25:15 -0700 Subject: [PATCH 07/17] Update metadata for various neurodata types --- dandi/metadata/util.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 6469d141c..0c165db08 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -823,7 +823,7 @@ class Neurodatum(TypedDict): "approach": "electrophysiological approach", }, "Spectrum": { - "module": "ndx-spectrum", + "module": "spectrum", "neurodata_type": "Spectrum", "technique": "fourier analysis technique", "approach": None, @@ -837,11 +837,11 @@ class Neurodatum(TypedDict): "OptogeneticSeries": { "module": "ogen", "neurodata_type": "OptogeneticSeries", - "technique": None, + "technique": "optogenetic stimulation technique", "approach": "optogenetic approach", }, "PoseEstimationSeries": { - "module": "behavior", + "module": "motion", "neurodata_type": "PoseEstimationSeries", "technique": "pose estimation technique", "approach": "behavioral approach", @@ -855,17 +855,12 @@ class Neurodatum(TypedDict): "PoseTraining": { "module": "motion", "neurodata_type": "PoseTraining", - "technique": "pose estimation technique", + "technique": None, # this data often consists of human-labeled points on images "approach": "behavioral approach", }, "FiberPhotometryResponseSeries": { "module": "fiberphotometry", - "neurodata_type": "FiberPhotometryResponseSeries", - "technique": "fiber photometry technique; optical technique", - "approach": "calcium imaging; cell population imaging", - }, - "FiberPhotometryResponseSeries_old": { - "module": "fiberphotometry", + # this can come from both the old ndx-photometry and the new ndx-fiber-photometry "neurodata_type": "FiberPhotometryResponseSeries", "technique": "fiber photometry technique; optical technique", "approach": "calcium imaging; cell population imaging", From 6ad64c1e7befdd0f44d5a20801735e6cc5286ecd Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:30:29 -0700 Subject: [PATCH 08/17] Update test_metadata.py --- dandi/tests/test_metadata.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py index 896e9c379..7ddb5c7f8 100644 --- a/dandi/tests/test_metadata.py +++ b/dandi/tests/test_metadata.py @@ -799,7 +799,7 @@ def test_species_map(): ["OptogeneticSeries"], { "approach": ["optogenetic approach"], - "measurementTechnique": None, + "measurementTechnique": ["optogenetic stimulation technique"], "variableMeasured": ["OptogeneticSeries"], }, ), @@ -823,7 +823,7 @@ def test_species_map(): ["PoseTraining"], { "approach": ["behavioral approach"], - "measurementTechnique": ["pose estimation technique"], + "measurementTechnique": [], "variableMeasured": ["PoseTraining"], }, ), @@ -835,14 +835,6 @@ def test_species_map(): "variableMeasured": ["FiberPhotometryResponseSeries"], }, ), - ( - ["FiberPhotometryResponseSeries_old"], - { - "approach": ["fiber photometry technique; optical technique"], - "measurementTechnique": ["calcium imaging; cell population imaging"], - "variableMeasured": ["FiberPhotometryResponseSeries"], - }, - ), ( # the tricky case of having number of instances of the data type # https://github.com/dandi/dandi-cli/issues/890 From 0648a4045a0e831e5d17c501880194b7665b1d65 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:32:28 -0700 Subject: [PATCH 09/17] Fix whitespace lint error --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 0c165db08..e8dad6b94 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -855,7 +855,7 @@ class Neurodatum(TypedDict): "PoseTraining": { "module": "motion", "neurodata_type": "PoseTraining", - "technique": None, # this data often consists of human-labeled points on images + "technique": None, # this data often consists of human-labeled points on images "approach": "behavioral approach", }, "FiberPhotometryResponseSeries": { From 7dddd60f574cb0c52e7a8ab94deab5c1dba00346 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:33:57 -0700 Subject: [PATCH 10/17] Update technique description for PoseTraining --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index e8dad6b94..064ded426 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -855,7 +855,7 @@ class Neurodatum(TypedDict): "PoseTraining": { "module": "motion", "neurodata_type": "PoseTraining", - "technique": None, # this data often consists of human-labeled points on images + "technique": "pose estimation training technique", "approach": "behavioral approach", }, "FiberPhotometryResponseSeries": { From 7fcddb8f1416c2faf0b8a5078e0659c666b7b397 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 14:34:15 -0700 Subject: [PATCH 11/17] Update test_metadata.py --- dandi/tests/test_metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py index 7ddb5c7f8..ed9de894d 100644 --- a/dandi/tests/test_metadata.py +++ b/dandi/tests/test_metadata.py @@ -823,7 +823,7 @@ def test_species_map(): ["PoseTraining"], { "approach": ["behavioral approach"], - "measurementTechnique": [], + "measurementTechnique": ["pose estimation training technique"], "variableMeasured": ["PoseTraining"], }, ), From c2688424d379b53cda1a271e8fea9459c8e69660 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 27 Aug 2025 21:39:40 -0700 Subject: [PATCH 12/17] Update test_metadata.py --- dandi/tests/test_metadata.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py index ed9de894d..fb80fb99b 100644 --- a/dandi/tests/test_metadata.py +++ b/dandi/tests/test_metadata.py @@ -830,8 +830,8 @@ def test_species_map(): ( ["FiberPhotometryResponseSeries"], { - "approach": ["fiber photometry technique; optical technique"], - "measurementTechnique": ["calcium imaging; cell population imaging"], + "approach": ["calcium imaging; cell population imaging"], + "measurementTechnique": ["fiber photometry technique; optical technique"], "variableMeasured": ["FiberPhotometryResponseSeries"], }, ), From f8490a9cdd0eee57a34bb7d2566289b901a2c12b Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 17 Sep 2025 05:46:11 -0700 Subject: [PATCH 13/17] Change Units module from 'misc' to 'sortedunits' --- dandi/metadata/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index ea6fe2e72..9b7d3a7da 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -823,7 +823,7 @@ class Neurodatum(TypedDict): "approach": None, }, "Units": { - "module": "misc", + "module": "sortedunits", "neurodata_type": "Units", "technique": "spike sorting technique", "approach": "electrophysiological approach", From 4269177b7854d20d83cf26ea97286252122d1e4b Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 17 Sep 2025 06:17:08 -0700 Subject: [PATCH 14/17] Add draft more complete neurodata type map --- dandi/metadata/neurodata_typemap.py | 1201 +++++++++++++++++++++++++++ 1 file changed, 1201 insertions(+) create mode 100644 dandi/metadata/neurodata_typemap.py diff --git a/dandi/metadata/neurodata_typemap.py b/dandi/metadata/neurodata_typemap.py new file mode 100644 index 000000000..607c2e6fb --- /dev/null +++ b/dandi/metadata/neurodata_typemap.py @@ -0,0 +1,1201 @@ +neurodata_typemap: dict[str, dict[str, str | None]] = { + # base module + "NWBFile": { + "module": "base", + "neurodata_type": "NWBFile", + "technique": None, + "approach": None, + }, + "ProcessingModule": { + "module": "base", + "neurodata_type": "ProcessingModule", + "technique": "analytical technique", + "approach": None, + }, + "TimeSeries": { + "module": "base", + "neurodata_type": "TimeSeries", + "technique": None, + "approach": None, + }, + + # behavior module + "AnnotatedEventsTable": { + "module": "behavior", + "neurodata_type": "AnnotatedEventsTable", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "BehavioralEpochs": { + "module": "behavior", + "neurodata_type": "BehavioralEpochs", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "BehavioralEvents": { + "module": "behavior", + "neurodata_type": "BehavioralEvents", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "BehavioralTimeSeries": { + "module": "behavior", + "neurodata_type": "BehavioralTimeSeries", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "CompassDirection": { + "module": "behavior", + "neurodata_type": "CompassDirection", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "EllipseEyeTracking": { + "module": "behavior", + "neurodata_type": "EllipseEyeTracking", + "technique": "eye tracking technique", + "approach": "behavioral approach", + }, + "EllipseSeries": { + "module": "behavior", + "neurodata_type": "EllipseSeries", + "technique": "eye tracking technique", + "approach": "behavioral approach", + }, + "EventTypesTable": { + "module": "behavior", + "neurodata_type": "EventTypesTable", + "technique": None, + "approach": "behavioral approach", + }, + "Eventlog": { + "module": "behavior", + "neurodata_type": "Eventlog", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "Events": { + "module": "behavior", + "neurodata_type": "Events", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "EventsTable": { + "module": "behavior", + "neurodata_type": "EventsTable", + "technique": None, + "approach": "behavioral approach", + }, + "EyeTracking": { + "module": "behavior", + "neurodata_type": "EyeTracking", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "LabeledEvents": { + "module": "behavior", + "neurodata_type": "LabeledEvents", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "MoSeqExtractGroup": { + "module": "behavior", + "neurodata_type": "MoSeqExtractGroup", + "technique": "motion analysis technique", + "approach": "behavioral approach", + }, + "MoSeqExtractParameterGroup": { + "module": "behavior", + "neurodata_type": "MoSeqExtractParameterGroup", + "technique": None, + "approach": "behavioral approach", + }, + "Position": { + "module": "behavior", + "neurodata_type": "Position", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "PupilTracking": { + "module": "behavior", + "neurodata_type": "PupilTracking", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "Skeleton": { + "module": "behavior", + "neurodata_type": "Skeleton", + "technique": None, + "approach": "behavioral approach", + }, + "SpatialSeries": { + "module": "behavior", + "neurodata_type": "SpatialSeries", + "technique": "behavioral technique", + "approach": "behavioral approach", + }, + "TtlTypesTable": { + "module": "behavior", + "neurodata_type": "TtlTypesTable", + "technique": None, + "approach": "behavioral approach", + }, + "TtlsTable": { + "module": "behavior", + "neurodata_type": "TtlsTable", + "technique": None, + "approach": "behavioral approach", + }, + + # device module + "CameraDevice": { + "module": "device", + "neurodata_type": "CameraDevice", + "technique": "photographic technique", + "approach": None, + }, + "DataAcqDevice": { + "module": "device", + "neurodata_type": "DataAcqDevice", + "technique": None, + "approach": None, + }, + "Device": { + "module": "device", + "neurodata_type": "Device", + "technique": None, + "approach": None, + }, + "HeaderDevice": { + "module": "device", + "neurodata_type": "HeaderDevice", + "technique": None, + "approach": None, + }, + "LabNotebookDevice": { + "module": "device", + "neurodata_type": "LabNotebookDevice", + "technique": None, + "approach": None, + }, + "Microscope": { + "module": "device", + "neurodata_type": "Microscope", + "technique": None, + "approach": "microscopy approach", + }, + "Miniscope": { + "module": "device", + "neurodata_type": "Miniscope", + "technique": None, + "approach": "microscopy approach", + }, + "NIRSDevice": { + "module": "device", + "neurodata_type": "NIRSDevice", + "technique": None, + "approach": "near-infrared spectroscopy", + }, + "TestpulseDevice": { + "module": "device", + "neurodata_type": "TestpulseDevice", + "technique": None, + "approach": None, + }, + "UserCommentDevice": { + "module": "device", + "neurodata_type": "UserCommentDevice", + "technique": None, + "approach": None, + }, + + # ecephys module + "EcephysCSD": { + "module": "ecephys", + "neurodata_type": "EcephysCSD", + "technique": "current source density technique", + "approach": "electrophysiological approach", + }, + "EcephysElectrodeGroup": { + "module": "ecephys", + "neurodata_type": "EcephysElectrodeGroup", + "technique": "surgical technique", + "approach": "electrophysiological approach", + }, + "EcephysProbe": { + "module": "ecephys", + "neurodata_type": "EcephysProbe", + "technique": None, + "approach": "electrophysiological approach", + }, + "ElectricalSeries": { + "module": "ecephys", + "neurodata_type": "ElectricalSeries", + "technique": "multi electrode extracellular electrophysiology recording technique", + "approach": "electrophysiological approach", + }, + "ElectrodeGroup": { + "module": "ecephys", + "neurodata_type": "ElectrodeGroup", + "technique": "surgical technique", + "approach": "electrophysiological approach", + }, + "ElectrodesTable": { + "module": "ecephys", + "neurodata_type": "ElectrodesTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "FilteredEphys": { + "module": "ecephys", + "neurodata_type": "FilteredEphys", + "technique": "signal filtering technique", + "approach": "electrophysiological approach", + }, + "IblProbes": { + "module": "ecephys", + "neurodata_type": "IblProbes", + "technique": None, + "approach": "electrophysiological approach", + }, + "LFP": { + "module": "ecephys", + "neurodata_type": "LFP", + "technique": "signal filtering technique", + "approach": "electrophysiological approach", + }, + "NwbElectrodeGroup": { + "module": "ecephys", + "neurodata_type": "NwbElectrodeGroup", + "technique": "surgical technique", + "approach": "electrophysiological approach", + }, + "Probe": { + "module": "ecephys", + "neurodata_type": "Probe", + "technique": None, + "approach": "electrophysiological approach", + }, + "Shank": { + "module": "ecephys", + "neurodata_type": "Shank", + "technique": None, + "approach": "electrophysiological approach", + }, + "ShanksElectrode": { + "module": "ecephys", + "neurodata_type": "ShanksElectrode", + "technique": None, + "approach": "electrophysiological approach", + }, + "SpikeEventSeries": { + "module": "ecephys", + "neurodata_type": "SpikeEventSeries", + "technique": "spike sorting technique", + "approach": "electrophysiological approach", + }, + + # fiberphotometry module + "FiberPhotometry": { + "module": "fiberphotometry", + "neurodata_type": "FiberPhotometry", + "technique": "fiber photometry technique; optical technique", + "approach": "calcium imaging; cell population imaging", + }, + "FiberPhotometryResponseSeries": { + "module": "fiberphotometry", + "neurodata_type": "FiberPhotometryResponseSeries", + "technique": "fiber photometry technique; optical technique", + "approach": "calcium imaging; cell population imaging", + }, + "FiberPhotometrySeries": { + "module": "fiberphotometry", + "neurodata_type": "FiberPhotometrySeries", + "technique": "fiber photometry technique; optical technique", + "approach": "calcium imaging; cell population imaging", + }, + "FiberPhotometryTable": { + "module": "fiberphotometry", + "neurodata_type": "FiberPhotometryTable", + "technique": None, + "approach": "calcium imaging; cell population imaging", + }, + "FibersTable": { + "module": "fiberphotometry", + "neurodata_type": "FibersTable", + "technique": None, + "approach": "calcium imaging; cell population imaging", + }, + "OpticalFiber": { + "module": "fiberphotometry", + "neurodata_type": "OpticalFiber", + "technique": None, + "approach": "calcium imaging; cell population imaging", + }, + "Photodetector": { + "module": "fiberphotometry", + "neurodata_type": "Photodetector", + "technique": None, + "approach": "calcium imaging; cell population imaging", + }, + "PhotodetectorsTable": { + "module": "fiberphotometry", + "neurodata_type": "PhotodetectorsTable", + "technique": None, + "approach": "calcium imaging; cell population imaging", + }, + + # icephys module + "CommandedVoltageSeries": { + "module": "icephys", + "neurodata_type": "CommandedVoltageSeries", + "technique": "voltage control technique", + "approach": "electrophysiological approach", + }, + "CompartmentSeries": { + "module": "icephys", + "neurodata_type": "CompartmentSeries", + "technique": "compartmental recording technique", + "approach": "electrophysiological approach", + }, + "Compartments": { + "module": "icephys", + "neurodata_type": "Compartments", + "technique": "compartmental recording technique", + "approach": "electrophysiological approach", + }, + "CurrentClampSeries": { + "module": "icephys", + "neurodata_type": "CurrentClampSeries", + "technique": "current clamp technique", + "approach": "electrophysiological approach", + }, + "CurrentClampStimulusSeries": { + "module": "icephys", + "neurodata_type": "CurrentClampStimulusSeries", + "technique": "current clamp technique", + "approach": "electrophysiological approach", + }, + "IZeroClampSeries": { + "module": "icephys", + "neurodata_type": "IZeroClampSeries", + "technique": "current clamp technique", + "approach": "electrophysiological approach", + }, + "IntracellularElectrode": { + "module": "icephys", + "neurodata_type": "IntracellularElectrode", + "technique": None, + "approach": "electrophysiological approach", + }, + "IntracellularElectrodesTable": { + "module": "icephys", + "neurodata_type": "IntracellularElectrodesTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "IntracellularRecordingsTable": { + "module": "icephys", + "neurodata_type": "IntracellularRecordingsTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "IntracellularResponsesTable": { + "module": "icephys", + "neurodata_type": "IntracellularResponsesTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "IntracellularStimuliTable": { + "module": "icephys", + "neurodata_type": "IntracellularStimuliTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "PatchClampSeries": { + "module": "icephys", + "neurodata_type": "PatchClampSeries", + "technique": "patch clamp technique", + "approach": "electrophysiological approach", + }, + "SequentialRecordingsTable": { + "module": "icephys", + "neurodata_type": "SequentialRecordingsTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "SimultaneousRecordingsTable": { + "module": "icephys", + "neurodata_type": "SimultaneousRecordingsTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "SweepTable": { + "module": "icephys", + "neurodata_type": "SweepTable", + "technique": None, + "approach": "electrophysiological approach", + }, + "VoltageClampSeries": { + "module": "icephys", + "neurodata_type": "VoltageClampSeries", + "technique": "voltage clamp technique", + "approach": "electrophysiological approach", + }, + "VoltageClampStimulusSeries": { + "module": "icephys", + "neurodata_type": "VoltageClampStimulusSeries", + "technique": "voltage clamp technique", + "approach": "electrophysiological approach", + }, + + # image module + "GrayscaleImage": { + "module": "image", + "neurodata_type": "GrayscaleImage", + "technique": "photographic technique", + "approach": None, + }, + "Image": { + "module": "image", + "neurodata_type": "Image", + "technique": "photographic technique", + "approach": None, + }, + "Images": { + "module": "image", + "neurodata_type": "Images", + "technique": "photographic technique", + "approach": None, + }, + "RGBAImage": { + "module": "image", + "neurodata_type": "RGBAImage", + "technique": "photographic technique", + "approach": None, + }, + "RGBImage": { + "module": "image", + "neurodata_type": "RGBImage", + "technique": "photographic technique", + "approach": None, + }, + + # misc module + "AnnotationSeries": { + "module": "misc", + "neurodata_type": "AnnotationSeries", + "technique": "annotation technique", + "approach": None, + }, + "AssociatedFiles": { + "module": "misc", + "neurodata_type": "AssociatedFiles", + "technique": "file management technique", + "approach": None, + }, + "DandiIcephysMetadata": { + "module": "misc", + "neurodata_type": "DandiIcephysMetadata", + "technique": None, + "approach": "electrophysiological approach", + }, + "DecompositionSeries": { + "module": "misc", + "neurodata_type": "DecompositionSeries", + "technique": "fourier analysis technique", + "approach": None, + }, + "DynamicTable": { + "module": "misc", + "neurodata_type": "DynamicTable", + "technique": None, + "approach": None, + }, + "DynamicTableRegion": { + "module": "misc", + "neurodata_type": "DynamicTableRegion", + "technique": None, + "approach": None, + }, + "EcephysEyeTrackingRigMetadata": { + "module": "misc", + "neurodata_type": "EcephysEyeTrackingRigMetadata", + "technique": None, + "approach": "electrophysiological approach", + }, + "ElementIdentifiers": { + "module": "misc", + "neurodata_type": "ElementIdentifiers", + "technique": None, + "approach": None, + }, + "ExperimentalConditionsTable": { + "module": "misc", + "neurodata_type": "ExperimentalConditionsTable", + "technique": None, + "approach": None, + }, + "GeneratedBy": { + "module": "misc", + "neurodata_type": "GeneratedBy", + "technique": None, + "approach": None, + }, + "IblSessionData": { + "module": "misc", + "neurodata_type": "IblSessionData", + "technique": None, + "approach": None, + }, + "ImageReferences": { + "module": "misc", + "neurodata_type": "ImageReferences", + "technique": None, + "approach": None, + }, + "IndexSeries": { + "module": "misc", + "neurodata_type": "IndexSeries", + "technique": None, + "approach": None, + }, + "IntervalSeries": { + "module": "misc", + "neurodata_type": "IntervalSeries", + "technique": None, + "approach": None, + }, + "LabMetaData": { + "module": "misc", + "neurodata_type": "LabMetaData", + "technique": None, + "approach": None, + }, + "LabMetaDataMouse": { + "module": "misc", + "neurodata_type": "LabMetaDataMouse", + "technique": None, + "approach": None, + }, + "LabMetaDataSession": { + "module": "misc", + "neurodata_type": "LabMetaDataSession", + "technique": None, + "approach": None, + }, + "LabMetaData_ext": { + "module": "misc", + "neurodata_type": "LabMetaData_ext", + "technique": None, + "approach": None, + }, + "LabNotebook": { + "module": "misc", + "neurodata_type": "LabNotebook", + "technique": None, + "approach": None, + }, + "LabNotebookNumericalKeys": { + "module": "misc", + "neurodata_type": "LabNotebookNumericalKeys", + "technique": None, + "approach": None, + }, + "LabNotebookNumericalValues": { + "module": "misc", + "neurodata_type": "LabNotebookNumericalValues", + "technique": None, + "approach": None, + }, + "LabNotebookTextualKeys": { + "module": "misc", + "neurodata_type": "LabNotebookTextualKeys", + "technique": None, + "approach": None, + }, + "LabNotebookTextualValues": { + "module": "misc", + "neurodata_type": "LabNotebookTextualValues", + "technique": None, + "approach": None, + }, + "NDXICEphysFile": { + "module": "misc", + "neurodata_type": "NDXICEphysFile", + "technique": None, + "approach": "electrophysiological approach", + }, + "OphysMetadata": { + "module": "misc", + "neurodata_type": "OphysMetadata", + "technique": None, + "approach": "microscopy approach", + }, + "OpticalChannelReferences": { + "module": "misc", + "neurodata_type": "OpticalChannelReferences", + "technique": None, + "approach": None, + }, + "RepetitionsTable": { + "module": "misc", + "neurodata_type": "RepetitionsTable", + "technique": None, + "approach": None, + }, + "Results": { + "module": "misc", + "neurodata_type": "Results", + "technique": None, + "approach": None, + }, + "ResultsNumericalKeys": { + "module": "misc", + "neurodata_type": "ResultsNumericalKeys", + "technique": None, + "approach": None, + }, + "ResultsNumericalValues": { + "module": "misc", + "neurodata_type": "ResultsNumericalValues", + "technique": None, + "approach": None, + }, + "ResultsTextualKeys": { + "module": "misc", + "neurodata_type": "ResultsTextualKeys", + "technique": None, + "approach": None, + }, + "ResultsTextualValues": { + "module": "misc", + "neurodata_type": "ResultsTextualValues", + "technique": None, + "approach": None, + }, + "ScratchData": { + "module": "misc", + "neurodata_type": "ScratchData", + "technique": None, + "approach": None, + }, + "SimulationMetaData": { + "module": "misc", + "neurodata_type": "SimulationMetaData", + "technique": None, + "approach": None, + }, + "StimulusSetReferenced": { + "module": "misc", + "neurodata_type": "StimulusSetReferenced", + "technique": None, + "approach": None, + }, + "StimulusSetReferencedFolder": { + "module": "misc", + "neurodata_type": "StimulusSetReferencedFolder", + "technique": None, + "approach": None, + }, + "StimulusSetReferencedWaveform": { + "module": "misc", + "neurodata_type": "StimulusSetReferencedWaveform", + "technique": None, + "approach": None, + }, + "StimulusSetWavebuilderParameter": { + "module": "misc", + "neurodata_type": "StimulusSetWavebuilderParameter", + "technique": None, + "approach": None, + }, + "StimulusSetWavebuilderParameterText": { + "module": "misc", + "neurodata_type": "StimulusSetWavebuilderParameterText", + "technique": None, + "approach": None, + }, + "StimulusSetWavebuilderSegmentTypes": { + "module": "misc", + "neurodata_type": "StimulusSetWavebuilderSegmentTypes", + "technique": None, + "approach": None, + }, + "StimulusSets": { + "module": "misc", + "neurodata_type": "StimulusSets", + "technique": None, + "approach": None, + }, + "Testpulse": { + "module": "misc", + "neurodata_type": "Testpulse", + "technique": None, + "approach": None, + }, + "TestpulseMetadata": { + "module": "misc", + "neurodata_type": "TestpulseMetadata", + "technique": None, + "approach": None, + }, + "TestpulseRawData": { + "module": "misc", + "neurodata_type": "TestpulseRawData", + "technique": None, + "approach": None, + }, + "TimeIntervals": { + "module": "misc", + "neurodata_type": "TimeIntervals", + "technique": None, + "approach": None, + }, + "TimeSeriesReferenceVectorData": { + "module": "misc", + "neurodata_type": "TimeSeriesReferenceVectorData", + "technique": None, + "approach": None, + }, + "TimestampVectorData": { + "module": "misc", + "neurodata_type": "TimestampVectorData", + "technique": None, + "approach": None, + }, + "TurnerLabMetaData": { + "module": "misc", + "neurodata_type": "TurnerLabMetaData", + "technique": None, + "approach": None, + }, + "UserComment": { + "module": "misc", + "neurodata_type": "UserComment", + "technique": None, + "approach": None, + }, + "UserCommentString": { + "module": "misc", + "neurodata_type": "UserCommentString", + "technique": None, + "approach": None, + }, + "VectorData": { + "module": "misc", + "neurodata_type": "VectorData", + "technique": None, + "approach": None, + }, + "VectorIndex": { + "module": "misc", + "neurodata_type": "VectorIndex", + "technique": None, + "approach": None, + }, + "experimentlevel1": { + "module": "misc", + "neurodata_type": "experimentlevel1", + "technique": None, + "approach": None, + }, + "experimentlevel2": { + "module": "misc", + "neurodata_type": "experimentlevel2", + "technique": None, + "approach": None, + }, + "experimentlevel3": { + "module": "misc", + "neurodata_type": "experimentlevel3", + "technique": None, + "approach": None, + }, + "experimentlevel4": { + "module": "misc", + "neurodata_type": "experimentlevel4", + "technique": None, + "approach": None, + }, + "ibl_bwm_metadata": { + "module": "misc", + "neurodata_type": "ibl_bwm_metadata", + "technique": None, + "approach": None, + }, + + # motion module + "PoseEstimation": { + "module": "motion", + "neurodata_type": "PoseEstimation", + "technique": "pose estimation technique", + "approach": "behavioral approach", + }, + "PoseEstimationSeries": { + "module": "motion", + "neurodata_type": "PoseEstimationSeries", + "technique": "pose estimation technique", + "approach": "behavioral approach", + }, + + # nirs module + "NIRSChannelsTable": { + "module": "nirs", + "neurodata_type": "NIRSChannelsTable", + "technique": None, + "approach": "near-infrared spectroscopy", + }, + "NIRSDetectorsTable": { + "module": "nirs", + "neurodata_type": "NIRSDetectorsTable", + "technique": None, + "approach": "near-infrared spectroscopy", + }, + "NIRSSeries": { + "module": "nirs", + "neurodata_type": "NIRSSeries", + "technique": "near-infrared spectroscopy technique", + "approach": "near-infrared spectroscopy", + }, + "NIRSSourcesTable": { + "module": "nirs", + "neurodata_type": "NIRSSourcesTable", + "technique": None, + "approach": "near-infrared spectroscopy", + }, + + # ogen module + "OptogeneticSeries": { + "module": "ogen", + "neurodata_type": "OptogeneticSeries", + "technique": "optogenetic stimulation technique", + "approach": "optogenetic approach", + }, + "OptogeneticStimulusSite": { + "module": "ogen", + "neurodata_type": "OptogeneticStimulusSite", + "technique": None, + "approach": "optogenetic approach", + }, + "OptogeneticStimulusTarget": { + "module": "ogen", + "neurodata_type": "OptogeneticStimulusTarget", + "technique": None, + "approach": "optogenetic approach", + }, + "PatternedOptogeneticStimulusSite": { + "module": "ogen", + "neurodata_type": "PatternedOptogeneticStimulusSite", + "technique": "optogenetic stimulation technique", + "approach": "optogenetic approach", + }, + "PatternedOptogeneticStimulusTable": { + "module": "ogen", + "neurodata_type": "PatternedOptogeneticStimulusTable", + "technique": None, + "approach": "optogenetic approach", + }, + "TemporalFocusing": { + "module": "ogen", + "neurodata_type": "TemporalFocusing", + "technique": "optogenetic stimulation technique", + "approach": "optogenetic approach", + }, + + # ophys module + "BandOpticalFilter": { + "module": "ophys", + "neurodata_type": "BandOpticalFilter", + "technique": "optical filtering technique", + "approach": "microscopy approach", + }, + "CorrectedImageStack": { + "module": "ophys", + "neurodata_type": "CorrectedImageStack", + "technique": "image correction technique", + "approach": "microscopy approach", + }, + "DepthImageSeries": { + "module": "ophys", + "neurodata_type": "DepthImageSeries", + "technique": "depth imaging technique", + "approach": "microscopy approach", + }, + "DfOverF": { + "module": "ophys", + "neurodata_type": "DfOverF", + "technique": "fluorescence imaging technique", + "approach": "calcium imaging; cell population imaging", + }, + "DffSeries": { + "module": "ophys", + "neurodata_type": "DffSeries", + "technique": "fluorescence imaging technique", + "approach": "calcium imaging; cell population imaging", + }, + "DichroicMirror": { + "module": "ophys", + "neurodata_type": "DichroicMirror", + "technique": "optical filtering technique", + "approach": "microscopy approach", + }, + "EXTRACTSegmentation": { + "module": "ophys", + "neurodata_type": "EXTRACTSegmentation", + "technique": "image segmentation technique", + "approach": "microscopy approach; cell population imaging", + }, + "ExcitationSource": { + "module": "ophys", + "neurodata_type": "ExcitationSource", + "technique": None, + "approach": "microscopy approach", + }, + "ExcitationSourcesTable": { + "module": "ophys", + "neurodata_type": "ExcitationSourcesTable", + "technique": None, + "approach": "microscopy approach", + }, + "Fluorescence": { + "module": "ophys", + "neurodata_type": "Fluorescence", + "technique": "fluorescence imaging technique", + "approach": "calcium imaging; cell population imaging", + }, + "FluorophoresTable": { + "module": "ophys", + "neurodata_type": "FluorophoresTable", + "technique": None, + "approach": "microscopy approach", + }, + "ImageMaskSeries": { + "module": "ophys", + "neurodata_type": "ImageMaskSeries", + "technique": "image segmentation technique", + "approach": "microscopy approach", + }, + "ImageSegmentation": { + "module": "ophys", + "neurodata_type": "ImageSegmentation", + "technique": "image segmentation technique", + "approach": "microscopy approach; cell population imaging", + }, + "ImageSeries": { + "module": "ophys", + "neurodata_type": "ImageSeries", + "technique": "optical imaging technique", + "approach": "microscopy approach", + }, + "ImagingPlane": { + "module": "ophys", + "neurodata_type": "ImagingPlane", + "technique": None, + "approach": "microscopy approach; cell population imaging", + }, + "ImagingVolume": { + "module": "ophys", + "neurodata_type": "ImagingVolume", + "technique": "volumetric imaging technique", + "approach": "microscopy approach; cell population imaging", + }, + "Indicator": { + "module": "ophys", + "neurodata_type": "Indicator", + "technique": None, + "approach": "microscopy approach", + }, + "LightSource": { + "module": "ophys", + "neurodata_type": "LightSource", + "technique": None, + "approach": "microscopy approach", + }, + "MicroscopyLightSource": { + "module": "ophys", + "neurodata_type": "MicroscopyLightSource", + "technique": None, + "approach": "microscopy approach", + }, + "MicroscopyOpticalChannel": { + "module": "ophys", + "neurodata_type": "MicroscopyOpticalChannel", + "technique": None, + "approach": "microscopy approach", + }, + "MicroscopyPlaneSegmentation": { + "module": "ophys", + "neurodata_type": "MicroscopyPlaneSegmentation", + "technique": "image segmentation technique", + "approach": "microscopy approach; cell population imaging", + }, + "MicroscopyResponseSeries": { + "module": "ophys", + "neurodata_type": "MicroscopyResponseSeries", + "technique": "optical imaging technique", + "approach": "microscopy approach", + }, + "MicroscopyResponseSeriesContainer": { + "module": "ophys", + "neurodata_type": "MicroscopyResponseSeriesContainer", + "technique": None, + "approach": "microscopy approach", + }, + "MicroscopySegmentations": { + "module": "ophys", + "neurodata_type": "MicroscopySegmentations", + "technique": "image segmentation technique", + "approach": "microscopy approach; cell population imaging", + }, + "MotionCorrection": { + "module": "ophys", + "neurodata_type": "MotionCorrection", + "technique": "image correction technique", + "approach": "microscopy approach", + }, + "MultiChannelVolume": { + "module": "ophys", + "neurodata_type": "MultiChannelVolume", + "technique": "volumetric imaging technique", + "approach": "microscopy approach", + }, + "MultiChannelVolumeSeries": { + "module": "ophys", + "neurodata_type": "MultiChannelVolumeSeries", + "technique": "volumetric imaging technique", + "approach": "microscopy approach", + }, + "NwbImageSeries": { + "module": "ophys", + "neurodata_type": "NwbImageSeries", + "technique": "optical imaging technique", + "approach": "microscopy approach", + }, + "OnePhotonSeries": { + "module": "ophys", + "neurodata_type": "OnePhotonSeries", + "technique": "one-photon microscopy technique", + "approach": "microscopy approach; cell population imaging", + }, + "OphysEventDetection": { + "module": "ophys", + "neurodata_type": "OphysEventDetection", + "technique": "event detection technique", + "approach": "microscopy approach; cell population imaging", + }, + "OpticalChannel": { + "module": "ophys", + "neurodata_type": "OpticalChannel", + "technique": "surgical technique", + "approach": "microscopy approach; cell population imaging", + }, + "OpticalChannelPlus": { + "module": "ophys", + "neurodata_type": "OpticalChannelPlus", + "technique": None, + "approach": "microscopy approach", + }, + "OpticalSeries": { + "module": "ophys", + "neurodata_type": "OpticalSeries", + "technique": "optical imaging technique", + "approach": "microscopy approach", + }, + "PlanarImagingSpace": { + "module": "ophys", + "neurodata_type": "PlanarImagingSpace", + "technique": None, + "approach": "microscopy approach", + }, + "PlaneSegmentation": { + "module": "ophys", + "neurodata_type": "PlaneSegmentation", + "technique": None, + "approach": "microscopy approach; cell population imaging", + }, + "RoiResponseSeries": { + "module": "ophys", + "neurodata_type": "RoiResponseSeries", + "technique": "fluorescence imaging technique", + "approach": "calcium imaging; cell population imaging", + }, + "SegmentationLabels": { + "module": "ophys", + "neurodata_type": "SegmentationLabels", + "technique": None, + "approach": "microscopy approach; cell population imaging", + }, + "TwoPhotonSeries": { + "module": "ophys", + "neurodata_type": "TwoPhotonSeries", + "technique": "two-photon microscopy technique", + "approach": "microscopy approach; cell population imaging", + }, + "VariableDepthMicroscopySeries": { + "module": "ophys", + "neurodata_type": "VariableDepthMicroscopySeries", + "technique": "volumetric imaging technique", + "approach": "microscopy approach", + }, + "VariableDepthMultiChannelMicroscopyVolume": { + "module": "ophys", + "neurodata_type": "VariableDepthMultiChannelMicroscopyVolume", + "technique": "volumetric imaging technique", + "approach": "microscopy approach", + }, + "VolumetricImagingSpace": { + "module": "ophys", + "neurodata_type": "VolumetricImagingSpace", + "technique": None, + "approach": "microscopy approach", + }, + + # sortedunits module + "Units": { + "module": "sortedunits", + "neurodata_type": "Units", + "technique": "spike sorting technique", + "approach": "electrophysiological approach", + }, + + # spectrum module + "Spectrum": { + "module": "spectrum", + "neurodata_type": "Spectrum", + "technique": "fourier analysis technique", + "approach": None, + }, + + # subject module + "CElegansSubject": { + "module": "subject", + "neurodata_type": "CElegansSubject", + "technique": None, + "approach": None, + }, + "CreSubject": { + "module": "subject", + "neurodata_type": "CreSubject", + "technique": None, + "approach": None, + }, + "EcephysSpecimen": { + "module": "subject", + "neurodata_type": "EcephysSpecimen", + "technique": None, + "approach": "electrophysiological approach", + }, + "IblSubject": { + "module": "subject", + "neurodata_type": "IblSubject", + "technique": None, + "approach": None, + }, + "Subject": { + "module": "subject", + "neurodata_type": "Subject", + "technique": None, + "approach": None, + }, +} From c25e3d24f0d71414e5b5cf63334457bd777908e5 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 17 Sep 2025 06:33:39 -0700 Subject: [PATCH 15/17] Apply my first edits to neurodata_typemap.py --- dandi/metadata/neurodata_typemap.py | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/dandi/metadata/neurodata_typemap.py b/dandi/metadata/neurodata_typemap.py index 607c2e6fb..a7f8951f3 100644 --- a/dandi/metadata/neurodata_typemap.py +++ b/dandi/metadata/neurodata_typemap.py @@ -107,7 +107,7 @@ "MoSeqExtractParameterGroup": { "module": "behavior", "neurodata_type": "MoSeqExtractParameterGroup", - "technique": None, + "technique": "motion analysis technique", "approach": "behavioral approach", }, "Position": { @@ -119,7 +119,7 @@ "PupilTracking": { "module": "behavior", "neurodata_type": "PupilTracking", - "technique": "behavioral technique", + "technique": "eye tracking technique", "approach": "behavioral approach", }, "Skeleton": { @@ -135,13 +135,13 @@ "approach": "behavioral approach", }, "TtlTypesTable": { - "module": "behavior", + "module": "misc", "neurodata_type": "TtlTypesTable", "technique": None, "approach": "behavioral approach", }, "TtlsTable": { - "module": "behavior", + "module": "misc", "neurodata_type": "TtlsTable", "technique": None, "approach": "behavioral approach", @@ -225,7 +225,7 @@ "EcephysProbe": { "module": "ecephys", "neurodata_type": "EcephysProbe", - "technique": None, + "technique": "surgical technique", "approach": "electrophysiological approach", }, "ElectricalSeries": { @@ -255,7 +255,7 @@ "IblProbes": { "module": "ecephys", "neurodata_type": "IblProbes", - "technique": None, + "technique": "surgical technique", "approach": "electrophysiological approach", }, "LFP": { @@ -273,19 +273,19 @@ "Probe": { "module": "ecephys", "neurodata_type": "Probe", - "technique": None, + "technique": "surgical technique", "approach": "electrophysiological approach", }, "Shank": { "module": "ecephys", "neurodata_type": "Shank", - "technique": None, + "technique": "surgical technique", "approach": "electrophysiological approach", }, "ShanksElectrode": { "module": "ecephys", "neurodata_type": "ShanksElectrode", - "technique": None, + "technique": "surgical technique", "approach": "electrophysiological approach", }, "SpikeEventSeries": { @@ -329,7 +329,7 @@ "OpticalFiber": { "module": "fiberphotometry", "neurodata_type": "OpticalFiber", - "technique": None, + "technique": "surgical technique", "approach": "calcium imaging; cell population imaging", }, "Photodetector": { @@ -385,7 +385,7 @@ "IntracellularElectrode": { "module": "icephys", "neurodata_type": "IntracellularElectrode", - "technique": None, + "technique": "surgical technique", "approach": "electrophysiological approach", }, "IntracellularElectrodesTable": { @@ -519,10 +519,10 @@ "approach": None, }, "EcephysEyeTrackingRigMetadata": { - "module": "misc", + "module": "device", "neurodata_type": "EcephysEyeTrackingRigMetadata", - "technique": None, - "approach": "electrophysiological approach", + "technique": "eye tracking technique", + "approach": "behavioral approach", }, "ElementIdentifiers": { "module": "misc", @@ -624,7 +624,7 @@ "module": "misc", "neurodata_type": "NDXICEphysFile", "technique": None, - "approach": "electrophysiological approach", + "approach": None, }, "OphysMetadata": { "module": "misc", From a6d1cb290a7a30e26469c506d037c5f6e65d28a3 Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 17 Sep 2025 06:42:23 -0700 Subject: [PATCH 16/17] Apply edits from review --- dandi/metadata/neurodata_typemap.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dandi/metadata/neurodata_typemap.py b/dandi/metadata/neurodata_typemap.py index a7f8951f3..514a329b9 100644 --- a/dandi/metadata/neurodata_typemap.py +++ b/dandi/metadata/neurodata_typemap.py @@ -971,10 +971,10 @@ "approach": "microscopy approach", }, "ImageMaskSeries": { - "module": "ophys", + "module": "misc", "neurodata_type": "ImageMaskSeries", "technique": "image segmentation technique", - "approach": "microscopy approach", + "approach": None, }, "ImageSegmentation": { "module": "ophys", @@ -983,10 +983,10 @@ "approach": "microscopy approach; cell population imaging", }, "ImageSeries": { - "module": "ophys", + "module": "core", "neurodata_type": "ImageSeries", - "technique": "optical imaging technique", - "approach": "microscopy approach", + "technique": None, + "approach": None, }, "ImagingPlane": { "module": "ophys", @@ -1067,10 +1067,10 @@ "approach": "microscopy approach", }, "NwbImageSeries": { - "module": "ophys", + "module": "misc", "neurodata_type": "NwbImageSeries", - "technique": "optical imaging technique", - "approach": "microscopy approach", + "technique": None, + "approach": None, }, "OnePhotonSeries": { "module": "ophys", @@ -1087,7 +1087,7 @@ "OpticalChannel": { "module": "ophys", "neurodata_type": "OpticalChannel", - "technique": "surgical technique", + "technique": None, "approach": "microscopy approach; cell population imaging", }, "OpticalChannelPlus": { From b784ba391a2692b88785154899eb526af56f545c Mon Sep 17 00:00:00 2001 From: Ryan Ly Date: Wed, 17 Sep 2025 06:45:17 -0700 Subject: [PATCH 17/17] Sort neurodata_typemap.py Added new neurodata types for image series and eye tracking metadata while removing deprecated types. --- dandi/metadata/neurodata_typemap.py | 72 ++++++++++++++--------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/dandi/metadata/neurodata_typemap.py b/dandi/metadata/neurodata_typemap.py index 514a329b9..d55fd4d47 100644 --- a/dandi/metadata/neurodata_typemap.py +++ b/dandi/metadata/neurodata_typemap.py @@ -1,5 +1,11 @@ neurodata_typemap: dict[str, dict[str, str | None]] = { # base module + "ImageSeries": { + "module": "base", + "neurodata_type": "ImageSeries", + "technique": None, + "approach": None, + }, "NWBFile": { "module": "base", "neurodata_type": "NWBFile", @@ -134,18 +140,6 @@ "technique": "behavioral technique", "approach": "behavioral approach", }, - "TtlTypesTable": { - "module": "misc", - "neurodata_type": "TtlTypesTable", - "technique": None, - "approach": "behavioral approach", - }, - "TtlsTable": { - "module": "misc", - "neurodata_type": "TtlsTable", - "technique": None, - "approach": "behavioral approach", - }, # device module "CameraDevice": { @@ -166,6 +160,12 @@ "technique": None, "approach": None, }, + "EcephysEyeTrackingRigMetadata": { + "module": "device", + "neurodata_type": "EcephysEyeTrackingRigMetadata", + "technique": "eye tracking technique", + "approach": "behavioral approach", + }, "HeaderDevice": { "module": "device", "neurodata_type": "HeaderDevice", @@ -518,12 +518,6 @@ "technique": None, "approach": None, }, - "EcephysEyeTrackingRigMetadata": { - "module": "device", - "neurodata_type": "EcephysEyeTrackingRigMetadata", - "technique": "eye tracking technique", - "approach": "behavioral approach", - }, "ElementIdentifiers": { "module": "misc", "neurodata_type": "ElementIdentifiers", @@ -548,6 +542,12 @@ "technique": None, "approach": None, }, + "ImageMaskSeries": { + "module": "misc", + "neurodata_type": "ImageMaskSeries", + "technique": "image segmentation technique", + "approach": None, + }, "ImageReferences": { "module": "misc", "neurodata_type": "ImageReferences", @@ -626,6 +626,12 @@ "technique": None, "approach": None, }, + "NwbImageSeries": { + "module": "misc", + "neurodata_type": "NwbImageSeries", + "technique": None, + "approach": None, + }, "OphysMetadata": { "module": "misc", "neurodata_type": "OphysMetadata", @@ -764,6 +770,18 @@ "technique": None, "approach": None, }, + "TtlTypesTable": { + "module": "misc", + "neurodata_type": "TtlTypesTable", + "technique": None, + "approach": "behavioral approach", + }, + "TtlsTable": { + "module": "misc", + "neurodata_type": "TtlsTable", + "technique": None, + "approach": "behavioral approach", + }, "TurnerLabMetaData": { "module": "misc", "neurodata_type": "TurnerLabMetaData", @@ -970,24 +988,12 @@ "technique": None, "approach": "microscopy approach", }, - "ImageMaskSeries": { - "module": "misc", - "neurodata_type": "ImageMaskSeries", - "technique": "image segmentation technique", - "approach": None, - }, "ImageSegmentation": { "module": "ophys", "neurodata_type": "ImageSegmentation", "technique": "image segmentation technique", "approach": "microscopy approach; cell population imaging", }, - "ImageSeries": { - "module": "core", - "neurodata_type": "ImageSeries", - "technique": None, - "approach": None, - }, "ImagingPlane": { "module": "ophys", "neurodata_type": "ImagingPlane", @@ -1066,12 +1072,6 @@ "technique": "volumetric imaging technique", "approach": "microscopy approach", }, - "NwbImageSeries": { - "module": "misc", - "neurodata_type": "NwbImageSeries", - "technique": None, - "approach": None, - }, "OnePhotonSeries": { "module": "ophys", "neurodata_type": "OnePhotonSeries",