Skip to main content

Calcium Imaging DataJoint element

Project description

DataJoint Element - Functional Calcium Imaging

  • This repository features DataJoint pipeline design for functional Calcium imaging with ScanImage, Scanbox, or Nikon NIS acquisition system and Suite2p or CaImAn suites for analysis.

  • The element presented here is not a complete workflow by itself, but rather a modular design of tables and dependencies specific to the functional Calcium imaging workflow.

  • This modular element can be flexibly attached downstream to any particular design of experiment session, thus assembling a fully functional calcium imaging workflow.

  • See the Element Calcium Imaging documentation for the background information and development timeline.

  • For more information on the DataJoint Elements project, please visit https://elements.datajoint.org. This work is supported by the National Institutes of Health.

Element architecture

element-calcium-imaging is comprised of two schemas, scan and imaging. To handle several use cases of this pipeline, we have designed several imaging schemas, including imaging, imaging_no_curation, and imaging_preprocess.

  • imaging - Multiple scans are acquired during each session and each scan is processed independently.

  • imaging_preprocess - Multiple scans are acquired during each session and each scan is processed independently. And pre-processing steps can be performed on each scan prior to processing with Suite2p or CaImAn.

imaging module

imaging diagram

imaging_preprocess module

imaging-preprocess diagram

  • As the diagram depicts, the imaging element starts immediately downstream from Session, and also requires some notion of:

    • Scanner for equipment/device

    • Location as a dependency for ScanLocation

Table definitions

Scan

The scan schema contains information regarding the raw data acquired with ScanImage or Scanbox.

Click to expand details
  • A Session (more specifically an experimental session) may have multiple scans, where each scan describes a complete 4D dataset (i.e. 3D volume over time) from one scanning session, typically from the moment of pressing the start button to pressing the stop button.

  • Scan - table containing information about the equipment used (e.g. the Scanner information)

  • ScanInfo - meta information about this scan, from ScanImage header (e.g. frame rate, number of channels, scanning depths, frames, etc.)

  • ScanInfo.Field - a field is a 2D image at a particular xy-coordinate and plane (scanning depth) within the field-of-view (FOV) of the scan.

    • For resonant scanner, a field is usually the 2D image occupying the entire FOV from a certain plane (at some depth).

    • For mesoscope scanner, with much wider FOV, there may be multiple fields on one plane.

Preprocessing - Motion Correction

The imaging schema stores information regarding the motion corrected images.

Click to expand details
  • MotionCorrection - motion correction information performed on a scan

  • MotionCorrection.RigidMotionCorrection - details of the rigid motion correction (e.g. shifting in x, y) at a per ScanInfo.Field level

  • MotionCorrection.NonRigidMotionCorrection and MotionCorrection.Block tables are used to describe the non-rigid motion correction performed on each ScanInfo.Field

  • MotionCorrection.Summary - summary images for each ScanInfo.Field after motion correction (e.g. average image, correlation image)

Preprocessing - Segmentation

The imaging schema stores information regarding the segmented masks for each field.

Click to expand details
  • Segmentation - table specifies the segmentation step and its outputs, following the motion correction step.

  • Segmentation.Mask - image mask for the segmented region of interest from a particular ScanInfo.Field

  • MaskClassification - classification of Segmentation.Mask into different type (e.g. soma, axon, dendrite, artifact, etc.)

Neural activity extraction

The imaging schema stores information regarding the calcium traces for each mask.

Click to expand details
  • Fluorescence - fluorescence traces extracted from each Segmentation.Mask

  • ActivityExtractionMethod - activity extraction method (e.g. deconvolution) to be applied on fluorescence trace

  • Activity - computed neuronal activity trace from fluorescence trace (e.g. spikes)

Installation

  • The installation instructions can be found at the DataJoint Elements documentation.

  • Install element-calcium-imaging

    pip install element-calcium-imaging
    
  • Upgrade element-calcium-imaging previously installed with pip

    pip install --upgrade element-calcium-imaging
    
  • Install element-interface

    • element-interface contains data loading utilities for element-calcium-imaging.

    • element-interface is a dependency of element-calcium-imaging, however it is not contained within requirements.txt, therefore, must be installed in addition to the installation of the element-calcium-imaging.

    • element-interface can also be used to install packages used for reading acquired data (e.g. scanreader) and running analysis (e.g. CaImAn).

    • If your workflow uses these packages, you should install them when you install element-interface.

    Click to expand details
    • Install element-interface with scanreader

      pip install "element-interface[scanreader] @ git+https://github.com/datajoint/element-interface"
      
    • Install element-interface with sbxreader

      pip install "element-interface[sbxreader] @ git+https://github.com/datajoint/element-interface"
      
    • Install element-interface with Suite2p

      pip install "element-interface[suite2p] @ git+https://github.com/datajoint/element-interface"
      
    • Install element-interface with CaImAn requires two separate commands

      pip install "element-interface[caiman_requirements] @ git+https://github.com/datajoint/element-interface"
      pip install "element-interface[caiman] @ git+https://github.com/datajoint/element-interface"
      
    • Install element-interface with multiple packages

      pip install "element-interface[caiman_requirements] @ git+https://github.com/datajoint/element-interface"
      pip install "element-interface[scanreader,sbxreader,suite2p,caiman] @ git+https://github.com/datajoint/element-interface"
      

Element usage

Citation

  • If your work uses DataJoint and DataJoint Elements, please cite the respective Research Resource Identifiers (RRIDs) and manuscripts.

  • DataJoint for Python or MATLAB

    • Yatsenko D, Reimer J, Ecker AS, Walker EY, Sinz F, Berens P, Hoenselaar A, Cotton RJ, Siapas AS, Tolias AS. DataJoint: managing big scientific data using MATLAB or Python. bioRxiv. 2015 Jan 1:031658. doi: https://doi.org/10.1101/031658

    • DataJoint (RRID:SCR_014543) - DataJoint for <Select Python or MATLAB> (version <Enter version number>)

  • DataJoint Elements

    • Yatsenko D, Nguyen T, Shen S, Gunalan K, Turner CA, Guzman R, Sasaki M, Sitonic D, Reimer J, Walker EY, Tolias AS. DataJoint Elements: Data Workflows for Neurophysiology. bioRxiv. 2021 Jan 1. doi: https://doi.org/10.1101/2021.03.30.437358

    • DataJoint Elements (RRID:SCR_021894) - Element Calcium Imaging (version <Enter version number>)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

element-calcium-imaging-0.2.2.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

element_calcium_imaging-0.2.2-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file element-calcium-imaging-0.2.2.tar.gz.

File metadata

File hashes

Hashes for element-calcium-imaging-0.2.2.tar.gz
Algorithm Hash digest
SHA256 eebb7207433f2e2dc7c3fdaa6c53bf373bea51c25ba2cf2ebc7dd1d0cedaece4
MD5 0fd0a2191e05603a27f996652333967b
BLAKE2b-256 c9b7d02f298e1909dbe2fa121c5db7115ec5673307e73c2e3cae012c99748547

See more details on using hashes here.

File details

Details for the file element_calcium_imaging-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for element_calcium_imaging-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ae98d9c3d367e15024db02f098cb009e4017237586d26805ffe1046c41bbdca7
MD5 4b59f6bfcfb075be6e7310ce5d475fd0
BLAKE2b-256 70ec80b34ab2cbc907bdd601782500e8fea58e13a014a0b0d26b24c0ab36a948

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page