參考學習資料:https://academic.oup.com/bioinformatics/article/34/14/2515/4917355
之前看了技能樹的系列推文和曾老師的推薦的文獻,對ce-RNA有了初步的認識,為這個教程的理解奠定了理論基礎(chǔ)。
1 安裝包GDCRNATools及相關(guān)依賴包
rm(list = ls())
options(stringsAsFactors = F)
#if (!requireNamespace("BiocManager", quietly=TRUE)) install.packages("BiocManager")
#BiocManager::install("GDCRNATools", version = "devel")這個版本的需要R版本'4.0'
## try http:// if https:// URLs are not supported if (!requireNamespace("BiocManager", quietly=TRUE))
BiocManager::install("GDCRNATools")
BiocManager::install("DT")
library(GDCRNATools)
library(DT)
2 準備測試數(shù)據(jù)
在GDCRNATools中有些函數(shù)被設(shè)計來幫助其他人有效的下載和處理GDC數(shù)據(jù)。當然用戶也可以用他們自己的數(shù)據(jù)從UCSC Xena GDC hub, TCGAbiolinks(Colaprico et al. 2016)等處獲取的,或者TCGA-Assembler(Zhu, Qiu, and Ji 2014)都可以。
具體見case study
library(DT)
### load RNA counts data
data(rnaCounts)
### load miRNAs counts data data(mirCounts)
data(mirCounts)
2.1Normalization of HTSeq-Counts data
####### Normalization of RNAseq data #######
rnaExpr <- gdcVoomNormalization(counts = rnaCounts, filter = FALSE)
####### Normalization of miRNAs data #######
mirExpr <- gdcVoomNormalization(counts = mirCounts, filter = FALSE)
2.2 Parse metadata
####### Parse and filter RNAseq metadata #######
metaMatrix.RNA <- gdcParseMetadata(project.id = 'TCGA-CHOL',
data.type = 'RNAseq',
write.meta = FALSE)
metaMatrix.RNA <- gdcFilterDuplicate(metaMatrix.RNA)
metaMatrix.RNA <- gdcFilterSampleType(metaMatrix.RNA)
datatable(as.data.frame(metaMatrix.RNA[1:5,]), extensions =
'Scroller',options = list(scrollX = TRUE, deferRender = TRUE,
scroller = TRUE))
樣本信息輸出列表:

3 ceRNAs network analysis
3.1 Identication of dierentially expressed genes (DEGs)
DEGAll <- gdcDEAnalysis(counts = rnaCounts,
group = metaMatrix.RNA$sample_type,
comparison = 'PrimaryTumor-SolidTissueNormal',
method = 'limma')
datatable(as.data.frame(DEGAll),
options = list(scrollX = TRUE, pageLength = 5))
差異基因列表:

所有差異基因分類獲取
### All DEGs
deALL <- gdcDEReport(deg = DEGAll, gene.type = 'all')
### DE long-noncoding
deLNC <- gdcDEReport(deg = DEGAll, gene.type = 'long_non_coding')
### DE protein coding genes
dePC <- gdcDEReport(deg = DEGAll, gene.type = 'protein_coding')
3.2 ceRNAs network analysis of DEGs
> ceOutput <- gdcCEAnalysis(lnc = rownames(deLNC), pc = rownames(dePC),
+ lnc.targets = 'starBase',
+ pc.targets = 'starBase',
+ rna.expr = rnaExpr,
+ mir.expr = mirExpr)
Step 1/3: Hypergenometric test done !
Step 2/3: Correlation analysis done !
Step 3/3: Regulation pattern analysis done !
> datatable(as.data.frame(ceOutput),
+ options = list(scrollX = TRUE, pageLength = 5))

3.3 Export ceRNAs network to Cytoscape
ceOutput2 <- ceOutput[ceOutput$hyperPValue<0.01
& ceOutput$corPValue<0.01 & ceOutput$regSim != 0,]
### Export edges
edges <- gdcExportNetwork(ceNetwork = ceOutput2, net = 'edges')
datatable(as.data.frame(edges),
options = list(scrollX = TRUE, pageLength = 5))
導出數(shù)據(jù),進一步通過Cytoscape進行可視化

### Export nodes
nodes <- gdcExportNetwork(ceNetwork = ceOutput2, net = 'nodes')
datatable(as.data.frame(nodes),
options = list(scrollX = TRUE, pageLength = 5))

