R中用GDCRNATools包下载TCGA数据

用GDCRNATools下载TCGA数据,以TCGA-STAD为例下载RNAseq

1)数据下载,gdcRNADownload()函数

###########用GDCRNATools下载TCGA数据###########
#设置镜像
rm(list=ls())
options("repos"="https://mirrors.ustc.edu.cn/CRAN/")
#意思是,如果没有安装BiocManager包,那就安装BiocManager
if(!require("BiocManager")) install.packages("BiocManager",update = F,ask = F)
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
#安装GDCRNATools
BiocManager::install("GDCRNATools")
#加载GDCRNATools
library(GDCRNATools)

#下载方式一:指定gdcRNADownload()函数中的参数data.type和project.id
#gdcRNADownload()函数将下载 HTSeq Counts data只需通过指定参数data.type='RNAseq'和project.id。
#gdcRNADownload()函数将下载BCGSC miRNA Profiling data 只需通过指定参数 data.type='miRNAs'和project.id。

#下载TCGA-STAD数据#
gdcRNADownload(project.id     = 'TCGA-STAD', #参数项目id
               data.type      = 'RNAseq', #也可改为miRNAs
               write.manifest = FALSE,
               method         = 'gdc-client', #先下载gdc-client,然后再下载病人的数据
               directory      = 'GDCRNATOOLS/TCGA-STAD/RNAseq')#保存路径
# 下载临床数据#
#在gdcClinicalDownload()函数中指定project.id下载.xml格式的临床信息
gdcClinicalDownload(project.id     = 'TCGA-STAD',  
                    write.manifest = FALSE,
                    directory      = 'GDCRNATOOLS/TCGA-STAD/Clinical')
#################################################################################
#################################################################################
#下载方式二:指定gdcRNADownload()函数中的参数manifest
####### 下载 RNAseq 数据 #######
gdcRNADownload(manifest  = 'TCGA-STAD/TCGA-STAD.RNAseq.gdc_manifest.2019-11-23T14-40-52.txt',
               directory = 'TCGA-STAD/RNAseq')

#######下载 miRNAs 数据 #######
gdcRNADownload(manifest  = 'TCGA-STAD/TCGA-STAD.miRNAs.gdc_manifest.2019-11-22T15-36-57.txt',
               directory = 'TCGA-STAD/miRNAs')

####### 下载临床数据 #######
gdcRNADownload(manifest  = 'TCGA-STAD/TCGA-STAD.Clinical.gdc_manifest.2019-11-23T14-42-01.txt',
               directory = 'TCGA-STAD/Clinical')

2) 数据处理

  • 2.1)gdcParseMetadata()函数

#第一种方式: 通过提供 metadata file解析```
#######  RNAseq  #######
metaMatrix.RNA <- gdcParseMetadata(metafile='TCGA-PRAD/TCGA-PRAD.RNAseq.metadata.2019-11-23T17-23-59.json')#该.json文件可在官网下载
#######  miRNAs  #######
metaMatrix.MIR <- gdcParseMetadata(metafile='TCGA-PRAD/TCGA-PRAD.miRNAs.metadata.2017-11-23T17-33-55.json')

#第二种方式:指定project.id 和 data.type
######## RNAseq  #######
metaMatrix.RNA <- gdcParseMetadata(project.id = 'TCGA-PRAD',
                                   data.type  = 'RNAseq', 
                                   write.meta = FALSE)

####### miRNAs  #######
metaMatrix.MIR <- gdcParseMetadata(project.id = 'TCGA-PRAD',
                                   data.type  = 'miRNAs', 
                                   write.meta = FALSE)
  • 2.2) 过滤样本,两个函数gdcFilterDuplicate(过滤重复的样本)和gdcFilterSampleType(过滤非肿瘤非正常组织)

# a)过滤重复的样本gdcFilterDuplicate()
metaMatrix.RNA <- gdcFilterDuplicate(metaMatrix.RNA)#  RNAseq
metaMatrix.MIR <- gdcFilterDuplicate(metaMatrix.MIR)#  miRNAs 

# b)过滤非肿瘤非正常组织gdcFilterSampleType()
metaMatrix.RNA <- gdcFilterSampleType(metaMatrix.RNA)#RNA
metaMatrix.MIR <- gdcFilterSampleType(metaMatrix.MIR)#miRNAs
  • 2.3) 融合数据,两个函数gdcRNAMerge(原始数据)和gdcClinicalMerge(临床数据)

##gdcRNAMerge()将RNAseq的原始计数数据合并到单个表达矩阵中,其中行为Ensembl id,列为sample。
##gdcClinicalMerge()将临床数据合并到数据框中,其中行是sample ID,列是临床特征。 如果key.info = TRUE,则仅报告那些最常用的临床特征,否则,将报告所有临床信息。
#### 合并 RNAseq/miRNAs数据
rnaMatrix <- gdcRNAMerge(metadata  = metaMatrix.RNA, 
                         path      = 'TCGA-PRAD/RNAseq/', 
                         data.type = 'RNAseq')#RNAseq
#or
mirMatrix <- gdcRNAMerge(metadata  = metaMatrix.MIR,
                         path      = 'TCGA-PRAD/miRNAs/',
                         data.type = 'miRNAs')#miRNAs

####合并临床数据
clinicalDa <- gdcClinicalMerge(path = 'TCGA-PRAD/Clinical/', key.info = TRUE)
  • 2.4) TMM标准化和Voom转换,gdcVoomNormalization()函数

#低表达基因(超过一半的样本中logcpm <1)默认情况下会被滤除。 通过在gdcVoomNormalization()中设置filter = TRUE可以保留所有基因。
####### RNAseq  #######
rnaExpr <- gdcVoomNormalization(counts = rnaMatrix, filter = FALSE)
####### miRNAs  #######
mirExpr <- gdcVoomNormalization(counts = mirMatrix, filter = FALSE)

3) 差异基因表达分析

  • 3.1)差异分析,函数gdcDEAnalysis( )

#gdcDEAnalysis()参数method中有三种 limma,edgeR和DESeq2
#识别用户定义的任何两组之间的差异表达基因(DEG)或miRNA
DEGAll <- gdcDEAnalysis(counts     = rnaMatrix, 
                        group      = metaMatrix.RNA$sample_type, 
                        comparison = 'PrimaryTumor-SolidTissueNormal', 
                        method     = 'limma')
  • 3.2)报告DE基因/ miRNAs,gdcDEReport()函数

#通过在gdcDEReport()中设置geneType参数,可以分别报告All DEGs, DE long non-coding genes, DE protein coding genes 和 DE miRNAs。报告中的Gene symbols 和 biotypes是Ensembl 90注释的。
### 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.3) DEG 可视化

#火山图和条形图可分别通过gdcVolcanoPlot()和gdcBarPlot()函数可视化DE分析结果。 
#DEG表达式矩阵上的聚类分析结果可以通过gdcHeatmap()函数分析和绘制。
# a)火山图 Volcano plot
gdcVolcanoPlot(DEGAll)
# b)条形图 Barplot
gdcBarPlot(deg = deALL, angle = 45, data.type = 'RNAseq')
# c) 热图 Heatmap
degName = rownames(deALL)
gdcHeatmap(deg.id = degName, metadata = metaMatrix.RNA, rna.expr = rnaExpr)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容