‹ 首页

alterlab-flowio

@alterlab-ieu · 收录于 1 周前

Parse and write FCS (Flow Cytometry Standard) files v2.0-3.1 with FlowIO — extract event data as NumPy arrays, read $-keyword metadata and channel/parameter definitions, and convert events to CSV or pandas DataFrame. Use when loading raw .fcs flow-cytometry files, inspecting channels and metadata, or preprocessing cytometry data for downstream gating and analysis. Part of the AlterLab Academic Skills suite.

适合你,如果经常处理流式细胞术的FCS文件,需要提取事件数据做分析。

/ 下载安装
alterlab-flowio.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add alterlab-ieu/alterlab-academic-skills/alterlab-flowio
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- alterlab-ieu/alterlab-academic-skills/alterlab-flowio
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify alterlab-ieu/alterlab-academic-skills/alterlab-flowio
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
39GitHub stars
~1.1K最小装载
~6.5K含声明引用
~7.5K文本包总量
镜像托管

怎么用

技能原文 SKILL.md作者撰写 · MIT · a0064fd

FlowIO: Flow Cytometry Standard File Handler

Overview

FlowIO is a lightweight Python library for reading and writing Flow Cytometry Standard (FCS) files. Parse FCS metadata, extract event data, and create new FCS files with minimal dependencies. Supports FCS versions 2.0, 3.0, and 3.1 — ideal for backend services, data pipelines, and basic cytometry file operations.

When to Use This Skill

Use this skill when:

  • FCS files require parsing or metadata extraction
  • Flow cytometry data needs conversion to NumPy arrays
  • Event data requires export to FCS format
  • Multi-dataset FCS files need separation
  • Channel information (scatter, fluorescence, time) must be extracted
  • Cytometry files need validation or inspection
  • Pre-processing is needed before advanced analysis

Related tool: For advanced analysis (compensation, gating, FlowJo/GatingML support), recommend the FlowKit library as a companion to FlowIO.

Installation
uv pip install flowio

Requires Python 3.9 or later.

Quick Start
from flowio import FlowData

# Read FCS file and inspect
flow = FlowData('experiment.fcs')
print(f"FCS Version: {flow.version}")
print(f"Events: {flow.event_count}")
print(f"Channels: {flow.pnn_labels}")

# Get event data as NumPy array, shape (events, channels)
events = flow.as_array()
import numpy as np
from flowio import create_fcs

# Write a new FCS file from a NumPy array.
# Gotcha: create_fcs takes a WRITABLE BINARY FILE HANDLE (not a path) and a
# FLATTENED 1-D event array — pass data.flatten(), not the 2-D matrix.
data = np.array([[100, 200, 50], [150, 180, 60]], dtype='float32')  # 2 events, 3 channels
with open('output.fcs', 'wb') as fh:
    create_fcs(fh, data.flatten(), ['FSC-A', 'SSC-A', 'FL1-A'])
Core Workflow
  1. Read — Construct a FlowData('file.fcs') instance. Use only_text=True for metadata-only (memory-efficient) reads; pass offset/null-channel flags for problematic files.
  2. Inspect — Read flow.version, flow.event_count, flow.pnn_labels, flow.pns_labels, channel-type indices, and the flow.text metadata dict.
  3. Extract — Get a NumPy array via flow.as_array() (preprocessed) or flow.as_array(preprocess=False) (raw). Slice by channel type as needed.
  4. Transform / export — Convert to a pandas DataFrame or CSV; or write a new FCS file with flow.write_fcs(path, ...) (takes a path) or `create_fcs(fh, data.flatten(), ...)` (takes a binary file handle + flattened events). Output is always FCS 3.1, single-precision float.
  5. Multi-dataset — If a file holds multiple datasets, use read_multiple_data_sets() instead of the constructor.
Routing Guidance
  • Need exact signatures, attributes, exceptions, or FCS keyword definitions? Read references/api_reference.md.
  • **Doing one of the core operations (read/parse, metadata, create, export, multi-dataset, preprocessing)?** Read references/workflows.md for full code.
  • **Need a task recipe (inspect a file, batch a directory, FCS→CSV, filter events, extract channels)?** Read references/recipes.md.
  • Hitting an error, or want best practices / file-structure / troubleshooting? Read references/error-handling-and-troubleshooting.md.
References
  • references/api_reference.md — Complete FlowData class, utility functions (read_multiple_data_sets, create_fcs), exception classes, FCS file structure, common TEXT-segment keywords, channel types, and example workflows.
  • references/workflows.md — Full code for the core operations: reading/parsing, metadata & channel extraction, creating files, exporting/modifying, multi-dataset handling, and data preprocessing.
  • references/recipes.md — Worked examples: inspecting contents, batch processing a directory, FCS→CSV conversion, event filtering & re-export, and channel extraction with statistics.
  • references/error-handling-and-troubleshooting.md — Exception-handling patterns, best practices, FCS file-structure notes, a troubleshooting table, and integration notes (NumPy, pandas, FlowKit, web apps).
Summary

FlowIO provides essential FCS file handling for flow cytometry workflows — use it for parsing, metadata extraction, and file creation. For simple file operations and data extraction, FlowIO alone is sufficient; for complex analysis (compensation, gating), integrate with FlowKit or other specialized tools.

按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。