Case study: TCGA-CHOL
下載RNA 和miRNA表達矩陣及臨床信息:
####### Download RNAseq data #######
gdcRNADownload(project.id = 'TCGA-CHOL',
data.type = 'RNAseq',
write.manifest = FALSE,
method = 'gdc-client',
directory = rnadir)
####### Download mature miRNA data #######
gdcRNADownload(project.id = 'TCGA-CHOL',
data.type = 'miRNAs',
write.manifest = FALSE,
method = 'gdc-client',
directory = mirdir)
####### Download clinical data #######
clinicaldir <- paste(project, 'Clinical', sep='/')
gdcClinicalDownload(project.id = 'TCGA-CHOL',
write.manifest = FALSE,
method = 'gdc-client',
directory = clinicaldir)
自動下載網(wǎng)絡(luò)可能不好,下載很慢,也可以手動下載:
用戶可以從GDC cart下載 manifest file
- Step1: Download
GDC Data Transfer Toolon the GDC website - Step2: Add data to the GDC cart, then download manifest file and metadata of the cart
- Step3: Download data using
gdcRNADownload()orgdcClinicalDownload()functions by providing the manifest file
Data organization and DE analysis
臨床信息來源可以是metadata file (.json) 從下載步驟自動下載的, 或者是
project.id和data.type通過gdcParseMetadata()函數(shù)從manifest file獲取的諸如age, stage and gender等。只有一個樣本最終會被保留,如果測序次數(shù)不只一次的情況下,過濾函數(shù)
gdcFilterDuplicate()做的這件事。樣本既不是Primary Tumor (code: 01) 也不是Solid Tissue Normal (code: 11) 將會被
gdcFilterSampleType()函數(shù)過濾掉。
Parse metadata
####### Parse RNAseq metadata #######
metaMatrix.RNA <- gdcParseMetadata(project.id = 'TCGA-CHOL',
data.type = 'RNAseq',
write.meta = FALSE)
####### Filter duplicated samples in RNAseq metadata #######
metaMatrix.RNA <- gdcFilterDuplicate(metaMatrix.RNA)
####### Filter non-Primary Tumor and non-Solid Tissue Normal samples in RNAseq metadata #######
metaMatrix.RNA <- gdcFilterSampleType(metaMatrix.RNA)
####### Parse miRNAs metadata #######
metaMatrix.MIR <- gdcParseMetadata(project.id = 'TCGA-CHOL',
data.type = 'miRNAs',
write.meta = FALSE)
####### Filter duplicated samples in miRNAs metadata #######
metaMatrix.MIR <- gdcFilterDuplicate(metaMatrix.MIR)
####### Filter non-Primary Tumor and non-Solid Tissue Normal samples in miRNAs metadata #######
metaMatrix.MIR <- gdcFilterSampleType(metaMatrix.MIR)
Merge raw counts data
gdcRNAMerge()合并raw counts data of RNAseq到一個表達矩陣行是Ensembl id列是samples. miRNAs的5p 和3p分別來自isoform quantication文件和數(shù)據(jù)庫miRBase v21. 如果數(shù)據(jù)樣本來自不同的樣本和不同的文件夾設(shè)置參數(shù)specify organized=FALSE此外設(shè)置specify organized=TRUE.
####### Merge RNAseq data #######
rnaCounts <- gdcRNAMerge(metadata = metaMatrix.RNA,
path = rnadir,
organized = FALSE, # if the data are in separate folders
data.type = 'RNAseq')
####### Merge miRNAs data #######
mirCounts <- gdcRNAMerge(metadata = metaMatrix.MIR,
path = mirdir, # the folder in which the data
organized = FALSE, # if the data are in separate folders
data.type = 'miRNAs')
Merge clinical data
設(shè)置參數(shù)key.info=TRUE, 僅common clinical信息可以被保留否則所有的clinical information從XML文件中被提取。
####### Merge clinical data #######
clinicalDa <- gdcClinicalMerge(path = clinicaldir, key.info = TRUE)
clinicalDa[1:6,5:10]
TMM normalization and voom transformation
edgeR(Robinson, McCarthy, and Smyth 2010) 中的函數(shù)TMM將raw counts進行normalized然后通過limma(Ritchie et al. 2015)函數(shù)進一步轉(zhuǎn)換。低表達基因(logcpm < 1 in more than half of the samples)默認會被過濾掉。所有的基因可以通過設(shè)置gdcVoomNormalization()的參數(shù)filter=TRUE進行保留。
####### Normalization of RNAseq data #######
rnaExpr <- gdcVoomNormalization(counts = rnaCounts, filter = FALSE)
####### Normalization of miRNAs data #######
mirExpr <- gdcVoomNormalization(counts = mirCounts, filter = FALSE)
Dierential gene expression analysis
通常,人們對在不同組之間差異表達的基因感興趣(eg. Primary Tumor vs. Solid Tissue Normal)。一種簡易包裝函數(shù)gdcDEAnalysis()來自limma, edgeR和 DESeq2用于獲取差異基因(DEGs)或差異miRNAs。 注意,DESeq2對于單核處理器可能會很慢。 如果使用了DESeq2,則可以使用nCore參數(shù)指定多個內(nèi)核。 鼓勵用戶查閱每種方法的vignette幫助文檔,以獲取更多詳細信息。
DEGAll <- gdcDEAnalysis(counts = rnaCounts,
group = metaMatrix.RNA$sample_type,
comparison = 'PrimaryTumor-SolidTissueNormal',
method = 'limma')
所有DEGs,DE長非編碼基因,DE蛋白編碼基因和DE miRNA都可以通過在gdcDEReport()中設(shè)置geneType參數(shù)來分別報告。 報告中輸出了基于“ Ensembl 90”注釋的Gene symbols和biotypes。
data(DEGAll)
### All DEGs
deALL <- gdcDEReport(deg = DEGAll, gene.type = 'all')
### DE long-noncoding
deLNC <- gdcDEReport(deg = DEGAll, gene.type = 'long_non_coding')
### DE protein coding genes
dePC <- gdcDEReport(deg = DEGAll, gene.type = 'protein_coding')
DEG visualization
火山圖和條形圖分別通過gdcVolcanoPlot()和gdcBarPlot()函數(shù)以不同的方式可視化DE分析結(jié)果??梢酝ㄟ^gdcHeatmap()函數(shù)分析和繪制DEGs表達矩陣的分層聚類。
Volcano plot,Barplot
a1 <- gdcVolcanoPlot(DEGAll)
a2 <- gdcBarPlot(deg = deALL, angle = 45, data.type = 'RNAseq')
library(patchwork)
a1+a2

