nwb-linkml/nwb_linkml/schema/core.nwb.ophys.yaml
sneakers-the-rat 4faaa8efe8 I believe that's a full translation
or at least all the semantics are present. it's not pretty by any stretch of the imagination
2023-08-25 00:22:47 -07:00

571 lines
22 KiB
YAML

name: core.nwb.ophys
id: core.nwb.ophys
imports:
- core.nwb.image
- core.nwb.base
- hdmf-common.table
- 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:
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
TwoPhotonSeries:
name: TwoPhotonSeries
description: Image stack recorded over time from 2-photon microscope.
is_a: ImageSeries
attributes:
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
TwoPhotonSeries_field_of_view:
name: TwoPhotonSeries_field_of_view
description: Width, height and depth of image, or imaged area, in meters.
attributes:
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:
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
RoiResponseSeries_data:
name: RoiResponseSeries_data
description: Signals from ROIs.
attributes:
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
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:
RoiResponseSeries:
name: RoiResponseSeries
description: RoiResponseSeries object(s) containing dF/F for a ROI.
multivalued: true
range: RoiResponseSeries
required: 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:
RoiResponseSeries:
name: RoiResponseSeries
description: RoiResponseSeries object(s) containing fluorescence data for
a ROI.
multivalued: true
range: RoiResponseSeries
required: 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:
PlaneSegmentation:
name: PlaneSegmentation
description: Results from image segmentation of a specific imaging plane.
multivalued: true
range: PlaneSegmentation
required: true
PlaneSegmentation:
name: PlaneSegmentation
description: Results from image segmentation of a specific imaging plane.
is_a: DynamicTable
attributes:
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: false
range: PlaneSegmentation_pixel_mask
required: false
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: false
range: PlaneSegmentation_voxel_mask
required: false
reference_images:
name: reference_images
description: Image stacks that the segmentation masks apply to.
multivalued: false
range: PlaneSegmentation_reference_images
required: 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:
array:
name: array
range: PlaneSegmentation_image_mask_Array
PlaneSegmentation_image_mask_Array:
name: PlaneSegmentation_image_mask_Array
is_a: Arraylike
attributes:
num_roi:
name: num_roi
range: AnyType
required: true
num_x:
name: num_x
range: AnyType
required: true
num_y:
name: num_y
range: AnyType
required: true
num_z:
name: num_z
range: AnyType
required: false
PlaneSegmentation_pixel_mask_index:
name: PlaneSegmentation_pixel_mask_index
description: Index into pixel_mask.
is_a: VectorIndex
PlaneSegmentation_pixel_mask:
name: PlaneSegmentation_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'
is_a: VectorData
PlaneSegmentation_voxel_mask_index:
name: PlaneSegmentation_voxel_mask_index
description: Index into voxel_mask.
is_a: VectorIndex
PlaneSegmentation_voxel_mask:
name: PlaneSegmentation_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'
is_a: VectorData
PlaneSegmentation_reference_images:
name: PlaneSegmentation_reference_images
description: Image stacks that the segmentation masks apply to.
attributes:
ImageSeries:
name: ImageSeries
description: One or more image stacks that the masks apply to (can be one-element
stack).
multivalued: true
range: ImageSeries
required: false
ImagingPlane:
name: ImagingPlane
description: An imaging plane and its metadata.
is_a: NWBContainer
attributes:
description:
name: description
description: Description of the imaging plane.
multivalued: false
range: ImagingPlane_description
required: false
excitation_lambda:
name: excitation_lambda
description: Excitation wavelength, in nm.
multivalued: false
range: ImagingPlane_excitation_lambda
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: ImagingPlane_imaging_rate
required: false
indicator:
name: indicator
description: Calcium indicator.
multivalued: false
range: ImagingPlane_indicator
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: ImagingPlane_location
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: ImagingPlane_reference_frame
required: false
OpticalChannel:
name: OpticalChannel
description: An optical channel used to record from an imaging plane.
multivalued: true
range: OpticalChannel
required: true
ImagingPlane_description:
name: ImagingPlane_description
description: Description of the imaging plane.
ImagingPlane_excitation_lambda:
name: ImagingPlane_excitation_lambda
description: Excitation wavelength, in nm.
ImagingPlane_imaging_rate:
name: ImagingPlane_imaging_rate
description: Rate that images are acquired, in Hz. If the corresponding TimeSeries
is present, the rate should be stored there instead.
ImagingPlane_indicator:
name: ImagingPlane_indicator
description: Calcium indicator.
ImagingPlane_location:
name: ImagingPlane_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.
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:
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:
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:
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
ImagingPlane_reference_frame:
name: ImagingPlane_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)."
OpticalChannel:
name: OpticalChannel
description: An optical channel used to record from an imaging plane.
is_a: NWBContainer
attributes:
description:
name: description
description: Description or other notes about the channel.
multivalued: false
range: OpticalChannel_description
required: true
emission_lambda:
name: emission_lambda
description: Emission wavelength for channel, in nm.
multivalued: false
range: OpticalChannel_emission_lambda
required: true
OpticalChannel_description:
name: OpticalChannel_description
description: Description or other notes about the channel.
OpticalChannel_emission_lambda:
name: OpticalChannel_emission_lambda
description: Emission wavelength for channel, in nm.
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:
CorrectedImageStack:
name: CorrectedImageStack
description: Reuslts from motion correction of an image stack.
multivalued: true
range: CorrectedImageStack
required: true
CorrectedImageStack:
name: CorrectedImageStack
description: Reuslts from motion correction of an image stack.
is_a: NWBDataInterface
attributes:
corrected:
name: corrected
description: Image stack with frames shifted to the common coordinates.
multivalued: false
range: CorrectedImageStack_corrected
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: CorrectedImageStack_xy_translation
required: true
CorrectedImageStack_corrected:
name: CorrectedImageStack_corrected
description: Image stack with frames shifted to the common coordinates.
is_a: ImageSeries
CorrectedImageStack_xy_translation:
name: CorrectedImageStack_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.
is_a: TimeSeries