cytoflow

A Python toolbox for quantitative, reproducible flow cytometry analysis

https://github.com/cytoflow/cytoflow

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 14 committers (42.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary

Keywords

analysis data-driven flow-cytometry-analysis fluorescence gate jupyter mixture-modeling notebooks python scientific-computing workflow
Last synced: 6 months ago · JSON representation

Repository

A Python toolbox for quantitative, reproducible flow cytometry analysis

Basic Info
  • Host: GitHub
  • Owner: cytoflow
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 196 MB
Statistics
  • Stars: 200
  • Watchers: 12
  • Forks: 54
  • Open Issues: 60
  • Releases: 23
Topics
analysis data-driven flow-cytometry-analysis fluorescence gate jupyter mixture-modeling notebooks python scientific-computing workflow
Created about 11 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.md

Cytoflow

Python tools for quantitative, reproducible flow cytometry analysis

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

or some screenshots from the GUI

Cytoflow is developed sporadically.

My 'day job' is teaching at a regional comprehensive college, so during the semester I may not have a huge amount of time to respond to bugs and feature requests. I'm still activately developing Cytoflow, so please continue to file bugs!

Cytoflow's development isn't free -- your support is appreciated.

I pay several hundred dollars a year to sign the code so it can be installed on Windows and Mac systems. If you have found it useful, consider contributing a few dollars on Ko-Fi?

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 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://cytoflow.github.io/

See the installation notes on ReadTheDocs. Installation has been testedon Linux, Windows (x86_64) and Mac (both Intel and Apple Silicon).
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.

Owner

  • Name: cytoflow
  • Login: cytoflow
  • Kind: organization

GitHub Events

Total
  • Create event: 21
  • Release event: 4
  • Issues event: 59
  • Watch event: 28
  • Delete event: 12
  • Issue comment event: 66
  • Push event: 146
  • Pull request event: 2
  • Fork event: 7
Last Year
  • Create event: 21
  • Release event: 4
  • Issues event: 59
  • Watch event: 28
  • Delete event: 12
  • Issue comment event: 66
  • Push event: 146
  • Pull request event: 2
  • Fork event: 7

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2,983
  • Total Committers: 14
  • Avg Commits per committer: 213.071
  • Development Distribution Score (DDS): 0.02
Past Year
  • Commits: 222
  • Committers: 2
  • Avg Commits per committer: 111.0
  • Development Distribution Score (DDS): 0.005
Top Committers
Name Email Commits
Brian Teague b****e@g****m 2,923
kristjaneerik e****k@m****u 20
Debra Van Egeren d****e@m****u 15
Guillermo Vargas g****s@m****u 4
brian b****n@g****a 4
brian b****n@c****a 4
unknown B****n@T****u 3
ejayawant 4****t 2
dvanegeren d****n@g****m 2
Brian Teague b****n@t****t 2
Demarcus Briers d****s@b****u 1
brian b****n@c****o 1
Brian Teague b****n@n****u 1
Brian Teague b****n@B****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 122
  • Total pull requests: 19
  • Average time to close issues: 12 months
  • Average time to close pull requests: over 1 year
  • Total issue authors: 53
  • Total pull request authors: 10
  • Average comments per issue: 1.55
  • Average comments per pull request: 1.21
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 32
  • Pull requests: 2
  • Average time to close issues: about 1 month
  • Average time to close pull requests: N/A
  • Issue authors: 10
  • Pull request authors: 1
  • Average comments per issue: 0.69
  • Average comments per pull request: 0.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • bpteague (47)
  • benweinberg89 (9)
  • NicholasDeLateur (4)
  • protist (3)
  • crife-pact (3)
  • dkraut01 (2)
  • deemishra (2)
  • maaikesangster (2)
  • AlFontal (2)
  • heesters (2)
  • IsaacUtah1379 (2)
  • NessaNoctiluca (2)
  • alefrol638 (2)
  • fbastok (1)
  • Jsakkos (1)
Pull Request Authors
  • kristjaneerik (4)
  • dependabot[bot] (3)
  • ejayawant (2)
  • michaelosthege (2)
  • CaRniFeXeR (2)
  • akshayMpatel (2)
  • mpiersonsmela (1)
  • drpeterfoster (1)
  • tim-tx (1)
  • pintomollo (1)
Top Labels
Issue Labels
wontfix (1)
Pull Request Labels
dependencies (3)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 245 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 20
  • Total maintainers: 1
pypi.org: cytoflow

Python tools for quantitative, reproducible flow cytometry analysis

  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 245 Last month
Rankings
Stargazers count: 5.7%
Forks count: 6.0%
Average: 8.8%
Dependent repos count: 8.9%
Dependent packages count: 10.1%
Downloads: 13.2%
Maintainers (1)
Last synced: 6 months ago