Source code for allensdk.brain_observatory.behavior.write_nwb.extensions.event_detection.extension_builder
import os.path
from pynwb.spec import NWBNamespaceBuilder, export_spec, NWBGroupSpec, \
NWBDatasetSpec
NAMESPACE = 'ndx-aibs-ophys-event-detection'
[docs]def main():
ns_builder = NWBNamespaceBuilder(
doc="Detected events from optical physiology ROI fluorescence traces",
name=f"""{NAMESPACE}""",
version="""0.1.0""",
author="""Allen Institute for Brain Science""",
contact="""waynew@alleninstitute.org"""
)
ns_builder.include_type('RoiResponseSeries', namespace='core')
ns_builder.include_type('DynamicTableRegion', namespace='core')
ns_builder.include_type('TimeSeries', namespace='core')
ns_builder.include_type('NWBDataInterface', namespace='core')
ophys_events_spec = NWBGroupSpec(
neurodata_type_def='OphysEventDetection',
neurodata_type_inc='RoiResponseSeries',
name='event_detection',
doc='Stores event detection output',
datasets=[
NWBDatasetSpec(
name='lambdas',
dtype='float',
doc='calculated regularization weights',
shape=(None,)
),
NWBDatasetSpec(
name='noise_stds',
dtype='float',
doc='calculated noise std deviations',
shape=(None,)
)
]
)
new_data_types = [ophys_events_spec]
# export the spec to yaml files in the spec folder
output_dir = os.path.abspath(os.path.join(os.path.dirname(__file__)))
export_spec(ns_builder, new_data_types, output_dir)
if __name__ == "__main__":
# usage: python create_extension_spec.py
main()