⽣信_反相蛋⽩阵列(RPPA)_附实例
反相蛋⽩阵列(RPPA)
⽂章⽬录
RPPA
基本原理:通过特异性抗体对凝胶电泳处理过的细胞或者⽣物组织样品进⾏着⾊。通过分析着⾊的位置和着⾊深度获得特定蛋⽩质在所分析的细胞或组织中表达情况的信息。
基因芯⽚的定量信息是表达量的⾼低,蛋⽩芯⽚的定量是丰度的⾼低
可以同时检测⾄少150种抗体(现在具体的数字可能更⾼),⼤于1000多个样本。
样本制备只需要⼤概40ul
RPPA数据的形式
level 1
1. 最原始的数据,也是最少⽤到的数据
2. ⼀般是图形数据(.tiff⽂件),数据是把着⾊的情况直接存成图⽚,可以经过⼀定的处理转化为矩阵数据
level 2
系列稀释的校准⽆的信号强度和相应的蛋⽩质浓度建⽴的标准曲线
level 3(较常⽤到)
每个样本,每个蛋⽩的标准化后的表达值矩阵。
level 4
同⼀个样本经过不同批次的检测,将不同批次按照取均值或者其他处理⽅法合并成的⼀个表达谱
数据下载
TCGA中提供了16种癌型,⼤约5000个样本的数据。
firebrow⽹站下载
1. ,外国⽹站,可能需要等⽐较久
2. 点击SELECT COHORT选择想要下载的癌型
3. 点击RPPA Analys 选择下载RPPA数据
4. 选择右边条形图纵坐标的Rever Pha Protein Array,会弹出下载的链接
5. 这样⼦就能下载到表达谱和注释⽂件了。
TCGA蛋⽩质数据可视化⽹站TCPA
TCPA提供了对TCGA的蛋⽩数据进⾏可视化的服务
1. 统⼀样本内不同蛋⽩之间的相关分析
2. 不同肿瘤或者肿瘤亚型之间同⼀蛋⽩的差异分析
3. 同⼀个肿瘤内,按照蛋⽩的表达中值将样本分为⾼表达组和低表达组,进⾏⽣存分析
4. 都是⽐较简单的⽣信分析,有兴趣可以点击
RPPA数据分析⽰例(以GBM癌型为例)trayvon martin
1. 下载表达谱数据
2. ⽤R包下载TCGA临床数据
1. 调⽤相关R包
library(TCGAbiolinks)
library(dplyr)
library(DT)
library(SummarizedExperiment)
library(xlsx)
2. 下载临床信息代码
cancer_type <- "TCGA-GBM" ##癌型
query.clinical<-GDCquery(project=cancer_type,data.category="Clinical",pe=".xml")
result.clinical<-getResults(query.clinical)
GDCdownload(query.clinical)##如果数据⼀直下载失败,可以尝试files.per.chunk=3,意思是同时只下载3个⽂件,默认是6个
##根据⾃⼰的需要下载相应的数据
clinical_patient<-GDCprepare_clinic(query.clinical,clinical.info="patient")##病⼈信息
clinical_drug<-GDCprepare_clinic(query.clinical,clinical.info="drug")##药物信息
clinical_radiation<-GDCprepare_clinic(query.clinical,clinical.info="radiation")##化疗信息
clinical_follow_up<-GDCprepare_clinic(query.clinical,clinical.info="follow_up")##⽣存信息
clinical_stage_event<-GDCprepare_clinic(query.clinical,clinical.info="stage_event")##分期信息
clinical_new_tumor_event<-GDCprepare_clinic(query.clinical,clinical.info="new_tumor_event")##肿瘤复发信息
clinical_admin<-GDCprepare_clinic(query.clinical,clinical.info="admin")##管理⼈员信息
##保存信息
save.image(file="clinical_xml.Rdata")
##设置输出的⽂件名字
OUT_excel_name=paste(cancer_type,"clinical.xlsx",p="_")
##根据上⾯⾃⼰选择的信息写⼊相应的表格
library(xlsx)
write.xlsx(clinical_patient,file = OUT_excel_name,sheetName="patient",append = T)
write.xlsx(clinical_drug,file = OUT_excel_name,sheetName="drug",append = T)
write.xlsx(clinical_radiation,file = OUT_excel_name,sheetName="radiation",append = T)
write.xlsx(clinical_follow_up,file = OUT_excel_name,sheetName="follow_up",append = T)
write.xlsx(clinical_stage_event,file = OUT_excel_name,sheetName="stage_event",append = T)
write.xlsx(clinical_stage_event,file = OUT_excel_name,sheetName="stage_event",append = T)
write.xlsx(clinical_new_tumor_event,file = OUT_excel_name,sheetName="new_tumor_event",append = T)
write.xlsx(clinical_admin,file = OUT_excel_name,sheetName="admin",append = T)
刘维尔3. 根据⾃⼰的需要,⽤下载的临床信息中寻找相应的信息(肿瘤分期、药物敏感、肿瘤⼤⼩等),制作标签⽂件。我的代码要
求的label⽂件是有第⼀⾏最为表头,第⼀列是样本名,由于表达谱那边的样本名是以‘.’分隔,所以这⾥也全部替换成.。第⼆列是⾃⼰制作的标签,
4. 打开GBM.protein_exp__mda_rppa_core__mdanderson_org__Level_3__protein_normalization__⽂件⽤excel打
开,将第⼆⾏去掉
5. 读⼊⽂件
library(stringr)
alternatives
options(stringsAsFactors = F)
## 去掉空⾏
Exp <- read.delim("E:/daiMa/R/RPPA/gdac.broadinstitute_GBM.Merge_protein_exp__mda_rppa_core__mdanderson_org__Level_3__protein_n ormalization__data.Level_3.2016012800.0.0/GBM.protein_exp__mda_rppa_core__mdanderson_org__Level_3__protein_normalization__data.data.
txt", row.names=1)
Exp <- na.omit(Exp)
Exp <- as.matrix(Exp)
label <- read.delim("E:/daiMa/R/")
GPL <- read.delim("E:/daiMa/R/RPPA/gdac.broadinstitute_GBM.RPPA_AnnotateWithGene.Level_3.2016012800.0.0/GBM.antibody_annotation.t xt")
6. 处理表达谱的样本名
library(stringr)
## 取表达谱的样本名waking up in vegas
sample <- colnames(Exp)
## 因为TCGA的样本只需要前⼗⼆个字符能匹配
for (i in 1:length(sample)){
sample[i] <- substring(sample[i],1,12)
}
6. 根据label⽂件的标签将表达谱样本分类
## 对标签
loc <- match(sample,label[,1])
na_loc <- which(is.na(loc))
##去掉对不上标签的
loc <- loc[-na_loc]
Exp <- Exp[,-na_loc]
Label <- label[loc,2]
length(Label)
dim(Exp)
## 将表达谱根据标签分成两类
Exp1 <- Exp[,which(Label==1)]
Exp0 <- Exp[,which(Label==0)]
7. 使⽤t检验
##使⽤t检验
geneid <- row.names(Exp)
t_result=matrix(,length(geneid),3)
for (i in 1:nrow(Exp)) {
envision法
if (st_p>0.05) T_st(Exp1[i,],Exp0[i,],alternative="two.sided",paired=F,var.equal=T) el T_st(Exp1[i,],Exp0[i,],alternative="two.
sided",paired=F,var.equal=F)
t_result[i,1:3]=c(geneid[i],T_test$statistic,T_test$p.value)
t_result[i,1:3]=c(geneid[i],T_test$statistic,T_test$p.value)
}
colnames(t_result)=c("geneid","t_value","p_value")
head(t_result)
说服技巧>九年级英语视频8. ⽤找到的差异基因做KEGG富集
因为R包的KEGG需要的是基因的ENTREZID,所以我们还需要使⽤bitr函数转换⼀下
## 取得蛋⽩名
Gene <- t_result[t_result[,3]<0.05,]
## 将蛋⽩名转化为基因ID
library(clusterProfiler)
library(db)
## 将蛋⽩名和基因symbol进⾏匹配
loc <- match(Gene[,1],GPL[,2])
Gene[,1] <- GPL[loc,1]
## 将SYMBOL转化为ENTREZID
a <- bitr(Gene[,1],fromType = "SYMBOL",toType = "ENTREZID",OrgDechoes
b = "db")
loc <- match(Gene[,1],a$SYMBOL)
na_loc <- which(is.na(loc))
Gene <- Gene[-na_loc,]
loc <- loc[-na_loc]
Gene[,1] <- a$ENTREZID
geneid<- as.numeric(Gene[,1])
最新电影推荐
接下来就是要进⾏通路富集了
## 通路富集
library(clusterProfiler)
KEGGresult <- enrichKEGG(gene = geneid,organism = 'human',pvalueCutoff = 0.05,qvalueCutoff = 0.05)
## 画⽓泡图
dotplot(KEGGresult,font.size=8,showCategory=10) ## 最多显⽰10个通路
## 在⽹页中显⽰出通路的信息
browKEGG(KEGGresult,'hsa04115')pdf翻译
1. 这⾥enrichKEGG的参数organism⾮常的坑,官⽅每个物种都提供了两种输⼊形式,以⼈为例,有hsa或human两种,如果其
中⼀种报错,那就换另外⼀种,如果两个都报错,可能是代理的问题(起码我把代理关掉报错就没了)
2. 结果可以使⽤以下⼏个函数来看
KEGGresult@result$ID##富集通路的名称
KEGGresult@result$p.adjust## 矫正后的p值,上⾯enrichKEGG的p阈值看的就是这个,⽽不是p值
KEGGresult@result$qvalue## q值,⼀般默认使⽤的是“BH”⽅法
KEGGresult@result$Description## 富集通路的名称
3. 画出的⽓泡图:
可以看出这些差异基因只显著富集在⼀个通路上(当然我们也可以调低阈值来增加富集的通路),可以看到富集的通路是“p53 signaling pathway”
4. 可以使⽤以下代码查看富集的通路的ID和通路名称
KEGGresult@result$ID
KEGGresult@result$Descriptio
5. 在⽹页上查看富集到的通路的信息
## 在⽹页中显⽰出通路的信息
browKEGG(KEGGresult,'hsa04115') ##参数分别是富集的结果和需要查询的通路ID号
得到⼀个这样⼦的通路图。点击图上的通路名称或者基因名称会跳出相应的信息。p53 signaling pathway与细胞的⽣长和死亡有关,是⼀个已经很多研究证实的和癌症发⽣发展相关的通路。
6. 这时候好奇⼀下我们富集在这个通路的基因究竟有哪些,可以通过以下代码实现
n <- 1## 想查第⼏个通路的基因
rich_geneID <- strsplit(KEGGresult@result$geneID[n],"/")[[1]]
rich_geneID
rich_gene <- bitr(rich_geneID,fromType = "ENTREZID",toType = "SYMBOL",OrgDb = db)$SYMBOL
rich_gene
得到的结果是“BCL2”,“CDK1”,“CHEK1”
当然图中标红的基因就是差异基因中富集到该通路的基因,名称可能有些不同
我们可以点进去看看,可以看到
1. bcl2是凋亡调节因⼦