flowkit
A Python toolkit for flow cytometry analysis supporting GatingML and FlowJo workspaces
Science Score: 49.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
Found 14 DOI reference(s) in README -
✓Academic publication links
Links to: frontiersin.org, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.6%) to scientific vocabulary
Keywords
Repository
A Python toolkit for flow cytometry analysis supporting GatingML and FlowJo workspaces
Basic Info
- Host: GitHub
- Owner: whitews
- License: bsd-3-clause
- Language: Python
- Default Branch: master
- Homepage: https://flowkit.readthedocs.io
- Size: 137 MB
Statistics
- Stars: 184
- Watchers: 3
- Forks: 53
- Open Issues: 22
- Releases: 26
Topics
Metadata Files
README.md
FlowKit
- Overview
- Features
- Requirements
- Installation
- Documentation
- Contributing
- Cite FlowKit
- Projects & Research Using FlowKit
Overview
FlowKit is a Python toolkit for flow cytometry analysis and visualization, with full support for the GatingML 2.0 standard and limited support for FlowJo 10 workspace files.

Features
- Read / Write FCS Files
- Read FCS files, supporting FCS versions 2.0, 3.0, and 3.1
- Export FCS data as:
- A new FCS 3.1 file
- NumPy array
- Pandas DataFrame
- CSV text file
- Compensation
- Compensate events using spillover matrices from:
- $SPILL or $SPILLOVER keyword value
- FlowJo tab-delimited text
- NumPy array
- GatingML 2.0 spectrumMatrix XML element
- Transformation
- Logicle
- Inverse hyperbolic sine (ArcSinh)
- FlowJo Bi-exponential
- Hyperlog
- Logarithmic
- Channel ratios
- Linear
- Gating
- Full support for the GatingML 2.0 specification
- Import GatingML XML documents as gating strategies
- Export gating strategies as a valid GatingML XML document
- Import FlowJo 10 workspace files, supporting the following features:
- Linear, logarithmic, bi-exponential, and logicle transforms
- Polygon, rectangle, ellipse, quadrant and Boolean gates
- Programmatically create gating strategies including polygon, rectangle, range, ellipsoid, quadrant, and boolean gates
- Retrieve gating results as a Pandas DataFrame
- Visualization
- Histogram of single channel data
- Contour density plot of two channels
- Interactive scatter plot of two channels
- Interactive scatter plot matrix of any combination of channels
- Interactive scatter plots of gates with sample events
Requirements
FlowKit supports Python version 3.9 - 3.12. All dependencies are installable via pip, and are listed below.
NOTE: FlowUtils uses C extensions for significant performance improvements. For most platforms and Python versions, pre-built binaries of FlowUtils are available in PyPI (i.e. installable via
pip). If a pre-built binary is not available for your environment, the C extensions must be compiled using the source package.
Required Python dependencies:
- flowio >= 1.3.0
- flowutils >= 1.1.0
- anytree >= 2.12
- bokeh >= 3.4
- contourpy >= 1.2.0
- lxml >= 5.1
- networkx >= 3.2
- numpy >= 1.22, <2
- pandas >= 2.1
- psutils >= 5.9
- scipy >= 1.11.1
Installation
NOTE: For macOS users running on Apple Silicon, the version of
pipmay need to be upgraded prior to installing FlowKit in order to install the required dependencies.
From PyPI
pip install flowkit
From source
Clone the repository and ensure pip is up-to-date.
git clone https://github.com/whitews/flowkit
cd flowkit
pip install --upgrade pip
pip install .
Documentation
The FlowKit API documentation is available on ReadTheDocs here. The tutorial notebooks in the docs/notebooks directory are a great place to get started with FlowKit, and are linked below.
If you have any questions about FlowKit, find any bugs, or feel something is missing from the tutorials below please submit an issue to the GitHub repository here.
Changelogs
Changelogs for versions are available here
Tutorials
The series of Jupyter notebook tutorials can be found in the docs/notebooks directory of this repository. Note, the interactive scatterplots do not render on GitHub. The rendered versions are available on our documentation page here. Or, clone the repo and run them locally to see the fully interactive plots.
- Part 1 - Sample Class
- Part 2 - transforms Module & Matrix Class
- Part 3 - GatingStrategy & GatingResults Classes
- Part 4 - gates Module
- Part 5 - Session Class
- Part 6 - Workspace Class
Advanced Examples
Below are more advanced and practical examples for using FlowKit. If you have an example you would like to submit for consideration in this list (preferably with data), please submit an issue.
- Compare mean fluorescence intensity (MFI) in gated populations
- Importing a FlowJo 10 WSP file & replicating analysis in FlowKit
- Dimension reduction on gated populations
- Comparison between Leiden & Louvain clustering
- Saving Flow Analysis Data as AnnData objects for ScanPy
Contributing
Want to get involved in the development of FlowKit?
Read our CONTRIBUTING guidelines
Cite FlowKit
Projects & Research Using FlowKit
The following projects and publications have utilized FlowKit. If you have a package or publication where FlowKit was used, and you want it listed here, feel free to submit an issue letting me know.
- Ishii, Hiroto et al. "Establishing a method for the cryopreservation of viable peripheral blood mononuclear cells in the International Space Station." npj Microgravity vol. 10, Article number: 84 (2024), doi:10.1038/s41526-024-00423-2
- Dyikanov, Daniiar et al. "Comprehensive peripheral blood immunoprofiling reveals five immunotypes with immunotherapy response characteristics in patients with cancer." Cancer Cell vol. 42,5 (2024), doi:10.1016/j.ccell.2024.04.008
- Mortelecque, Justine et al. "A selection and optimization strategy for single-domain antibodies targeting the PHF6 linear peptide within the Tau intrinsically disordered protein." Journal of Biological Chemistry (2024), doi:10.1016/j.jbc.2024.107163
- Schmidt, Florian et al. "In-depth analysis of human virus-specific CD8+ T cells delineates unique phenotypic signatures for T cell specificity prediction." Cell Reports vol. 42,10 (2023), doi:10.1016/j.celrep.2023.113250
- Schuster, Jonas et al. “Combining real-time fluorescence spectroscopy and flow cytometry to reveal new insights in DOC and cell characterization of drinking water.” Frontiers in Environmental Chemistry (2022), doi:10.3389/fenvc.2022.931067
- Rendeiro, André F et al. "Profiling of immune dysfunction in COVID-19 patients allows early prediction of disease progression." Life science alliance vol. 4,2 e202000955. 24 Dec. 2020, doi:10.26508/lsa.202000955
Owner
- Name: Scott White
- Login: whitews
- Kind: user
- Location: Durham, NC
- Repositories: 25
- Profile: https://github.com/whitews
GitHub Events
Total
- Create event: 3
- Release event: 4
- Issues event: 36
- Watch event: 29
- Issue comment event: 80
- Push event: 30
- Pull request event: 5
- Fork event: 14
Last Year
- Create event: 3
- Release event: 4
- Issues event: 36
- Watch event: 29
- Issue comment event: 80
- Push event: 30
- Pull request event: 5
- Fork event: 14
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| whitews | w****s@g****m | 1,532 |
| Hersh Bhargava | h****a@g****m | 6 |
| Tristan Ranff | g****t@r****e | 2 |
| Karl Sebby | k****y@g****m | 1 |
| Frank Li | f****i@s****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 163
- Total pull requests: 14
- Average time to close issues: 3 months
- Average time to close pull requests: 14 days
- Total issue authors: 69
- Total pull request authors: 9
- Average comments per issue: 2.78
- Average comments per pull request: 2.07
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 29
- Pull requests: 5
- Average time to close issues: 13 days
- Average time to close pull requests: about 19 hours
- Issue authors: 13
- Pull request authors: 3
- Average comments per issue: 1.52
- Average comments per pull request: 1.8
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- whitews (61)
- rwbaer (9)
- andreas-wilm (9)
- blabarthe1 (5)
- catcd (3)
- schlaepferp (3)
- krcurtis (3)
- niclas-thomas (2)
- laserson (2)
- hbhargava7 (2)
- tomyputw (2)
- nettilor (2)
- r0oland (2)
- AliceAlmazan (2)
- paulmaschhoff (2)
Pull Request Authors
- ksebby (4)
- tristan-ranff (3)
- hbhargava7 (2)
- akmazian (2)
- machichima (2)
- ikonsta (2)
- strategist333 (1)
- r0oland (1)
- whitews (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 2,043 last-month
- Total dependent packages: 1
- Total dependent repositories: 1
- Total versions: 32
- Total maintainers: 1
pypi.org: flowkit
Flow Cytometry Toolkit
- Homepage: https://github.com/whitews/flowkit
- Documentation: https://flowkit.readthedocs.io/
- License: BSD
-
Latest release: 1.2.3
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- Sphinx >=3
- autoclasstoc *
- nbsphinx *
- anytree >=2.6
- bokeh >=2,<3.0
- flowio ==1.1.1
- flowutils >=1,<1.1
- lxml >=4.4
- matplotlib >=3.1
- networkx >=2.3
- numpy >=1.20
- pandas >=1.1
- psutil >=5.8
- scipy >=1.3
- seaborn >=0.11,<0.12
