Light Beads Microscopy 2P Calcium Imaging Pipeline.
Project description
LBM-CaImAn-Python
Python implementation of the Light Beads Microscopy (LBM) computational pipeline.
For the MATLAB implementation, see here
Pipeline Steps:
- Image Assembly
- Extract raw
tiffsto planar timeseries
- Extract raw
- Motion Correction
- Template creation
- Piecewise-rigid or non-rigid registration
- Segmentation
- Iterative CNMF segmentation
- Deconvolution
- Refinement
- Collation
- Lateral offset correction (between z-planes)
- Collate images and metadata into a single volume
Requirements
- caiman
- mesmerize-core
- scanreader
- numpy
- scipy
- fastplotlib
:exclamation: Note: This package makes heavy use of Fastplotlib for visualizations.
Fastplotlib runs on Jupyter Lab, but is not guarenteed to work with Jupyter Notebook or Visual Studio Code notebook environments.
Installation
This project is tested on Linux and Windows 10 using Python 3.9 and Python 3.10.
Installation is tested using miniforge. Python virtual-environments are a not fully developed/tested yet but is left as an optional installation method for python-savvy users.
:exclamation: Anaconda and Miniconda will likely not work due to package conflicts.
(Option 1). Miniforge (conda)
Note: If conda gets stuck Solving Environment, hitting enter can sometimes help.
- Create a new environment and install mesmerize-core
- Here, we use the
-nflag to name the environmentlbm, 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 defaults -c conda-forge mesmerize-core
If you already have CaImAn installed, replace -n lbm with -n name-of-env-with-caiman.
Activate the environment:
- if you used a name other than
lbm, be sure to match the name you use here.
conda activate lbm
- Install LBM-CaImAn-Python and scanreader:
pip install lbm_caiman_python
pip install git+https://github.com/atlab/scanreader.git
- Install
caimanmanager
CaImAn will sometimes look for neural network models, unless you tell it not to with parameters use_cnn=False during segmentation.
To install these models, and CaImAn demo data to follow along with their notebooks:
caimanmanager install
This will create a directory in your home folder ~/caiman_data/. We recommend doing this step, though it may be safe to skip.
- (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.
mesmerize-viz youtube video demonstration
- Stay up-to-date
LBM-CaImAn-Python is in active development. To update to the latest release:
pip install -U lbm_caiman_python
(Option 2). Python Virtual Environments (WIP)
:exclimation: With numpy 2.0 official release, there may be errors for this method. File an issue if you have conflicts.
Ensure you have a system-wide Python installation.
This project and it's dependencies are tested using Python 3.9 and Python 3.10.
Note: Make sure you deactivate conda environments before proceeding (conda deactivate).
Verify Python and pip installations:
- Linux/macOS:
python --version
pip --version
- Windows:
py --version
py - m pip --version
:exclamation: Depending on how Python was installed,
you may need to use python3 or python3.x and pip3 or pip3.x instead of python and pip.
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:
-
CaImAn:
cd CaImAn pip install -r requirements.txt pip install .
:exclamation: Note: If you encounter errors during the installation of
CaImAn, you may need to install Microsoft Visual C++ Build Tools. You can download them from here. -
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)
For Developers
To get the newest version of this package, rather than pip install lbm_caiman_python:
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
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
Don't forget to press enter a few times if conda is taking a long time.
Recommended Conda Distribution
The recommended conda installer is
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lbm_caiman_python-1.0.10.tar.gz.
File metadata
- Download URL: lbm_caiman_python-1.0.10.tar.gz
- Upload date:
- Size: 52.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c74f6fc085fb64f979e5c533b73a363e5c1365d9fd7dabedbb57f22e8b0cbec
|
|
| MD5 |
9751868a2d7414dca157d836373379d4
|
|
| BLAKE2b-256 |
2c22cd257f23bc4986d35db31336afdc0fdfb0762c9d27b80adf1c20503aec02
|
File details
Details for the file lbm_caiman_python-1.0.10-py3-none-any.whl.
File metadata
- Download URL: lbm_caiman_python-1.0.10-py3-none-any.whl
- Upload date:
- Size: 34.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef039c88bf417fc7da04e5a50920c9a4ebeddf379e12fce6745f637fbd33e352
|
|
| MD5 |
24ec925c38d585dbdf7cf2600a5f6e26
|
|
| BLAKE2b-256 |
bf61c3868103afed2fb57d7138bd61d527cb0b16f39ec55bf23d36ba28b2d068
|