Skip to content

Repository files navigation

CI Documentation

Fireflow: a library to read and write standards-compliant FCS files

FCS (flow cytometry standard) files are the canonical format for storing data produced by flow cytometers.

fireflow aims to losslessly read and write FCS files produced from any machine with the following versions:

  • FCS2.0
  • FCS3.0
  • FCS3.1
  • FCS3.2

Key features:

  • Is written in Rust (reliable and fast)
  • Fully implements/validates the FCS standards (see implementation details)
  • Can convert between FCS versions
  • Can repair non-compliant FCS files while minimizing unreadable data (see common issues)
  • Has API for command line, Python, R (planned)

Status

Pre-release

Requirements

  • Rust version: 1.89+
  • Operating systems: Windows, MacOS, Linux

API support

In addition to the core Rust library, fireflow has several wrappers.

Python

Tested Python versions:

  • CPython 3.11
  • CPython 3.12
  • CPython 3.13
  • CPython 3.14

The python API is documented here.

The Python package/module for fireflow is pyreflow.

pyreflow is not yet available via PyPI or other package respositories so it must be built from source:

Install using pip/git:

pip install git+https://github.com/usnistgov/fireflow.git#subdirectory=pyreflow

This will build and install the master branch into the currently active environment.

Alternatively, install into a conda environment.

Example env.yml:

channels:
  - conda-forge
dependencies:
  - maturin=1.8.7
  - pip:
    - git+https://github.com/usnistgov/fireflow.git#subdirectory=pyreflow

Command Line Interface

See here.

R

Coming soon

Development and Support

This library was developed as part of the ongoing efforts of the NIST Flow Cytometry Standards Consortium.

Please submit code-related issues to the issue tracker in this repository. Please send general inquiries to njd2@nist.gov.

About

A fully standards-compliant FCS reader/writer library

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages