jane* docs
Analyze

Reagent audit: does each CDS code for what the map says?

Check that each annotated coding sequence of a vector map codes for what the map says it does, and find where translation really stops when an annotation ends without a stop codon. A second question asks whether a map's strongest cryptic promoter, splice site or repeat is stronger than its own base composition predicts.

Reached byTools → Analyze
FormatsGenBank (.gb, .gbk, .gbff), one or many records per file

What it does

Choose the GenBank maps in your project and press Audit CDS annotations. Every CDS is read from the map's own bases, joins and strand included, from its codon_start, under the genetic code it names (transl_table, the standard code when it names none). Each is checked for:

  • a frame that does not close: a length from codon_start that is not a whole number of codons, when neither end is partial
  • a stop inside the reading frame
  • no start: a first codon the genetic code cannot start with
  • no stop: a last codon that is not a stop
  • a translation mismatch: a /translation the bases do not give, with an alternative start read as methionine and an ambiguous codon translated when every reading of it gives the same amino acid

A partial end (< or >) is not judged, and a CDS marked /pseudo carries no flag: the map already says it does not code. Where an annotation ends without a stop, translation is read on in the same frame, round the origin of a circular map, to the first stop. Click a row with its map open to select the CDS on the map.

Composition flags

Switch Ask to Composition flags and press Measure flag rates. Every map of a few kilobases spells some promoter a σ70 model scores, some GT a splice model likes and some repeat, so a count of hits measures the map's length and composition, not a defect. The question that can fail is comparative: is the map's own extreme more extreme than the same bases in another order? Each statistic is scored on the map and on shuffles of it that keep its dinucleotide composition, and no statistic takes a threshold:

statisticthe map's numbera flag is
Strongest σ70 promoterthe most negative total free energy the La Fleur–Hossain–Salis model gives any position, either strand (kcal/mol)lower than the shuffles
Strongest splice donorthe highest MaxEntScan 5′ splice-site score, either strandhigher
Strongest splice acceptorthe highest MaxEntScan 3′ splice-site score, either strandhigher
Longest homopolymerthe longest run of one base (bp)longer
Longest tandem repeatthe longest run of a repeated unit (bp)longer
Longest repeated stretchthe longest stretch present twice (bp)longer
Longest hairpin armthe longest arm of an inverted repeat (bp)longer

Choose which statistics to run, the shuffle count, the k of the shuffle, α and the correction.

When you’d use this

  • Before you order a construct. A stop inside a fusion or a tag annotated in pieces is cheaper to find on the map than in a western blot.
  • Taking a map from someone else. A depositor's map has not been through a validator, and an annotation copied from an older map can outlive an edit to the sequence.
  • Reading a deposited record. A tag or a truncated marker annotated without its stop says nothing about how far the protein runs; the read-through does.

What this computes

  • CDS count per map and across the maps, and how many maps annotate one
  • frameshift, internal stop, no start, no stop and translation mismatch, each as a count of CDS and of maps, with every flagged CDS listed by name and map
  • partial 5′ and 3′ ends, counted, and left unjudged
  • read-through of every annotation that ends without a stop: the codons translation adds before the first in-frame stop, the coordinate of that stop, whether it crossed the origin, and none when no stop comes in one lap of a circular map or before the end of a linear one
  • runs into: the annotated CDS, on the same strand and in the same frame, that a read-through reaches, which is a protein annotated in pieces
  • expected read-through of a random sequence of the map's own base composition, (1 − s)/s codons with s the probability that one codon is a stop of the code on the strand read

For composition flags, per statistic and map:

  • observed extreme, the shuffle mean, the Monte Carlo p (1 + shuffles at or beyond the observation) / (shuffles + 1) with its exact 95% interval, and q after Benjamini–Hochberg or Benjamini–Yekutieli across the maps within that statistic
  • rate: the fraction of maps calling at q ≤ α, with an exact (Clopper–Pearson) 95% interval
  • the maps a scanner could not read (an ambiguity code the σ70 model does not define), named with the scanner's reason and left out of that statistic's count rather than counted as zero

Every result states, in words generated from the run, which flags fired and in how many maps, how many annotations end without a stop and what reading on found, and what a clean result does and does not show.

Worked example

Five complete vector sequences deposited in GenBank in 2024 (PQ065984, PQ360726, PP429287, PP129559 and PP505785) hold 26 CDS. None is flagged, and 12 ends are partial. Eight annotations end without a stop: seven reach a stop in the backbone and one runs into another annotated CDS.

  • The eGFP of PQ065984 is annotated to base 7,775; translation runs 13 codons further, against 25 expected of a random backbone of its composition.
  • The truncated chloramphenicol acetyltransferase of PP429287 stops on the very next codon.
  • The HA tag of PQ360726 reads into the SV40 NLS annotated after it: one fusion protein annotated in pieces.

Switch to Composition flags with all five maps and 99 shuffles. The longest hairpin arm beats chance in 5 of 5 maps (PQ065984's is 178 bp against a shuffle mean of 13.9), the longest repeated stretch in 4 of 5 (257 bp in PQ360726 against 10.9) and the longest tandem repeat in 1 of 5 (PP429287, 21 bp against 12.7). No map has a σ70 promoter, a splice donor or acceptor, or a homopolymer stronger than its own composition predicts.

Across all 695 complete vector records of 2024, 99 shuffles each, Benjamini–Hochberg at q ≤ 0.05 within each statistic, the longest repeated stretch beats chance in 575 of 695 maps (82.7%, 95% interval 79.7–85.5%) and the longest hairpin arm in 281 (40.4%, 36.8–44.2%). No map is called for a σ70 promoter, a splice donor or acceptor, a homopolymer or a tandem repeat (0 of 690 or 695, interval 0–0.5%); five records hold letters other than A, C, G, T and N and are not scanned for promoters or splice sites.

Limitations

  • A clean deposited record is expected. NCBI's submission check writes the /translation and refuses a CDS with an internal stop unless it is marked pseudo, so across the 1,871 CDS of 695 vector records deposited in 2024 none of the five flags fires. The flags are for maps that have not been through that check.
  • The audit reads the annotation as written. It does not find an unannotated reading frame, and it does not judge a terminator. Composition flags test whether a promoter, splice site or repeat is more extreme than chance, not whether it is active.
  • A long repeat in a vector is usually deliberate: duplicated promoters, ITRs and LTRs are repeats by design, so a composition flag says the map is not a random arrangement of its bases, and reading what the repeat is comes next.
  • With 99 shuffles the smallest p is 0.01, so several maps can tie at the floor; more shuffles separate them. Over a large corpus the floor also limits what can be called at all: across 695 maps a map alone at p = 0.01 gets a q of 1 (0.01 × 695, capped), so a statistic is only called when many maps sit at the floor together. The single longest homopolymer of the 2024 corpus (30 bases against a shuffle mean of 8.1) is not called for that reason; raise the shuffles to test one map among many.
  • The expected read-through assumes the bases after the annotated end are random with the map's composition; a tail much shorter than expected says nothing more than one much longer does without a look at what the tail is.

Where the numbers come from

Location extraction, partial ends and translation under every NCBI genetic code are checked against Biopython on all 1,871 CDS of the 695 complete vector records in GenBank's vectors taxon published in 2024, and the flag and read-through rules are checked on the same records. The σ70 model is checked against the Barrick lab's promoter calculator, MaxEntScan against Yeo and Burge's scorer, the shuffle against uShuffle, and the Monte Carlo tails, their intervals and the corrections against R's binom.test and p.adjust.

On this page