Heatmap
熱圖是基于gplots包中的heatmap.2()函數(shù)生成的。
degName = rownames(deALL)
gdcHeatmap(deg.id = degName, metadata = metaMatrix.RNA, rna.expr = rnaExpr)

Competing endogenous RNAs network analysis
Three criteria are used to determine the competing endogenous interactions between lncRNA-mRNA pairs:
- The lncRNA and mRNA must share signicant number of miRNAs
- Expression of lncRNA and mRNA must be positively correlated
- Those common miRNAs should play similar roles in regulating the expression of lncRNA and mRNA
Hypergeometric test
超幾何檢驗以測試lncRNA和mRNA是否顯著共享許多miRNA。
新開發(fā)的算法spongeScan(Furi’o-Tar’i et al. 2016) 用于預測充當ceRNA的lncRNA中的MREs。 使用starBase v2.0(Li et al. 2014),miRcode(Jeggari, Marks, and Larsson 2012) and mirTarBase release 7.0(Chou et al. 2017)等數(shù)據(jù)庫收集預測的和經(jīng)過實驗驗證的miRNA-mRNA和/或 miRNA-lncRNA相互作用。 這些數(shù)據(jù)庫中的基因ID已更新為人類基因組的最新Ensembl 90注釋,而miRNA名稱已更新為新版本的miRBase 21標識符。 用戶還可以提供自己的miRNA-lncRNA和miRNA-mRNA相互作用數(shù)據(jù)集。

