nwb-linkml/nwb_linkml/schema/core.nwb.ophys.yaml

585 lines
20 KiB
YAML

name: core.nwb.ophys
id: core.nwb.ophys
imports:
- core.nwb.image
- core.nwb.base
- hdmf-common.table
- core.nwb.device
- nwb.language
default_prefix: core.nwb.ophys/
classes:
OnePhotonSeries:
name: OnePhotonSeries
description: Image stack recorded over time from 1-photon microscope.
is_a: ImageSeries
attributes:
name:
name: name
range: string
required: true
pmt_gain:
name: pmt_gain
description: Photomultiplier gain.
range: float32
scan_line_rate:
name: scan_line_rate
description: Lines imaged per second. This is also stored in /general/optophysiology
but is kept here as it is useful information for analysis, and so good to
be stored w/ the actual data.
range: float32
exposure_time:
name: exposure_time
description: Exposure time of the sample; often the inverse of the frequency.
range: float32
binning:
name: binning
description: Amount of pixels combined into 'bins'; could be 1, 2, 4, 8, etc.
range: uint8
power:
name: power
description: Power of the excitation in mW, if known.
range: float32
intensity:
name: intensity
description: Intensity of the excitation in mW/mm^2, if known.
range: float32
tree_root: true
TwoPhotonSeries:
name: TwoPhotonSeries
description: Image stack recorded over time from 2-photon microscope.
is_a: ImageSeries
attributes:
name:
name: name
range: string
required: true
pmt_gain:
name: pmt_gain
description: Photomultiplier gain.
range: float32
scan_line_rate:
name: scan_line_rate
description: Lines imaged per second. This is also stored in /general/optophysiology
but is kept here as it is useful information for analysis, and so good to
be stored w/ the actual data.
range: float32
field_of_view:
name: field_of_view
description: Width, height and depth of image, or imaged area, in meters.
multivalued: false
range: TwoPhotonSeries__field_of_view
required: false
tree_root: true
TwoPhotonSeries__field_of_view:
name: TwoPhotonSeries__field_of_view
description: Width, height and depth of image, or imaged area, in meters.
attributes:
name:
name: name
ifabsent: string(field_of_view)
range: string
required: true
equals_string: field_of_view
array:
name: array
range: TwoPhotonSeries__field_of_view__Array
TwoPhotonSeries__field_of_view__Array:
name: TwoPhotonSeries__field_of_view__Array
is_a: Arraylike
attributes:
width|height:
name: width|height
range: float32
required: false
minimum_cardinality: 2
maximum_cardinality: 2
width|height|depth:
name: width|height|depth
range: float32
required: false
minimum_cardinality: 3
maximum_cardinality: 3
RoiResponseSeries:
name: RoiResponseSeries
description: ROI responses over an imaging plane. The first dimension represents
time. The second dimension, if present, represents ROIs.
is_a: TimeSeries
attributes:
name:
name: name
range: string
required: true
data:
name: data
description: Signals from ROIs.
multivalued: false
range: RoiResponseSeries__data
required: true
rois:
name: rois
description: DynamicTableRegion referencing into an ROITable containing information
on the ROIs stored in this timeseries.
multivalued: false
range: RoiResponseSeries__rois
required: true
tree_root: true
RoiResponseSeries__data:
name: RoiResponseSeries__data
description: Signals from ROIs.
attributes:
name:
name: name
ifabsent: string(data)
range: string
required: true
equals_string: data
array:
name: array
range: RoiResponseSeries__data__Array
RoiResponseSeries__data__Array:
name: RoiResponseSeries__data__Array
is_a: Arraylike
attributes:
num_times:
name: num_times
range: numeric
required: true
num_ROIs:
name: num_ROIs
range: numeric
required: false
RoiResponseSeries__rois:
name: RoiResponseSeries__rois
description: DynamicTableRegion referencing into an ROITable containing information
on the ROIs stored in this timeseries.
is_a: DynamicTableRegion
attributes:
name:
name: name
ifabsent: string(rois)
range: string
required: true
equals_string: rois
DfOverF:
name: DfOverF
description: dF/F information about a region of interest (ROI). Storage hierarchy
of dF/F should be the same as for segmentation (i.e., same names for ROIs and
for image planes).
is_a: NWBDataInterface
attributes:
name:
name: name
range: string
required: true
roi_response_series:
name: roi_response_series
description: RoiResponseSeries object(s) containing dF/F for a ROI.
multivalued: true
range: RoiResponseSeries
required: true
tree_root: true
Fluorescence:
name: Fluorescence
description: Fluorescence information about a region of interest (ROI). Storage
hierarchy of fluorescence should be the same as for segmentation (ie, same names
for ROIs and for image planes).
is_a: NWBDataInterface
attributes:
name:
name: name
range: string
required: true
roi_response_series:
name: roi_response_series
description: RoiResponseSeries object(s) containing fluorescence data for
a ROI.
multivalued: true
range: RoiResponseSeries
required: true
tree_root: true
ImageSegmentation:
name: ImageSegmentation
description: Stores pixels in an image that represent different regions of interest
(ROIs) or masks. All segmentation for a given imaging plane is stored together,
with storage for multiple imaging planes (masks) supported. Each ROI is stored
in its own subgroup, with the ROI group containing both a 2D mask and a list
of pixels that make up this mask. Segments can also be used for masking neuropil.
If segmentation is allowed to change with time, a new imaging plane (or module)
is required and ROI names should remain consistent between them.
is_a: NWBDataInterface
attributes:
name:
name: name
range: string
required: true
plane_segmentation:
name: plane_segmentation
description: Results from image segmentation of a specific imaging plane.
multivalued: true
range: PlaneSegmentation
required: true
tree_root: true
PlaneSegmentation:
name: PlaneSegmentation
description: Results from image segmentation of a specific imaging plane.
is_a: DynamicTable
attributes:
name:
name: name
range: string
required: true
image_mask:
name: image_mask
description: ROI masks for each ROI. Each image mask is the size of the original
imaging plane (or volume) and members of the ROI are finite non-zero.
multivalued: false
range: PlaneSegmentation__image_mask
required: false
pixel_mask_index:
name: pixel_mask_index
description: Index into pixel_mask.
multivalued: false
range: PlaneSegmentation__pixel_mask_index
required: false
pixel_mask:
name: pixel_mask
description: 'Pixel masks for each ROI: a list of indices and weights for
the ROI. Pixel masks are concatenated and parsing of this dataset is maintained
by the PlaneSegmentation'
multivalued: true
range: AnyType
voxel_mask_index:
name: voxel_mask_index
description: Index into voxel_mask.
multivalued: false
range: PlaneSegmentation__voxel_mask_index
required: false
voxel_mask:
name: voxel_mask
description: 'Voxel masks for each ROI: a list of indices and weights for
the ROI. Voxel masks are concatenated and parsing of this dataset is maintained
by the PlaneSegmentation'
multivalued: true
range: AnyType
reference_images:
name: reference_images
description: Image stacks that the segmentation masks apply to.
multivalued: true
any_of:
- range: ImageSeries
tree_root: true
PlaneSegmentation__image_mask:
name: PlaneSegmentation__image_mask
description: ROI masks for each ROI. Each image mask is the size of the original
imaging plane (or volume) and members of the ROI are finite non-zero.
is_a: VectorData
attributes:
name:
name: name
ifabsent: string(image_mask)
range: string
required: true
equals_string: image_mask
PlaneSegmentation__pixel_mask_index:
name: PlaneSegmentation__pixel_mask_index
description: Index into pixel_mask.
is_a: VectorIndex
attributes:
name:
name: name
ifabsent: string(pixel_mask_index)
range: string
required: true
equals_string: pixel_mask_index
PlaneSegmentation__voxel_mask_index:
name: PlaneSegmentation__voxel_mask_index
description: Index into voxel_mask.
is_a: VectorIndex
attributes:
name:
name: name
ifabsent: string(voxel_mask_index)
range: string
required: true
equals_string: voxel_mask_index
ImagingPlane:
name: ImagingPlane
description: An imaging plane and its metadata.
is_a: NWBContainer
attributes:
name:
name: name
range: string
required: true
description:
name: description
description: Description of the imaging plane.
multivalued: false
range: text
required: false
excitation_lambda:
name: excitation_lambda
description: Excitation wavelength, in nm.
multivalued: false
range: float32
required: true
imaging_rate:
name: imaging_rate
description: Rate that images are acquired, in Hz. If the corresponding TimeSeries
is present, the rate should be stored there instead.
multivalued: false
range: float32
required: false
indicator:
name: indicator
description: Calcium indicator.
multivalued: false
range: text
required: true
location:
name: location
description: Location of the imaging plane. Specify the area, layer, comments
on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use
standard atlas names for anatomical regions when possible.
multivalued: false
range: text
required: true
manifold:
name: manifold
description: DEPRECATED Physical position of each pixel. 'xyz' represents
the position of the pixel relative to the defined coordinate space. Deprecated
in favor of origin_coords and grid_spacing.
multivalued: false
range: ImagingPlane__manifold
required: false
origin_coords:
name: origin_coords
description: Physical location of the first element of the imaging plane (0,
0) for 2-D data or (0, 0, 0) for 3-D data. See also reference_frame for
what the physical location is relative to (e.g., bregma).
multivalued: false
range: ImagingPlane__origin_coords
required: false
grid_spacing:
name: grid_spacing
description: Space between pixels in (x, y) or voxels in (x, y, z) directions,
in the specified unit. Assumes imaging plane is a regular grid. See also
reference_frame to interpret the grid.
multivalued: false
range: ImagingPlane__grid_spacing
required: false
reference_frame:
name: reference_frame
description: Describes reference frame of origin_coords and grid_spacing.
For example, this can be a text description of the anatomical location and
orientation of the grid defined by origin_coords and grid_spacing or the
vectors needed to transform or rotate the grid to a common anatomical axis
(e.g., AP/DV/ML). This field is necessary to interpret origin_coords and
grid_spacing. If origin_coords and grid_spacing are not present, then this
field is not required. For example, if the microscope takes 10 x 10 x 2
images, where the first value of the data matrix (index (0, 0, 0)) corresponds
to (-1.2, -0.6, -2) mm relative to bregma, the spacing between pixels is
0.2 mm in x, 0.2 mm in y and 0.5 mm in z, and larger numbers in x means
more anterior, larger numbers in y means more rightward, and larger numbers
in z means more ventral, then enter the following -- origin_coords = (-1.2,
-0.6, -2) grid_spacing = (0.2, 0.2, 0.5) reference_frame = "Origin coordinates
are relative to bregma. First dimension corresponds to anterior-posterior
axis (larger index = more anterior). Second dimension corresponds to medial-lateral
axis (larger index = more rightward). Third dimension corresponds to dorsal-ventral
axis (larger index = more ventral)."
multivalued: false
range: text
required: false
optical_channel:
name: optical_channel
description: An optical channel used to record from an imaging plane.
multivalued: true
range: OpticalChannel
required: true
tree_root: true
ImagingPlane__manifold:
name: ImagingPlane__manifold
description: DEPRECATED Physical position of each pixel. 'xyz' represents the
position of the pixel relative to the defined coordinate space. Deprecated in
favor of origin_coords and grid_spacing.
attributes:
name:
name: name
ifabsent: string(manifold)
range: string
required: true
equals_string: manifold
conversion:
name: conversion
description: Scalar to multiply each element in data to convert it to the
specified 'unit'. If the data are stored in acquisition system units or
other units that require a conversion to be interpretable, multiply the
data by 'conversion' to convert the data to the specified 'unit'. e.g. if
the data acquisition system stores values in this object as pixels from
x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then
the 'conversion' multiplier to get from raw data acquisition pixel units
to meters is 2/1000.
range: float32
unit:
name: unit
description: Base unit of measurement for working with the data. The default
value is 'meters'.
range: text
array:
name: array
range: ImagingPlane__manifold__Array
ImagingPlane__manifold__Array:
name: ImagingPlane__manifold__Array
is_a: Arraylike
attributes:
height:
name: height
range: float32
required: true
width:
name: width
range: float32
required: true
x, y, z:
name: x, y, z
range: float32
required: true
minimum_cardinality: 3
maximum_cardinality: 3
depth:
name: depth
range: float32
required: false
ImagingPlane__origin_coords:
name: ImagingPlane__origin_coords
description: Physical location of the first element of the imaging plane (0, 0)
for 2-D data or (0, 0, 0) for 3-D data. See also reference_frame for what the
physical location is relative to (e.g., bregma).
attributes:
name:
name: name
ifabsent: string(origin_coords)
range: string
required: true
equals_string: origin_coords
unit:
name: unit
description: Measurement units for origin_coords. The default value is 'meters'.
range: text
array:
name: array
range: ImagingPlane__origin_coords__Array
ImagingPlane__origin_coords__Array:
name: ImagingPlane__origin_coords__Array
is_a: Arraylike
attributes:
x, y:
name: x, y
range: float32
required: false
minimum_cardinality: 2
maximum_cardinality: 2
x, y, z:
name: x, y, z
range: float32
required: false
minimum_cardinality: 3
maximum_cardinality: 3
ImagingPlane__grid_spacing:
name: ImagingPlane__grid_spacing
description: Space between pixels in (x, y) or voxels in (x, y, z) directions,
in the specified unit. Assumes imaging plane is a regular grid. See also reference_frame
to interpret the grid.
attributes:
name:
name: name
ifabsent: string(grid_spacing)
range: string
required: true
equals_string: grid_spacing
unit:
name: unit
description: Measurement units for grid_spacing. The default value is 'meters'.
range: text
array:
name: array
range: ImagingPlane__grid_spacing__Array
ImagingPlane__grid_spacing__Array:
name: ImagingPlane__grid_spacing__Array
is_a: Arraylike
attributes:
x, y:
name: x, y
range: float32
required: false
minimum_cardinality: 2
maximum_cardinality: 2
x, y, z:
name: x, y, z
range: float32
required: false
minimum_cardinality: 3
maximum_cardinality: 3
OpticalChannel:
name: OpticalChannel
description: An optical channel used to record from an imaging plane.
is_a: NWBContainer
attributes:
name:
name: name
range: string
required: true
description:
name: description
description: Description or other notes about the channel.
multivalued: false
range: text
required: true
emission_lambda:
name: emission_lambda
description: Emission wavelength for channel, in nm.
multivalued: false
range: float32
required: true
tree_root: true
MotionCorrection:
name: MotionCorrection
description: 'An image stack where all frames are shifted (registered) to a common
coordinate system, to account for movement and drift between frames. Note: each
frame at each point in time is assumed to be 2-D (has only x & y dimensions).'
is_a: NWBDataInterface
attributes:
name:
name: name
range: string
required: true
corrected_image_stack:
name: corrected_image_stack
description: Reuslts from motion correction of an image stack.
multivalued: true
range: CorrectedImageStack
required: true
tree_root: true
CorrectedImageStack:
name: CorrectedImageStack
description: Reuslts from motion correction of an image stack.
is_a: NWBDataInterface
attributes:
name:
name: name
range: string
required: true
corrected:
name: corrected
description: Image stack with frames shifted to the common coordinates.
multivalued: false
range: ImageSeries
required: true
xy_translation:
name: xy_translation
description: Stores the x,y delta necessary to align each frame to the common
coordinates, for example, to align each frame to a reference image.
multivalued: false
range: TimeSeries
required: true
tree_root: true