A reimplementation of the suite2p library with novel data arhetecture and accross-day tracking pipeline.
Project description
cindra
The Sun lab reimplementation of the suite2p library that provides clean and modern code, expanded documentation, and a new pipeline to track cells across multiple days.
Detailed Description
This library contains the refactored, re-documented and repackaged suite2p source code, merged with the refactored, re-documented and repackaged multi-day cell tracking pipeline referenced here.
The scope of the changes realized in this implementation is extensive and still ongoing. Overall, the goal of this project is to preserve the algorithmic core of the suite2p library while optimizing the documentation, typing, and implementation where possible. Once this refactoring is over, the project would transition to exploring further algorithmic and computation optimizations, such as adding GPU support and fine-tuning both single-day and multi-day pipelines. Currently, there are no plans to keep up with the existing suite2p implementation unless it receives an update that majorly expands or enhances its functionality relative to this project.
Warning! The resultant cindra is now largely incompatible with both 'source' pipelines due to extensive modifications to the APIs, CLIs, and configuration parameters in this project relative to both sources. Currently, there are no plans to make cindra compatible with the existing or future suite2p library implementations.
Authorship Attribution
All original suite2p source code rights belong to the original authors and fall under the following copyright notice: Copyright © 2023 Howard Hughes Medical Institute, Authored by Carsen Stringer and Marius Pachitariu.
For the original suite2p API and, importantly, algorithm documentation, see the original documentation available here.
All original multi-day pipeline code rights belong to the original authors of the OSM Manuscript.
Multi-day registration code (diffeomorphic.py, deformation.py, spline_grid.py, pyramid.py): Original pirt library Copyright 2010-2017 Almar Klein, University of Twente.
All enhancements introduced in this library belong to the original authors and fall under the following copyright notice: Copyright © 2025 Cornell University, Authored by Ivan Kondratyev, Kushaan Gupta, and Elaine Wu.
Table of Contents
Features
- The library has been reworked to support the latest Python version (3.13). Support for older Python versions has been deprecated and, moving forward, the library will only support the latest available Python version.
- All dependencies have been pinned to specific versions, eliminating compatibility issues.
- The library has been repackaged using modern toml-based standards.
- The high-level API has been revised to allow flexibly executing specific single-day and multi-day pipeline steps via API or CLI calls. This allows experienced users to more easily parallelize pipeline steps locally or on remote compute servers and clusters.
- The source-code has been reformatted and refactored to improve readability and include explicit typing and improved docstrings. This effort is still ongoing and, eventually, will cover the entire codebase.
- The source code has been augmented with many fixes and small optimizations to improve library performance and make it easier to maintain the source code in the future.
- Critically, the library now includes a similarly reimplemented multi-day cell tracking pipeline from the OSM manuscript, enabling cindra to track cells both within-days and across-days.
Dependencies
All software library dependencies are installed automatically as part of the library installation.
Installation
Source
Note, installation from source is highly discouraged for everyone who is not an active project developer.
- Download this repository to your local machine using your preferred method, such as Git-cloning. Use one of the stable releases from GitHub.
- Unpack the downloaded zip and note the path to the binary wheel (
.whl) file contained in the archive. - Run
python -m pip install WHEEL_PATH, replacing 'WHEEL_PATH' with the path to the wheel file, to install the wheel into the active python environment.
pip
Use the following command to install the library using pip: pip install cindra.
Optional performance enhancement
If this library is installed on an AMD64 (x64) system, use the optional x64 installation specification to install
additional dependencies that enhance library performance in some processing scenario, e.g.:
pip install cindra[x64]
Usage
To learn about using this library to process your data, see detailed pipeline guides in the notebooks folder. Note, both example notebooks are shipped with the source code of the library each time it is installed from pip or source. The notebook examples fully cover the single-day and multi-day pipeline API and are recommended for all users, even those that intend to use the CLI commands to work with the library.
CLI
All functions demonstrated in the example notebooks can also be called via the Command-Line Interface exposed by this library upon installation into a Python environment. See the API documentation for the list of available CLI commands and their arguments.
API Documentation
See the API documentation for the detailed description of the methods and classes exposed by components of this library.
Note! As the work on refactoring the library is still ongoing, the current version of the API documentation does not reflect the entirety of the public-facing API. Additional packages will be added to the API documentation as they are being refactored and redocumented.
Versioning
This project uses semantic versioning. For the versions available, see the tags on this repository.
Note! Since this project started as an extension of the original suite2p project, public versioning starts from version 1.0.0, to reflect that this library has evolved from the original suite2p version 0.
License
This project is licensed under the GPL3 License: see the LICENSE file for details.
Acknowledgments
- All Sun lab members for providing the inspiration and comments during the development of this library.
- The authors and maintainers of the original suite2p and multi-day pipeline.
- The creators of all other projects used in our development automation pipelines and source code see pyproject.toml.
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 cindra-1.0.0rc1.tar.gz.
File metadata
- Download URL: cindra-1.0.0rc1.tar.gz
- Upload date:
- Size: 430.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df1ce5112eac3add07606eb1ad6133cd78fe86a2eb8a93a3f7c9ac9e11e29b5a
|
|
| MD5 |
1a7671dbc46ab90b4d3824648b03d505
|
|
| BLAKE2b-256 |
655282c6647f8495dede8f823928f4228940a63be7cf0a521b76c6c63fb21c67
|
File details
Details for the file cindra-1.0.0rc1-py3-none-any.whl.
File metadata
- Download URL: cindra-1.0.0rc1-py3-none-any.whl
- Upload date:
- Size: 453.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cbf42c9810e4443f32f6ddfb2ef4edfc9107f46d5035ad3235d3960e23556e4
|
|
| MD5 |
f00f3e3e88664d9f688663ef160f8f62
|
|
| BLAKE2b-256 |
bc8bf735769372b9c782f560202a2e147bd931ffbb25023878edb19fb297b78e
|