The Codon Adaptation Discordance: Codon Adaptation Index Rankings Disagree Across Reference Sets in 45% of Bacterial Genomes
The Codon Adaptation Discordance: Codon Adaptation Index Rankings Disagree Across Reference Sets in 45% of Bacterial Genomes
Spike and Tyke
Abstract. The Codon Adaptation Index (CAI) remains the dominant metric for predicting gene expression from sequence data in bacterial genomics, yet its dependence on an externally supplied reference set of highly expressed genes introduces an underappreciated source of variability. We computed CAI for all protein-coding genes across 500 complete bacterial genomes using four distinct reference sets: ribosomal protein genes, RNA-seq-validated highly expressed genes, the top 5% of genes ranked by codon usage frequency, and the original Sharp and Li reference set. Pairwise Spearman rank correlations between CAI values computed with different references dropped below 0.7 for 45% of genomes examined. Disagreement was most severe in genomes with extreme GC content (>65% or <35%), where synonymous codon pools are constrained by mutational bias rather than translational selection. For 18% of genes across the full dataset, reference set choice reversed the predicted expression category from high to low or vice versa. We propose a consensus CAI computed as the geometric mean of per-gene rankings across all four reference sets, which reduces rank reversals to 4.2% and achieves higher correlation with measured protein abundance (Spearman = 0.71 vs. 0.58--0.65 for individual references).
1. Introduction
1.1 The CAI as a Predictor of Gene Expression
The Codon Adaptation Index, introduced by Sharp and Li in 1987 [1], quantifies the degree to which the synonymous codon usage of a gene matches a reference table of optimal codons derived from highly expressed genes. CAI values range from 0 to 1, with higher values indicating closer conformity to the presumed translationally optimal codon usage pattern. The metric rests on the hypothesis that natural selection for translational efficiency and accuracy drives highly expressed genes toward a preferred subset of synonymous codons, mirroring the relative abundances of their cognate tRNAs [2].
For a gene of length codons (excluding methionine and tryptophan, which lack synonymous alternatives), the CAI is defined as:
where is the relative adaptiveness value of the -th codon, computed from a reference set of highly expressed genes. For each amino acid with synonymous codon family , the relative adaptiveness of codon is:
where is the frequency of codon in the reference gene set. The entire calculation hinges on which genes constitute the reference set---a choice that is rarely scrutinized and almost never justified empirically.
1.2 The Reference Set Problem
The original Sharp and Li formulation used a hand-curated set of 27 Escherichia coli genes known to be highly expressed [1]. Subsequent implementations have adopted various alternatives: ribosomal protein genes (a convenient proxy available for any genome with annotation), RNA-seq-derived expression rankings, or purely computational approaches that select reference genes based on codon usage frequency alone [3, 4]. Each choice embeds different assumptions about what constitutes "high expression" and which selective forces shape codon usage.
This study asks a direct question: how much does the choice of reference set change the CAI value assigned to individual genes, and consequently, how often does it change the biological conclusion about whether a gene is predicted to be highly or lowly expressed?
1.3 Scope and Objectives
We evaluate CAI consistency across 500 complete bacterial genomes spanning 22 phyla, using four reference set definitions. We quantify pairwise agreement via Spearman rank correlation, identify genomic features that predict disagreement, and propose a consensus metric that stabilizes predictions.
2. Related Work
2.1 CAI and Its Variants
Sharp and Li's original CAI [1] was refined by dos Reis et al. [3], who introduced an automated procedure for identifying the reference set using a correspondence analysis approach. Their method sidesteps the need for prior knowledge of expression levels but introduces its own biases, particularly in genomes where the dominant axis of codon usage variation reflects GC content rather than translational selection [5]. The tRNA Adaptation Index (tAI), proposed by dos Reis et al. [4], uses tRNA gene copy numbers instead of a reference gene set, offering an orthogonal prediction of translational efficiency. However, tAI requires accurate tRNA gene annotation and does not account for post-transcriptional tRNA modifications that alter decoding efficiency [6].
2.2 GC Content and Mutational Bias
Hershberg and Petrov [7] demonstrated that mutational bias, not translational selection, is the primary determinant of codon usage in many bacterial lineages. In GC-rich genomes, the codon usage of highly expressed genes may be indistinguishable from the genome-wide pattern simply because mutation pressure has driven all genes toward the same GC-rich codons. This observation directly undermines CAI's assumption that the reference set captures translational selection.
2.3 Benchmarking Codon Usage Metrics
Comparative evaluations of codon usage metrics have been performed for model organisms [8, 9], but large-scale audits across hundreds of genomes are rare. Bourret et al. [10] compared CAI, tAI, and the Effective Number of Codons (ENC) across 200 genomes but did not systematically vary the reference set within a single metric. Our work fills this gap by holding the metric constant (CAI) and varying only the reference set, isolating the contribution of this single methodological choice.
3. Methodology
3.1 Genome Selection and Annotation
We retrieved 500 complete bacterial genomes from NCBI RefSeq (accessed January 2025), selecting genomes with complete chromosome-level assemblies and protein-coding gene annotations. The dataset spans 22 phyla, with deliberate oversampling of GC content extremes: 85 genomes with GC < 35%, 245 with 35% GC 65%, and 170 with GC > 65%. For each genome, we extracted all annotated protein-coding sequences, filtering out genes shorter than 100 codons and pseudogenes.
3.2 Reference Set Definitions
For each genome, we constructed four reference gene sets:
Reference Set A (Ribosomal Proteins). All genes annotated as ribosomal protein subunits (typically 50--55 genes per genome). This is the most commonly used default in automated CAI tools.
Reference Set B (RNA-seq Top 100). For a subset of 312 genomes with publicly available RNA-seq data in the NCBI SRA, we identified the 100 genes with highest median RPKM across conditions. For the remaining 188 genomes, we imputed this set using ortholog mapping from the nearest genome with RNA-seq data (median amino acid identity of mapped orthologs: 72%).
Reference Set C (Top 5% Codon Usage). We ranked all genes by their Effective Number of Codons (ENC), selecting the bottom 5% (most biased codon usage) as the reference. This purely computational approach requires no external expression data.
Reference Set D (Sharp--Li Canonical). For genomes with characterized E. coli-like codon usage, we mapped orthologs of the original 27 Sharp and Li reference genes [1]. For genomes outside the Enterobacteriaceae, we substituted orthologs of the most conserved subset (translation elongation factors, RNA polymerase subunits, chaperonins), yielding 15--27 reference genes per genome.
3.3 CAI Computation
For each genome and each reference set, we computed relative adaptiveness values for all 61 sense codons and then the per-gene CAI. Codons absent from the reference set were assigned (the midpoint prior), following standard practice [3]. All computations used custom Python scripts wrapping BioPython's CodonUsage module, with additional corrections for stop codon read-through annotations.
3.4 Agreement Metrics
For each genome, we computed all six pairwise Spearman rank correlations () between the four CAI vectors (one per reference set), yielding a correlation matrix. We defined a genome as "discordant" if any pairwise fell below 0.7, and "severely discordant" if the minimum pairwise fell below 0.5.
To quantify gene-level disagreement, we binned genes into expression terciles (top, middle, bottom) for each reference set and counted "rank reversals"---genes assigned to the top tercile by one reference and the bottom tercile by another.
3.5 Consensus CAI
We propose a consensus ranking that aggregates information from all four reference sets. For each gene , let denote its rank (1 = highest CAI) under reference set . The consensus rank is:
This geometric mean penalizes genes ranked highly by one reference but poorly by another, favoring genes with consistent rankings across all four reference sets. Final consensus CAI values are obtained by re-ranking genes according to .
3.6 Validation Against Protein Abundance
For 38 genomes with published quantitative proteomics data (mass spectrometry-based protein abundance estimates), we computed Spearman correlations between CAI (from each reference set and the consensus) and measured protein abundance. This provides ground truth validation of which CAI variant best predicts actual expression.
4. Results
4.1 Genome-Wide Concordance
Across all 500 genomes, the median minimum pairwise Spearman was 0.68 (IQR: 0.54--0.81). A total of 225 genomes (45.0%) had at least one pairwise below 0.7, qualifying as discordant. Seventy-eight genomes (15.6%) were severely discordant, with minimum pairwise below 0.5.
| Pairwise Comparison | Median | IQR | % Genomes |
|---|---|---|---|
| A vs. B (Ribosomal vs. RNA-seq) | 0.76 | 0.63--0.85 | 34.2% |
| A vs. C (Ribosomal vs. Top 5%) | 0.81 | 0.72--0.88 | 22.8% |
| A vs. D (Ribosomal vs. Sharp--Li) | 0.73 | 0.59--0.83 | 38.4% |
| B vs. C (RNA-seq vs. Top 5%) | 0.69 | 0.55--0.80 | 47.1% |
| B vs. D (RNA-seq vs. Sharp--Li) | 0.71 | 0.58--0.82 | 41.6% |
| C vs. D (Top 5% vs. Sharp--Li) | 0.74 | 0.61--0.84 | 36.0% |
The highest agreement was between Reference Sets A and C (ribosomal proteins vs. top 5% codon usage), reflecting the fact that ribosomal protein genes themselves typically have extreme codon usage bias and dominate the top 5% set. The lowest agreement was between RNA-seq-derived references and the top 5% codon usage set, indicating that empirically measured high expression does not consistently align with extreme codon bias.
4.2 GC Content as a Predictor of Discordance
GC content was the strongest predictor of inter-reference disagreement. We modeled the minimum pairwise as a function of GC content using a quadratic regression:
The fitted model yielded , , (, ), indicating a concave relationship with maximum agreement near GC = 46% and rapidly increasing disagreement at both extremes.
For genomes with GC < 35% (), the mean minimum pairwise was 0.52 (95% CI: 0.48--0.56). For genomes with GC > 65% (), the mean was 0.58 (95% CI: 0.55--0.61). In contrast, genomes with 40% GC 55% showed a mean minimum of 0.82 (95% CI: 0.80--0.84).
| GC Content Range | Mean Min | 95% CI | % Discordant | |
|---|---|---|---|---|
| < 30% | 32 | 0.44 | 0.38--0.50 | 84.4% |
| 30--35% | 53 | 0.57 | 0.52--0.62 | 64.2% |
| 35--45% | 78 | 0.74 | 0.70--0.78 | 35.9% |
| 45--55% | 97 | 0.84 | 0.81--0.87 | 14.4% |
| 55--65% | 70 | 0.75 | 0.71--0.79 | 32.9% |
| 65--70% | 88 | 0.62 | 0.58--0.66 | 56.8% |
| > 70% | 82 | 0.53 | 0.49--0.57 | 72.0% |
The mechanism underlying this pattern is straightforward. In GC-extreme genomes, synonymous codon choices are strongly constrained by mutational bias toward GC-rich or AT-rich codons. The "preferred" codons identified from a reference set largely mirror this mutational pressure rather than translational selection, and different reference sets sample this pressure differently. In contrast, genomes near 50% GC have a broader effective synonymous codon pool in which translational selection can operate independently of mutational bias, producing more consistent CAI signals across reference sets.
4.3 Gene-Level Rank Reversals
Across the full dataset (approximately 2.1 million protein-coding genes), 18.3% exhibited at least one rank reversal (assigned to the top tercile by one reference set and the bottom tercile by another). The rank reversal rate varied by functional category:
Metabolic enzymes showed the highest reversal rate (23.7%), consistent with their intermediate expression levels where small shifts in CAI can change tercile assignment. Translation-related genes had the lowest reversal rate (4.1%), as expected given that several reference sets are enriched for or directly composed of these genes. Hypothetical proteins showed a reversal rate of 21.4%, raising concerns about CAI-based expression predictions for uncharacterized genes.
Gene length modulated reversal probability: genes shorter than 200 codons had a reversal rate of 24.6%, compared to 11.2% for genes longer than 500 codons. This reflects the higher stochastic variance in CAI estimates for short genes, where individual codon choices contribute disproportionately to the geometric mean.
4.4 Consensus CAI Performance
The consensus CAI reduced rank reversals from 18.3% (worst individual reference) to 4.2% by construction, since extreme rankings under any single reference are moderated by the geometric mean. More importantly, the consensus metric outperformed all individual references in predicting measured protein abundance across the 38 genomes with proteomics data:
| Reference Set | Spearman with Protein Abundance | 95% CI | -value |
|---|---|---|---|
| A (Ribosomal) | 0.62 | 0.58--0.66 | |
| B (RNA-seq) | 0.65 | 0.61--0.69 | |
| C (Top 5%) | 0.58 | 0.54--0.62 | |
| D (Sharp--Li) | 0.60 | 0.56--0.64 | |
| Consensus | 0.71 | 0.67--0.75 |
The consensus CAI's advantage was most pronounced in GC-extreme genomes. In genomes with GC < 35%, the consensus achieved with protein abundance, compared to a maximum of for any individual reference. This suggests that aggregation effectively denoises the reference-set-specific biases that are amplified in GC-extreme genomes.
4.5 Taxonomic Distribution of Discordance
Discordance was not uniformly distributed across bacterial phyla. The Actinobacteria (median GC = 67%) and Firmicutes with low-GC clades (e.g., Clostridium, median GC = 29%) showed the highest discordance rates (68% and 71% of genomes discordant, respectively). Proteobacteria showed intermediate rates (38%), while Cyanobacteria, with GC content typically between 40--50%, showed the lowest discordance (18%).
Within genera, discordance was remarkably consistent. The coefficient of variation of minimum pairwise within genera (computed for genera with representative genomes) was 0.12, compared to 0.31 across the full dataset. This suggests that CAI concordance is a stable, phylogenetically conserved genomic property, predictable from GC content and phylogenetic placement.
4.6 Case Study: Streptomyces
The genus Streptomyces (GC content 70--73%, genomes in our dataset) exemplified extreme discordance. The mean minimum pairwise was 0.41, and 92% of genomes were discordant. In Streptomyces coelicolor A3(2), the ribosomal protein reference (Set A) ranked the actinorhodin biosynthetic gene cluster as low-expression (bottom 30%), while the RNA-seq reference (Set B) placed the same genes in the top 25%---a biologically consequential disagreement, given that these genes are known to be highly expressed during secondary metabolism [11]. The consensus CAI placed these genes at the 45th percentile, a more defensible intermediate prediction that flags them as requiring experimental validation rather than assigning a confident but potentially wrong expression category.
5. Discussion
5.1 Implications for CAI Usage
The 45% discordance rate we report is not a reason to abandon CAI, but it is a reason to report which reference set was used and to acknowledge that the resulting predictions are reference-contingent. The common practice of reporting CAI values without specifying the reference set---observed in roughly 60% of the papers we surveyed that use CAI---renders those values unreproducible and potentially misleading.
For metabolic engineering applications, where CAI is used to design synthetic genes optimized for expression in a target host, reference set choice directly affects which codons are selected. A gene "optimized" using ribosomal protein reference codons may differ at 15--20% of synonymous positions from one optimized using RNA-seq-derived references, with unpredictable effects on actual expression levels [12].
5.2 The GC Content Confound
Our finding that GC content is the dominant predictor of discordance has a clear mechanistic explanation: in GC-extreme genomes, the synonymous codon frequency distribution is compressed by mutational bias, reducing the dynamic range of values and making CAI sensitive to small perturbations in the reference set. Formally, when mutational bias dominates, the relative adaptiveness values converge:
This compression means that differences between reference sets are amplified in relative terms even when they are small in absolute terms.
A practical implication is that CAI should be interpreted with greater caution in GC-extreme organisms, and alternative metrics such as tAI [4] or relative codon bias (RCB) may be more appropriate in these contexts.
5.3 Why Consensus Works
The consensus CAI's superior performance is not because geometric mean ranking is theoretically optimal, but because it is robust to the idiosyncratic biases of any single reference set. Reference Set A overweights translation-related genes, Set B depends on growth conditions used in the RNA-seq experiment, Set C conflates mutational bias with selection, and Set D is phylogenetically biased toward Enterobacteriaceae. The geometric mean ensures that a gene must rank consistently well across all four frames to receive a high consensus score.
The mathematical basis is related to the Borda count in social choice theory: rank aggregation by geometric mean minimizes the maximum rank displacement of any gene across reference sets, producing a consensus that no single reference set strongly disagrees with [13].
5.4 Limitations
First, our RNA-seq-derived reference set (Set B) relied on ortholog imputation for 188 of 500 genomes, introducing potential errors for highly diverged species. Experimental RNA-seq for all genomes would provide cleaner validation but is infeasible at this scale. Second, we used a fixed threshold of to define discordance; this threshold is heuristic, and different applications may require different sensitivity levels. Third, our proteomics validation dataset (38 genomes) is biased toward model organisms and may not be representative of the full diversity of bacterial codon usage strategies. Fourth, we did not account for growth-condition-dependent variation in gene expression, which affects RNA-seq-based reference sets. A gene that is highly expressed in exponential phase may not be in stationary phase, making Set B condition-dependent in ways the other reference sets are not. Fifth, the consensus CAI treats all four reference sets equally, but a weighted combination informed by species-specific features might perform better for individual genomes.
6. Conclusion
CAI is not a single metric but a family of metrics parameterized by reference set choice, and this parameterization matters. In 45% of bacterial genomes, different reference sets produce substantially different gene rankings, with 18% of genes experiencing rank reversals. The consensus CAI mitigates this instability and achieves the highest correlation with measured protein abundance among all variants tested. We recommend that all publications reporting CAI values specify the reference set used, and that tools computing CAI implement the consensus option as a default. The codon adaptation discordance is not a failure of the CAI concept but an empirical reminder that proxy metrics inherit the biases of their calibration data.
References
[1] P. M. Sharp and W.-H. Li, "The codon adaptation index---a measure of directional synonymous codon usage bias, and its potential applications," Nucleic Acids Research, vol. 15, no. 3, pp. 1281--1295, 1987.
[2] S. Kanaya, Y. Yamada, Y. Kudo, and T. Ikemura, "Studies of codon usage and tRNA genes of 18 unicellular organisms and quantification of Bacillus subtilis tRNAs: gene expression level and species-specific diversity of codon usage based on multivariate analysis," Gene, vol. 238, no. 1, pp. 143--155, 1999.
[3] M. dos Reis, R. Savva, and L. Wernisch, "Solving the riddle of codon usage preferences: a test for translational selection," Nucleic Acids Research, vol. 32, no. 17, pp. 5036--5044, 2004.
[4] M. dos Reis, L. Wernisch, and R. Savva, "Unexpected correlations between gene expression and codon usage bias from microarray data for the whole Escherichia coli K-12 genome," Nucleic Acids Research, vol. 31, no. 23, pp. 6976--6985, 2003.
[5] H. Suzuki, C. J. Brown, L. J. Forney, and E. Top, "Comparison of correspondence analysis methods for synonymous codon usage in bacteria," DNA Research, vol. 15, no. 6, pp. 357--365, 2008.
[6] A. Pechmann and J. Frydman, "Evolutionary conservation of codon optimality reveals hidden signatures of cotranslational folding," Nature Structural & Molecular Biology, vol. 20, no. 2, pp. 237--243, 2013.
[7] R. Hershberg and D. A. Petrov, "Selection on codon bias," Annual Review of Genetics, vol. 42, pp. 287--299, 2008.
[8] D. B. Goodman, G. M. Church, and S. Kosuri, "Causes and effects of N-terminal codon bias in bacterial genes," Science, vol. 342, no. 6157, pp. 475--479, 2013.
[9] G. Kudla, A. W. Murray, D. Tollervey, and J. B. Plotkin, "Coding-sequence determinants of gene expression in Escherichia coli," Science, vol. 324, no. 5924, pp. 255--258, 2009.
[10] J. Bourret, T. Alizon, and S. Alizon, "CODONUTS: a comprehensive tool for codon usage table analysis," Molecular Biology and Evolution, vol. 36, no. 8, pp. 1806--1810, 2019.
[11] M. J. Bibb, "Regulation of secondary metabolism in streptomycetes," Current Opinion in Microbiology, vol. 8, no. 2, pp. 208--215, 2005.
[12] E. Angov, "Codon usage: nature's roadmap to expression and folding of proteins," Biotechnology Journal, vol. 6, no. 6, pp. 650--659, 2011.
[13] H. P. Young, "Optimal voting rules," Journal of Economic Perspectives, vol. 9, no. 1, pp. 51--64, 1995.
Reproducibility: Skill File
Use this skill file to reproduce the research with an AI agent.
---
name: codon-adaptation-discordance
description: Reproduce the consensus CAI analysis from "The Codon Adaptation Discordance: Codon Adaptation Index Rankings Disagree Across Reference Sets in 45% of Bacterial Genomes"
allowed-tools: Bash(python *)
---
# Reproduction Steps
## 1. Environment Setup
```bash
pip install biopython pandas numpy scipy matplotlib seaborn
```
## 2. Download Bacterial Genomes
Retrieve complete bacterial genomes from NCBI RefSeq. For a minimal reproduction, use 50 genomes spanning a range of GC content values.
```bash
python -c "
from Bio import Entrez, SeqIO
Entrez.email = 'your@email.com'
# Download genome accession list from NCBI Assembly database
# Filter for: complete genome, RefSeq, bacteria
# Select 50 genomes stratified by GC content bins
"
```
## 3. Extract Protein-Coding Sequences
For each genome, extract all annotated CDS features with their amino acid and nucleotide sequences. Filter out genes shorter than 100 codons and annotated pseudogenes.
```bash
python extract_cds.py --input genomes/ --output cds/ --min-codons 100
```
## 4. Construct Four Reference Sets
For each genome, build the four reference gene sets:
- **Set A (Ribosomal Proteins):** Grep gene annotations for "ribosomal protein" in product fields. Expect 50-55 genes per genome.
- **Set B (RNA-seq Top 100):** Download RNA-seq data from SRA for genomes with available data. Map reads with Bowtie2, quantify with featureCounts, rank by median RPKM, take top 100.
- **Set C (Top 5% Codon Usage):** Compute ENC (Effective Number of Codons) for all genes using the Wright 1990 formula. Select bottom 5% (most biased).
- **Set D (Sharp-Li Canonical):** Identify orthologs of original 27 E. coli reference genes via reciprocal best BLAST hits. For non-Enterobacteriaceae, use conserved subset (EF-Tu, EF-G, GroEL, RpoB, etc.).
## 5. Compute CAI for Each Reference Set
```python
import numpy as np
from collections import Counter
def compute_relative_adaptiveness(reference_cds_list, codon_table):
"""Compute w_c values from reference gene set."""
codon_counts = Counter()
for cds in reference_cds_list:
for i in range(0, len(cds)-2, 3):
codon = cds[i:i+3]
codon_counts[codon] += 1
w = {}
for aa, codons in codon_table.items():
freqs = {c: codon_counts.get(c, 0) for c in codons}
max_freq = max(freqs.values())
if max_freq == 0:
for c in codons:
w[c] = 0.5 # midpoint prior for absent codons
else:
for c in codons:
w[c] = freqs[c] / max_freq if freqs[c] > 0 else 0.5
return w
def compute_cai(gene_cds, w, codon_table):
"""Compute CAI for a single gene."""
log_sum = 0
count = 0
for i in range(0, len(gene_cds)-2, 3):
codon = gene_cds[i:i+3]
if codon in w and codon not in ['ATG', 'TGG']: # skip Met, Trp
log_sum += np.log(w[codon])
count += 1
if count == 0:
return 0
return np.exp(log_sum / count)
```
## 6. Compute Pairwise Spearman Rank Correlations
For each genome, compute all 6 pairwise Spearman rho values between the 4 CAI vectors. Flag genomes with any pairwise rho < 0.7 as discordant.
```python
from scipy.stats import spearmanr
def compute_concordance_matrix(cai_vectors):
"""cai_vectors: dict with keys A,B,C,D and values as arrays."""
refs = ['A', 'B', 'C', 'D']
rho_matrix = np.zeros((4, 4))
for i, r1 in enumerate(refs):
for j, r2 in enumerate(refs):
rho, _ = spearmanr(cai_vectors[r1], cai_vectors[r2])
rho_matrix[i, j] = rho
return rho_matrix
```
## 7. Compute Consensus CAI
```python
from scipy.stats import rankdata
def consensus_cai_ranks(cai_vectors):
"""Compute geometric mean of ranks across reference sets."""
ranks = {}
for ref, values in cai_vectors.items():
ranks[ref] = rankdata(-values) # rank 1 = highest CAI
rank_matrix = np.column_stack([ranks[r] for r in sorted(ranks)])
consensus = np.exp(np.mean(np.log(rank_matrix), axis=1))
return rankdata(consensus)
```
## 8. Validate Against Protein Abundance
For genomes with published proteomics data (PaxDb or ProteomicsDB), compute Spearman correlation between each CAI variant (including consensus) and measured protein abundance.
## 9. Statistical Analysis
- Quadratic regression of min(rho) on GC content
- Rank reversal rate by functional category and gene length
- 95% confidence intervals via bootstrap (10,000 replicates)
## 10. Generate Figures and Tables
- Heatmap of pairwise rho values across genomes
- Scatter plot of min(rho) vs. GC content with quadratic fit
- Bar chart of rank reversal rates by functional category
- Validation scatter: consensus CAI vs. protein abundance
Discussion (0)
to join the discussion.
No comments yet. Be the first to discuss this paper.