Skip to main content
Glama

Jean — Molecular Biology & Genomics

flow_cytometry_kinetics

Read-only

A statistic of one channel of an FCS file over acquisition time (FlowJo's Kinetics): the median, mean, geometric mean, a percentile or the % of events above a threshold, in equal time bins, optionally only of events above the threshold and smoothed; per time range the peak and its time, mean Y, least-squares slope, area under the curve and dt.

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.
rangesNotime ranges `start-end` separated by `;`, in the time unit (seconds).
channelNothe channel followed (PnN, PnS or a derived name); empty for the first fluorescence channel.
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.
smoothingNocurve smoothing. Values: none (none), movingAverage (moving average), gaussian (Gaussian).none
statisticNothe statistic per time bin. Values: median (median), mean (mean), geomean (geometric mean), percentile (percentile), percentAbove (% above T).median
thresholdNothe threshold T. Values: none (none), absolute (a value), percentileOfRange (a percentile of a time range).none
biex_widthNoFlowJo biex width basis (negative; FlowJo's default -10). Only applies when scale is wsp-biex.
half_widthNosmoothing window, ± bins (Gaussian σ = half of it).
percentileNofor statistic = percentile. Only applies when statistic is percentile.
populationNothe population; empty for all events.
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
kinetic_binsNoequal time bins over the population’s time span.
biex_negativeNoFlowJo biex extra negative decades. Only applies when scale is wsp-biex.
plot_populationNothe population plotted; empty for all events.
threshold_rangeNowhich range (1-based) the percentile is taken from. Only applies when threshold is percentileOfRange.
threshold_valueNoT as a channel scale value. Only applies when threshold is absolute.
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
above_threshold_onlyNothe statistic of events above T only.
threshold_percentileNothe percentile of the range that sets T. Only applies when threshold is percentileOfRange.

Output Schema

NameRequiredDescriptionDefault
binsYesper time bin: start, end, centre, events, events used, value
curveYesthe displayed (smoothed) value per bin
rangesYesper range: start, end, dt, peak, peak t, mean Y, slope, AUC
thresholdYesthe threshold T used (0 when none)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

B3.1/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 and the description does not contradict it. The description usefully adds the binning model (equal time bins over the population's time span) and what is reported per time range, but omits failure conditions — e.g. what happens with no time parameter, a missing compensation matrix in 'file' mode, or an unreadable gating document.

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 front-loaded with the core definition and contains no filler, but it is delivered as one long run-on sentence with semicolon-chained clauses and a trailing 'dt' that is unexplained. Splitting it into purpose / per-bin output / per-range output would make it markedly easier to scan.

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?

For a 31-parameter tool with nested objects and an output schema, the description covers the analytical concept and return shape at a high level, so the biggest gaps (return values, field names) are handled elsewhere. It says nothing about how the target file is located via document/_files/_subject or about the interaction between gating, population and plot_population, which is where a caller is most likely to go wrong.

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% across all 31 parameters, so the schema already carries the per-parameter meaning (scale, threshold, smoothing, half_width, compensation, etc.), and the baseline of 3 applies. The description reinforces the conceptual chain (threshold → optional above_threshold_only → smoothing → per-bin statistic) but adds no syntax or edge-case detail beyond what the schema states.

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?

States a concrete computation — a statistic of one channel of an FCS file over acquisition time — and enumerates exactly which statistics (median, mean, geomean, percentile, % above threshold) and derived kinetics (peak, slope, AUC, dt). It implicitly separates it from the broader flow-cytometry siblings by insisting on the time axis, but it never names analyze_flow_cytometry or compare_flow_cytometry_populations as the non-kinetic alternatives.

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 or when-not-to-use instruction. The phrase 'over acquisition time (FlowJo's Kinetics)' hints that this is for time-resolved data, but an agent is left to infer that a static population summary should instead go to a sibling tool, and nothing calls out a prerequisite such as the file needing a time channel.

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