学术资讯 » 学术资源

  • 首 页
  • 期刊选题
  • 期刊点评
  • 期刊大全
  • 学人博客
  • 编辑征稿
  • 投稿选刊
  • 万维群组
  • 学术会议
  • 万维读书
  • SCI/E期刊
  • SSCI期刊
  • AHCI期刊
  • 画热图只标注感兴趣的基因名称

    阅读: 2022/5/23 8:41:05

    做组学分析的时候,想用热图展示差异基因的情况。很多时候尤其转录组,可能得到上千个差异基因,这时候画热图不可能将所有基因的名称显示,一方面太啰嗦,一方面放不下。那么这种既想展示差异基因在样本表达中的全局情况,又想显示基因名称(自己感兴趣的或者对于研究比较关键的),怎么操作呢?接着看:

    首先,准备画热图需要的文件,基因表达矩阵。(示例数据,自己瞎编的,没有任何意义)

    将数据入读R:

    setwd("D:/生物信息学")

    A <- read.csv("热图标注特定基因.csv", header = T,row.names = 1)

    一般情况下用pheatmap画简单的热图,不过复杂的热图就需要用其他的包了,也就是ComplexHeatmap,学会它,在复杂的热图都能搞定。

    加载包:

    library(ComplexHeatmap)

    先绘制一个很常规的热图:

    A <- as.matrix(A) #将表达矩阵转化为matrix

    samples <- rep(c('Control', 'Treat'), c(3, 3)) #定义样本分组信息

    for (i in 1:nrow(A)) A[i, ] <- scale(log(unlist(A[i, ] + 1), 2)) #对数据进行标准化处理

    B <- Heatmap(A,#表达矩阵

    col = colorRampPalette(c("navy","white","firebrick3"))(100),#颜色定义

    show_row_names = F,#不展示行名

    top_annotation = HeatmapAnnotation(Group = samples,

    simple_anno_size = unit(2, 'mm'),

    col = list(Group = c('Control' = '#00DAE0', 'Treat' = '#FF9289')),

    show_annotation_name = FALSE))#分组注释

    做出的效果如下:

    接下来,注释需要展示的基因信息。手动输入或者做一个列表读入,此外为了方便自己创建了一个gene list。

    genes <- c("S100A10",

    "S100A11",

    "S100A9",

    "S100A8",

    "ILF2",

    "RPS27",

    "HAX1",

    "SNRPE",

    "SLFN5",

    "CCL5",

    "SYNRG",

    "MLLT6",

    "RPL23",

    "NCOA4",

    "BUD31",

    "TNIP1",

    "KDM6B",

    "SMG1")

    genes <- as.data.frame(genes)

    将注释信息添加到热图中:

    B + rowAnnotation(link = anno_mark(at = which(rownames(A) %in% genes$genes),

    labels = genes$genes, labels_gp = gpar(fontsize = 10)))

    做出来的效果如下:一张完美的热图出现了!

    除了这个方法,也有人自己编写函数,比复杂。我认为这种能简单就简单,达到自己的目的,取得美化的效果就可以了!

    转自:KS科研分享与服务

    如有侵权,请联系本站删除!


    浏览(475)
    点赞(0)
    收藏(0)
  • 上一篇:【Q&A】课题申报书常见问题梳理及资深专家应对建议

    下一篇:吉林大学:持续更新!国家自然科学基金项目申报通知汇总(非集中受理期)

  • 首页

  • 文章

  • 期刊

  • 帮助

  • 我的

版权所有 Copyright@2023    备案号:豫ICP备2021036211号