mirror of
https://github.com/p2p-ld/nwb-linkml.git
synced 2024-11-10 00:34:29 +00:00
281 lines
12 KiB
YAML
281 lines
12 KiB
YAML
name: core.nwb.file
|
|
id: core.nwb.file
|
|
imports:
|
|
- core.nwb.base
|
|
- hdmf-common.table
|
|
- core.nwb.device
|
|
- core.nwb.ecephys
|
|
- core.nwb.icephys
|
|
- core.nwb.ogen
|
|
- core.nwb.ophys
|
|
- core.nwb.epoch
|
|
- core.nwb.misc
|
|
- nwb.language
|
|
- core.nwb.file.include
|
|
- core.nwb.file
|
|
prefixes:
|
|
core.nwb.file:
|
|
prefix_prefix: core.nwb.file
|
|
prefix_reference: https://example.com/core.nwb.file/
|
|
default_prefix: core.nwb.file
|
|
classes:
|
|
ScratchData:
|
|
name: ScratchData
|
|
description: Any one-off datasets
|
|
is_a: NWBData
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
notes:
|
|
name: notes
|
|
description: Any notes the user has about the dataset being stored
|
|
range: text
|
|
tree_root: true
|
|
NWBFile:
|
|
name: NWBFile
|
|
description: An NWB file storing cellular-based neurophysiology data from a single
|
|
experimental session.
|
|
is_a: NWBContainer
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(root)
|
|
range: string
|
|
required: true
|
|
equals_string: root
|
|
nwb_version:
|
|
name: nwb_version
|
|
description: File version string. Use semantic versioning, e.g. 1.2.1. This
|
|
will be the name of the format with trailing major, minor and patch numbers.
|
|
range: text
|
|
file_create_date:
|
|
name: file_create_date
|
|
description: 'A record of the date the file was created and of subsequent
|
|
modifications. The date is stored in UTC with local timezone offset as ISO
|
|
8601 extended formatted strings: 2018-09-28T14:43:54.123+02:00. Dates stored
|
|
in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.
|
|
The file can be created after the experiment was run, so this may differ
|
|
from the experiment start time. Each modification to the nwb file adds a
|
|
new entry to the array.'
|
|
multivalued: true
|
|
range: isodatetime
|
|
required: true
|
|
identifier:
|
|
name: identifier
|
|
description: A unique text identifier for the file. For example, concatenated
|
|
lab name, file creation date/time and experimentalist, or a hash of these
|
|
and/or other values. The goal is that the string should be unique to all
|
|
other files.
|
|
multivalued: false
|
|
range: text
|
|
required: true
|
|
session_description:
|
|
name: session_description
|
|
description: A description of the experimental session and data in the file.
|
|
multivalued: false
|
|
range: text
|
|
required: true
|
|
session_start_time:
|
|
name: session_start_time
|
|
description: 'Date and time of the experiment/session start. The date is stored
|
|
in UTC with local timezone offset as ISO 8601 extended formatted string:
|
|
2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone
|
|
offset. Date accuracy is up to milliseconds.'
|
|
multivalued: false
|
|
range: isodatetime
|
|
required: true
|
|
timestamps_reference_time:
|
|
name: timestamps_reference_time
|
|
description: 'Date and time corresponding to time zero of all timestamps.
|
|
The date is stored in UTC with local timezone offset as ISO 8601 extended
|
|
formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end
|
|
in "Z" with no timezone offset. Date accuracy is up to milliseconds. All
|
|
times stored in the file use this time as reference (i.e., time zero).'
|
|
multivalued: false
|
|
range: isodatetime
|
|
required: true
|
|
acquisition:
|
|
name: acquisition
|
|
description: Data streams recorded from the system, including ephys, ophys,
|
|
tracking, etc. This group should be read-only after the experiment is completed
|
|
and timestamps are corrected to a common timebase. The data stored here
|
|
may be links to raw data stored in external NWB files. This will allow keeping
|
|
bulky raw data out of the file while preserving the option of keeping some/all
|
|
in the file. Acquired data includes tracking and experimental data streams
|
|
(i.e., everything measured from the system). If bulky data is stored in
|
|
the /acquisition group, the data can exist in a separate NWB file that is
|
|
linked to by the file being used for processing and analysis.
|
|
multivalued: true
|
|
any_of:
|
|
- range: NWBDataInterface
|
|
- range: DynamicTable
|
|
analysis:
|
|
name: analysis
|
|
description: Lab-specific and custom scientific analysis of data. There is
|
|
no defined format for the content of this group - the format is up to the
|
|
individual user/lab. To facilitate sharing analysis data between labs, the
|
|
contents here should be stored in standard types (e.g., neurodata_types)
|
|
and appropriately documented. The file can store lab-specific and custom
|
|
data analysis without restriction on its form or schema, reducing data formatting
|
|
restrictions on end users. Such data should be placed in the analysis group.
|
|
The analysis data should be documented so that it could be shared with other
|
|
labs.
|
|
multivalued: true
|
|
any_of:
|
|
- range: NWBContainer
|
|
- range: DynamicTable
|
|
scratch:
|
|
name: scratch
|
|
description: A place to store one-off analysis results. Data placed here is
|
|
not intended for sharing. By placing data here, users acknowledge that there
|
|
is no guarantee that their data meets any standard.
|
|
multivalued: true
|
|
any_of:
|
|
- range: NWBContainer
|
|
- range: DynamicTable
|
|
processing:
|
|
name: processing
|
|
description: The home for ProcessingModules. These modules perform intermediate
|
|
analysis of data that is necessary to perform before scientific analysis.
|
|
Examples include spike clustering, extracting position from tracking data,
|
|
stitching together image slices. ProcessingModules can be large and express
|
|
many data sets from relatively complex analysis (e.g., spike detection and
|
|
clustering) or small, representing extraction of position information from
|
|
tracking video, or even binary lick/no-lick decisions. Common software tools
|
|
(e.g., klustakwik, MClust) are expected to read/write data here. 'Processing'
|
|
refers to intermediate analysis of the acquired data to make it more amenable
|
|
to scientific analysis.
|
|
multivalued: true
|
|
any_of:
|
|
- range: ProcessingModule
|
|
stimulus:
|
|
name: stimulus
|
|
description: Data pushed into the system (eg, video stimulus, sound, voltage,
|
|
etc) and secondary representations of that data (eg, measurements of something
|
|
used as a stimulus). This group should be made read-only after experiment
|
|
complete and timestamps are corrected to common timebase. Stores both presented
|
|
stimuli and stimulus templates, the latter in case the same stimulus is
|
|
presented multiple times, or is pulled from an external stimulus library.
|
|
Stimuli are here defined as any signal that is pushed into the system as
|
|
part of the experiment (eg, sound, video, voltage, etc). Many different
|
|
experiments can use the same stimuli, and stimuli can be re-used during
|
|
an experiment. The stimulus group is organized so that one version of template
|
|
stimuli can be stored and these be used multiple times. These templates
|
|
can exist in the present file or can be linked to a remote library file.
|
|
multivalued: false
|
|
range: NWBFile__stimulus
|
|
required: true
|
|
general:
|
|
name: general
|
|
description: Experimental metadata, including protocol, notes and description
|
|
of hardware device(s). The metadata stored in this section should be used
|
|
to describe the experiment. Metadata necessary for interpreting the data
|
|
is stored with the data. General experimental metadata, including animal
|
|
strain, experimental protocols, experimenter, devices, etc, are stored under
|
|
'general'. Core metadata (e.g., that required to interpret data fields)
|
|
is stored with the data itself, and implicitly defined by the file specification
|
|
(e.g., time is in seconds). The strategy used here for storing non-core
|
|
metadata is to use free-form text fields, such as would appear in sentences
|
|
or paragraphs from a Methods section. Metadata fields are text to enable
|
|
them to be more general, for example to represent ranges instead of numerical
|
|
values. Machine-readable metadata is stored as attributes to these free-form
|
|
datasets. All entries in the below table are to be included when data is
|
|
present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment)
|
|
should not be created unless there is data to store within them.
|
|
multivalued: false
|
|
range: NWBFile__general
|
|
required: true
|
|
intervals:
|
|
name: intervals
|
|
description: Experimental intervals, whether that be logically distinct sub-experiments
|
|
having a particular scientific goal, trials (see trials subgroup) during
|
|
an experiment, or epochs (see epochs subgroup) deriving from analysis of
|
|
data.
|
|
multivalued: false
|
|
range: NWBFile__intervals
|
|
required: false
|
|
units:
|
|
name: units
|
|
description: Data about sorted spike units.
|
|
multivalued: false
|
|
range: Units
|
|
required: false
|
|
tree_root: true
|
|
LabMetaData:
|
|
name: LabMetaData
|
|
description: Lab-specific meta-data.
|
|
is_a: NWBContainer
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
tree_root: true
|
|
Subject:
|
|
name: Subject
|
|
description: Information about the animal or person from which the data was measured.
|
|
is_a: NWBContainer
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
age:
|
|
name: age
|
|
description: Age of subject. Can be supplied instead of 'date_of_birth'.
|
|
multivalued: false
|
|
range: Subject__age
|
|
required: false
|
|
date_of_birth:
|
|
name: date_of_birth
|
|
description: Date of birth of subject. Can be supplied instead of 'age'.
|
|
multivalued: false
|
|
range: isodatetime
|
|
required: false
|
|
description:
|
|
name: description
|
|
description: Description of subject and where subject came from (e.g., breeder,
|
|
if animal).
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
genotype:
|
|
name: genotype
|
|
description: Genetic strain. If absent, assume Wild Type (WT).
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
sex:
|
|
name: sex
|
|
description: Gender of subject.
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
species:
|
|
name: species
|
|
description: Species of subject.
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
strain:
|
|
name: strain
|
|
description: Strain of subject.
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
subject_id:
|
|
name: subject_id
|
|
description: ID of animal/person used/participating in experiment (lab convention).
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
weight:
|
|
name: weight
|
|
description: Weight at time of experiment, at time of surgery and at other
|
|
important times.
|
|
multivalued: false
|
|
range: text
|
|
required: false
|
|
tree_root: true
|