here m is the number of shared miRNAs, N is the total number of miRNAs in the database, n is the number of miRNAs targeting the lncRNA, K is the number of miRNAs targeting the protein coding gene.
Pearson correlation analysis
皮爾遜相關(guān)系數(shù)是兩個變量之間線性關(guān)聯(lián)強度的度量。 眾所周知,miRNA是基因表達的負調(diào)控因子。 如果更多的常見miRNA被lncRNA占據(jù),則它們中的更少將與靶mRNA結(jié)合,從而增加mRNA的表達水平。 因此,在ceRNA對中l(wèi)ncRNA和mRNA的表達應呈正相關(guān)。
Two methods are used to measure the regulatory role of miRNAs on the lncRNA and mRNA:
-
Regulation similarity
image.png -
Sensitivity correlation
image.png
看到公式頭就暈,數(shù)學太差不想深究。暫時擱置。
ceRNAs network analysis
miRNA和lncRNA-mRNA共享的超幾何檢驗的表達相關(guān)性分析及調(diào)控模式分析均已在gdcCEAnalysis()函數(shù)。
ceRNAs network analysis using internal databases
用戶可以使用內(nèi)部整合的miRNA-mRNA(starBase v2.0, miRcode, and mirTarBase v7.0)和miRNA-lncRNA(starBase v2.0, miRcode, spongeScan)交互的數(shù)據(jù)庫來進行ceRNAs網(wǎng)絡(luò)分析。
ceOutput <- gdcCEAnalysis(lnc = rownames(deLNC),
pc = rownames(dePC),
lnc.targets = 'starBase',
pc.targets = 'starBase',
rna.expr = rnaExpr,
mir.expr = mirExpr)
ceRNAs network analysis using user-provided datasets
gdcCEAnalysis()還可以獲取用戶提供的miRNA-mRNA和miRNA-lncRNA相互作用數(shù)據(jù)集,例如TargetScan,miRanda和Diana Tools等預測的miRNA-靶標相互作用,用于ceRNAs網(wǎng)絡(luò)分析。
### load miRNA-lncRNA interactions
data(lncTarget)
### load miRNA-mRNA interactions
data(pcTarget)
pcTarget[1:3]
ceOutput <- gdcCEAnalysis(lnc = rownames(deLNC),
pc = rownames(dePC),
lnc.targets = lncTarget,
pc.targets = pcTarget,
rna.expr = rnaExpr,
mir.expr = mirExpr)
Network visulization in Cytoscape
lncRNA-miRNA-mRNA相互作用可以通過gdcExportNetwork()報告,并在Cytoscape中可視化。 應將edges作為網(wǎng)絡(luò)導入,將節(jié)點作為特征表導入。
ceOutput2 <- ceOutput[ceOutput$hyperPValue<0.01 &
ceOutput$corPValue<0.01 & ceOutput$regSim != 0,]
edges <- gdcExportNetwork(ceNetwork = ceOutput2, net = 'edges')
nodes <- gdcExportNetwork(ceNetwork = ceOutput2, net = 'nodes')
write.table(edges, file='edges.txt', sep='\t', quote=F)
write.table(nodes, file='nodes.txt', sep='\t', quote=F)
Correlation plot
gdcCorPlot(gene1 = 'ENSG00000251165',
gene2 = 'ENSG00000091831',
rna.expr = rnaExpr,
metadata = metaMatrix.RNA)

Correlation plot on a local webpage
只需單擊每個下拉框(in the GUI window)的基因,即可輕松操作基于shiny軟件包的交互式繪圖功能shinyCorPlot()。 通過運行使用shinyCorPlot()功能,將彈出一個本地網(wǎng)頁,并自動顯示lncRNA和mRNA之間的相關(guān)圖。
shinyCorPlot(gene1 = rownames(deLNC),
gene2 = rownames(dePC),
rna.expr = rnaExpr,
metadata = metaMatrix.RNA)

這個圖很棒,可以隨意挑選任意搭配。
Other downstream analyses
在GDCRNATools軟件包中開發(fā)了下游分析,例如單變量生存分析和功能富集分析,以促進ceRNA網(wǎng)絡(luò)中基因的鑒定,這些基因在預后中起重要作用或在重要途徑中起作用。
Univariate survival analysis
提供了兩種方法來執(zhí)行單變量生存分析:Cox Proportional-Hazards (CoxPH) 模型和基于survival包的 Kaplan Meier (KM) 分析。 CoxPH模型將表達值視為連續(xù)變量,而KM分析通過用戶定義的閾值(例如中位數(shù)或均值)將患者分為高表達和低表達組。gdcSurvivalAnalysis()將基因列表作為輸入,并報告hazard ratio,95%的置信區(qū)間,并測試每種基因?qū)傮w存活率的影響。
CoxPH analysis
####### CoxPH analysis #######
survOutput <- gdcSurvivalAnalysis(gene = rownames(deALL),
method = 'coxph',
rna.expr = rnaExpr,
metadata = metaMatrix.RNA)
KM analysis
####### KM analysis #######
survOutput <- gdcSurvivalAnalysis(gene = rownames(deALL),
method = 'KM',
rna.expr = rnaExpr,
metadata = metaMatrix.RNA,
sep = 'median')
KM plot
gdcKMPlot(gene = 'ENSG00000136193',
rna.expr = rnaExpr,
metadata = metaMatrix.RNA,
sep = 'median')

