Skip to main content

Python tools for quantitative, reproducible flow cytometry analysis

Project description

Welcome to a different style of flow cytometry analysis. For a quick demo, check out an example IPython notebook

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.

  • 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 an IPython 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 management (and will make R users feel right at home.)

  • Extensible. Adding a new analysis module is simple; the interface to implement is only four functions.

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

Required packages

This will soon go into a setuptools spec. (TODO!)

For the core cytotools library, you need the following Python packages:

python >= 2.7
pandas >= 0.15.0
numexpr >= 2.1
seaborn >= 0.5.0
traits >= 4.0
FlowCytometryTools  >= 0.4.0

For the GUI, you additionally need:

pyface >= 4.0
pyqt >= 4.10

Note that many of these packages have additional dependencies, including but not limited to matplotlib, numpy, traitsui, decorator, etc. I’m pretty sure that they’re all well-behaved PyPI packages; you should be able to install all the above with pip install or the Canopy package manager.

Please note: I am a Linux user, and installing these packages is quite easy for me. It may be harder for Mac and Windows users; please write an install guide to help those that come after!

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-0.1.2.tar.gz (53.9 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: cytoflow-0.1.2.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cytoflow-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4f13cfd435f1bd4c0028751f409808b9909f3c8571aca9162397664109621d70
MD5 b0dd1993b25f96a4b5a8e32315edc351
BLAKE2b-256 0322ea9642e8adb2e5849c04169ebd311244df129df3090525a30e56d710824b

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