- Rationale
1I started from 3,232 colorectal tumours and all 5,973 genes, embedded so that tumours with similar expression sit close together.From MCR 2023 p. OF3 (3,232 patients, 5,973 genes) · figshare df.csv.gz densMAP_5973_d1/d2, CMS_network · 25_Clusters_for_manuscript.ipynb cell 4
2The four consensus subtypes separate, but bulk tumour data also carry signal from non-tumour cells, and much of the variation inside each subtype stayed unresolved.From MCR 2023 abstract p. OF1 · figshare df.csv.gz densMAP_5973_d1/d2
- Progress
3A random forest removed genes step by step while I tracked cross-validated accuracy, and I repeated the whole elimination with 100 different seeds.From rfecv.py lines 14 to 41, 73 to 83; 01_RFECV cells 16-18 · rfecv_seed_curves.json, seeds 0 to 99
4Every run peaked between 0.939 and 0.945 accuracy, each with its own number of genes, from 87 to 528.From 01_RFECV.ipynb cells 19 and 21 · rfecv_seed_curves.json best_n, best score
5Each run kept its own set of genes. After the first run, 121 genes were in play.From rfecv_data pickles, in seed order · gene_selection_frequency.json checkpoint 1 · 01_RFECV.ipynb cell 22 (665-gene union)
6After 10 runs, only 92 genes had been picked by every one of them.From rfecv_data pickles, in seed order · gene_selection_frequency.json checkpoint 10
7After 50 runs, 63.From rfecv_data pickles, in seed order · gene_selection_frequency.json checkpoint 50
8Across all 100 runs, exactly 62 genes were picked every time; the next closest were picked 99 times. Those 62 became the panel.From features_tally_01092020_features_All.svg (cell 24) · 01_RFECV.ipynb cells 25 to 26; target_genes.sav · MCR 2023 p. OF2 (62 genes always appeared)
9With the 62 genes, I tried six ways to map the tumours: PCA, t-SNE, UMAP, densMAP, PHATE and PaCMAP.From dimred_compare.json (04, 25, 28 notebooks) · PCA, t-SNE, UMAP refit; PHATE, PaCMAP saved
10I kept densMAP, which also preserves how tightly tumours pack together.From dimred_compare.json subset.thin_index · figshare densMAP_62; MCR 2023 Fig 1 · Narayan, Berger, Cho, Nat Biotech 2021
11Two rounds of Louvain clustering split CMS2 in two and CMS4 in three, giving seven groups, and a classifier trained on the clustered tumours labelled the rest, including those with no subtype.From MCR 2023 p. OF2 (two Louvain rounds) · 12_62_Genes_..._DL_Models_Tuning cells 5-8, 34-40 · figshare df.csv.gz new_cms
12After the clusters were set, I placed a centre by hand on the 62-gene map and read the map as a graph around it.From novel_representation_cms_102921 cells 26, 35 · figshare df.csv.gz densMAP_62_d1/d2
13Measured from that centre, every tumour has an angle and a radius. Laid flat, angle runs across and radius runs up.From novel_representation_cms_102921 cells 26, 37 · figshare df.csv.gz densMAP_62_angle/radius
14Wrapping the flat graph around the centre turns it into the ring: horizontal lines bend into circles and vertical lines become spokes.From novel_representation_cms_102921 cells 27, 29 · polar_grid.json (matplotlib default grid) · MCR 2023 Fig 1E p. OF4 (polar view)
- Findings
15CMS2 split in two and CMS4 in three, and the CMS4 groups line up with intrinsic subtypes found in single-cell data.From MCR 2023 abstract p. OF1 · MCR 2023 p. OF5 and Discussion p. OF11 · figshare df.csv.gz new_cms
16Directional GSEA ranked the genes along 50 directions around the ring and tested gene sets in each direction.From novel_representation_cms_102921 cells 8, 106 · figshare directional_pearson_correlation.csv
17A Wnt module and the ribosome-biogenesis set were enriched toward CMS2, and an EMT module and an adaptive-immune module toward CMS1 and CMS4.2.From figshare gsea_custom_genes_103121.pkl · novel_representation_cms_102921 cells 105, 108 · MCR 2023 p. OF3 (FDR 0.01), Fig 7
18Mapping a module's mean expression around the ring shows where it rises: an EMT module peaks in CMS4.2.From figshare df.csv.gz expression, densMAP_62_angle · figshare gsea pkl EMT2 genes · MCR 2023 p. OF6, Fig 7F
19A Wnt module is highest on the CMS2 side, peaking in CMS2.2.From figshare df.csv.gz expression, densMAP_62_angle · figshare gsea pkl WNT2 genes · MCR 2023 p. OF7 (second WNT module)
20A metabolism module peaks in CMS3.From figshare df.csv.gz expression, densMAP_62_angle · figshare gsea pkl metabolism2 genes · novel_representation_cms_102921 cells 103, 105
21Read around the ring, the panel shows a continuous progression from CMS2 to CMS4.From MCR 2023 abstract p. OF1 · MCR 2023 p. OF5 (CMS2.1 to CMS4.2 trajectory) · figshare df.csv.gz densMAP_62_angle, new_cms
- Impact
22This layout became the cover of Molecular Cancer Research in March 2023, and the panel, coordinates, labels and plotting code are public.From MCR 21(3) March 2023 cover image · github cmb-chula/CRCPolarCMS · figshare 10.6084/m9.figshare.18238505.v2
Colorectal cancer subtypes
From 5,973 genes to a 62-gene panel, and from a scatter of tumours to one continuous ring.