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