Agent skill

Bio Flow Cytometry Compensation Transformation

by GPTomics in GPTomics/bioSkills

Corrects fluorophore spillover (conventional compensation) or spectral overlap (spectral unmixing) and applies variance-stabilizing transforms (logicle/biexponential, arcsinh, log) for flow and mass…

MITAuto-check passed

Install Bio Flow Cytometry Compensation Transformation

skills CLI
$ npx skills add GPTomics/bioSkills --skill bio-flow-cytometry-compensation-transformation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GPTomics/bioSkills bio-flow-cytometry-compensation-transformation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/flow-cytometry/compensation-transformation .claude/skills/bio-flow-cytometry-compensation-transformation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bio-flow-cytometry-compensation-transformation
GitHub stars
1.2k
Used in
1 other repo
Token cost
~2.8k tokens
SKILL.md length
1,042 words
Files
3
Skills in repo
559
Repo updated
First seen
Licence
MIT

At a glance

Corrects fluorophore spillover (conventional compensation) or spectral overlap (spectral unmixing) and applies variance-stabilizing transforms (logicle/biexponential, arcsinh, log) for flow and mass…

  • Correcting spectral overlap
  • SKILL.md covers Version Compatibility, The Single Most Important…, Method Taxonomy and Decision Tree by Scenario, plus 9 more sections
  • Runs R scripts from its folder
  • Preparing data for gating/clustering

What it does

Bio Flow Cytometry Compensation Transformation is an agent skill from GPTomics/bioSkills. Corrects fluorophore spillover (conventional compensation) or spectral overlap (spectral unmixing) and applies variance-stabilizing transforms (logicle/biexponential, arcsinh, log) for flow and mass cytometry. Covers spillover-matrix estimation from single-stain controls, AutoSpill, the spillover spreading matrix and why panel design (not compensation) bounds resolution, compensate-then-transform ordering, and arcsinh cofactor choice (5 for CyTOF, ~150 for fluorescence, per-channel via flowVS). Use when…

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `usage-guide.md`).

The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.

When your agent uses it

  • Correcting spectral overlap
  • Preparing data for gating/clustering
  • Choosing logicle vs arcsinh
  • Deciding a cofactor

Example prompts

  • “Use the bio-flow-cytometry-compensation-transformation skill to correct fluorophore spillover (conventional compensation) or spectral overlap…”
  • “/bio-flow-cytometry-compensation-transformation”

What it can do on your machine

Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (R), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bio Flow Cytometry Compensation Transformation loads about 2.8k tokens when it runs. Until then it costs about 182 tokens; SKILL.md has 1,042 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~182
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,042 words, ~2,816 tokens.

Download SKILL.mdSave it as .claude/skills/bio-flow-cytometry-compensation-transformation/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
bio-flow-cytometry-compensation-transformation
description
Corrects fluorophore spillover (conventional compensation) or spectral overlap (spectral unmixing) and applies variance-stabilizing transforms (logicle/biexponential, arcsinh, log) for flow and mass cytometry. Covers spillover-matrix estimation from single-stain controls, AutoSpill, the spillover spreading matrix and why panel design (not compensation) bounds resolution, compensate-then-transform ordering, and arcsinh cofactor choice (5 for CyTOF, ~150 for fluorescence, per-channel via flowVS). Use when correcting spectral overlap, preparing data for gating/clustering, choosing logicle vs arcsinh, deciding a cofactor, or distinguishing compensation from spectral unmixing.
tool_type
r
primary_tool
flowCore

Version Compatibility

Reference examples tested with: flowCore 2.14+, flowStats 4.14+, flowWorkspace 4.14+, CATALYST 1.26+.

Before using code patterns, verify installed versions match. If versions differ:

  • R: packageVersion('<pkg>') then ?function_name to verify parameters

Notes that bite: estimateLogicle() lives in flowWorkspace (not flowCore). flowCore::spillover() on a flowFrame returns a LIST of keyword matrices (index [[1]]); flowStats::spillover() on single-stain controls returns the matrix DIRECTLY (not a list) - do not index it with $.

