多个基因集相关性热图

  • 2020 年 3 月 30 日
  • 筆記

前言

第四单元第三讲:多个基因集相关性热图

课程链接在:http://jm.grazy.cn/index/mulitcourse/detail.html?cid=53 基于前面的两节,这一节变得更容易理解

文章正文还是以乳腺癌为例,绘制了6个数据集和两个亚型基因集之间的相关性

这次还是要对基因集进行操作,因此也是需要进行上一次的colMeans()操作,只不过上次总共得到4个,这次是7个(因为下文将troma1和stroma2合并为一个stroma)

获取各个基因集的基因

一共5篇参考文献,需要将其中各个基因集拿出来:

library(stringr)  # vCAF基因集  vCAF='Esam, Gng11, Higd1b, Cox4i2, Cygb, Gja4, Eng'  vCAF=unlist(str_split(vCAF,', '))  # mCAF基因集  mCAF='Dcn, Col12a1, Mmp2, Lum, Mrc2, Bicc1, Lrrc15, Mfap5, Col3A1, Mmp14, Spon1, Pdgfrl, Serpinf1, Lrp1, Gfpt2, Ctsk, Cdh11, Itgbl1, Col6a2, Postn, Ccdc80, Lox, Vcan, Col1a1, Fbn1, Col1a2, Pdpn, Col6a1, Fstl1, Col5a2, Aebp1'  mCAF=unlist(str_split(mCAF,', '))  # ECM基因集  ECM=c('COL1A1', 'COL1A2','COL3A1')  # Endothelial基因集  endothelial=c('CDH5', 'DIPK2B','TIE1')  # for 参考文献ref32:proliferation 基因集  proliferation <- c("BAG1","ESR1","FOXA1","GPR160","NAT1","NAT1","MAPT","MLPH","PGR")  # for ref31: stroma-related 基因集  stroma <- c('DCN', 'CSPG2', 'CDH11', 'COL3A1', 'FAP', 'PEDF', 'FBN1', 'PDGFRL', 'CTSK', 'HTRA1', 'ASPN', 'SPARC', 'COL5A2', 'LOXL1', 'MMP2', 'SPON1', 'SFRP4', 'ITGBL1', 'CALD1', 'COPZ2', 'MFAP2', 'ANGPTL2', 'PLAU', 'COL1A2', 'LRRC17', 'C1QTNF3', 'SNAI2', 'PCOLCE', 'POSTN', 'ECM2', 'FBLN1', 'ADAM12', 'MMP11', 'AEBP1', 'PDGFRB', 'GAS1', 'COL6A3', 'RARRES2', 'COL6A1', 'TGFB3', 'NDN', 'C1R', 'LRP1', 'COL10A1', 'DPYSL3', 'OLFML2B', 'MMP14', 'DACT1', 'MGC3047', 'THBS2')  # for ref29: endothelial/microvasculature 基因集  microvasculature <- c('ARAP3','ADCY4','ESAM','ERG','SLC43A3','SOX7','PTPRB','PTPRM','AFAP1L1','MMRN2','TENC1','STARD9','COL4A3','LRRK1','PALD1','NPR3','ROBO4','NOTCH4','TIE1','RASIP1','ACVRL1','RAMP2','FAM110D','EGFL7','SMAD6','FGD5','ENG','CASKIN2','ACKR2','SLC9A3R2','CALCRL','HSPA12B','EPAS1','EHD4','LATS2','ICAM1','HBEGF','PLTP','C1orf54','CTTNBP2NL','MYO1B','SLCO2A1','KIFC1','EPHB4','SOX13','DRAM1','PECAM1','ENTPD1','ICAM2','CLDN5','SDPR','CDH5','GPR116','ELTD1','KDR','HILPDA','NPNT')  

然后得到7个基因集的表达量

# 读入数据TCGA-BRCA.htseq_counts.tsv.gz  library(data.table)  filepath <- file.choose()  a=fread(filepath ,data.table=F)    # Ensembl ID切割  library(stringr)  esid=str_split(a$Ensembl_ID,                   '[.]',simplify = T)[,1]  # ID转换  e2s=select(org.Hs.eg.db,keys = esid,columns = c( "ENSEMBL" ,  "SYMBOL" ),keytype = 'ENSEMBL')  vCAF=toupper(vCAF);vCAF=vCAF[vCAF %in% e2s$SYMBOL,]  mCAF=toupper(mCAF);mCAF=mCAF[mCAF %in% e2s$SYMBOL,]    # 获得表达量  rownames(a)=esid  a=a[,-1]  # vCAF  ng=e2s[match(vCAF,e2s$SYMBOL),1]  vCAF_value=colMeans(a[ng,])  # mCAF  ng=e2s[match(mCAF,e2s$SYMBOL),1]  mCAF_value=colMeans(a[ng,])  # ECM  ng=e2s[match(ECM,e2s$SYMBOL),1]  ECM_value=colMeans(a[ng,])  # Endothelial  ng=e2s[match(endothelial,e2s$SYMBOL),1]  endothelial_value=colMeans(a[ng,])  # proliferation(注意这里加上了检测基因名是否存在的代码)  ng=e2s[match(proliferation,e2s$SYMBOL),1];ng=ng[!is.na(ng)];ng  proliferation_value=colMeans(a[ng,])  # stroma  ng=e2s[match(stroma,e2s$SYMBOL),1];ng=ng[!is.na(ng)];ng  stroma_value=colMeans(a[ng,])  # microvasculature  ng=e2s[match(microvasculature,e2s$SYMBOL),1];ng=ng[!is.na(ng)];ng  microvasculature_value=colMeans(a[ng,])    dat=data.frame(vCAF=vCAF_value,                   mCAF=mCAF_value,                   ECM=ECM_value,                   endothelial=endothelial_value,                   microvasculature=microvasculature_value,                   stroma=stroma_value,                   proliferation=proliferation_value)    > dat[1:4,1:4]                       vCAF     mCAF      ECM endothelial  TCGA-A1-A0SP-01A 8.794181 13.07456 17.13670    9.990037  TCGA-BH-A201-01A 9.549604 14.86951 19.40557   10.895579  TCGA-E2-A14T-01A 9.600401 13.33230 17.61368   10.475556  TCGA-AC-A8OS-01A 9.998759 14.07297 19.24798   11.932741  

最后做相关性热图

M=cor(dat)  pheatmap::pheatmap(M)  

从图中得知(同样也是作者想要证明的),vCAF和mCAF能够分开,并且它们各有特性。比如可以看到mCAF与ECM、stroma更像;而vCAF与microvasculature更像;另外vCAF和mCAF都与proliferation都不相关

总而言之,做这些就是想说明这几个分群的生物学意义的