R语言教程之R的cgdsr包获取TCGA数据
- 
TCGA数据源 
- 
查看有多少不同的癌症数据集 
- 
查看任意数据集的样本列表方式 
- 
查看任意数据集的数据形式 
- 
选定数据形式及样本列表后获取感兴趣基因的信息 
- 
选定样本列表获取临床信息 
- 
综合性获取 
- 
从cBioPortal下载点突变信息 
- 
从cBioPortal下载拷贝数变异数据 
- 
把拷贝数及点突变信息结合画热图 
- 
同理还可以下载所有其它TCGA的数据进行后续分析。 
TCGA数据源
众所周知,TCGA数据库是目前最综合全面的癌症病人相关组学数据库,包括的测序数据有:
- 
DNA Sequencing 
- 
miRNA Sequencing 
- 
Protein Expression 
- 
mRNA Sequencing 
- 
Total RNA Sequencing 
- 
Array-based Expression 
- 
DNA Methylation 
- 
Copy Number 
知名的肿瘤研究机构都有着自己的TCGA数据库探索工具,比如:
- 
Broad Institute FireBrowse portal, The Broad Institute 
- 
cBioPortal for Cancer Genomics, Memorial Sloan-Kettering Cancer Center 
- 
TCGA Batch Effects, MD Anderson Cancer Center 
- 
Regulome Explorer, Institute for Systems Biology 
- 
Next-Generation Clustered Heat Maps, MD Anderson Cancer Center 
其中cBioPortal更是被包装到R包里面:http://www.cbioportal.org/cgds_r.jsp
这里就介绍如何使用R语言的cgdsr包来获取任意TCGA数据吧。
查看有多少不同的癌症数据集
cBioPortal是按照发表文章的方式来组织TCGA数据的,当然,里面也还有很多非TCGA的数据集,所有的数据集如下所示:
library(cgdsr)library(DT)
# Get list of cancer studies at server## 获取有哪些数据集
mycgds <- CGDS("http://www.cbioportal.org/public-portal/")
all_TCGA_studies <- getCancerStudies(mycgds)
#all_TCGA_studies[1:3, 1:2]#write.csv(all_TCGA_studies,paste0(Sys.time(),"all_TCGA_studies.csv"),row.names = F) 
DT::datatable(all_TCGA_studies)也可以去网站上面查看这些数据集的详细信息:http://www.cbioportal.org/data_sets.jsp
查看任意数据集的样本列表方式
上表的cancer_study_id其实就是数据集的名字,我们任意选择一个数据集,比如stad_tcga_pub ,可以查看它里面有多少种样本列表方式。
stad2014 <- "stad_tcga_pub"
## 获取在stad2014数据集中有哪些表格(每个表格都是一个样本列表)
all_tables <- getCaseLists(mycgds, stad2014)
dim(all_tables) ## 共11种样本列表方式## [1] 11 5
DT::datatable(all_tables[,1:3])
查看任意数据集的数据形式
## 而后获取可以下载哪几种数据,一般是mutation,CNV和表达量数据all_dataset <- getGeneticProfiles(mycgds, stad2014) DT::datatable(all_dataset, extensions = 'FixedColumns', options = list( #dom = 't', scrollX = TRUE, fixedColumns = TRUE ))
一般来说,TCGA的一个项目数据就几种,如下:
选定数据形式及样本列表后获取感兴趣基因的信息
my_dataset <- 'stad_tcga_pub_rna_seq_v2_mrna'
my_table <- "stad_tcga_pub_rna_seq_v2_mrna" 
BRCA1 <- getProfileData(mycgds, "BRCA1", my_dataset, my_table)
dim(BRCA1)## [1] 265 1
DT::datatable(BRCA1)
样本个数差异很大,不同癌症热度不一样。
选定样本列表获取临床信息
## 如果我们需要绘制survival curve,那么需要获取clinical数据clinicaldata <- getClinicalData(mycgds, my_table) DT::datatable(clinicaldata, extensions = 'FixedColumns', options = list( #dom = 't', scrollX = TRUE, fixedColumns = TRUE ))
综合性获取
只需要根据癌症列表选择自己感兴趣的研究数据集即可,然后选择好感兴趣的数据形式及对应的样本量。就可以获取对应的信息:
library(cgdsr)
library(DT)
 mycgds <- CGDS("http://www.cbioportal.org/public-portal/")
##  mycancerstudy = getCancerStudies(mycgds)[25,1]
mycancerstudy = 'brca_tcga' 
 getCaseLists(mycgds,mycancerstudy)[,1]## [1] "brca_tcga_3way_complete" "brca_tcga_all" ## [3] "brca_tcga_protein_quantification" "brca_tcga_sequenced" ## [5] "brca_tcga_cna" "brca_tcga_methylation_hm27" ## [7] "brca_tcga_methylation_hm450" "brca_tcga_mrna" ## [9] "brca_tcga_rna_seq_v2_mrna" "brca_tcga_rppa" ## [11] "brca_tcga_cnaseq"
getGeneticProfiles(mycgds,mycancerstudy)[,1]
## [1] "brca_tcga_rppa" ## [2] "brca_tcga_rppa_Zscores" ## [3] "brca_tcga_protein_quantification" ## [4] "brca_tcga_protein_quantification_zscores" ## [5] "brca_tcga_gistic" ## [6] "brca_tcga_mrna" ## [7] "brca_tcga_mrna_median_Zscores" ## [8] "brca_tcga_rna_seq_v2_mrna" ## [9] "brca_tcga_rna_seq_v2_mrna_median_Zscores" ## [10] "brca_tcga_linear_CNA" ## [11] "brca_tcga_methylation_hm450" ## [12] "brca_tcga_mutations"
mycaselist ='brca_tcga_rna_seq_v2_mrna'  
mygeneticprofile = 'brca_tcga_rna_seq_v2_mrna'  
# Get data slices for a specified list of genes, genetic profile and case liste
xpr=getProfileData(mycgds,c('BRCA1','BRCA2'),mygeneticprofile,mycaselist)
DT::datatable(expr)是不是很简单就得到了指定基因在指定癌症的表达量哦
# Get clinical data for the case listmyclinicaldata = getClinicalData(mycgds,mycaselist) DT::datatable(myclinicaldata, extensions = 'FixedColumns', options = list( #dom = 't', scrollX = TRUE, fixedColumns = TRUE ))
## Warning in instance$preRenderHook(instance): It seems your data is too ## big for client-side DataTables. You may consider server-side processing: ## http://rstudio.github.io/DT/server.html
从cBioPortal下载点突变信息
library(cgdsr)library(DT) 
mycgds <- CGDS("http://www.cbioportal.org/public-portal/")
mutGene=c("EGFR", "PTEN", "TP53", "ATRX")
mut_df <- getProfileData(mycgds, 
                         caseList ="gbm_tcga_sequenced", 
                         geneticProfile = "gbm_tcga_mutations",
                         genes = mutGene
)
mut_df <- apply(mut_df,2,as.factor)
mut_df[mut_df == "NaN"] = ""
mut_df[is.na(mut_df)] = ""
mut_df[mut_df != ''] = "MUT" 
DT::datatable(mut_df)从cBioPortal下载拷贝数变异数据
把拷贝数及点突变信息结合画热图
下面的函数,主要是配色比较复杂,其实原理很简单,就是一个热图。
library(ComplexHeatmap)
代码不好排版,如下:
出图如下:
