Skip to main content
Glama
systemsomicslab

ms-data-parser

dataset_preprocess

Read-only

Applies normalization, blank removal, drift correction, QC RSD filtering, imputation, and detection-rate cutoffs to quantitative data, outputting a matrix for downstream PCA and differential analysis.

Instructions

DatasetState の定量行列に前処理レシピを適用する。

引数は arf_preprocess と同一。以降の dataset_pca / dataset_differential は ここで作った前処理済み行列を消費する。

normalize: "none"(既定)/ "tic"(行総和)/ "median"(行中央値)/ "pqn"。 blank_min_fold: 生体試料平均がブランク平均のこの倍数未満の特徴量を背景として 除去する(例 3.0)。None(既定)でブランク除去なし。 drift_correct: QC 注入順ドリフト補正。注入順は mzTab-M の assay[N]-custom[...] の injection sequence label(MS:4000089)から読む。 それを持たない mzTab-M では実施できず、caveat で報告する。 max_qc_rsd: QC 群の RSD がこの値を超える特徴量を除去する(例 0.30)。 impute: "half_min"(既定)/ "knn" / "column_mean" / "none"。 min_detection_rate: 実検出率(gap-fill を除く)による特徴量の足切り 0.0-1.0 (既定 0.0=無効)。検出状態は mzTab-M 単体には無いので、隣接する .arf から取り込めた場合にだけ使える。取り込めていない状態で 0 より大きい値を 渡すと引数エラーを返す(黙って未検出 0 件として通さない)。 取り込み状況は dataset_status の detection を見る。

成功すると session.dataset.pp_matrix に前処理済み行列が設定される。

Input Schema

NameRequiredDescriptionDefault
imputeNohalf_min
normalizeNonone
max_qc_rsdNo
drift_correctNo
blank_min_foldNo
min_detection_rateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

The description adds substantial behavior beyond the annotations: it discloses that success writes the matrix to session.dataset.pp_matrix, that drift_correct silently degrades to a reported caveat when the mzTab-M lacks injection-sequence labels, and that min_detection_rate > 0 without imported .arf detection data raises an argument error rather than silently passing. The only tension is that this documented session-state write sits awkwardly with readOnlyHint=true, though it is disclosed rather than hidden.

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?

Purpose is front-loaded in one sentence, followed by a compact per-parameter block and a closing statement of the side effect. Dense but every block earns its place; the parameter list is lengthy, which is justified by the 0% schema coverage.

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?

With no output schema, the description still tells the agent where the result lands (session.dataset.pp_matrix) and which tools consume it, plus the error semantics of the riskiest parameter. It stops short of describing the tool's immediate return payload or the interplay with dataset_status's detection field beyond a pointer.

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

Parameters5/5

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

Schema description coverage is 0% and the schema exposes no enums, yet the description documents every one of the six parameters with allowed values and defaults (normalize: none/tic/median/pqn; impute: half_min/knn/column_mean/none), the meaning of blank_min_fold, the 0.0-1.0 range of min_detection_rate, and the failure mode when its prerequisite is absent. It fully compensates for the empty schema.

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 opening line names a specific verb and resource: applying a preprocessing recipe to the DatasetState quantitative matrix, which is clearly distinct from the ARF/ARF2 tool families. It also names the downstream consumers (dataset_pca / dataset_differential) that read the produced matrix. Sibling differentiation is present but partly implicit — it says the arguments are identical to arf_preprocess without stating the rule that selects one over the other.

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 implied rather than stated: the note that dataset_pca / dataset_differential consume the preprocessed matrix tells the agent this is an upstream step, and the drift_correct paragraph explains when that option is unavailable. There is no explicit 'use this instead of arf_preprocess when …' rule and no stated prerequisites such as needing dataset_load first.

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