FlowIO is a Python library for reading / writing Flow Cytometry Standard (FCS) files, with zero external dependencies and is compatible with Python 3.7+.
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). 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
pip 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.