TCGA.pipe: Running ELMER for TCGA data in a compact way

TCGA.pipe is a function for easily downloading TCGA data from GDC using TCGAbiolinks package (Colaprico et al. 2016) and performing all the analyses in ELMER. For illustration purpose, we skip the downloading step. The user can use the getTCGA function to download TCGA data or use TCGA.pipe by including “download” in the analysis option.

The following command will do distal DNA methylation analysis and predict putative target genes, motif analysis and identify regulatory transcription factors.

TCGA.pipe("LUSC",
          wd = "./ELMER.example",
          cores = parallel::detectCores()/2,
          mode = "unsupervised"
          permu.size = 300,
          Pe = 0.01,
          analysis = c("distal.probes","diffMeth","pair","motif","TF.search"),
          diff.dir = "hypo",
          rm.chr = paste0("chr",c("X","Y")))
TCGA.pipe: Mode argument

In this new version we added the argument mode in the TCGA.pipe function. This will automatically set the minSubgroupFrac to the following values:

Modes available:

  • unsupervised:
    • Use 20% of each group to identify differently methylated regions (minSubgroupFrac = 0.2 in get.diff.meth)
    • Use 40% of all samples to create Unmethytlated (U) and Methylated (M) groups in the other steps (the lowest quintile of samples is the U group and the highest quintile samples is the M group) (minSubgroupFrac = 0.4 in get.pairs and get.TFs functions)
  • supervised:
    • Use all samples in all functions and set Unmethytlated (U) and Methylated (M) one of the group selected in the analysis.

The unsupervised mode should be used when want to be able to detect a specific (possibly unknown) molecular subtype among tumor; these subtypes often make up only a minority of samples, and 20% was chosen as a lower bound for the purposes of statistical power. If you are using pre-defined group labels, such as treated replicates vs. untreated replicated, use supervised mode (all samples),

For more information please read the analysis section of the vignette.

Using mutation data to identify groups

We add in TCGA.pipe function (download step) the option to identify mutant samples to perform WT vs Mutant analysis. It will download open MAF file from GDC database (Grossman and others 2016), select a gene and identify the which are the mutant samples based on the following classification: (it can be changed using the atgument mutant_variant_classification).

Mutations classification
Argument Description
Frame_Shift_Del Mutant
Frame_Shift_Ins Mutant
Missense_Mutation Mutant
Nonsense_Mutation Mutant
Splice_Site Mutant
In_Frame_Del Mutant
In_Frame_Ins Mutant
Translation_Start_Site Mutant
Nonstop_Mutation Mutant
Silent WT
3’UTR WT
5’UTR WT
3’Flank WT
5’Flank WT
IGR1 (intergenic region) WT
Intron WT
RNA WT
Target_region WT

The arguments to be used are below:

TCGA.pipe mutation arguments
Argument Description
genes List of genes for which mutations will be verified. A column in the MAE with the name of the gene will be created with two groups WT (tumor samples without mutation), MUT (tumor samples w/ mutation), NA (not tumor samples)
mutant_variant_classification List of GDC variant classification from MAF files to consider a samples mutant. Only used when argument gene is set.
group.col A column defining the groups of the sample. You can view the available columns using: colnames(MultiAssayExperiment::colData(data)).
group1 A group from group.col. ELMER will run group1 vs group2. That means, if direction is hyper, get probes hypermethylated in group 1 compared to group 2.
group2 A group from group.col. ELMER will run group1 vs group2. That means, if direction is hyper, get probes hypermethylated in group 1 compared to group 2.

Here is an example we TCGA-LUSC data is downloaded and we will compare TP53 Mutant vs TP53 WT samples.

TCGA.pipe("LUSC",
          wd = "./ELMER.example",
          cores = parallel::detectCores()/2,
          mode = "supervised"
          genes = "TP53",
          group.col = "TP53",
          group1 = "Mutant",
          group2 = "WT",
          permu.size = 300,
          Pe = 0.01,
          analysis = c("download","diffMeth","pair","motif","TF.search"),
          diff.dir = "hypo",
          rm.chr = paste0("chr",c("X","Y")))

Session Info

