Skip to main content

Flow Cytometry Toolkit

Project description

FlowKit

PyPI license PyPI pyversions PyPI version

Build Status Coverage Documentation Status

Overview

FlowKit is an intuitive 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.

Version 0.6 adds experimental support for exporting FlowJo 10 workspace files from a Session. Support is currently limited to exporting data from a single sample group. Please submit an issue if you find any bugs related to this feature.

Screenshot of scatterplot

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, with modified metadata and/or filtered events
      • 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
    • Create a compensation matrix from a set of compensation bead files
  • Transformation
    • Support for a variety of transformations used in the flow community:
      • 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
    • Limited support for importing FlowJo 10 workspace files. Workspace files are currently limited to the following features:
      • Linear, logarithmic, bi-exponential, and logicle transforms
      • Polygon, rectangle, ellipse, and quadrant gates
    • Programmatically create gating strategies including polygon, rectangle, range, ellipsoid, quadrant, and boolean gates
    • Easily retrieve gating results from a gating strategy as a Pandas DataFrame. Results include:
      • FCS sample ID
      • Gate name
      • Parent gate
      • Gate path
      • Gate level (position in gate hierarchy tree)
      • Absolute event count
      • Relative percentage
      • Absolute percentage
  • 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.6 or above. All dependencies are installable via pip, and are listed below.

Note: FlowKit and FlowUtils use C extensions for significant performance improvements. If using gcc, version 5 or above is required for correct Logicle and Hyperlog transformations.

Required Python dependencies:

  • flowio == 0.9.11
  • flowutils == 0.9.3
  • numpy >= 1.19
  • scipy >= 1.3
  • statsmodels
  • pandas >= 1.1
  • matplotlib >= 3.1
  • seaborn >= 0.11
  • bokeh >= 1.4
  • lxml >= 4.4
  • anytree >= 2.6

Installation

From PyPI

pip install flowkit

From source

git clone https://github.com/whitews/flowkit
cd flowkit

python setup.py install

Usage

Below are a few Jupyter notebooks demonstrating basic usage of the library. Note, the interactive scatterplots do not render on GitHub. Clone the repo (or download the example notebooks), and run them locally to see the fully interactive plots.

Contributing

Want to get involved in the development of FlowKit?

Read our CONTRIBUTING guidelines

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

FlowKit-0.6.2.tar.gz (68.8 kB view details)

Uploaded Source

File details

Details for the file FlowKit-0.6.2.tar.gz.

File metadata

  • Download URL: FlowKit-0.6.2.tar.gz
  • Upload date:
  • Size: 68.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.7.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.5

File hashes

Hashes for FlowKit-0.6.2.tar.gz
Algorithm Hash digest
SHA256 7610b5264f3ede52be1692522a944415e3fe5e22840e0badaff98c2135b17b59
MD5 20974c687c41e56f3a92fa6cc2e3e7fe
BLAKE2b-256 18a530989f64af178c8279a52edd4f37852ccac6afdd7617f18387e75d0b13ed

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