Skip to main content
Glama

jean — Molecular Biology & Genomics

discover_codon_outliers

Read-only

Score every coding sequence of a genome against the genome's own codon usage and report the genes whose synonymous codon choice that average does not explain, with the false discovery rate controlled across the genes. Records from different files are different genomes: each is scored against its own file's usage, and the false discovery rate is controlled once across every gene of every genome. Each gene gets Karlin's B and Supek & Vlahoviček's MILC against the pooled usage of the genes, and a G-test of its codon choice within each amino acid against that usage (χ², degrees of freedom from the amino acids it uses). Outliers are typically highly expressed genes (ribosomal proteins are the most deviant class), genes of unusual composition, and some of foreign origin; an outlier is NOT evidence of horizontal transfer, since codon bias is a poor indicator of transfer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
alphaNofalse discovery rate at which a gene is reported as an outlier.
_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.
_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.
alt_initNocount every alternative start codon as Met throughout each gene, as coRdon does by default. Off reads an internal alternative start codon as its own amino acid. Advanced.
sequencesNothe genomes' coding sequences: wire upstream records here, or list library document names (each record of a CDS FASTA is one gene, read in frame from its first base; each file is one genome).
correctionNoBenjamini–Hochberg (independent or positively dependent tests) or Benjamini–Yekutieli (any dependence; less power). Values: BH (Benjamini–Hochberg), BY (Benjamini–Yekutieli).BH
file_codesNoa genetic code for one file, as `file=code` (e.g. `Mycoplasma_genitalium_cds.fna=4`): that file's genes are read with it, every other file with genetic_code. For a corpus whose genomes translate differently. Advanced.
min_codonsNogenes with no more codons than this leave the reference and the result: the G-test's χ² limit is poor for short genes. In codons.
pool_filesNoscore every named record as ONE genome, for a genome split across files (one per chromosome). Off: each file is its own genome, scored against its own usage.
genetic_codeNoNCBI genetic code the genes are read with (4 for Mycoplasma, 11 for most bacteria; 1 and 11 group codons identically). Values: 1 (1 · Standard), 2 (2 · Vertebrate Mitochondrial), 3 (3 · Yeast Mitochondrial), 4 (4 · Mold Mitochondrial, Protozoan Mitochondrial, Coelenterate Mitochondrial, Mycoplasma, Spiroplasma), 5 (5 · Invertebrate Mitochondrial), 6 (6 · Ciliate Nuclear, Dasycladacean Nuclear, Hexamita Nuclear), 9 (9 · Echinoderm Mitochondrial, Flatworm Mitochondrial), 10 (10 · Euplotid Nuclear), 11 (11 · Bacterial, Archaeal and Plant Plastid), 12 (12 · Alternative Yeast Nuclear), 13 (13 · Ascidian Mitochondrial), 14 (14 · Alternative Flatworm Mitochondrial), 15 (15 · Blepharisma Macronuclear), 16 (16 · Chlorophycean Mitochondrial), 21 (21 · Trematode Mitochondrial), 22 (22 · Scenedesmus obliquus Mitochondrial), 23 (23 · Thraustochytrium Mitochondrial), 24 (24 · Rhabdopleuridae Mitochondrial), 25 (25 · Candidate Division SR1 and Gracilibacteria), 26 (26 · Pachysolen tannophilus Nuclear), 27 (27 · Karyorelict Nuclear), 28 (28 · Condylostoma Nuclear), 29 (29 · Mesodinium Nuclear), 30 (30 · Peritrich Nuclear), 31 (31 · Blastocrithidia Nuclear), 32 (32 · Balanophoraceae Plastid), 33 (33 · Cephalodiscidae Mitochondrial).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
genesYesevery gene scored: codons, B, MILC, G, degrees of freedom, p and q
resultYesthe full result, with the settings that produced it
skippedYesgenes left out as too short, with their codon counts
outliersYesgenes at q ≤ alpha, largest MILC first
outlierCountYeshow many genes were called outliers

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnlyHint, destructiveHint=false), and the description goes well beyond that: it discloses the exact scoring statistics (Karlin's B, MILC, per-amino-acid G-test), the scope of FDR control across all genes of all genomes, that short genes below min_codons leave the result, and which gene classes typically surface as outliers. This is unusually rich behavioral disclosure for a read-only analysis tool.

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 purpose is front-loaded and every sentence is substantive, including the specific statistical methods and the anti-misinterpretation caveat. There is mild redundancy between the first sentence and the following 'Records from different files are different genomes' sentence, which restates the per-file grouping rather than extending it.

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?

For a 10-parameter tool with nested record objects and an output schema, the description supplies the multi-file/multi-genome execution model, the statistics computed, the FDR scope, and the interpretation caveat. Nothing an agent needs in order to call it correctly is missing, and return-value shape is covered by the output schema.

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?

With 100% schema description coverage the baseline is 3, but the description adds real semantic context beyond the schema: it explains that each file is its own genome scored against its own usage unless pooled, and that FDR is controlled once across every genome, which directly clarifies the pool_files/file_codes semantics. It does not add much to alpha, correction, or genetic_code beyond what the schema already 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?

The opening sentence states a specific verb and resource chain (score every CDS against the genome's own codon usage, report genes the average does not explain, with FDR control), which is far more precise than a tautology. It implicitly separates itself from siblings like codon_usage_analysis and codon_optimality via the FDR-controlled outlier framing, but never names or contrasts any sibling explicitly, so it stops short of a 5.

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 by the method description (use it to find genes with anomalous synonymous codon choice), and the closing note that 'an outlier is NOT evidence of horizontal transfer' usefully cautions against a misinterpretation. However, there is no explicit when-to-use statement, no prerequisites, and no routing against the numerous sibling codon tools, leaving the agent to infer the selection context.

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