Skip to main content
Glama

Jean — Molecular Biology & Genomics

compare_flow_cytometry_populations

Read-only

One channel of an FCS file between two populations of the run (FlowJo's and FCS Express's population comparison): Welch's two-sample t-test, the Wilcoxon rank-sum test, the two-sample Kolmogorov–Smirnov test and Pearson's χ² on the two histograms over shared equal-width bins, each R's test on the populations' linear values.

Input Schema

NameRequiredDescriptionDefault
ANoadditional negative decades. Only applies when scale is logicle or hyperlog or flowcore-logicle or fasinh.
MNodecades of the full scale. Only applies when scale is logicle or hyperlog or flowcore-logicle or fasinh.
TNotop of scale; empty means the file's largest fluorescence $PnR.
WNolinear width in decades. Only applies when scale is logicle or hyperlog or flowcore-logicle.
scaleNothe display scale of the fluorescence channels (scatter and time stay linear): used for the plot, the threshold and, with `stats_on: scaled`, the statistics. Values: logicle (Logicle (Gating-ML 2.0, Moore & Parks)), fasinh (ArcSinh (Gating-ML 2.0 fasinh)), arcsinh (ArcSinh with a cofactor (asinh(x / c), Cytobank and CyTOF)), hyperlog (Hyperlog (Gating-ML 2.0, Bagwell)), flowcore-logicle (Logicle on a 0–M axis (flowCore)), wsp-biex (Biex (FlowJo 10, channels 0–4096)), flin (Linear (Gating-ML flin)).logicle
_filesNoThe project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name.
gatingNoa Gating-ML 2.0 document in the project, by name or id; empty for no gating (every statistic is then of all events).
plot_xNochannel (PnN or PnS) on the density plot's x axis; empty for no plot.
plot_yNochannel on the plot's y axis.
derivedNoderived parameters, `name = expression` separated by `;` (FlowJo's vocabulary: channels by name or [name], + − * / % ^, abs ceil floor neg round max min pow exp ln log sqrt and the trig functions); each becomes a channel of the run.
_subjectNoThe record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several.
cofactorNothe c in asinh(x / c): 5 is the CyTOF convention, 150 a common one for fluorescence. Only applies when scale is arcsinh.
documentNothe FCS file, by name or id; may be left empty when the project holds exactly one.
biex_widthNoFlowJo biex width basis (negative; FlowJo's default -10). Only applies when scale is wsp-biex.
compare_binsNoequal-width histogram bins over both populations’ range, for the χ² test.
compensationNo`auto`: the file's own $SPILLOVER/$SPILL when it has one, else none; `file`: that, refusing a file without one; `none`: leave the values as acquired. Values: auto (automatic), file (file's own matrix), none (none).auto
population_aNopopulation A; empty for all events.
population_bNopopulation B; empty for all events.
biex_negativeNoFlowJo biex extra negative decades. Only applies when scale is wsp-biex.
compare_channelNothe channel compared (PnN, PnS or a derived name); empty for the first fluorescence channel.
plot_populationNothe population plotted; empty for all events.
compensation_methodNowhich published algorithm: FlowKit's solve(Sᵀ, Xᵀ) or flowCore's X · S⁻¹. They agree to ~1e-15 of full scale. Values: flowkit (solve(Sᵀ, Xᵀ) (FlowKit)), flowcore (X · S⁻¹ (flowCore)). Only applies when compensation is auto or file.flowkit

Output Schema

NameRequiredDescriptionDefault
ks_dYesKolmogorov–Smirnov D
testsYesevery test: method, statistic, parameter, p-value; the χ² histograms
welch_pYesWelch's t-test p-value
rank_sum_pYesWilcoxon rank-sum p-value

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this is a safe, closed-world read, so the description's job is to add analytical context, and it does: it enumerates the four tests and specifies that the chi-square uses shared equal-width bins and that statistics are computed on the populations' linear values. It does not discuss prerequisites (e.g. that a gating document may be needed to define populations) or failure modes, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single sentence that front-loads the subject, but it is dense and awkwardly punctuated, with a mid-sentence parenthetical and a trailing clause ('each R's test on the populations' linear values') that reads as opaque filler. The list of tests earns its place; the framing does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 22 optional parameters, a nested _subject/_files project structure, and an output schema, the description covers the statistical core but omits how populations are identified (gating document vs. named populations) and how the run/project context is resolved. Adequate for calling the tool, but thin for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 22 parameters is already documented, and the baseline of 3 applies. The description adds only indirect meaning (compare_bins via 'shared equal-width bins', scale via 'linear values') and never mentions the central population_a/population_b, compare_channel, gating, or compensation parameters by name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (one channel of an FCS file) and the exact operation (compare two populations via Welch t-test, Wilcoxon rank-sum, two-sample KS, and Pearson chi-square), which clearly separates it from siblings like analyze_flow_cytometry or check_flow_cytometry_quality. It never explicitly names those alternatives, and the parenthetical '(FlowJo's and FCS Express's population comparison)' is more cryptic than clarifying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or alternative-tool guidance. An agent must infer from 'between two populations' that this is a two-group statistical comparison, and nothing says what to do if there is only one population or which sibling to pick for quality checking, clustering, or gating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources