Skip to content

fish-quant/big-fish

Repository files navigation

Big-FISH

PyPI version Build Status Documentation Status codecov License Python version

Big-FISH is a python package for the analysis of smFISH images. It includes various methods to analyze microscopy images, such spot detection and segmentation of cells and nuclei. The package allows the user represent the extract properties of a cell as coordinates (see figure below). The ultimate goal is to simplify large scale statistical analysis and quantification.

Cell image (smFISH channel) and its coordinates representation

Installation

Dependencies

Big-FISH requires Python 3.6 or newer. Additionally, it has the following dependencies:

  • numpy (>= 1.16.0)
  • scipy (>= 1.4.1)
  • scikit-learn (>= 0.24.0)
  • scikit-image (>= 0.14.2)
  • matplotlib (>= 3.0.2)
  • pandas (>= 0.24.0)
  • mrc (>= 0.1.5)

For segmentation purpose, two additional dependencies can be requested:

  • tensorflow (>= 2.3.0)
  • tensorflow-addons (>= 0.12.1)

Virtual environment

To avoid dependency conflicts, we recommend the use of a dedicated virtual or conda environment. In a terminal run the command:

conda create -n bigfish_env python=X.Y
source activate bigfish_env

With X.Y a valid Python version greater or equal than 3.6. Note that Big-FISH has been tested for Python 3.6, 3.7, 3.8, 3.9 and 3.10.

We then recommend two options to install Big-FISH in your virtual environment: from PyPi or GitHub.

Download the package from PyPi

Use the package manager pip to install Big-FISH. In a terminal run the command:

pip install big-fish

Clone package from GitHub

Clone the project's GitHub repository and install it manually with the following commands:

git clone git@github.com:fish-quant/big-fish.git
cd big-fish
pip install .

Usage

Big-FISH provides a toolbox for the full analysis pipeline of smFISH images. A complete documentation is available online.

This package is part of the FISH-Quant framework and several examples are also available as Jupyter notebooks.

Support

If you have any question relative to the repository, please open an issue. You can also contact Arthur Imbert or Florian Mueller.

Roadmap (suggestion)

Version 1.0.0:

  • Complete code coverage.
  • Unpin deep learning dependencies
  • Add a pretrained pattern recognition model

Development

Source code

You can access the latest sources with the commands:

git clone git@github.com:fish-quant/big-fish.git
cd big-fish
git checkout develop

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Testing

Please make sure to update tests as appropriate if you open a pull request. You can install exacts dependencies and specific version of pytest by running the following command:

pip install -r requirements_dev.txt

To perform unit tests, run :

pytest bigfish

Bibtex citation

If you exploit this package for your work, please cite:

@article{Imbert2022,
    author  = {Imbert, Arthur and Ouyang, Wei and Safieddine, Adham and 
               Coleno, Emeline and Zimmer, Christophe and 
               Bertrand, Edouard and Walter, Thomas and Mueller, Florian},
    doi     = {10.1261/rna.079073.121},
    journal = {RNA},
    month   = mar,
    number  = {6},
    pages   = {786--795},
    title   = {{FISH-quant v2: a scalable and modular tool for smFISH image 
                analysis}},
    volume  = {28},
    year    = {2022}
}