Skip to main content
Glama

jean — Molecular Biology & Genomics

design_expression_variants

The expression-design deliverable: several coding sequences for one protein, each variant following a different published strategy (maximise codon adaptation, match the host's codon usage, harmonise with the native host, or preserve the initiation region), each scored by an engine — CAI, GC, the folding energy of the Kudla -4..+37 initiation window, and rare codons. It returns the comparison rather than one answer, because the strategies disagree about what limits expression and the researcher picks. Refuses a frame-shifted CDS, an internal stop or a missing host table rather than optimising nonsense.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cdsNothe coding sequence to redesign, in frame and start-codon first. Unset falls back to THE SELECTION, on the strand the selection or its matching annotation states, then to the whole open record.
seedNoseed for the solver's random draws, so a listed variant can be regenerated exactly. Advanced.
_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.
gc_maxNomaximum GC fraction (0-1); set with gc_min. Advanced.
gc_minNominimum GC fraction (0-1); set with gc_max. Advanced.
featureNoredesign this annotated CDS or gene by NAME instead of the selection, exactly as `codon_usage_analysis` takes one. Its own strand is used. Takes precedence over the selection; `cds` still wins over both.
_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.
posturesYeswhich strategies to design, in order. max_cai = every amino acid takes the target host's single most-used codon; match_usage = reproduce the target host's synonymous-codon distribution rather than its single best codon, so rare codons stay at their natural rate; harmonize = put each codon at the same relative adaptiveness it had in the gene's native host, so the elongation rhythm (and any pause the protein folds around) survives the transfer; native_initiation = leave nt +1…+37 of the coding sequence exactly as they are and match the host's codon usage only downstream, so the redesign cannot add secondary structure to the window Kudla found dominant. The set IS the deliverable — asking for one gets one, and there is no hidden default of three.
upstreamNothe bases immediately 5' of the CDS (the 5'UTR/RBS region). Kudla's window starts 4 nt BEFORE the start codon, so without this the folding energy is reported over a truncated window and says so.
gc_windowNowindow in bp the GC bounds apply over (whole sequence when unset). Advanced.
host_tableNothe TARGET host's codon-usage table, BY NAME, as the Codon Usage panel lists it. This is the way to pass a table: it resolves against the tables loaded in this project, so the numbers come from a table someone built or fetched. Leave unset and the active table is used.
rare_belowNowithin-family frequency below which a codon counts as RARE, for the report only — it adds no constraint. Omit and no rare-codon count is reported, which is the honest answer: "rare" has no host-independent definition.
native_tableNothe gene's NATIVE host codon table, BY NAME from this project's loaded tables — required only for the `harmonize` posture, which matches relative adaptiveness BETWEEN two hosts. It must be a DIFFERENT table from `host_table`: harmonising a host against itself is a difference of zero.
genetic_tableNogenetic code for the translation constraint (default Standard). Advanced.Standard
avoid_patternsNoliteral patterns (restriction sites, homopolymers) every variant must not contain.
host_table_tsvNoONLY for a table you are pasting yourself, measured elsewhere — prefer `host_table`, which names one this project already has. Do NOT write a table out from memory: codon frequencies are measured data, and a typed one is indistinguishable from a real one in the result. TSV: codon<TAB>count. Advanced.
host_table_nameNohow to name that table on every score it produced (e.g. "E. coli K-12, Kazusa"), so a reported CAI is attributable.
native_table_tsvNoONLY for a native table you are pasting yourself — prefer `native_table`. Do not write one out from memory (see `host_table_tsv`). TSV: codon<TAB>count. Advanced.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
regionYeswhat was actually redesigned — the selection when there is one, otherwise the whole open record, naming the STRAND and where it came from. Empty when the caller passed `cds` outright, because then there is no region, only a sequence they named
reportYesthe whole comparison as Markdown — table, what each design trades, the provenance of every number, and the sequences — so it survives outside the transcript
proteinYesthe protein every variant encodes — asserted per variant, not assumed
recordsYesthe variants as sequence RECORDS, so the run leaves the user holding the designs it describes
skippedYespostures that were asked for and could not run, each with the reason
best_caiYesthe posture reaching the highest CAI — a ranking on ONE axis, never a recommendation
distinctYeshow many of the variants are DIFFERENT sequences
variantsYesone entry per posture: its sequence, what it was optimising for, what it trades away, and every score with the engine that produced it
least_structuredYesthe posture whose initiation window folds least tightly (the highest, least-negative dG)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With annotations only covering the safe/non-destructive profile, the description supplies substantial extra behavior: it refuses a frame-shifted CDS, an internal stop, or a missing host table, and it discloses that folding energy is reported over a truncated window when `upstream` is absent. This is well beyond what readOnlyHint/openWorldHint/destructiveHint convey.

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?

Front-loaded with the deliverable, then the strategy list, then the output rationale, then the refusal behavior — well ordered. It is dense and the parenthetical strategy enumeration is heavy, but every sentence carries information.

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?

An output schema exists, so return values need not be explained, and the description still covers the multi-variant nature, the scoring engines, validation refusals, and the truncation caveat. Nothing an agent needs to invoke this 18-parameter tool correctly is missing.

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%, so the schema already documents all 18 parameters in detail (postures, host_table, rare_below, etc.). The description adds no parameter-level syntax or defaults beyond that, so the baseline 3 applies.

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?

Opens with a specific verb+resource: it produces 'several coding sequences for one protein', each following a named published strategy, and states it 'returns the comparison rather than one answer'. This substantively separates it from single-output codon tools like back_translate or codon_optimality without needing to name them.

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?

Gives clear context for why and when to reach for this tool ('the strategies disagree about what limits expression and the researcher picks'), plus precedence rules reflected in the schema (cds wins over feature wins over selection). It does not name a specific alternative sibling, so it stops short of full when/when-not routing.

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