R 热图绘制heatmap①

作者: 柳叶刀与小鼠标 | 来源:发表于2018-01-21 18:42 被阅读55次

    R.package

    • heatmap():用于绘制简单热图的函数
    • heatmap.2():绘制增强热图的函数
    • d3heatmap:用于绘制交互式热图的R包
    • ComplexHeatmap:用于绘制、注释和排列复杂热图的R&bioconductor包(非常适用于基因组数据分析)

    首先使用ggplot2画简单热图

    data <- as.data.frame(matrix(rnorm(9*10),9,10))
    
    rownames(data) <- paste("Gene", 1:9, sep="_")
    colnames(data) <- paste("sample", 1:10, sep="_")
    library(reshape2)
    library(ggplot2)
    data$ID <- rownames(data)
    data_m <- melt(data, id.vars=c("ID"))
    View(data_m)
    
    • data为9行10列的标准正太分布数据。
    • 使用paste对行列名简单命名。
    • melt函数将data转化为gene-id列,sample-variable列,以及表达值-value列。


    p <- ggplot(data_m, aes(x=variable,y=ID)) + 
      xlab("samples") +  theme_classic() + theme(axis.ticks = element_blank(),
                    axis.line = element_blank()) + 
      theme(panel.grid.major = element_blank()) + 
      theme(legend.key=element_blank())  +
      theme(axis.text.x=element_text(angle=45,hjust=1, vjust=1)) + 
      theme(legend.position="top") +  
      geom_tile(aes(fill=value)) + 
      scale_fill_gradient2("Expression",
                           low = "green", 
                           high = "red",
                          mid = "black")
    p
    
    
    • theme_classic() + #去掉灰快
    • theme(axis.ticks = element_blank(),
      axis.line = element_blank()) + #去掉边框
    • xlab('row name') +
      ylab('column name') #更改行名和列名
    • scale_x_discrete(labels = 1:10, breaks = 1:10) +
      scale_y_discrete(labels = 1:10, breaks = 1:10) #修改行和列
    • scale_fill_gradient2('legend name',
      low = 'blue', high = 'red', mid = 'white') #修改图例名字以及图中颜色
    大神Y叔也有画热图的ggplot2讲解,链接:听说你还不会画heatmap
    https://guangchuangyu.github.io/cn/2017/09/dose-simplot/

    相关文章

      网友评论

        本文标题:R 热图绘制heatmap①

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