Fissa
A Python toolbox for Fast Image Signal Separation Analysis, designed for Calcium Imaging data.
Install / Use
/learn @rochefort-lab/FissaREADME
FISSA
+------------------+----------------------------------------------------------------------+ | Latest Release | |PyPI badge| |Py Versions| | +------------------+----------------------------------------------------------------------+ | License | |License| | +------------------+----------------------------------------------------------------------+ | Documentation | |readthedocs| | +------------------+----------------------------------------------------------------------+ | Build Status | |Documentation| |GHA tests| |AppVeyor| |Codecov| |pre-commit-status| | +------------------+----------------------------------------------------------------------+ | Code style | |black| |pre-commit| | +------------------+----------------------------------------------------------------------+ | Interactive Demo | |Binder| | +------------------+----------------------------------------------------------------------+ | Support | |Gitter| | +------------------+----------------------------------------------------------------------+ | Citation | |DOI badge| | +------------------+----------------------------------------------------------------------+
FISSA (Fast Image Signal Separation Analysis) is a Python package for decontaminating somatic signals from two-photon calcium imaging data. It can read images in tiff format and ROIs from zip files exported by ImageJ_; or operate on numpy arrays, generated by importing files stored in other or as the output of other packages.
For details of the algorithm, please see our companion paper <doi_>_
published in Scientific Reports. For the code used to generate the simulated
data in the companion paper, see the SimCalc repository_.
FISSA is compatible with both Python 2.7 and Python >=3.5, however it is
strongly encouraged that you use Python 3, since as Python 2 has
reached its end of life <sunset_python2_>_.
FISSA is continually tested on Ubuntu, Windows, and Mac OSX during its
development cycle.
Documentation, including the full API, is available online at readthedocs_.
If you encounter a specific problem please open a new issue. For general
discussion and help with installation or setup, please see the Gitter chat.
.. _ImageJ: https://imagej.net/ .. _doi: https://www.doi.org/10.1038/s41598-018-21640-2 .. _SimCalc repository: https://github.com/rochefort-lab/SimCalc/ .. _sunset_python2: https://www.python.org/doc/sunset-python-2/ .. _readthedocs: https://fissa.readthedocs.io .. _open a new issue: https://github.com/rochefort-lab/fissa/issues/new .. _Gitter chat: https://gitter.im/rochefort-lab/fissa
Usage
A concise example of how to use FISSA is as follows.
.. code:: python
import fissa
result = fissa.run_fissa("path/to/tiffs", "path/to/rois.zip")
# The decontaminated time series is now available as
# result[roi_index, tiff_index][0, :]
We also have several example notebooks for a basic workflow and more complicated workflows where FISSA needs to interact with the outputs of other two-photon calcium imaging toolboxes which can be used to automatically detect cells.
You can try out each of the example notebooks interactively in your browser on
Binder_ (note that it may take 10 minutes for Binder to boot up).
Note that the Suite2p notebook is housed in its own repository <suite2p_example_repo_>, and runs on a separate Binder <suitebind_> instance from the other notebooks.
+---------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------+
| Workflow | Jupyter Notebook | Script |
+===========================+======================+===============================+==========================+================================+==============================+
| Function-based (ImageJ_) | Docs <func_html_>_ | Launch Binder <func_bind_>_ | Download <func_down_>_ | Linux/Mac <func_nixscript_>_ | Windows <func_winscript_>_ |
+---------------------------+----------------------+-------------------------------+--------------------------+--------------------------------+------------------------------+
| Object-oriented (ImageJ_) | Docs <basichtml_>_ | Launch Binder <basicbind_>_ | Download <basicdown_>_ | Linux/Mac <basicnixscript_>_ | Windows <basicwinscript_>_ |
+---------------------------+----------------------+-------------------------------+--------------------------+--------------------------------+------------------------------+
| With suite2p_ | Docs <suitehtml_>_ | Launch Binder <suitebind_>_ | Download <suitedown_>_ | | |
+---------------------------+----------------------+-------------------------------+--------------------------+--------------------------------+------------------------------+
| With SIMA_ | Docs <sima_html_>_ | Launch Binder <sima_bind_>_ | Download <sima_down_>_ | | |
+---------------------------+----------------------+-------------------------------+--------------------------+--------------------------------+------------------------------+
| With CNMF (MATLAB)_ | Docs <cnmf_html_>_ | Launch Binder <cnmf_bind_>_ | Download <cnmf_down_>_ | | |
+---------------------------+----------------------+-------------------------------+--------------------------+--------------------------------+------------------------------+
.. _Binder: https://mybinder.org/v2/gh/rochefort-lab/fissa/master?filepath=examples
.. _func_bind: https://mybinder.org/v2/gh/rochefort-lab/fissa/master?filepath=examples/Basic%20usage%20-%20Function.ipynb .. _func_html: https://fissa.readthedocs.io/en/latest/examples/Basic%20usage%20-%20Function.html .. _func_view: https://github.com/rochefort-lab/fissa/blob/master/examples/Basic%20usage%20-%20Function.ipynb .. _func_down: https://raw.githubusercontent.com/rochefort-lab/fissa/master/examples/Basic%20usage%20-%20Function.ipynb .. _func_nixscript: https://github.com/rochefort-lab/fissa/blob/master/examples/basic_usage_func.py .. _func_winscript: https://github.com/rochefort-lab/fissa/blob/master/examples/basic_usage_func_windows.py
.. _basicbind: https://mybinder.org/v2/gh/rochefort-lab/fissa/master?filepath=examples/Basic%20usage.ipynb .. _basichtml: https://fissa.readthedocs.io/en/latest/examples/Basic%20usage.html .. _basicview: https://github.com/rochefort-lab/fissa/blob/master/examples/Basic%20usage.ipynb .. _basicdown: https://raw.githubusercontent.com/rochefort-lab/fissa/master/examples/Basic%20usage.ipynb .. _basicnixscript: https://github.com/rochefort-lab/fissa/blob/master/examples/basic_usage.py .. _basicwinscript: https://github.com/rochefort-lab/fissa/blob/master/examples/basic_usage_windows.py
.. _suite2p: https://suite2p.readthedocs.io/ .. _suite2p_example_repo: https://github.com/rochefort-lab/fissa-suite2p-example/ .. _suitebind: https://mybinder.org/v2/gh/rochefort-lab/fissa-suite2p-example/master?filepath=Suite2p%20example.ipynb .. _suitehtml: https://fissa.readthedocs.io/en/latest/examples/Suite2p%20example.html .. _suiteview: https://github.com/rochefort-lab/fissa-suite2p-example/blob/master/Suite2p%20example.ipynb .. _suitedown: https://raw.githubusercontent.com/rochefort-lab/fissa-suite2p-example/master/Suite2p%20example.ipynb
.. _SIMA: http://www.losonczylab.org/sima/ .. _sima_bind: https://mybinder.org/v2/gh/rochefort-lab/fissa/master?filepath=examples/SIMA%20example.ipynb .. _sima_html: https://fissa.readthedocs.io/en/latest/examples/SIMA%20example.html .. _sima_view: https://github.com/rochefort-lab/fissa/blob/master/examples/SIMA%20example.ipynb .. _sima_down: https://raw.githubusercontent.com/rochefort-lab/fissa/master/examples/SIMA%20example.ipynb
.. _CNMF (MATLAB): https://github.com/flatironinstitute/CaImAn-MATLAB .. _cnmf_bind: https://mybinder.org/v2/gh/rochefort-lab/fissa/master?filepath=examples/cNMF%20example.ipynb .. _cnmf_html: https://fissa.readthedocs.io/en/latest/examples/cNMF%20example.html .. _cnmf_view: https://github.com/rochefort-lab/fissa/blob/master/examples/cNMF%20example.ipynb .. _cnmf_down: https://raw.githubusercontent.com/rochefort-lab/fissa/master/examples/cNMF%20example.ipynb
These notebooks can also be run on your own machine. To do so, you will need to:
-
If you want to run the Suite2p notebook, you'll have to install everything into a conda environment, as per their
installation instructions <install_suite2p_>_. -
Install fissa with its plotting dependencies
pip install fissa[plotting]. -
If you want to run the sima notebook, you will also have to install sima with
pip install sima. Note that sima only supports python<=3.6. -
Download
a copy of the repository <download_repo_>, unzip it and browse to the examples directory. -
Start up a Jupyter notebook server to run our notebooks
jupyter notebook.
If you're new to Jupyter notebooks, here is an approachable tutorial_.
.. _install_suite2p: https://mouseland.github.io/suite2p/_build/html/installation.html .. _download_repo: https://github.com/rochefort-lab/fissa/archive/master.zip .. _examples: https://github.com/rochefort-lab/fissa/tree/master/examples .. _an approachable tutorial: https://www.datacamp.com/community/tutorials/tutorial-jupyter
