Skip to main content

FlowKit

"FlowKit"

PyPI license PyPI pyversions PyPI version DOI

Test (master) Test (develop) codecov Documentation Status PyPI - Downloads

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. Please see the changelogs for the latest API changes.

FlowKit Overview

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.10 - 3.14. 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.4.0
  • flowutils >= 1.2.2
  • anytree >= 2.13
  • bokeh >= 3.5
  • contourpy >= 1.3.1
  • lxml >= 6.0
  • networkx >= 3.3
  • numpy >2
  • pandas >= 2.2
  • psutils >= 7
  • pyarrow>=18
  • scipy >= 1.14

Installation

NOTE: For macOS users running on Apple Silicon, the version of pip may 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.

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.

Contributing

Want to get involved in the development of FlowKit?

Read our CONTRIBUTING guidelines

Cite FlowKit

White, S., Quinn, J., Enzor, J., Staats, J., Mosier, S. M., Almarode, J., Denny, T. N., Weinhold, K. J., Ferrari, G., & Chan, C. (2021). FlowKit: A Python toolkit for integrated manual and automated cytometry analysis workflows. Frontiers in Immunology, 12. https://doi.org/10.3389/fimmu.2021.768541

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.

  • van den Berg, Nathan et al. "Emergent collective alignment gives competitive advantage to longer cells during range expansion." Nature Communications (December 2025), doi:10.1038/s41467-025-67791-5
  • Furtwängler, Benjamin et al. "Mapping early human blood cell differentiation using single-cell proteomics and transcriptomics." Science, 390(6770), eadr8785 (October 2025), doi:https:10.1126/science.adr8785
  • Yue, Alice et al. "AI in flow cytometry: Current applications and future directions." Cytometry Part B Clinical Cytometry, 108(5), 404-420 (September 2025), doi:10.1002/cyto.b.22255
  • Prigge, Michael J. et al. "Comparative mutant analyses reveal a novel mechanism of ARF regulation in land plants." Nature Plants 821-835 - (April 2025), doi:10.1038/s41477-025-01973-3
  • Spies, Nicholas C. et al. "Machine Learning Methods in Clinical Flow Cytometry." Cancers 17(3), 483 (February 2025), doi:10.3390/cancers17030483
  • 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

Metadata

Release files for FlowKit 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for FlowKit 1.3.2
File Size Uploaded
flowkit-1.3.2.tar.gz 106.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for FlowKit 1.3.2
File Interpreter ABI Platform
flowkit-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 221.4 kB

Release files / flowkit-1.3.2.tar.gz

Download URL flowkit-1.3.2.tar.gz
Size 106.1 kB
Tags Source
SHA-256 checksum
How to use checksums
706b965e6af0e841b39aed83f5e5aba6a8bad6eb145f44be9bb7ccaea3e5db8f
BLAKE2b-256 checksum
How to use checksums
fdfbf45df7ccb6efd340e826a4ef2e181e9c1b9ce94da87e03853c6cb47ca05f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / flowkit-1.3.2-py3-none-any.whl

Download URL flowkit-1.3.2-py3-none-any.whl
Size 115.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b659e6bf5e32e738718f988e85db4dbbb1a2f5aeacdac43ad202b91990fc4ece
BLAKE2b-256 checksum
How to use checksums
fab46fa6de82cd9cefd9a317237d19612438a5a3b1b7168eb2333a11b4e34b92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.3.2 This release

2 release files

1.3.1

2 release files

1.3.0

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.2.2

1 release file

0.1.0

2 release files

0.0.9

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page