sessionInfo()
## R version 4.3.1 (2023-06-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.3 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.18-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: America/New_York
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] MultiAssayExperiment_1.28.0 SummarizedExperiment_1.32.0
##  [3] Biobase_2.62.0              MatrixGenerics_1.14.0      
##  [5] matrixStats_1.0.0           GenomicRanges_1.54.0       
##  [7] GenomeInfoDb_1.38.0         IRanges_2.36.0             
##  [9] S4Vectors_0.40.0            sesameData_1.19.0          
## [11] ExperimentHub_2.10.0        AnnotationHub_3.10.0       
## [13] BiocFileCache_2.10.0        dbplyr_2.3.4               
## [15] BiocGenerics_0.48.0         BiocStyle_2.30.0           
## [17] dplyr_1.1.3                 DT_0.30                    
## [19] ELMER_2.26.0                ELMER.data_2.25.0          
## 
## loaded via a namespace (and not attached):
##   [1] later_1.3.1                   BiocIO_1.12.0                
##   [3] bitops_1.0-7                  filelock_1.0.2               
##   [5] tibble_3.2.1                  XML_3.99-0.14                
##   [7] rpart_4.1.21                  lifecycle_1.0.3              
##   [9] rstatix_0.7.2                 doParallel_1.0.17            
##  [11] vroom_1.6.4                   lattice_0.22-5               
##  [13] ensembldb_2.26.0              crosstalk_1.2.0              
##  [15] backports_1.4.1               magrittr_2.0.3               
##  [17] Hmisc_5.1-1                   plotly_4.10.3                
##  [19] sass_0.4.7                    rmarkdown_2.25               
##  [21] jquerylib_0.1.4               yaml_2.3.7                   
##  [23] httpuv_1.6.12                 Gviz_1.46.0                  
##  [25] DBI_1.1.3                     RColorBrewer_1.1-3           
##  [27] abind_1.4-5                   zlibbioc_1.48.0              
##  [29] rvest_1.0.3                   purrr_1.0.2                  
##  [31] AnnotationFilter_1.26.0       biovizBase_1.50.0            
##  [33] RCurl_1.98-1.12               nnet_7.3-19                  
##  [35] VariantAnnotation_1.48.0      rappdirs_0.3.3               
##  [37] circlize_0.4.15               GenomeInfoDbData_1.2.11      
##  [39] ggrepel_0.9.4                 codetools_0.2-19             
##  [41] DelayedArray_0.28.0           xml2_1.3.5                   
##  [43] tidyselect_1.2.0              shape_1.4.6                  
##  [45] farver_2.1.1                  TCGAbiolinksGUI.data_1.21.0  
##  [47] base64enc_0.1-3               GenomicAlignments_1.38.0     
##  [49] jsonlite_1.8.7                GetoptLong_1.0.5             
##  [51] ellipsis_0.3.2                Formula_1.2-5                
##  [53] iterators_1.0.14              systemfonts_1.0.5            
##  [55] foreach_1.5.2                 tools_4.3.1                  
##  [57] progress_1.2.2                ragg_1.2.6                   
##  [59] Rcpp_1.0.11                   glue_1.6.2                   
##  [61] BiocBaseUtils_1.4.0           gridExtra_2.3                
##  [63] SparseArray_1.2.0             xfun_0.40                    
##  [65] withr_2.5.1                   BiocManager_1.30.22          
##  [67] fastmap_1.1.1                 latticeExtra_0.6-30          
##  [69] fansi_1.0.5                   digest_0.6.33                
##  [71] mime_0.12                     R6_2.5.1                     
##  [73] textshaping_0.3.7             colorspace_2.1-0             
##  [75] jpeg_0.1-10                   dichromat_2.0-0.1            
##  [77] biomaRt_2.58.0                RSQLite_2.3.1                
##  [79] utf8_1.2.4                    tidyr_1.3.0                  
##  [81] generics_0.1.3                data.table_1.14.8            
##  [83] rtracklayer_1.62.0            prettyunits_1.2.0            
##  [85] httr_1.4.7                    htmlwidgets_1.6.2            
##  [87] S4Arrays_1.2.0                pkgconfig_2.0.3              
##  [89] gtable_0.3.4                  blob_1.2.4                   
##  [91] ComplexHeatmap_2.18.0         XVector_0.42.0               
##  [93] htmltools_0.5.6.1             carData_3.0-5                
##  [95] ProtGenerics_1.34.0           clue_0.3-65                  
##  [97] scales_1.2.1                  png_0.1-8                    
##  [99] knitr_1.44                    rstudioapi_0.15.0            
## [101] tzdb_0.4.0                    reshape2_1.4.4               
## [103] rjson_0.2.21                  checkmate_2.2.0              
## [105] curl_5.1.0                    cachem_1.0.8                 
## [107] GlobalOptions_0.1.2           stringr_1.5.0                
## [109] BiocVersion_3.18.0            parallel_4.3.1               
## [111] foreign_0.8-85                AnnotationDbi_1.64.0         
## [113] restfulr_0.0.15               pillar_1.9.0                 
## [115] grid_4.3.1                    reshape_0.8.9                
## [117] vctrs_0.6.4                   promises_1.2.1               
## [119] ggpubr_0.6.0                  car_3.1-2                    
## [121] xtable_1.8-4                  cluster_2.1.4                
## [123] archive_1.1.6                 htmlTable_2.4.1              
## [125] evaluate_0.22                 TCGAbiolinks_2.30.0          
## [127] readr_2.1.4                   GenomicFeatures_1.54.0       
## [129] cli_3.6.1                     compiler_4.3.1               
## [131] Rsamtools_2.18.0              rlang_1.1.1                  
## [133] crayon_1.5.2                  ggsignif_0.6.4               
## [135] labeling_0.4.3                interp_1.1-4                 
## [137] plyr_1.8.9                    stringi_1.7.12               
## [139] viridisLite_0.4.2             deldir_1.0-9                 
## [141] BiocParallel_1.36.0           munsell_0.5.0                
## [143] Biostrings_2.70.0             lazyeval_0.2.2               
## [145] Matrix_1.6-1.1                BSgenome_1.70.0              
## [147] hms_1.1.3                     bit64_4.0.5                  
## [149] ggplot2_3.4.4                 shiny_1.7.5.1                
## [151] KEGGREST_1.42.0               interactiveDisplayBase_1.40.0
## [153] fontawesome_0.5.2             broom_1.0.5                  
## [155] memoise_2.0.1                 bslib_0.5.1                  
## [157] bit_4.0.5                     downloader_0.4

Bibliography

Grossman, Robert L, and others. 2016. “Toward a Shared Vision for Cancer Genomic Data.” New England Journal of Medicine 375 (12): 1109–12.