Skip to main content
Glama
systemsomicslab

ms-data-parser

curation_review

Generates a ranked review of annotated lipidomics spots, flagging suspect or likely wrong annotations via EIC, m/z, RT, and trend checks, with a TSV summary and HTML viewer.

Instructions

注釈付きスポットを一覧で確かめるレビューを作る(EIC・対向プロット・Δppm・ΔRT・ RT–m/z 傾向と機械判別)。先に library_load(アラインメントに使われた *_Loaded.msp2.dbs を推奨)。

対象: 既定は注釈付き全部。ontology=["PG"] でクラス、name_contains で名前の部分一致。 戻り値は suspect 以上(とフラグ済み)のスポットだけの TSV(判定の重い順に先頭 max_rows 行、既定 100。総数は n_table_rows_total、載せた数は n_table_rows_shown。全件は HTML ビューアにある)、判定の件数、クラス別の傾向要約(点数・R²・外れ数)、HTML ビューアのパス。file_ids は .arf の行にある試料 ID だけ(無い ID はエラー)。 EIC 系列やスペクトルは返さない——ユーザーには html_path をブラウザで開いてもらい、ビューアの Submit で送ってもらう(記録と _tags.xml の反映はビューアが直接行う。submit.via == "viewer")。送信用テキストを貼るよう 頼まない。送った結果は curation_flags で確かめられる。Copy のテキストが貼られたとき (受け口の時間切れ・submit.via == "copy")は従来どおり curation_submit(submission_text=...) に渡す。

判定: likely_wrong(強い不一致: polarity_mismatch / precursor_unmatched / dmz_out / class_rule_rejected(MS-DIAL の脂質クラス規則による棄却で、脂質規則が走ったデータに限る)/ adduct_isomer_of:(m/z が同時溶出する証拠の強い別物質スポットの別アダクトで説明できる。 相手はレビューの対象に絞らずアラインメント全体から探す))、 suspect(ppm_out / low_score / drt_out / eic_poor / adduct_isomer_minor_of:、 または弱い兆候の重なり)、ok。 RT–m/z 傾向(trend_outlier)は補強にしか使わない。UNKNOWN は不一致に数えない。 thresholds で既定のしきい値(ppm_pass=5, ppm_borderline=10, drt_pass=0.5 分 など)を上書きできる。

Input Schema

NameRequiredDescriptionDefault
file_idsNo
max_rowsNo
ontologyNo
file_pathNo
max_tracesNo
thresholdsNo
name_containsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, idempotent=false, destructive=false) it discloses real behavior: outputs are limited to suspect-or-worse spots, capped by max_rows (default 100) with total-vs-shown counts in named fields, unknown file_ids raise an error, and EIC series/spectra are deliberately not returned. It also explains that the HTML viewer performs the Submit and writes _tags.xml. The only gap is that it never says what files/artifacts are written on disk by this call itself (e.g., the HTML path's lifecycle).

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?

Bold section markers (prerequisite, target/scope, return values, judgment taxonomy) make it well front-loaded and skimmable. It is long, and the exhaustive enumeration of likely_wrong/suspect codes (polarity_mismatch, precursor_unmatched, dmz_out, class_rule_rejected, adduct_isomer_of, etc.) is denser than strictly needed to invoke the tool, but each item is substantive rather than filler.

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

Completeness5/5

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

There is no output schema, so the description carries the return contract—and it does: TSV of suspect+ spots, ordering, named count fields (n_table_rows_total, n_table_rows_shown), per-class trend summary contents (scores, R², outlier counts), and the html_path. Combined with the workflow hand-off to curation_flags and curation_submit, an agent has everything needed to call it and interpret the result.

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 0%, so the prose must carry all semantics; it explains file_ids (only IDs present as .arf rows, else error), max_rows (default 100, heavy-first ordering), ontology ("PG" class filter), name_contains (partial name match), and thresholds (with concrete defaults ppm_pass=5, ppm_borderline=10, drt_pass=0.5). However file_path and max_traces are never mentioned, leaving two of seven parameters undocumented anywhere.

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

Purpose5/5

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

The opening sentence names a specific action and artifact: it builds a review table of annotated spots containing EIC, mirror plot, Δppm, ΔRT, RT–m/z trend and machine discrimination. It also clearly separates this from curation_suggest/curation_submit/curation_flags by describing the review-and-submit workflow, so an agent can identify the tool without opening the schema.

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

Usage Guidelines5/5

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

It states the prerequisite explicitly ('先に library_load', recommending the *_Loaded.msp2.dbs), explains the default scope versus the ontology/name_contains filters, and gives the exact fallback condition for hitting curation_submit (pasted Copy text / submit.via == "copy"). It also says where to verify submitted results (curation_flags), so the when/how of use is fully prescribed.

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