KM plot on a local webpage by shinyKMPlot
The shinyKMPlot() function is also a simple shiny app which allow users view KM plots (based on the R package survminer.) of all genes of interests on a local webpackage conveniently.
shinyKMPlot(gene = rownames(deALL), rna.expr = rnaExpr,
metadata = metaMatrix.RNA)

這里應該可以批量導出生存曲線了,也是挺不錯的小工具。
Functional enrichment analysis
gdcEnrichAnalysis() can perform Gene ontology (GO), Kyoto Encyclopedia of Genes and Genomes (KEGG) and Disease Ontology (DO) functional enrichment analyses of a list of genes simultaneously. GO and KEGG analyses are based on the R/Bioconductor packages clusterProlier(Yu et al. 2012) and DOSE(Yu et al. 2015). Redundant GO terms can be removed by specifying simplify=TRUE in the gdcEnrichAnalysis() function which uses the simplify() function in the clusterProlier(Yu et al. 2012) package.
enrichOutput <- gdcEnrichAnalysis(gene = rownames(deALL), simplify = TRUE)
這一步做了5種富集分析,耗時有點長。
Barplot
data(enrichOutput)
gdcEnrichPlot(enrichOutput, type = 'bar', category = 'GO', num.terms = 10)

Bubble plot
gdcEnrichPlot(enrichOutput, type='bubble', category='GO', num.terms = 10)

View pathway maps on a local webpage
shinyPathview()allows users view and download pathways of interests by simply selecting the pathway terms on a local webpage.
library(pathview)
deg <- deALL$logFC
names(deg) <- rownames(deALL)
pathways <- as.character(enrichOutput$Terms[enrichOutput$Category=='KEGG'])
pathways
shinyPathview(deg, pathways = pathways, directory = 'pathview')
> pathways
[1] "hsa05414~Dilated cardiomyopathy (DCM)"
[2] "hsa05410~Hypertrophic cardiomyopathy (HCM)"
[3] "hsa05412~Arrhythmogenic right ventricular cardiomyopathy (ARVC)"
[4] "hsa04512~ECM-receptor interaction"
[5] "hsa04510~Focal adhesion"
[6] "hsa04360~Axon guidance"
[7] "hsa04270~Vascular smooth muscle contraction"
[8] "hsa05205~Proteoglycans in cancer"
[9] "hsa04022~cGMP-PKG signaling pathway"
[10] "hsa00480~Glutathione metabolism"

