Skip to content

Flow cytometry analysis tools, at the speed of Rust

Notifications You must be signed in to change notification settings

jrmoynihan/flow

Repository files navigation

FerrisAtCytometer

flow

Flow cytometry analysis tools, including libraries for reading FCS files, creating plots, working with gates, and QC'ing data, written in Rust.

🚧

⚠️ 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.

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 ndarray for matrix operations
  • Inspired by the need for fast, type-safe FCS file handling in Rust

Related Projects

  • Polars: Fast DataFrame library
  • ndarray: N-dimensional array library