Skip to main content

Light Beads Microscopy 2P Calcium Imaging Pipeline.

Project description

LBM-CaImAn-Python

Installation | Notebooks

Python implementation of the Light Beads Microscopy (LBM) computational pipeline.

For the MATLAB implementation, see here

Pipeline Steps:

  1. Image Assembly
    • Extract raw tiffs to planar timeseries
  2. Motion Correction
    • Template creation
    • Piecewise-rigid or non-rigid registration
  3. Segmentation
    • Iterative CNMF segmentation
    • Deconvolution
    • Refinement
  4. Collation
    • Lateral offset correction (between z-planes)
    • Collate images and metadata into a single volume

Requirements

  • caiman
  • mesmerize-core
  • scanreader
  • numpy
  • scipy

Installation

(Option 1). Python Virtual Environments

Ensure you have a system-wide Python installation.

This project and it's dependencies are tested using Python 3.9 and Python 3.10.

Deactivate any active conda environments to avoid conflicts:

conda deactivate

Verify Python and pip installations:

python --version

pip --version

You should see a Python version output like 3.10.x and a corresponding pip version.

If Python is not installed, or an unsupported version is installed (i.e. 3.7),

download and install python.org or refer to this installation guide.

You will also need git:

git --version

Create a virtual environment

This is normally in a directory dedicated to virtual environments, but can be anywhere you wish:

python -m venv ~/venv/lbm_caiman_python

Activate the virtual environment:

  • Linux/macOS:

    source ~/venv/lbm_caiman_python/bin/activate
    
  • Windows:

    source ~/venv/lbm_caiman_python/Scripts/activate
    

Upgrade core tools in the virtual environment:

pip install --upgrade setuptools wheel pip

Clone and install CaImAn

Create a directory to store the cloned repositories.

Again, this can be anywhere you wish:

cd ~
mkdir repos
cd repos

Use git to clone CaImAn:

git clone https://github.com/flatironinstitute/CaImAn.git

Install CaImAn:

  1. CaImAn:

    cd CaImAn
    pip install -r requirements.txt
    pip install .
    
  2. Other dependencies:

    pip install mesmerize-core
    pip install lbm_caiman_python
    pip install git+https://github.com/atlab/scanreader.git
    

Run ipython to make sure everyting works

import lbm_caiman_python as lcp
import mesmerize_core as mc
import scanreader as sr

scan = sr.read_scan('path/to/data/*.tif', join_contiguous=True)

virtualenv Troubleshooting

Error During pip install . (CaImAn) on Linux

If you encounter errors during the installation of CaImAn, install the necessary development tools:

sudo apt-get install python3-dev

(Option 2). Conda

Miniforge is the supported conda distribution. Anaconda and Miniconda require extra steps and is not covered in this guide.

Note: Sometimes conda or mamba will get stuck at a step, such as creating an environment or installing a package.

Pressing Enter on your keyboard can sometimes help it continue when it pauses.

  1. Install mamba into your base environment:

:exclamation: This step may take 10 minutes and display several messages like "Solving environment: failed with..." but it should eventually install mamba.

conda activate base 
conda install -c conda-forge mamba
  1. Create a new environment and install mesmerize-core
  • Here, we use the -n flag to name the environment lbm , but you can name it whatever you'd like.
  • This step will install Python, mesmerize-core, CaImAn, and all required dependencies for those packages.
conda create -n lbm -c conda-forge mesmerize-core

If you already have CaImAn installed:

conda install -n name-of-env-with-caiman mesmerize-core

Activate the environment and install caimanmanager:

  • if you used a name other than lbm, be sure to match the name you use here.
conda activate lbm
caimanmanager install
  1. Install LBM-CaImAn-Python from pip:
pip install lbm_caiman_python
  1. Install scanreader:
pip install git+https://github.com/atlab/scanreader.git
  1. (Optional) Install mesmerize-viz:

Several notebooks make use of mesmerize-viz for visualizing registration/segmentation results.

pip install mesmerize-viz

:exclamation: Harware requirements The large CNMF visualizations with contours etc. usually require either a dedicated GPU or integrated GPU with access to at least 1GB of VRAM.

https://www.youtube.com/watch?v=GWvaEeqA1hw

For Developers

To get the newest version of this package:

git clone https://github.com/MillerBrainObservatory/LBM-CaImAn-Python.git

cd LBM-CaImAn-Python

pip install ".[docs]"

Troubleshooting

Conda Slow / Stalling

if conda is behaving slow, clean the conda installation and update conda-forge:

conda clean -a

conda update -c conda-forge --all

Don't forget to press enter a few times if conda is taking a long time.

Recommended Conda Distribution

The recommended conda installer is miniforge.

This is a community-driven conda/mamba installer with pre-configured packages specific to conda-forge.

This helps avoid conda-channel conflicts and avoids any issues with the Anaconda TOS.

You can install the installer from a unix command line:

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"

bash Miniforge3-$(uname)-$(uname -m).sh

Or download the installer for your operating system here.

Graphics Driver Issues

If you are attempting to use fastplotlib and receive errors about graphics drivers, see the fastplotlib driver documentation.

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

lbm_caiman_python-1.0.3.tar.gz (9.5 MB view details)

Uploaded Source

Built Distribution

lbm_caiman_python-1.0.3-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file lbm_caiman_python-1.0.3.tar.gz.

File metadata

  • Download URL: lbm_caiman_python-1.0.3.tar.gz
  • Upload date:
  • Size: 9.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.11

File hashes

Hashes for lbm_caiman_python-1.0.3.tar.gz
Algorithm Hash digest
SHA256 c653a79c0292a858738a8e1db3f9e899f5b1e36ccdcf5c352310d88781243dee
MD5 5d3e22a3ee4cd914b989e138d1c6bf60
BLAKE2b-256 b4bdecd3bd4739763f88d6e7c2fc037aef47b66786ec66305f9353d3667f49e6

See more details on using hashes here.

File details

Details for the file lbm_caiman_python-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for lbm_caiman_python-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 eac2bd683e920680cbffe67a846274e54cfa34277b35ac947200378855e44605
MD5 47bb4efff70d24c32fcd8b3039691f91
BLAKE2b-256 3238ec4a43e27d14bae472f3e10762bc0ce14cf1f4f0473ee2ecd85815a8bd78

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