Skip to main content
Glama

Jean — Molecular Biology & Genomics

audit_barcodes

Read-only

Check an index set you ALREADY have, rather than designing a new one: the minimum distance between any two, how many errors that guarantees correcting, the full distance matrices, and — optionally — the subset that survives pruning to a stricter error budget.

Input Schema

NameRequiredDescriptionDefault
_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.
metricNoerror model to audit against — a set safe under substitutions may be unsafe under indels. Values: hamming (Hamming (substitutions)), seqlev (Sequence-Levenshtein (indels)), levenshtein (Levenshtein).seqlev
_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.
barcodesYesthe index sequences to audit.
prune_to_errorsNoalso report the subset that would survive pruning to a free code correcting this many errors. 0 = do not prune. Advanced.
required_distanceNothe minimum distance the set is supposed to have — the audit says whether it does.

Output Schema

NameRequiredDescriptionDefault
keptYesthe barcodes surviving `prune_to_errors` (the whole set when pruning is off)
auditYesthe verdict: the set's real minimum distance, what it guarantees, and every pair that falls short
droppedYeshow many the prune removed
analysisYesper-metric analysis of the whole set
matricesYesthe pairwise distance matrix under each metric
statisticsYesthe whole-set statistics the four charts above are drawn from, which a min-distance figure hides: GC mean, spread and range, Shannon entropy per cycle, the fraction reading each base at each cycle, groups sharing a prefix in the first cycles read, duplicates, and the per-metric distance distributions
distanceMapYesthe pairwise distance matrix under the chosen metric, as a heatmap
gcHistogramYeshow many barcodes sit at each GC percentage
baseCompositionYesthe fraction of the set reading each base at each cycle
distanceHistogramYeshow many PAIRS sit at each distance under the chosen metric: the shape behind the minimum
neighbourHistogramYeshow many BARCODES have each nearest-neighbour distance: where the weak links are

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedOutput schema / properties / baseComposition
      Added value: +{
      +  "description": "the fraction of the set reading each base at each cycle",
      +  "properties": {
      +    "mark": {
      +      "enum": [
      +        "line",
      +        "bar",
      +        "point"
      +      ],
      +      "type": "string"
      +    },
      +    "rules": {
      +      "items": {
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "y",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "series": {
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "items": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "y"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "x": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "xLabel": {
      +      "type": "string"
      +    },
      +    "yLabel": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "x",
      +    "series",
      +    "xLabel",
      +    "yLabel"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / distanceHistogram
      Added value: +{
      +  "description": "how many PAIRS sit at each distance under the chosen metric: the shape behind the minimum",
      +  "properties": {
      +    "mark": {
      +      "enum": [
      +        "line",
      +        "bar",
      +        "point"
      +      ],
      +      "type": "string"
      +    },
      +    "rules": {
      +      "items": {
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "y",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "series": {
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "items": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "y"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "x": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "xLabel": {
      +      "type": "string"
      +    },
      +    "yLabel": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "x",
      +    "series",
      +    "xLabel",
      +    "yLabel"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / gcHistogram
      Added value: +{
      +  "description": "how many barcodes sit at each GC percentage",
      +  "properties": {
      +    "mark": {
      +      "enum": [
      +        "line",
      +        "bar",
      +        "point"
      +      ],
      +      "type": "string"
      +    },
      +    "rules": {
      +      "items": {
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "y",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "series": {
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "items": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "y"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "x": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "xLabel": {
      +      "type": "string"
      +    },
      +    "yLabel": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "x",
      +    "series",
      +    "xLabel",
      +    "yLabel"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / neighbourHistogram
      Added value: +{
      +  "description": "how many BARCODES have each nearest-neighbour distance: where the weak links are",
      +  "properties": {
      +    "mark": {
      +      "enum": [
      +        "line",
      +        "bar",
      +        "point"
      +      ],
      +      "type": "string"
      +    },
      +    "rules": {
      +      "items": {
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "y",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "series": {
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "items": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "y"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "x": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "xLabel": {
      +      "type": "string"
      +    },
      +    "yLabel": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "x",
      +    "series",
      +    "xLabel",
      +    "yLabel"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / statistics
      Added value: +{
      +  "description": "the whole-set statistics the four charts above are drawn from, which a min-distance figure hides: GC mean, spread and range, Shannon entropy per cycle, the fraction reading each base at each cycle, groups sharing a prefix in the first cycles read, duplicates, and the per-metric distance distributions"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "audit",
      -  "analysis",
      -  "matrices",
      -  "distanceMap",
      -  "kept",
      -  "dropped"
      -]New value: +[
      +  "audit",
      +  "analysis",
      +  "matrices",
      +  "distanceMap",
      +  "distanceHistogram",
      +  "neighbourHistogram",
      +  "gcHistogram",
      +  "baseComposition",
      +  "statistics",
      +  "kept",
      +  "dropped"
      +]
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses key behavioral characteristics of the audit—it analyzes metrics like the minimum distance and error-correctable capacity—which are not covered by the safety annotations. This gives the agent rich functional context.

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?

The description is highly dense but exceptionally well-structured. Every clause in the single sentence contributes to the definition, and the most critical differentiating information is front-loaded.

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?

Given the technical complexity of barcode auditing (distance matrices, error budgets), the definition is very complete. It identifies the primary outputs and the advanced optional behavior without needing to describe the return structure.

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

Parameters4/5

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

Although the schema coverage is 100%, the description adds valuable semantic framing for complex parameters. It explains concepts like 'stricter error budget' related to pruning and how required_distance relates to the set's integrity.

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 description clearly states the tool's purpose: to 'Check an index set you ALREADY have.' It goes beyond the name by listing specific analytical outputs, such as minimum distance, error correction capabilities, and full distance matrices.

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

Usage Guidelines4/5

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

It provides strong usage guidance by explicitly instructing the user to check an existing set 'rather than designing a new one.' This preemptively solves a common planning confusion point for agents.

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