FlowIO is a Python library for reading / writing Flow Cytometry Standard (FCS) files and has zero external dependencies. FlowIO is compatible with Python 3.7+ (FlowIO v0.9.9 was the last release supporting Python 2).
FlowIO retrieves event data exactly as it is encoded in the FCS file: as a 1-dimensional list without separating the events into channels or performing any preprocessing (e.g. applying gain). However, all the metadata stored in the FCS file is available as a dictionary via the 'text' attribute. Basic attributes are also available for commonly accessed properties. For example, the channel count can be used to easily convert the event data to a multi-column NumPy array:
import flowio
import numpy
fcs_data = flowio.FlowData('example.fcs')
npy_data = numpy.reshape(fcs_data.events, (-1, fcs_data.channel_count))
For higher level interaction with flow cytometry data, including GatingML and FlowJo 10 support, see the related FlowKit project.
The recommended way to install FlowIO is via the pip
command:
pip install flowio
Or, if you prefer, you can install from the GitHub source:
git clone https://github.com/whitews/flowio
cd flowio
python setup.py install
The FlowIO API documentation is available on ReadTheDocs here. If you have any questions about FlowIO or find any bugs please submit an issue to the GitHub repository here.