Skip to content

jrmoynihan/flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

401 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FerrisAtCytometer

flow

Flow cytometry analysis tools, oxidized. The aim of this workspace is to leverage the blazing-fast speed, memory and type safety, and fearless concurrency of the Rust language to scale-up to modern flow cytometry workflows requiring millions of events without breaking a sweat. Biological data can be unpredictable; the tools to analyze it shouldn't be.

The workspace includes libaries for:

  • Reading FCS files
  • Creating plots
  • Working with gates
  • QC'ing data
  • Performing unmixing

🚧

⚠️ Under Construction: This workspace is actively under development. APIs may change, and some features may be incomplete. Use with caution in production environments.

🚧

License: MIT Repository

Overview

This workspace contains multiple crates for flow cytometry analysis:

  • flow-fcs: A comprehensive, type-safe API for reading, parsing, and manipulating Flow Cytometry Standard (FCS) files. Built on top of Polars for efficient columnar data operations, with zero-copy data access, SIMD-accelerated operations, and support for common flow cytometry data transformations.
  • flow-plots: Package for drawing and interacting with plots in flow cytometry data.
  • flow-gates: Package for drawing and interacting with gates in flow cytometry data.
  • peacoqc-rs: A reimplementation of the PeacoQC (R) algorithm from the Saeys lab, parallelized in Rust.
  • peacoqc-cli: A command-line interface (CLI) tool for using peacoqc-rs.
  • flow-tru-ols: TRU-OLS (Truncated ReUnmixing OLS) algorithm for flow cytometry unmixing; optional integration with flow-fcs and flow-plots.
  • tru-ols-cli: Command-line tool for TRU-OLS unmixing (batch or single-file, with optional QC and plot output).

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or feature request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built with Polars for high-performance data operations
  • Uses faer for pure-Rust linear algebra (compensation, unmixing)
  • Inspired by the need for fast, type-safe FCS file handling in Rust

Related Projects

  • Polars: Fast DataFrame library
  • faer: Pure-Rust linear algebra library
  • PeacoQC: Peak-based selection of high quality cytometry data