2021-04-29 TCGA與GTEX數(shù)據(jù)下載

數(shù)據(jù)庫背景介紹

TCGA洁桌,全稱:The cancer genome altas
官網(wǎng):https://cancergenome.nih.gov/
是由National Cancer Institute ( NCI, 美國國家癌癥研究所) 和 National Human Genome Research Institute (NHGRI, 國家人類基因組研究所) 合作建立的癌癥研究項(xiàng)目元莫,通過收集整理癌癥相關(guān)的各種組學(xué)數(shù)據(jù)妈拌。The Cancer Genome Atlas (TCGA) has quantified gene expression levels in >12000 samples from >33 cancer types.
TCGA一般測兩種數(shù)據(jù) 如:胃癌 一般測癌組織和癌旁組織
GTEx,全稱: The Genotype-Tissue Expression (GTEx) project
首次被提出來是2013年胶惰,上百位科學(xué)家聯(lián)名在Nature Genetics雜志發(fā)表的文章首次介紹了“基因型-組織表達(dá)工程”鹉戚,并成立了“基因型-組織表達(dá)研究聯(lián)盟”(Genotype-Tissue Expression Consortium,GTEx)以下簡稱“GTEx”)师幕。The GTEx has catalogued gene expression in >9,000 samples across 53 tissues from 544 healthy individuals.
但是通常在UCSC上面下載癌癥組織的測序數(shù)據(jù)

兩個(gè)小問題

