Beyond: heterogeneity, cohort comparison, and OmicOne
The earlier chapters took one tumour–normal pair all the way to a cohort-level mutation landscape. This last chapter adds four things: inferring clonal structure from VAFs, comparing two cohorts, linking mutations to clinical features, and running the whole WES analysis in OmicOne.
VAF and clonal structure
A tumour is rarely a single clone. The earliest mutations are in every tumour cell (clonal); later ones are in only some cells (subclonal). In a diploid region without copy-number change, clonal heterozygous mutations cluster at a VAF of about purity / 2. The share of tumour cells carrying a mutation is its cancer cell fraction (CCF), and a subclone peaks at purity × CCF / 2. Drag purity and CCF in the schematic and both peaks move; lower the depth and the peaks widen until they merge.
Copy number breaks this simple relation: a mutation on an amplified allele sits above purity / 2, while one on the other allele, or in a region with LOH, moves elsewhere. That is why clonality tools such as PyClone and ABSOLUTE need purity and copy number, not VAF alone.
A simple summary is the MATH score: the spread of the VAFs divided by their median, higher meaning more heterogeneity. It depends on purity, depth and the number of mutations, so compare it only across samples from the same assay and pipeline.
Comparing two cohorts
Responders versus non-responders, primary versus metastasis, before versus after treatment: each is a comparison of two cohorts. maftools’ mafCompare runs a Fisher’s exact test per gene on the share of mutated patients in each group and reports odds ratios with 95% confidence intervals as a forest plot.
Two things matter. First, every gene tested adds a p-value, and all of them need a BH correction (FDR); genes with a raw p below 0.05 often stop being significant after it. Second, both groups should share the sequencing platform, depth and pipeline, or the difference may come from the assay rather than the biology; and each group’s denominator is every sequenced patient, including those with no mutation record.
Clinical enrichment
Clinical enrichment is a one-versus-rest comparison: for each level of a clinical variable, that group is compared with all other patients to find genes mutated unusually often in it. maftools’ clinicalEnrichment also uses Fisher’s test, with a BH correction across all genes and levels. In LAML you can test enrichment by FAB subtype.
The full run in OmicOne
OmicOne organises this tutorial’s analysis into 12 steps, all starting from the same MAF: import MAF (with clinical table) → cohort summary → oncoplot → TiTv / VAF / rainfall → TMB → lollipop and domains → drivers and interactions → mutational signatures → clinical, pathway and drug → cohort comparison → mutation versus survival → heterogeneity. The last step is the animation above: one sample’s VAFs clustered by a Gaussian mixture model, plus the MATH score.
maftools’ TCGA-LAML loads offline in an instant (the signature step needs the reference genome’s BSgenome package installed first). Every step exports reproducible R code; screens report BH-adjusted q-values; TMB requires a capture size; and survival counts sequenced patients without a MAF record as wild-type by default.
Common pitfalls
- Reading VAF peaks directly as clones. Copy-number changes create peaks too; without purity and copy number, clustering is only descriptive.
- Comparing cohorts without multiple-testing correction. Test dozens of genes and a few will look significant by chance.
- Sequencing the two groups on different platforms or pipelines. Assay differences masquerade as biology.
- Assuming WES sees every driver event. Fusions, translocations and most structural variants are outside its view.