Bombcell
Automated quality control, curation and neuron classification of spike-sorted electrophysiology data. Available in MATLAB and in Python.
Install / Use
/learn @Julie-Fabre/BombcellREADME
💣 Bombcell: find bombshell cells! 💣
<picture> <source media="(prefers-color-scheme: light)" srcset="./docs/images/bombcell_logo_crop.svg" width="40%" title="bombcell" alt="bombcell" align="right" vspace = "20"> <source media="(prefers-color-scheme: dark)" srcset="./docs/images/bombcell_logo_crop_DARK.svg" width="40%" title="bombcell" alt="bombcell" align="right" vspace = "20"> <img alt="Shows a black logo in light color mode and a white one in dark color mode." width="25%" title="bombcell" alt="bombcell" align="right" vspace = "20"> </picture>Manual curation of electrophysiology spike sorted units is slow, laborious, and hard to standardize and reproduce. Bombcell is a powerful toolbox that addresses this problem, evaluating the quality of recorded units and extracting essential electrophysiological properties. Bombcell can replace manual curation or can be used as a tool to aid manual curation. See this talk at the annual Neuropixels course about quality control.
📢 We now have a Python of version of bombcell! See the installation instructions below to get started! 📢
Please star the project to support us, using the top-right "⭐ Star" button.
📔 Bombcell wiki
Documentation and guides to using and troubleshooting bombcell can be found on the dedicated wiki.
🔍️ How bombcell works
Below is a flowchart of how bombcell evaluates and classifies each unit: <img align="center" src="./docs/images/bombcell_flowchart.png" width=100% height=100%>
🏁 Quick start guide
Overview
Bombcell extracts relevant quality metrics to categorize units into four categories: single somatic units, multi-units, noise units and non-somatic units.
Take a look at:
- the MATLAB live script
gettingStartedto see an example workflow and play around with our small toy dataset. - the Python Jupyter notebook
BC_demoand software specific ones :BC_demo_spikeGLX,BC_demo_open_ephysandBC_demo_other_recording_software - You can also take a look at the exercise we prepared for the 2024 Neuropixels course here.
Installation
Matlab
Bombcell requires MATLAB>=2019a.
To begin using Bombcell:
- clone the repository and the dependencies. You can do this either via git/GitHub desktop or directly by downloading the .zip file and decompressing it.
- add bombcell's and the dependancies' folders to MATLAB's path.
- in addition, if you want to compute ephys properties, change your working directory to
bombcell\+bc\+ep\+helpersin matlab and runmex -O CCGHeart.cto able to compute fast ACGs, using part of the FMAToolbox.
Dependencies
- npy-matlab, to load .npy data in.
- If you have z-lib compressed ephys data, compressed with mtscomp, you will need the zmat toolbox. More information about compressing ephys data here.
- prettify-matlab, to make plots pretty.
- MATLAB toolboxes:
- Signal Processing Toolbox
- Image Processing Toolbox
- Statistics and Machine Learning Toolbox
- Parallel Computing Toolbox
- Optimization Toolbox
In addition we would like to acknowledge:
- to compute fast ACGs, we use a function (
CCGHeart.c) part of the FMAToolbox, and it is already included in bombcell. - to read in spikeGLX meta data, we use a function from Jennifer Colonell's SpikeGLX_Datafile_Tools repository.
Python
Latest stable version
# Create a conda environment
conda create -n bombcell python=3.11
conda activate bombcell
# Install bombcell
pip install uv
uv pip install bombcell # you could do `pip install .`, but uv is much quicker!
Dev version (with the latest updates):
# Create a conda environment
conda create -n bombcell python=3.11
conda activate bombcell
# Clone latest bombcell repository from github
git clone https://github.com/Julie-Fabre/bombcell.git
cd bombcell/py_bombcell
# Install bombcell
pip install uv
uv pip install -e .
🤗 Support and citing
If you find Bombcell useful in your work, we kindly request that you cite:
Julie M.J. Fabre, Enny H. van Beest, Andrew J. Peters, Matteo Carandini, & Kenneth D. Harris. (2023). Bombcell: automated curation and cell classification of spike-sorted electrophysiology data. Zenodo. https://doi.org/10.5281/zenodo.8172821
:page_facing_up: License
Bombcell is under the open-source copyleft GNU General Public License 3. You can run, study, share, and modify the software under the condition that you keep and do not modify the license.
📬 Contact us
If you run into any issues or if you have any suggestions, please raise a github issue or create a pull request. You can also use the Neuropixels slack workgroup. Please star the project to support us, using the top-right "⭐ Star" button.