問題一:既然癌癥組織的測序數(shù)據(jù)在TCGA粟按,為什么不在TCGA官網(wǎng)下載數(shù)據(jù),而是在UCSC上面下載呢霹粥?
1灭将、 UCSC整合了多個(gè)癌癥公共數(shù)據(jù)庫的資源,所以數(shù)據(jù)整理起來很方便(如果在TCGA官網(wǎng)下載就很麻煩后控,首先是下載的時(shí)候麻煩庙曙,第二是下載之后整合數(shù)據(jù)沒法。
2浩淘、TCGA是在美國的官方網(wǎng)站矾利,正常情況下我們連Google都打不開,所以……………….
3馋袜、 UCSC在生信分析方面搭建了很多平臺男旗,包括以后看你會接觸到的UCSC基因組瀏覽器等等,所以UCSC下載數(shù)據(jù)是國際認(rèn)可的欣鳖,發(fā)文章的時(shí)候不會有reviewer質(zhì)疑察皇。
問題二:既然TCGA有癌旁的數(shù)據(jù),為什么還要下載GTEx的正常組織數(shù)據(jù)呢泽台?
1什荣、 不是所有的癌腫都有癌旁數(shù)據(jù)的,比如骨肉瘤這些就沒有癌旁
2怀酷、最重要的原因是TCGA中的癌旁數(shù)據(jù)太少了稻爬,比如胃癌只有100多癌旁,癌組織樣本卻有400多個(gè)蜕依。
3桅锄、有時(shí)候也是為了作圖漂亮

數(shù)據(jù)下載

從UCSC Xena官網(wǎng)下載TCGA數(shù)據(jù)庫中胃癌RNA-Seq data和GTEX數(shù)據(jù)庫中的正常組織RNA-Seq data琉雳。

進(jìn)入U(xiǎn)CSC官網(wǎng)網(wǎng)址:https://xenabrowser.net/
點(diǎn)擊DATA SETS:https://xenabrowser.net/datapages/
選擇GDC TCGA Stomach Cancer (STAD) (15 datasets):https://xenabrowser.net/datapages/?cohort=GDC%20TCGA%20Stomach%20Cancer%20(STAD)&removeHub=https%3A%2F%2Fxena.treehouse.gi.ucsc.edu%3A443

下載TCGA數(shù)據(jù)庫中胃癌RNA-Seq data

進(jìn)入gene expression RNAseq中的HTSeq - FPKM (n=407) GDC Hub:

怎么分辨癌組織和癌旁組織呢?這時(shí)候需要下載臨床信息
進(jìn)入phenotype中的Phenotype (n=544) GDC Hub:

進(jìn)入phenotype中的survival data (n=502) GDC Hub

下載GTEX數(shù)據(jù)庫中的正常組織RNA-Seq data



數(shù)據(jù)的整合

####讓報(bào)錯(cuò)變成英文 方便google
Sys.setenv(LANGUAGE = "en")
#禁止chr轉(zhuǎn)成factor
options(stringsAsFactors = FALSE)
###清空環(huán)境
rm(list=ls())
##加載包  這個(gè)包是用來加快數(shù)據(jù)讀取的
library(data.table)
library(dplyr)
library(tidyverse)
###讀取胃癌的臨床信息
stad.phe=fread("TCGA-STAD.GDC_phenotype.tsv",header = T, sep = '\t',data.table = F)
###查看一下數(shù)據(jù)類型
class(stad.phe)#"data.frame"
###讀取表達(dá)譜信息  rnaseq的數(shù)據(jù)
stad.fkpm=fread("TCGA-STAD.htseq_fpkm.tsv",header = T, sep = '\t',data.table = F)
###查看列名 方便merger的合并列設(shè)置
colnames(stad.fkpm)
####讀取探針信息 友瘤,目的是為了將ensemble名字轉(zhuǎn)為基因名
stad.pro=fread("gencode.v22.annotation.gene.probeMap",header = T, sep = '\t',data.table = F)
##查看一下數(shù)據(jù)
colnames(stad.pro)
###我們只要前兩列進(jìn)行轉(zhuǎn)換
stad.pro=stad.pro[,c(1,2)]
colnames(stad.pro)
###用merge函數(shù)將探針轉(zhuǎn)化的信息和表達(dá)譜信息進(jìn)行合并
stad.fkpm.pro=merge(stad.pro,stad.fkpm,by.y ="Ensembl_ID",by.x = "id" )
dim(stad.fkpm.pro)  # 60483   409
rownames(stad.fkpm.pro)=stad.fkpm.pro$gene #把基因名轉(zhuǎn)換為行名
stad.fkpm.pro=distinct(stad.fkpm.pro,gene,.keep_all = T)#去重復(fù)
dim(stad.fkpm.pro) #去重復(fù)以后的數(shù)目  58387   409
stad.fkpm.pro <- column_to_rownames(stad.fkpm.pro,"gene")#相當(dāng)于把gene列移動 轉(zhuǎn)換為行名
##此時(shí)翠肘,已構(gòu)建好表達(dá)矩陣


###因?yàn)閠cga數(shù)據(jù)中有癌和癌旁,所以我們先根據(jù)臨床信息把癌和癌旁區(qū)分一下
View(stad.phe)  #臨床信息中行名與表達(dá)矩陣的列名相同
x=stad.phe$submitter_id.samples
rownames(stad.phe)=stad.phe$submitter_id.samples
##通過查看臨床信息辫秧,我們發(fā)現(xiàn)在sample_type.samples列中束倍,Primary Tumor為癌,Solid Tissue Normal為癌旁
x2=stad.phe$sample_type.samples
table(stad.phe$sample_type.samples)#癌組織443個(gè) 癌旁組織101個(gè)
##將癌組織和癌旁組織提取出來
stad.phe.t=filter(stad.phe,sample_type.samples=="Primary Tumor")
stad.phe.n=filter(stad.phe,sample_type.samples=="Solid Tissue Normal")
#樣本信息中行數(shù)為544 而表達(dá)矩陣列數(shù)為408 說明有100多個(gè)樣本沒有表達(dá)矩陣 
#看一下臨床信息與實(shí)際表達(dá)矩陣的交集
z1=intersect(rownames(stad.phe.t),colnames(stad.fkpm.pro))#腫瘤的臨床信息與表達(dá)矩陣的交集 375個(gè)
z2=intersect(rownames(stad.phe.n),colnames(stad.fkpm.pro))#癌旁的臨床信息與表達(dá)矩陣的交集 32個(gè) 說明很多組織測序不成功
stad.t=stad.fkpm.pro[,z1]##所有癌組織的表達(dá)矩陣
stad.n=stad.fkpm.pro[,z2]##所有癌旁組織的表達(dá)矩陣
##改變一下stad.t和stad.n的列名 方便查看
colnames(stad.n)=paste0("N",1:32)#癌旁的列名重新命名
colnames(stad.t)=paste0("T",1:375)#腫瘤的列名重新命名
stad.exp=merge(stad.n,stad.t,by.x = 0,by.y = 0)##合并
colnames(stad.exp)
stad.exp <- column_to_rownames(stad.exp,"Row.names")#58387 407
#表達(dá)矩陣的數(shù)據(jù)完成
save(stad.exp,file='stas.exp.Rdata')
library(data.table)
###讀取gtex的表達(dá)矩陣盟戏,注意解壓和不解壓都是可以讀取的
##電腦內(nèi)存小的話绪妹,會出現(xiàn)error。柿究。邮旷。。
memory.limit(size=100000)##我也不知道科不科學(xué)笛求。廊移。#60498  7863
gtex.exp=fread("gtex_RSEM_gene_fpkm",header = T, sep = '\t',data.table = F)
save(gtex.exp,file='gtex.exp.Rdata')
###
dim(gtex.exp) #60498  7863
gtex.exp[1:5,1:5]
###讀取gtex的臨床樣本注釋信息
gtex.phe=fread("GTEX_phenotype",header = T, sep = '\t',data.table = F)
##查看一下
View(gtex.phe)
###讀取gtex的基因注釋信息 也就是探針信息
gtex.pro=fread("probeMap_gencode.v23.annotation.gene.probemap",header = T, sep = '\t',data.table = F)
dim(gtex.pro)  #60498     6
####我們比較一下v23和v22的差異  一個(gè)是60498  一個(gè)是60483
###現(xiàn)在我們先合并gtex的基因信息
###合并之前先看一下列名  找到共同的合并列
colnames(gtex.pro)
colnames(gtex.exp)
gtex.pro=gtex.pro[,c(1,2)]
###我們發(fā)現(xiàn)sample和id是共同的列
head(gtex.pro)
head(gtex.exp)
gtex.exp[1:4,1:4]
gtex.fkpm.pro=merge(gtex.pro,gtex.exp,by.y ="sample",by.x = "id" )#60498 7864
###取一波交集  目的是為了決定之后的gtex和stad合并是按照symbol還是enseble來合并
length(intersect(gtex.pro$id,stad.pro$id))  #42566
length(intersect(rownames(stad.exp),gtex.fkpm.pro$gene)) #57993
###我們可以看到 如果按照基因合并會有57793個(gè)交集  如果按照Ensembl卻只有42566個(gè),所以最后還是按照gene來合并
###現(xiàn)在要提取正常的胃組織的表達(dá)矩陣探入,我們要根據(jù)gtex的臨床信息來匹配胃組織的sample
colnames(gtex.phe)
rownames(gtex.phe)=gtex.phe$Sample
table(gtex.phe$_primary_site)
colnames(gtex.phe)=c("Sample","body_site_detail (SMTSD)","primary_site","gender","patient","cohort")
colnames(gtex.phe)
table(gtex.phe$primary_site)#stomach 209
gtex.phe.s=filter(gtex.phe,primary_site=="Stomach")
x1=intersect(rownames(gtex.phe.s),colnames(gtex.fkpm.pro))
gtex.s=gtex.fkpm.pro[,c("gene",x1)]
rownames(gtex.s) <- gtex.s$gene
gtex.s1 <- distinct(gtex.s,gene,.keep_all = T)
gtex.s2 <- column_to_rownames(gtex.s1,"gene")
###我們發(fā)現(xiàn)一共有209個(gè)胃組織
###我們從官網(wǎng)可以看到gtex是按照log2(fpkm+0.001)處理的  stad是按照log2(fpkm+1)狡孔,所以我們在合并之前 先要把他們的處理方式變成一樣。
gtex.s3=2^gtex.s2
log2(0.001)   #-9.965784
gtex.s5=log2(gtex.s3-0.001+1)
colnames(gtex.s5)=paste0("G",1:174)
###現(xiàn)在數(shù)據(jù)的處理方式都相同了 就有可比性了 將gtex的胃組織的數(shù)據(jù)與tcga的數(shù)據(jù)進(jìn)行合并
all.data=merge(gtex.s5,stad.exp,by= 0) #57793 582
all.data <- column_to_rownames(all.data,"Row.names")
save(all.data,file = 'all.data.Rdata')
我也暈了蜂嗽。苗膝。。




library(limma)##去除批次效應(yīng)
nromalized.data=normalizeBetweenArrays(all.data)
as.data.frame()
?normalizeBetweenArrays
##http://www.gsea-msigdb.org/gsea/index.jsp GSEA網(wǎng)址
###############另外一種gmt
BiocManager::install("GSEABase")
library(GSEABase)
library(clusterProfiler)
library("devtools")
install_github("GSEA-MSigDB/GSEA_R")
library(GSEA)
library(dplyr)
kegggmt2 <- read.gmt("c2.cp.kegg.v7.4.symbols.gmt")#12797 2
kegg_list = split(kegggmt2$gene, kegggmt2$term)
library(GSVA)
?gsva
#method:gsva;zscore;ssgsea(計(jì)算免疫浸潤)
expr=as.matrix(expr)
kegg2 <- gsva(nromalized.data, kegg_list, kcdf="Gaussian",method = "gsva",parallel.sz=0)
#mx.diff False:正態(tài)分布(差異度不明顯)( True:雙峰分布(差異度更大植旧,更明顯辱揭。)


#########################自定義的基因集 
gene.set=read.table("5.4.GENE.SET.txt",
                    header =F,sep = '\t',quote = '')
kegg.123=read.table("5.4.GENE.NAME.txt",
                    header =F,sep = '\t',quote = '')
gene.set1=as.matrix(gene.set)
gene.set2=t(gene.set1) #轉(zhuǎn)置以后每一列代表一個(gè)通路
gmt=list() #GSCA輸入需要list
for (i in 1:19) {
  y=as.character(gene.set2[,i]) 
  b=which(y=="")
  gmt[[i]]=y[-b]
}
names(gmt)=kegg.123$V1
gmt=gmt[-19]

View(gmt)
getwd()



library(GSVA)

es.dif.nromalized <- gsva(nromalized.data, gmt, mx.diff=TRUE,kcdf="Poisson",parallel.sz=8)
es.max.nromalized <- gsva(nromalized.data, gmt, mx.diff=FALSE)
#把每個(gè)樣本對應(yīng)的通路的基因集都計(jì)算出來了 

? data.frame
annotation_col = data.frame(
  Tissuetype =c(rep("Stomach",174),rep("Solid Tissue Normal",32),rep("Tumor",375)),
  Database =c(rep("gtex",174), rep("TCGA",407))
)

rownames(annotation_col)=colnames(es.max.nromalized)

pheatmap::pheatmap(es.max.nromalized, #熱圖的數(shù)據(jù)
                   cluster_rows = F,#行聚類
                   cluster_cols =F,#列聚類,可以看出樣本之間的區(qū)分度
                   annotation_col = annotation_col,
                   show_colnames=F,
                   scale = "row", #以行來標(biāo)準(zhǔn)化病附,這個(gè)功能很不錯(cuò)
                   color =colorRampPalette(c("green", "black","red"))(100))


###############特定基因分析
exprSet.all.r=all.data[c("RORC", "RORB", "RORA"),]

exprSet.all.r=t(exprSet.all.r)
exprSet.all.r=as.data.frame(exprSet.all.r)

x=c(rep("GTEX",174),rep("N",32),rep("T",375))
exprSet.all.r$Type=x

exprSet.rorc=exprSet.all.r[,c(1,4)]
exprSet.rorc$Gene=rep("RORC")
colnames(exprSet.rorc)[1]="Relative Expression"
exprSet.rorb=exprSet.all.r[,c(2,4)]
exprSet.rorb$Gene=rep("RORB") 
colnames(exprSet.rorb)[1]="Relative Expression"
exprSet.rora=exprSet.all.r[,c(3,4)] 
exprSet.rora$Gene=rep("RORA") 
colnames(exprSet.rora)[1]="Relative Expression"
x.all=rbind(exprSet.rorc,exprSet.rorb,exprSet.rora)
colnames(x.all)
library(ggsignif)
library(ggpubr)
library(ggplot2)
p <- ggboxplot(x.all, x = "Gene", y = "Relative Expression",
               color = "Type", palette = "Type",
               add = "Type")
p + stat_compare_means(aes(group = Type))

table(x.all$Gene)
my_comparisons <- list(c("RORA","RORB"), c("RORA","RORC"),c("RORB", "RORC"))


p +geom_signif(comparisons = my_comparisons,
               step_increase = 0.2,map_signif_level = F,
               test = t.test,size=0.8,textsize =4)
?geom_signif
x.c.b=cbind(exprSet.rorc,exprSet.rorb)
GSEA
GSVA
GO/KEGG
colnames(x.c.b)=c("RORC","Type","Gene", "RORB","Type","Gene" )
x.c.b=x.c.b[,c(1,4)]
library(ggplot2)
library(ggpubr)
## Loading required package: magrittr
p1 <- ggplot(data = x.c.b, mapping = aes(x = RORC, y = RORB)) +
  geom_point(colour = "red", size = 2) +
  geom_smooth(method = lm, colour='blue', fill='gray') #添加擬合曲線
p1
p1 + stat_cor(method = "pearson", label.x = -0.4, label.y = 0.2) #添加pearson相關(guān)系數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末问窃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子完沪,更是在濱河造成了極大的恐慌域庇,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件覆积,死亡現(xiàn)場離奇詭異听皿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)宽档,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門尉姨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吗冤,你說我怎么就攤上這事又厉【鸥” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵馋没,是天一觀的道長昔逗。 經(jīng)常有香客問我降传,道長篷朵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任婆排,我火速辦了婚禮声旺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘段只。我一直安慰自己腮猖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布赞枕。 她就那樣靜靜地躺著澈缺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炕婶。 梳的紋絲不亂的頭發(fā)上姐赡,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音柠掂,去河邊找鬼项滑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涯贞,可吹牛的內(nèi)容都是我干的枪狂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼宋渔,長吁一口氣:“原來是場噩夢啊……” “哼州疾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起皇拣,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤严蓖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后审磁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谈飒,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年态蒂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杭措。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钾恢,死狀恐怖手素,靈堂內(nèi)的尸體忽然破棺而出鸳址,到底是詐尸還是另有隱情,我是刑警寧澤泉懦,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布稿黍,位于F島的核電站,受9級特大地震影響崩哩,放射性物質(zhì)發(fā)生泄漏巡球。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一邓嘹、第九天 我趴在偏房一處隱蔽的房頂上張望酣栈。 院中可真熱鬧,春花似錦汹押、人聲如沸矿筝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窖维。三九已至,卻和暖如春妙痹,著一層夾襖步出監(jiān)牢的瞬間铸史,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工细诸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沛贪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓震贵,卻偏偏與公主長得像利赋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子猩系,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容