The point of this package is to calculate the Aneuploidy Score for a chromosomal arm SCNA/aneuploidy (CAA) as detailed in the following two papers:
Shukla, A., Nguyen, T. H., Moka, S. B., Ellis, J. J., Grady, J. P., Oey, H., ... & Duijf, P. H. (2020). Chromosome arm aneuploidies shape tumour evolution and drug response. Nature communications, 11(1), 1-14.
Cohen-Sharir, Y., McFarland, J. M., Abdusamad, M., Marquis, C., Bernhard, S. V., Kazachkova, M., ... & Ben-David, U. (2021). Aneuploidy renders cancer cells vulnerable to mitotic checkpoint inhibition. Nature, 1-6.
Defintions:
Aneuploidy score (AS): as described by Cohen-Sharir et al., is simply the total number of arm-level gains and losses for a tumor, adjusted for ploidy.
Chromosomal arm-level SCNAs/Aneuploidies (CAA): as described by Shukla et al., are arm-level aneuploidies that are pervasive in cancer and found ~30x higher than expected based on the inverse-length distribution of focal SCNAs.
AS and CAAs are calculated two different ways:
Shukla method:
Cohen-Sharir method:
To have some data to work with, the CCLE 639-V cell line seg file is included in the package, as well as cytobands downloaded from UCSC table browser for:
library(AneuploidyScore) data("seg") data("ucsc.hg19.cytoband")
Where the seg has both total copy number (TCN) and L2R (seg.mean):
head(seg,3)
Using the UCSC cytoband information, we first clump the cytobands into p-arm, q-arm and centromere segments and split by chromosome:
cytoarm <- cytobandToArm(ucsc.hg19.cytoband) head(cytoarm[[1]],3)
To use the Cohen-Sharir method, we select for the Total copy number column (TCN) in the seg file and estimate the total ploidy using the standard weighted-mean approach:
tcn_col <- 'TCN' wgd_ploidy <- checkIfWGD(seg, tcn_col = tcn_col, threshold = 0.5, wgd_gf = 0.5, ploidy_method = 'wmean')
While we used weighted mean in this section, ploidy can be estimated using either mean, median, weighted-mean, weighted-median, or a base-2-ploidy approach (mean, median, wmean, wmedian, multi_base2). The multi_base2 looks for the nearest base2 ploidy to the weighted-mean ploidy. For example:
ploidy(wmean)=2.9, ploidy(multi_base2) = 2
ploidy(wmean)=3, ploidy(multi_base2) = 4
ploidy(wmean)=4.5, ploidy(multi_base2) = 4
ploidy(wmean)=5, ploidy(multi_base2) = 6
Using the estimated ploidy, and a threshold of 0.5 (equivalent to the round() function), we identify the classification of Loss/Neutral/Gain (-1/0/1) for each CN segment (segCNclass) or the Cohen-Sharir's weighted-median chromosome arm (armCNclass).
threshold <- 0.5 seg_caa <- getCAA(seg, cytoarm, tcn_col=tcn_col, classifyCN=TRUE, ploidy=wgd_ploidy['ploidy'], threshold=threshold) head(seg_caa[[1]],3)
Finally, we reduce the CN-segment specific GRangesList object down to a simplified chromosome-arm representation and calculate the aneuploidy score:
caa <- reduceArms(seg_caa, caa_method=c('arm', 'seg'), arm_ids = c('p', 'q')) head(caa, 5) AS <- colSums(abs(caa), na.rm = TRUE) AS
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.