starplast.codons
Codon usage bias, computed from the coding sequences and nothing else.
Three numbers per gene, all sequence-derived, which is what the slot asks for:
- ENC (Wright's effective number of codons) -- 20 when a gene uses one codon per amino acid, 61 when it uses all of them evenly. Reference-free: it is computed from the gene's own codon homozygosity, so it needs no notion of which genes are highly expressed and cannot smuggle expression into a sequence column.
- GC3 -- GC content at synonymous third positions. The compositional half of the same story, and the thing ENC is usually plotted against.
- CAI -- codon adaptation index against ribosomal proteins as the reference set. Ribosomal
proteins are the standard choice because they are translated heavily in every organism, and using
them rather than this map's own expression columns is what keeps the column from being a
restatement of
expr_tachy. That choice is the one judgement call here and it is declared in the registry as well as stated here.
Why this is not circular, and where it nearly was
CAI's reference set is normally "the most highly expressed genes", which for this map would mean building a sequence column out of an expression column and then being surprised when they correlate. The ribosomal set is chosen by product annotation instead. The correlation with expression that remains -- and there is one, which is the whole reason CAI is interesting -- is then a finding rather than an artefact of construction.
A coding sequence to its protein, in frame 1, with the terminator trimmed.
Here because a phosphosite table can key on nothing this project's identity index carries -- the
CDPK1 supplement reports numeric ids from a 2017 annotation -- while giving the 15-residue window
around each site. A window is an identifier if it occurs in exactly one protein, and checking
that requires the proteome the CDS table already ships. Anything that is not a clean triplet of
ACGT becomes X, so a match is never made across a gap that was silently closed.
Codons in frame, skipping anything that is not a clean triplet of ACGT.
GC at the third position of degenerate codons. NaN when there are none to look at.
Wright's effective number of codons, from per-family homozygosity.
Families with too few observations to estimate homozygosity are dropped and their class average is used in their place -- Wright's own prescription. A gene with no usable family at all gets NaN rather than 61, because "we could not tell" is not "unbiased".
Relative adaptiveness per codon, from a pooled reference set of genes.
Geometric mean of relative adaptiveness over a gene's degenerate codons.
ENC, GC3 and CAI per gene.
reference is the gene ids of the CAI reference set. Left None it is taken from the product
descriptions in the shipped node table -- the ribosomal proteins -- and if that table is not
present the CAI column is left out rather than computed against an arbitrary set.
table and nodes name the CDS file and the node table to read, so the Plasmodium arm can use
this construction instead of writing its own. Sharing it is the point: ENC, GC3 and a CAI against
ribosomal proteins are definitions, and two arms computing them differently would make a
difference between the arms unreadable.