If code throws an error, introspect the installed package and adapt rather than retrying.

Compensation and Transformation

"Compensate and transform my cytometry data" -> Remove spillover (matrix subtraction, conventional) or unmix the full spectrum (least squares, spectral), then apply a transform so populations separate.

  • R (conventional): flowCore::compensate() then flowWorkspace::estimateLogicle() + flowCore::transform()
  • R (CyTOF/mass): CATALYST::prepData(..., transform=TRUE, cofactor=5) (arcsinh)
  • R (spectral): linear UNMIXING, not compensation - see the taxonomy

The Single Most Important Modern Insight -- Compensation Corrects the Mean; It Cannot Remove Spreading Error

Conventional compensation inverts a square spillover matrix (peak-channel subtraction); spectral cytometry solves an OVERDETERMINED least-squares unmix over all detectors, with autofluorescence modeled as an extra "fluorophore." Both correct the population MEAN. Neither removes spreading error - the widening of a negative population in a spillover detector that arises from the Poisson counting statistics of the spilled-in photons (Roederer 2001 Cytometry 45:194; Nguyen 2013 Cytometry A 83:306). Compensation does not INTRODUCE spreading; it makes the pre-existing variance visible by re-centering means. The corollaries are load-bearing: (1) a smeared negative cannot be fixed by tuning the matrix - over-compensating to flatten it is data falsification; (2) spreading is fixed at PANEL DESIGN (the Spillover Spreading Matrix identifies which detector pairs to avoid for co-expressed/dim markers), never downstream; (3) calling spectral unmixing "compensation" is a category error - it is a different, overdetermined model.

Method Taxonomy

MethodWhat it doesWhen to useFails when
Acquisition-recorded $SPILLOVERapplies the cytometer-computed matrixtrustworthy single-stain setup at acquisitioncontrols were wrong/missing
Computed compensation (flowStats::spillover)estimates spillover from single-stain controls (medians)conventional flow, controls availablepoor/dim/contaminated controls
AutoSpill (Roca 2021 Nat Commun 12:2890)robust-regression matrix + iterative refinement; AF as endogenous dyehigh-parameter panels; messy controlsreference implementation/setup unavailable
Spectral unmixing (OLS/WLS/Poisson)least-squares unmix full spectrum vs reference spectra + AFspectral cytometers (Aurora, ID7000)wrong/heterogeneous AF; collinear spectra
Logicle / biexponentialdisplay + analysis transform, handles negativesfluorescence flowwrong w clips the negative population
arcsinhvariance-stabilizing transformCyTOF/mass; computational pipelineswrong cofactor compresses dim markers
log10legacyrarely; strictly positive dataany negative values after compensation

Decision Tree by Scenario

ScenarioRecommendedWhy
Conventional flow, $SPILLOVER presentapply recorded matrix -> estimateLogicletrust acquisition controls; logicle handles negatives
Conventional flow, no matrixcompute via flowStats::spillover from single-stains (or AutoSpill)controls drive the matrix; AutoSpill for >12 colors
Spectral cytometerUNMIX (do NOT compensate), then arcsinh at ~150/per-channel (NOT 5)overdetermined system; spectral data is fluorescence-scale, not ion counts
CyTOF / massarcsinh cofactor 5; spillover via CATALYST compCytof if neededmetals barely spill (~1-4%), but oxide/impurity is real
Dim marker driving a borderline calltest per-channel cofactor (flowVS)a fixed cofactor can manufacture/erase the population

Compensate-Then-Transform Ordering (load-bearing)

Compensation/unmixing is LINEAR and must run on untransformed data; applying it after a nonlinear transform is mathematically invalid. estimateLogicle() must run on ALREADY-COMPENSATED data so the w/a parameters reflect the post-compensation negative spread. Negative values after compensation are expected and meaningful - do NOT clip to zero before transforming (handling negatives is the entire reason logicle/arcsinh exist; log cannot).

Apply or Compute Compensation

Goal: Apply the recorded matrix, or estimate one from single-stain controls.

