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

作者: 小贝学生信 | 来源:发表于2020-09-09 16:37 被阅读0次

    之前的分析流程为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相关探索

        本文链接:https://www.haomeiwen.com/subject/xcieektx.html