FlowIO FCS Reader/Writer
Teaches Claude to read, inspect, and write flow cytometry FCS 2.0/3.0/3.1 files correctly with FlowIO 1.4.0.
Data & AnalyticsAdvanced★ 33,030⑂ 3,248AI score 8/10Last updated: Aug 9, 2026
What it does
Gives Claude a precise playbook for low-level Flow Cytometry Standard (FCS) file work using FlowIO 1.4.0.
- Read FCS 2.0 / 3.0 / 3.1 files and inspect HEADER, TEXT, ANALYSIS, and per-channel metadata
- Extract events as a NumPy array of shape
(event_count, channel_count), with explicitpreprocess=True/Falsesemantics - Read legacy files containing multiple datasets via
$NEXTDATA - Create, copy, or de-identify FCS 3.1 list-mode files with
create_fcs()/write_fcs() - Run the bundled
scripts/inspect_fcs.pyfor offline inventory, TEXT dumps, and finite-value statistics with size/memory guards
It also locks in the easy-to-miss rules: TEXT keys are lowercased with $ stripped, as_array(preprocess=True) is not compensation or a logicle transform, and create_fcs() needs a flattened array plus an open binary handle. Compensation, gating, and FlowJo workspaces are explicitly out of scope — use FlowKit instead.
Who it's for
- Flow cytometry researchers and bioinformatics engineers building preprocessing pipelines
- Data analysts moving instrument FCS output into pandas or ML workflows
- Anyone fighting offset errors, vendor format quirks, or multi-dataset legacy files
- Teams that must strip sample/subject/operator identifiers before sharing data
Examples
- Fast triage of large files — "Inventory every FCS in this folder: instrument, acquisition date, channel labels" → metadata-only parsing with
only_text=Trueplus the inspector script, no event loading. - Array/DataFrame export — "Load sample.fcs preprocessed and write a CSV whose columns are the channel names" →
as_array(preprocess=True)mapped ontopnn_labels. - De-identified re-export — "Write a copy without identifying metadata, then reopen it and verify event and channel counts match" →
write_fcs(metadata={...})followed by round-trip validation.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/flowio folder from the GitHub repo K-Dense-AI/scientific-agent-skills into my ~/.claude/skills/flowio/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git && cp -r scientific-agent-skills/skills/flowio ~/.claude/skills/flowio⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and make sure Claude Code is installed.
- Clone the skill repository:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Copy the skill into your Claude skills folder:
mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/flowio ~/.claude/skills/flowio - Install
uvif you don't have it:curl -LsSf https://astral.sh/uv/install.sh | sh - Install the pinned library:
uv pip install "flowio==1.4.0"(requires Python 3.9–3.13) - Verify the runtime:
uv run python -c "import flowio; print(flowio.__version__)"should print1.4.0. - Restart Claude Code and ask something like "inspect the metadata of this FCS file" to trigger the skill.
- (Optional) Try the bundled inspector:
uv run --no-project --with "flowio==1.4.0" python ~/.claude/skills/flowio/scripts/inspect_fcs.py sample.fcs --help
View source on GitHub ↗License: MIT