Approach: compensate() takes a compensation object built from the matrix; flowStats::spillover() estimates from single-stain controls and returns the matrix directly.

r
library(flowCore)

comp <- compensation(spillover(fcs)[[1]])      # flowCore: flowFrame -> list of keyword matrices
fcs_comp <- compensate(fcs, comp)

library(flowStats)
ctrls <- read.flowSet(list.files('controls', pattern = '\\.fcs$', full.names = TRUE))
comp_matrix <- spillover(ctrls, unstained = 'Unstained.fcs', fsc = 'FSC-A', ssc = 'SSC-A',
                         patt = '-A$', method = 'median')   # flowStats: returns the matrix directly

Logicle / Biexponential Transform (fluorescence)

Goal: Display and analyze compensated fluorescence with negatives handled honestly.

Approach: estimateLogicle() (flowWorkspace) derives w from the data's most-negative events; apply with transform().

r
library(flowWorkspace)

fluo <- colnames(fcs_comp)[grepl('-A$', colnames(fcs_comp)) & !grepl('FSC|SSC', colnames(fcs_comp))]
lgcl <- estimateLogicle(fcs_comp, channels = fluo)   # data-driven w; t=262144, m=4.5, a=0 defaults
fcs_t <- transform(fcs_comp, lgcl)
Show full SKILL.md (419 more words)Show less

Arcsinh Transform (CyTOF cofactor 5; fluorescence/spectral ~150 or per-channel)

Goal: Variance-stabilize mass-cytometry counts (or any pipeline feeding clustering).

Approach: asinh(x/cofactor); flowCore's arcsinhTransform is asinh(a + b*x) + c, so set b=1/cofactor. CATALYST prepData defaults cofactor=5.

r
COFACTOR <- 5      # standard CyTOF cofactor, codified in the CATALYST workflow (Nowicka 2017); ~150 for fluorescence

asinhT <- arcsinhTransform(transformationId = 'asinh', a = 0, b = 1/COFACTOR, c = 0)
fcs_t  <- transform(fcs, transformList(marker_channels, asinhT))

# CATALYST path (CyTOF): cofactor=5 default; OVERRIDE for fluorescence/spectral
sce <- CATALYST::prepData(fs, panel, md, transform = TRUE, cofactor = COFACTOR)

Per-Method Failure Modes

Over-compensation (negative pull-down)

Trigger: matrix slope over-estimated from dim controls. Mechanism: subtraction overshoots. Symptom: negative population pulled below zero, "comma" shape. Fix: controls at least as bright as the sample; AutoSpill regression; never hand-tune to flatten spread.

Wrong logicle width clips negatives

Trigger: fixed w instead of estimateLogicle. Mechanism: linear region too narrow. Symptom: negative population piled on the axis. Fix: estimate w on compensated data.

Cofactor compresses a dim marker

Trigger: cofactor 5 on fluorescence (or 150 on CyTOF). Mechanism: linear region mismatched to the noise band. Symptom: dim-positive collapses into the negative; clusters don't reproduce. Fix: 5 for CyTOF, ~150 for fluorescence; per-channel via flowVS::estParamFlowVS.

Compensating spectral data

Trigger: treating Aurora data as conventional. Mechanism: subtraction is the wrong model for an overdetermined system. Symptom: residual spread, false positives. Fix: unmix against single-stain reference spectra + unstained AF.

Quantitative Thresholds

ThresholdSourceRationale
arcsinh cofactor = 5 (mass)Nowicka 2017 F1000Res 6:748 (CATALYST workflow)matches CyTOF ion-count near-zero noise band
arcsinh cofactor ~150 (fluorescence)community/CATALYST convention (not a derived optimum)PMT photon scale is far larger; per-channel flowVS supersedes
comp control >= sample brightnessRoederer 2001 Cytometry 45:194slope estimated over the widest lever arm; extrapolation amplifies error
spreading is intensity-dependent (~sqrt of signal)Nguyen 2013 Cytometry A 83:306SSM is normalized to be gain-independent for panel design

Common Errors

