Skip to main content
Glama

Jean — Molecular Biology & Genomics

estimate_spillover_from_controls

Read-only

flowStats spillover() on single-stained control tubes and an unstained tube from the project: per tube the median (or mean, or density mode) of every detector, the unstained baseline subtracted, each stained tube matched to its channel (by name distance or tube order), each row divided by its own detector.

Input Schema

NameRequiredDescriptionDefault
fscNoforward scatter channel, left out of the matrix.FSC-A
sscNoside scatter channel, left out of the matrix.SSC-A
tubesYesthe control FCS files in the project, by name or id, comma-separated, the unstained one included.
_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.
patternNoregular expression the detectors must match; empty for all.
_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.
statisticNothe per-tube statistic. Values: median (median), mean (mean), mode (density mode).median
unstainedYeswhich of the tubes is unstained, by name or id.
stain_matchNohow tubes are matched to channels. Values: intensity (by name), ordered (in tube order).intensity

Output Schema

NameRequiredDescriptionDefault
matrixYesthe spillover matrix, rows the stained channels, columns the detectors
matchingYestube → channel
warningsYesflowStats' warnings

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real methodological context beyond that: baseline subtraction of the unstained tube, tube-to-channel matching, and per-row division by the tube's own detector. It does not state what is produced (a spillover matrix) or whether compensation is applied, but the output schema carries the return shape.

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

Conciseness4/5

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

A single dense sentence front-loaded with the method and data source, with no filler. It reads as a run-on colon chain, which slightly hurts scannability, but every clause carries substantive information about the computation.

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

Completeness4/5

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

For a nine-parameter tool with nested objects, annotations, and an output schema, the description covers the algorithm end to end: per-tube statistic, baseline subtraction, tube-to-channel matching, and per-detector normalization. It leaves out only the nature of the returned object and any precondition on control quality, both of which are partially handled by the schema and its sibling quality-check tools.

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 the schema already documents all nine parameters, including the statistic enum and the stain_match enum. The description restates those choices ('median (or mean, or density mode)', 'by name distance or tube order') without adding syntax, defaults, or failure conditions beyond what the schema says, so the baseline of 3 applies.

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?

Names a specific verb (estimate spillover) and the exact resource it operates on (single-stained control tubes plus an unstained tube), plus names the underlying method (flowStats spillover()). It is clearly distinguishable from sibling flow-cytometry tools by the input data it requires, although it never names an alternative such as check_color_balance.

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

Usage Guidelines3/5

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

Usage is only implied through the required data ('single-stained control tubes and an unstained tube from the project'), which tells an agent the experimental precondition but not when to prefer this over other flow tools. There are no explicit exclusions, no prerequisites about panel design, and no statement about what to do when controls are missing.

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