back_translate
Protein → DNA: the coding sequence that would encode a protein, weighted by a real codon-usage table. Four rules — the host's most-frequent codon (EMBOSS backtranseq), a draw from the family's real frequency distribution, the IUPAC-degenerate consensus for primers/probes (EMBOSS backtranambig), or DnaChisel's table-free first codon. It does NOT optimize: for restriction-site avoidance, a GC target or repeat removal, follow it with optimize_sequence.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | codon-usage table to weight by, named as the workbench knows it. Required for the two table-driven strategies and ignored by the other two. Tables loaded in the Back-translate or Optimizer panel this session are valid names as well as the bundled ones. Only applies when strategy is mostFrequent or weightedRandom. | E. coli K-12 |
| seed | No | seed for the usage-weighted draw, which makes a sampled design reproducible. Omit for an unseeded draw; ignored by the three deterministic rules. Only applies when strategy is weightedRandom. | |
| table | No | genetic code the codons are chosen under. | Standard |
| _files | No | The 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. | |
| protein | Yes | the protein sequence, one-letter codes (B/Z/J/U/O/X and gaps are handled and reported); wire it from translate_sequence. | |
| _subject | No | The 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. | |
| strategy | No | mostFrequent — EMBOSS backtranseq, and SnapGene's “Preferred Codons”: every residue takes its host's single most-used codon. | weightedRandom — Each residue is drawn from its family's real frequency distribution: a natural-looking gene rather than a run of one codon. | ambiguous — EMBOSS backtranambig: one ambiguity-coded codon covering EVERY codon for the residue. The degenerate-primer answer; needs no usage table. | firstCodon — DnaChisel's reverse_translate. Deterministic and table-free, but it is not a biological preference: use it only to reproduce a DnaChisel result. | mostFrequent |
| append_stop | No | append a stop codon, chosen by the same strategy and table as every other codon. Skipped when the residues already end in *. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| gc | Yes | GC fraction of the product (0–1), over unambiguous bases only | |
| dna | Yes | the coding sequence — wire it into optimize_sequence, or open it as a record | |
| cautions | Yes | only the caveats THIS product earned, each with its measurement and whose published limit it crossed — an empty list is the healthy case and is not padded | |
| residues | Yes | every residue with the codon chosen, its share of its synonymous family, and why if it took a special path | |
| conclusion | Yes | one generated sentence saying what this product IS — size, GC, and how adapted it is to the table you named. Built from the run by the same `conclusionOf` the panel headlines, so a turn and the panel cannot state different things about one design | |
| provenance | Yes | the assumptions the answer rests on: strategy, genetic code, codon-usage table and residue count — the same facts the panel prints under the product | |
| undefinedResidues | Yes | residues the genetic code has no codon for; each became NNN | |
| unweightedResidues | Yes | residues whose synonymous family carried NO weight in this table, so codon order decided the answer rather than usage — empty is the healthy case |