Error / symptomCauseSolution
compensate() channel mismatchmatrix colnames != FCS channelsalign names before compensate
all-negative after transformtransform applied before/without compensationcompensate on linear data first
estimateLogicle not foundcalled from flowCoreit lives in flowWorkspace
arcsinhTransform ignores "cofactor"param is b, not cofactorset b = 1/cofactor

References

  • Roederer 2001 Cytometry 45(3):194-205 — spreading error / compensation artifacts.
  • Nguyen 2013 Cytometry A 83(3):306-315 — spillover spreading matrix; panel design.
  • Roca 2021 Nat Commun 12:2890 — AutoSpill robust-regression compensation.
  • Parks 2006 Cytometry A 69(6):541-551 — logicle display.
  • Moore & Parks 2012 Cytometry A 81(4):273-277 — logicle operational update.
  • Bendall 2011 Science 332(6030):687-696 — CyTOF mass cytometry; arcsinh-median analysis.
  • Nowicka 2017 F1000Research 6:748 — CATALYST workflow; codifies the cofactor-5 convention.
  • Azad 2016 BMC Bioinformatics 17:291 — flowVS per-channel cofactor.
  • Chevrier 2018 Cell Syst 6(5):612-620 — CyTOF spillover compensation (CATALYST).
  • fcs-handling - Load FCS and retrieve the spillover keyword first
  • gating-analysis - Gate on the transformed, compensated scale
  • clustering-phenotyping - Cluster compensated, transformed data
  • cytometry-qc - QC before and after preprocessing
  • imaging-mass-cytometry/data-preprocessing - Shared arcsinh/metal-channel conventions
  • spatial-transcriptomics/spatial-proteomics - Spectral/metal unmixing context

© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in flow-cytometry/compensation-transformation of GPTomics/bioSkills.

  • SKILL.md
  • examples/compensate_transform.R
  • usage-guide.md

Open the folder on GitHubat commit d91ed3d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Bio Flow Cytometry Compensation Transformation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bio Flow Cytometry Compensation Transformation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bio Flow Cytometry Compensation Transformation this skillGPTomics/bioSkills1.2k1 repos~2.8kAutomated safety check: PassMIT
Bio Flow Cytometry Compensation TransformationFreedomIntelligence/OpenClaw-Medical-Skills3.1k1 repos~1.4kAutomated safety check: PassNone
TransformersK-Dense-AI/scientific-agent-skills48k1 repos~2.8kAutomated safety check: NotesApache-2.0
Correctcursor/plugins11k3 repos~612Automated safety check: PassNone
CorrectionNxcoreAI/EverRoom3k—~290Automated safety check: PassCustom licence
Bio Flow Cytometry Cytometry QcFreedomIntelligence/OpenClaw-Medical-Skills3.1k1 repos~2.8kAutomated safety check: PassNone

Similar skills

  • Bio Flow Cytometry Compensation Transformation

    FreedomIntelligence/OpenClaw-Medical-Skills

    Spillover compensation and data transformation for flow cytometry.

    3.1k GitHub starsUsed in 1 repo~1.4k tokens
    Data & AnalyticsAuto-check passed
  • Transformers

    K-Dense-AI/scientific-agent-skills

    Hugging Face Transformers for loading Hub models, running pipeline inference, text generation, and Trainer fine-tuning on NLP, vision, audio, and multimodal tasks.

    48k GitHub starsUsed in 1 repo~2.8k tokens
    AI & LLM EngineeringAuto-check: notes
  • Correct

    cursor/plugins

    Official

    Find the mistakes agents keep repeating in this repo and make each one impossible.

    11k GitHub starsUsed in 3 repos~612 tokens
    Auto-check passed
  • Correction

    NxcoreAI/EverRoom

    Compute Room overview corrections—citation corrections as per-claim edits and general corrections as a single proposal.

    3k GitHub stars~290 tokensUpdated 2 days ago
    Research & ScienceAuto-check passed
  • Bio Flow Cytometry Cytometry Qc

    FreedomIntelligence/OpenClaw-Medical-Skills

    Comprehensive quality control for flow cytometry and CyTOF data.

    3.1k GitHub starsUsed in 1 repo~2.8k tokens
    Auto-check passed
  • Hugging Face Transformers Usage

    davila7/claude-code-templates

    Loads pre-trained Hugging Face Transformers models for text, vision and audio tasks, runs inference with pipelines and fine-tunes on custom datasets.

    33k GitHub starsUsed in 11 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed

