GEO挖掘实战四、TNBC相关探索

之前的分析流程为GEO数据的通用方法。此外我们还可以针对特定的研究对象挖掘相关的生物学规律。
例如TNBC, tripple negative breast cancer是三种受体呈阴性的一种乳腺癌(三阴性乳腺癌),可重点关注与之相关的基因的表达情况,见下面得到第八步。

8、marker gene

  • 三阴性乳腺癌三阴性乳腺癌(TNBC)是指雌激素受体(ER)、孕激素受体(PR)和人表皮生长因子受体(HER2)均为阴性;
  • ER、PR、HER2并不是基因的规范命名,接下来找到三者对应的symbol规范命名;
  • genecard(https://www.genecards.org/)网站搜索结果:上述三者分别对应(ESR1、ESR2)、PGR、ERBB2
rm(list = ls())
options(stringsAsFactors = F)
load(file = 'exp_group.Rdata')
exp[1:4,1:4]
library(hgu133plus2.db)
p2s <- toTable(hgu133plus2SYMBOL)
index <- p2s$symbol %in% c("ERBB2",'ESR1','ESR2','PGR')
np <- p2s[index,1] #探针名
ng <- p2s[index,2] #基因名
marker_dat <- exp[np,]
rownames(marker_dat) <- paste(ng,np,sep=':')
n=t(scale(t(marker_dat)))
n[n>2]=2; n[n< -2]= -2
n[1:4,1:4]
group_dat <- data.frame(group=group_list, row.names = colnames(exp))

library(pheatmap)
pheatmap(n, annotation_col = group_dat,
         show_colnames = F)
8-1

如上热图可以看出这些marker基因在TNBC染色体表达相对较低(三阴)。此外在多个探针对应一个基因时,通常取表达量最大的那个探针代表该基因情况。

wdata <- data.frame(v=as.numeric(marker_dat['ERBB2:210930_s_at',]))
library(ggpubr)
gghistogram(wdata, x='v',y="..density..",
            #纵轴标签有点问题,老师的图的标签为密度值。
            add_density = T,
            add = "mean",rug = T)
8-2

9、PAM50分类器

PAM50的GEP分型主要根据50个基因的表达情况可将乳腺癌分为不同的亚型,包括

  • 表达雌激素受体(ER)相关因子的亚型(管腔型,有A、B型两种);
  • 表达人类表皮生长因子受体2(HER2)相关通路因子的亚型(HER2过表达亚型);
  • 表达基底因子但不表达激素受体通路的基底样乳腺癌(BLBC)亚型。

9.1 去重

rm(list = ls())
options(stringsAsFactors = F)
load(file = 'exp_group.Rdata')
library(hgu133plus2.db)
ids <- toTable(hgu133plus2SYMBOL)
dat <- exp[ids$probe_id,]
ids$median <- apply(dat,1,median)
ids <- ids[order(ids$symbol,ids$median, decreasing = T),]
#先按symbol名字母降序排,再按对应的median值从大到小排。
#目的是将相同基因名放在一起,并按median值从大到小排
ids <- ids[!duplicated(ids$symbol),]
#去重,只保留同名的第一个,也就是median最大的那个
dat <- dat[ids$probe_id,]
rownames(dat) <- ids$symbol

9.2

ddata=t(dat)
ddata[1:4,1:4]
s=colnames(ddata);head(s)
library(org.Hs.eg.db)
s2g=toTable(org.Hs.egSYMBOL)
head(s2g)
g=s2g[match(s, s2g$symbol),1];head(g)
dannot=data.frame(probe=s,
                  Gene.Symbol=s,
                  EntrezGene.ID=g)
head(dannot)
dim(dannot)
ddata=ddata[,!is.na(dannot$EntrezGene.ID)]
dannot=dannot[!is.na(dannot$EntrezGene.ID),]
#dannot的格式要准确,包括列名
dim(dannot)
if (!require("BiocManager"))
  install.packages("BiocManager")
#BiocManager::install("genefu")
library(genefu)
s <- molecular.subtyping(sbt.model = "pam50", data=ddata,
                         annot = dannot, do.mapping = T)

table(s$subtype)
# Basal   Her2   LumB   LumA Normal 
#   134     18     46     54     13 

9.3 热图比较

pam50genes <- pam50$centroids.map[c(1,3)]
#这个包是几年前开发的,其中三个symbol已经改变,需要手动修改一下。
pam50genes[pam50genes$probe=='CDCA1', 1]="NUF2"
pam50genes[pam50genes$probe=='KNTC2', 1]="NDC80"
pam50genes[pam50genes$probe=='ORC6L', 1]="OPC6"
x=dat
x=x[pam50genes$probe[pam50genes$probe %in% rownames(x)],]
subtype <- as.character(s$subtype)
tmp <- data.frame(group=group_list,
                  subtypes=subtype)
rownames(tmp) <- colnames(x)

library(pheatmap)
pheatmap(x, show_rownames = T,
         show_colnames = F,
         annotation_col = tmp)
n=t(scale(t(x)))
n[n>2]=2; n[n< -2]= -2
n[1:4,1:4]
pheatmap(n, show_rownames = T,
         show_colnames = F,
         annotation_col = tmp)

如下图,可以看到basal类(BLBC)与TNBC重合度较高(均为恶性的乳腺癌),这也验证了TNBC许多生物学特性和基底细胞样型乳腺癌(Basal-like breast cancer)相似的结论


9.3

你可能感兴趣的:(GEO挖掘实战四、TNBC相关探索)