sessionInfo
> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
locale:
[1] C
attached base packages:
[1] parallel stats4 stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] shiny_1.4.0 GDCRNATools_1.6.0 pathview_1.26.0
[4] org.Hs.eg.db_3.10.0 AnnotationDbi_1.48.0 IRanges_2.20.0
[7] S4Vectors_0.24.0 Biobase_2.46.0 BiocGenerics_0.32.0
loaded via a namespace (and not attached):
[1] backports_1.1.5 Hmisc_4.2-0
[3] fastmatch_1.1-0 BiocFileCache_1.10.0
[5] plyr_1.8.4 igraph_1.2.4.1
[7] lazyeval_0.2.2 splines_3.6.1
[9] BiocParallel_1.20.0 GenomeInfoDb_1.22.0
[11] ggplot2_3.2.1 urltools_1.7.3
[13] digest_0.6.23 htmltools_0.4.0
[15] GOSemSim_2.12.0 rsconnect_0.8.15
[17] viridis_0.5.1 GO.db_3.10.0
[19] gdata_2.18.0 magrittr_1.5
[21] checkmate_1.9.4 memoise_1.1.0
[23] cluster_2.1.0 limma_3.42.0
[25] Biostrings_2.54.0 readr_1.3.1
[27] annotate_1.64.0 graphlayouts_0.5.0
[29] matrixStats_0.55.0 askpass_1.1
[31] enrichplot_1.6.0 prettyunits_1.0.2
[33] colorspace_1.4-1 blob_1.2.0
[35] rappdirs_0.3.1 ggrepel_0.8.1
[37] xfun_0.10 dplyr_0.8.3
[39] crayon_1.3.4 RCurl_1.95-4.12
[41] jsonlite_1.6 graph_1.64.0
[43] genefilter_1.68.0 zeallot_0.1.0
[45] zoo_1.8-6 survival_2.44-1.1
[47] glue_1.3.1 survminer_0.4.6
[49] GenomicDataCommons_1.10.0 polyclip_1.10-0
[51] gtable_0.3.0 zlibbioc_1.32.0
[53] XVector_0.26.0 DelayedArray_0.12.0
[55] Rgraphviz_2.30.0 scales_1.1.0
[57] DOSE_3.12.0 DBI_1.0.0
[59] edgeR_3.28.0 Rcpp_1.0.3
[61] viridisLite_0.3.0 xtable_1.8-4
[63] progress_1.2.2 htmlTable_1.13.2
[65] gridGraphics_0.4-1 foreign_0.8-72
[67] bit_1.1-14 europepmc_0.3
[69] km.ci_0.5-2 Formula_1.2-3
[71] DT_0.11 htmlwidgets_1.5.1
[73] httr_1.4.1 fgsea_1.12.0
[75] gplots_3.0.1.1 RColorBrewer_1.1-2
[77] acepack_1.4.1 pkgconfig_2.0.3
[79] XML_3.98-1.20 farver_2.0.1
[81] nnet_7.3-12 dbplyr_1.4.2
[83] locfit_1.5-9.1 ggplotify_0.0.4
[85] tidyselect_0.2.5 rlang_0.4.2
[87] reshape2_1.4.3 later_1.0.0
[89] munsell_0.5.0 tools_3.6.1
[91] generics_0.0.2 RSQLite_2.1.2
[93] broom_0.5.2 ggridges_0.5.1
[95] stringr_1.4.0 fastmap_1.0.1
[97] yaml_2.2.0 knitr_1.25
[99] bit64_0.9-7 tidygraph_1.1.2
[101] survMisc_0.5.5 caTools_1.17.1.2
[103] purrr_0.3.3 KEGGREST_1.26.0
[105] ggraph_2.0.0 nlme_3.1-141
[107] mime_0.7 KEGGgraph_1.46.0
[109] DO.db_2.9 xml2_1.2.2
[111] biomaRt_2.42.0 compiler_3.6.1
[113] rstudioapi_0.10 png_0.1-7
[115] curl_4.2 ggsignif_0.6.0
[117] tibble_2.1.3 tweenr_1.0.1
[119] geneplotter_1.64.0 stringi_1.4.3
[121] lattice_0.20-38 Matrix_1.2-17
[123] KMsurv_0.1-5 vctrs_0.2.0
[125] pillar_1.4.2 lifecycle_0.1.0
[127] BiocManager_1.30.9 triebeard_0.3.0
[129] data.table_1.12.6 cowplot_1.0.0
[131] bitops_1.0-6 httpuv_1.5.2
[133] GenomicRanges_1.38.0 qvalue_2.18.0
[135] R6_2.4.1 latticeExtra_0.6-28
[137] promises_1.1.0 KernSmooth_2.23-16
[139] gridExtra_2.3 gtools_3.8.1
[141] MASS_7.3-51.4 assertthat_0.2.1
[143] SummarizedExperiment_1.16.0 rjson_0.2.20
[145] openssl_1.4.1 DESeq2_1.26.0
[147] GenomeInfoDbData_1.2.2 hms_0.5.2
[149] clusterProfiler_3.14.1 grid_3.6.1
[151] rpart_4.1-15 tidyr_1.0.0
[153] rvcheck_0.1.6 ggpubr_0.2.4
[155] ggforce_0.3.1 base64enc_0.1-3
這個教程還是非常有實用價值的。很多函數(shù)需要進一步理解,當然在學習這個教程之前最好還是先學習一下TCGA教程,不然有些不太容易理解。