More from GPTomics/bioSkills

All 559 skills in this repo
  • Bio Alignment Io

    GPTomics/bioSkills

    Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.

    1.2k GitHub starsUsed in 3 repos~4.9k tokens
    Auto-check passed
  • bioSkills Installer

    GPTomics/bioSkills

    Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.

    1.2k GitHub starsUsed in 1 repo~789 tokens
    Auto-check passed
  • Bio Write Sequences

    GPTomics/bioSkills

    Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.

    1.2k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Amplicon Primer Clipping

    GPTomics/bioSkills

    Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.

    1.2k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.

    1.2k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check passed
  • Bio Alignment Indexing

    GPTomics/bioSkills

    Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.4k tokens
    Auto-check passed

Questions about Bio Flow Cytometry Compensation Transformation

What does Bio Flow Cytometry Compensation Transformation do?

Corrects fluorophore spillover (conventional compensation) or spectral overlap (spectral unmixing) and applies variance-stabilizing transforms (logicle/biexponential, arcsinh, log) for flow and mass…. Bio Flow Cytometry Compensation Transformation is an agent skill from GPTomics/bioSkills. Corrects fluorophore spillover (conventional compensation) or spectral overlap (spectral unmixing) and applies variance-stabilizing transforms (logicle/biexponential, arcsinh, log) for flow and mass cytometry.

When should I use Bio Flow Cytometry Compensation Transformation?

Bio Flow Cytometry Compensation Transformation fits situations like: correcting spectral overlap; preparing data for gating/clustering; choosing logicle vs arcsinh; deciding a cofactor.

How do I install Bio Flow Cytometry Compensation Transformation in Claude Code?

Run `npx skills add GPTomics/bioSkills --skill bio-flow-cytometry-compensation-transformation -a claude-code`. Or copy the skill folder (flow-cytometry/compensation-transformation in GPTomics/bioSkills) into .claude/skills/bio-flow-cytometry-compensation-transformation in your project. Claude Code loads it when a task matches its description.

How do I install Bio Flow Cytometry Compensation Transformation in Codex?

Run `npx skills add GPTomics/bioSkills --skill bio-flow-cytometry-compensation-transformation -a codex`. Or copy the skill folder (flow-cytometry/compensation-transformation in GPTomics/bioSkills) into .agents/skills/bio-flow-cytometry-compensation-transformation in your project. Codex loads it when a task matches its description.

Can I use Bio Flow Cytometry Compensation Transformation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-flow-cytometry-compensation-transformation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-flow-cytometry-compensation-transformation, .gemini/skills/bio-flow-cytometry-compensation-transformation, .github/skills/bio-flow-cytometry-compensation-transformation and .opencode/skills/bio-flow-cytometry-compensation-transformation in your project.

What does Bio Flow Cytometry Compensation Transformation need to run?

Going by SKILL.md and its folder, Bio Flow Cytometry Compensation Transformation needs R for the scripts in its folder.

Does Bio Flow Cytometry Compensation Transformation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Bio Flow Cytometry Compensation Transformation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bio Flow Cytometry Compensation Transformation use?

Bio Flow Cytometry Compensation Transformation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bio Flow Cytometry Compensation Transformation use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bio Flow Cytometry Compensation Transformation?

Skills that share tags, products or a category with Bio Flow Cytometry Compensation Transformation: Bio Flow Cytometry Compensation Transformation (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars), Transformers (K-Dense-AI/scientific-agent-skills, 48k stars), Correct (cursor/plugins, 11k stars) and Correction (NxcoreAI/EverRoom, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bio Flow Cytometry Compensation Transformation?

GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,218 GitHub stars. The repository holds 559 skills in this directory. The repository was last updated on August 15, 2026.

Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.