FlowIO 是用于处理流式细胞术标准(FCS)文件的轻量 Python 库,支持 FCS 2.0、3.0 和 3.1 版本,依赖极少,适合后端服务、数据管道和基础文件操作。
用途:解析 FCS 文件、提取元数据和通道信息、将事件数据转为 NumPy 数组、导出为 CSV 或 DataFrame、创建新 FCS 文件、拆分多数据集文件,以及在进行高级分析前做预处理。
主要能力:通过 FlowData 类读取文件,获取版本、事件数、通道标签(PnN/PnS)、数据范围等信息;as_array() 返回形状为(事件数, 通道数)的 NumPy 数组,可选预处理(增益缩放、对数变换、时间缩放)。支持仅读取 TEXT 段以节省内存,自动分类散射、荧光和时间通道,读取 ANALYSIS 段,处理多数据集文件,并通过 create_fcs() 从数组创建 FCS 3.1 单精度文件。
使用方式:安装命令为 uv pip install flowio,需 Python 3.9 或更高版本。基本读取:from flowio import FlowData; flow_data = FlowData('experiment.fcs')。创建文件:from flowio import create_fcs; create_fcs('output.fcs', data, channels)。可选参数包括 only_text、ignore_offset_discrepancy、use_header_offsets、ignore_offset_error、null_channel_list 等。
适用场景:FCS 文件解析与元数据提取、事件数据导出、文件校验、批量处理、过滤后重新导出、转换为 CSV/DataFrame。
限制:不支持直接就地修改事件数据,需提取、修改后用 create_fcs 保存;高级分析如补偿、门控及 FlowJo/GatingML 支持需配合 FlowKit;遇到偏移问题可尝试忽略参数;大文件建议仅读元数据或分块处理。详细 API 参考见 references/api_reference.md。