Skip to main content

Python tools for quantitative, reproducible flow cytometry analysis

Project description

Welcome to a different style of flow cytometry analysis. Take a look at some example Jupyter notebooks:

or some screenshots from the GUI

What’s wrong with other packages?

Packages such as FACSDiva and FlowJo are focused on primarily on identifying and counting subpopulations of cells in a multi-channel flow cytometry experiment. While this is important for many different applications, it reflects flow cytometry’s origins in separating mixtures of cells based on differential staining of their cell surface markers.

Cytometers can also be used to measure internal cell state, frequently as reported by fluorescent proteins such as GFP. In this context, they function in a manner similar to a high-powered plate-reader: instead of reporting the sum fluorescence of a population of cells, the cytometer shows you the distribution of the cells’ fluorescence. Thinking in terms of distributions, and how those distributions change as you vary an experimental variable, is something existing packages don’t handle gracefully.

What’s different about Cytoflow?

A few things.

  • Free and open-source. Use the software free-of-charge; modify it to suit your own needs, then contribute your changes back so the rest of the community can benefit from them.

  • A point-and-click interface for easy analysis.

  • Python modules to integrate into larger apps, automation, or for use in a Jupyter notebook

  • An emphasis on metadata. Cytoflow assumes that you are measuring fluorescence on several samples that were treated differently: either they were collected at different times, treated with varying levels of inducers, etc. You specify the conditions for each sample up front, then use those conditions to facet the analysis.

  • Cytometry analysis conceptualized as a workflow. Raw cytometry data is usually not terribly useful: you may gate out cellular debris and aggregates (using FSC and SSC channels), then compensate for channel bleed-through, and finally select only transfected cells before actually looking at the parameters you’re interested in experimentally. Cytoflow implements a workflow paradigm, where operations are applied sequentially; a workflow can be saved and re-used, or shared with your coworkers.

  • Easy to use. Sane defaults; good documentation; focused on doing one thing and doing it well.

  • Good visualization. I don’t know about you, but I’m getting really tired of FACSDiva plots.

  • Versatile. Built on Python, with a well-defined library of operations and visualizations that are well separated from the user interface. Need an analysis that Cytoflow doesn’t have? Export your workflow to a Jupyter notebook and use any Python module you want to complete your analysis. Data is stored in a pandas.DataFrame, which is rapidly becoming the standard for Python data analysis (and will make R users feel right at home.)

  • Extensible. (Adding a new analysis or visualization module)[http://cytoflow.readthedocs.io/en/latest/new_modules.html) is simple; the interface to implement is only two or three functions.

  • Quantitative and statistically sound. Ready access to useful data-driven tools for analysis, such as fitting 2-dimensional Gaussians for automated gating and mixture modeling.

Installation

If you just want the point-and-click version (not the Python modules), you can install it from http://bpteague.github.io/cytoflow/

See the installation notes on ReadTheDocs. Installation has been tested on Linux, Windows (x86_64) and Mac. Cytoflow is distributed as an Anaconda package (recommended) as well as a traditional Python package.

Documentation

Cytoflow’s documentation lives at ReadTheDocs. Perhaps of most use is the module index. The example Jupyter notebooks, above, demonstrate how the package is intended to be used interactively.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cytoflow-1.0.tar.gz (11.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cytoflow-1.0-cp37-cp37m-macosx_10_7_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.7mmacOS 10.7+ x86-64

cytoflow-1.0-cp36-cp36m-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.6mWindows x86-64

cytoflow-1.0-cp36-cp36m-macosx_10_7_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.6mmacOS 10.7+ x86-64

File details

Details for the file cytoflow-1.0.tar.gz.

File metadata

  • Download URL: cytoflow-1.0.tar.gz
  • Upload date:
  • Size: 11.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/3.6.8

File hashes

Hashes for cytoflow-1.0.tar.gz
Algorithm Hash digest
SHA256 0f78657baf58e0e29508307d84965c9d271f772c9238d2b49efc54b787e10f43
MD5 de0193d17cebdb46d3f8e5c02ffe23d6
BLAKE2b-256 52ab39aa4fb6258a8051a7845fbb64439dff2225128581acf6ce33d3e9a1d433

See more details on using hashes here.

File details

Details for the file cytoflow-1.0-cp37-cp37m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: cytoflow-1.0-cp37-cp37m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.7m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for cytoflow-1.0-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 3a38d21137080cd9694aaedeb3db4ca865a7e94b78ab04ff8b5845dcf1fbc854
MD5 42086738768aed49d6f0dc9d583d072d
BLAKE2b-256 9a574115d61abb98555b7c55cae55100dc7aeaeccf2ffc1dff8a6a7541c50e46

See more details on using hashes here.

File details

Details for the file cytoflow-1.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: cytoflow-1.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/3.6.8

File hashes

Hashes for cytoflow-1.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 82051420e123c08c3c316267af94c59824530cec416d6f91859cfcfa63d50622
MD5 6cccfeea6747656943afa99421ea6b9f
BLAKE2b-256 2bf57ff1322629dd676863a5bbaaa865bfa880b967ecc4467d5d343a43ebb250

See more details on using hashes here.

File details

Details for the file cytoflow-1.0-cp36-cp36m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: cytoflow-1.0-cp36-cp36m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.6m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for cytoflow-1.0-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 1c07cd0f56e0efb3a70448bbb21c5e488e0dc20a843732216523709e3a347caf
MD5 6073ad4b4f6dd2a5f6138dec587a175c
BLAKE2b-256 3175347d46fe36d257b198fa88ddff83c651ba07f07e29b63239c475fe2dfc09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page