scRNA-单细胞转录组学习笔记-22-评估任意基因集在癌症的表现
刘小泽写于19.9.6-第四单元第二讲:评估任意基因集在癌症的表现 笔记目的:根据生信技能树的单细胞转录组课程探索smart-seq2技术相关的分析技术 课程链接在:http://jm.grazy.cn/index/mulitcourse/detail.html?cid=53
前言
上一篇是探索两个细胞亚群(vCAF、mCAF)特有的基因在TCGA中的表现,发现两个亚群的基因都是和TCGA 相关的基因在内部相关,说明了分群的效果不错
目的就是做下面这个图的相关性分析:
可以看到,横坐标的vCAF就是我们前一篇得到的vCAF基因集在TCGA数据集中的表达量,那么纵坐标,就需要去文章里找,作者是拿到了5篇不同参考文献的6个数据集
文章正文放了四张相关性的图,是vCAF和mCAF与第27篇参考文献中的两个乳腺癌数据集进行的比较
然后再来看看第27篇文献的图,其中列出了乳腺癌的ECM和Endothelial的基因集
然后这篇参考文献的作者定义基因集的方法就是:在大部分癌症中都存在的基因就是基因集,因此我们看到,本文使用的基因集中就3个基因
看到其中有一个奇怪的基因名
CXorf36
,按说人类的基因名都应该是大写,所以拿到GenCard查询一下:https://www.genecards.org/cgi-bin/carddisp.pl?gene=DIPK2B&keywords=CXorf36。发现这个基因目前叫DIPK2B
有了基因集,就去获取4个基因集的表达量
各个基因如下:
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')
还是使用上一篇的GDC乳腺癌TCGA的表达矩阵(60,489 identifiers X 1217 samples
)
需要注意的是:上一篇我们单纯比较多个基因相关性,所以得到多个基因的表达量然后做个热图就好;但是这次要比较的是两个基因集(每一组内都有不同数量的基因)。作者用散点图来展现,其中的每一个点实际上就是一个样本,但是同一个样本在两个基因集中对应的基因数量不同,不能简单拿任何一个基因进行比较。作者给的方法是:
但是这里我们只是简单对每个样本取个均值
# 读入数据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]
ng=e2s[match(vCAF,e2s$SYMBOL),1]
vCAF_value=colMeans(a[ng,])
ng=e2s[match(mCAF,e2s$SYMBOL),1]
mCAF_value=colMeans(a[ng,])
ng=e2s[match(ECM,e2s$SYMBOL),1]
ECM_value=colMeans(a[ng,])
ng=e2s[match(endothelial,e2s$SYMBOL),1]
endothelial_value=colMeans(a[ng,])
dat=data.frame(vCAF_value=vCAF_value,
mCAF_value=mCAF_value,
ECM_value=ECM_value,
endothelial_value=endothelial_value )
最后绘制散点图
library(ggpubr)
colnames(dat)
ggscatter(dat, x = "vCAF_value", y = "endothelial_value",
color = 'black', shape = 21, size = 0.5, # Points color, shape and size
add = "reg.line", # Add regressin line
add.params = list(color = "blue", fill = "lightgray"), # Customize reg. line
conf.int = TRUE, # Add confidence interval
cor.coef = TRUE,
cor.coeff.args = list(method = "pearson", label.sep = "\n")
)