主要步骤

pheatmap

  • 数据处理成矩阵形式,给行名列名
  • 用pheatmap画热图(pheatmap函数内部用hclustfun 进行聚类)

ggplot2

  • 数据处理成矩阵形式,给行名列名
  • hclust聚类,改变矩阵行列顺序为聚类后的顺序
  • melt数据,处理成ggplot2能够直接处理的数据结构,并加上列名
  • ggplot_tile进行画图

gplots

  • 数据处理成矩阵形式,给行名列名
  • 调制颜色并用heatmap.2画热图(heatmap.2函数内部用hclustfun 进行聚类)

R语言代码

library(pheatmap)
library(data.table)
CN_DT <- fread("/home/ywliao/project/Gengyan/ONCOCNV_result/ONCOCNV_all_result.txt",sep="\t")
dt <- CN_DT[cfDNATime=="cfDNA1"]
wdt <- dcast(dt,Gene~Sample,value.var = "CN",fun.aggregate = mean)
data <- as.matrix(wdt[,2:length(wdt),with=F]) #数据矩阵
rownames(data) <- unlist(wdt[,1]) pheatmap(data)
library(ggplot2)
library(data.table)
CN_DT <- fread("/home/ywliao/project/Gengyan/ONCOCNV_result/ONCOCNV_all_result.txt",sep="\t")
dt <- CN_DT[cfDNATime=="cfDNA1"]
wdt <- dcast(dt,Gene~Sample,value.var = "CN",fun.aggregate = mean)
data <- as.matrix(wdt[,2:length(wdt),with=F]) #数据矩阵
rownames(data) <- unlist(wdt[,1]) hc<-hclust(dist(data),method = "average") #对行进行聚类
rowInd<-hc$order #将聚类后行的顺序存为rowInd
hc<-hclust(dist(t(data)),method = "average") #对矩阵进行转置,对原本的列进行聚类
colInd<-hc$order #将聚类后列的顺序存为colInd
data<-data[rowInd,colInd] #将数据按照聚类结果重排行和列
dp=melt(data) #对数据进行融合,适应ggplot的数据结构,以进行热图的绘制
colnames(dp) <- c("Gene","Sample","Value")
p <- ggplot(dp, aes(Sample,Gene)) + geom_tile(aes(fill = as.factor(Value)))+theme(axis.text.x=element_text(angle = 90))+ guides(fill = guide_legend(title = "Copy Number")) + scale_fill_brewer(palette = 3)
p



library(gplots)
library(data.table)
CN_DT <- fread("/home/ywliao/project/Gengyan/ONCOCNV_result/ONCOCNV_all_result.txt",sep="\t")
dt <- CN_DT[cfDNATime=="cfDNA1"]
wdt <- dcast(dt,Gene~Sample,value.var = "CN",fun.aggregate = mean)
dp <- as.matrix(wdt[,2:length(wdt),with=F]) #数据矩阵 labrow <- unlist(wdt[,1,with=F]) #行名
colorsChoice<- colorRampPalette(c("green","black","red")) #调制颜色 heatmap.2(dp,labRow = labrow,col=colorsChoice(5),breaks = c(1,1.5,2,2.5,3,4),density.info="histogram",
hclustfun = function(c)hclust(c,method="average"),keysize = 1.5, cexRow=0.5,trace = "none");

pheatmap, gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot的更多相关文章

  1. gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot

    主要步骤 ggplot2 数据处理成矩阵形式,给行名列名 hclust聚类,改变矩阵行列顺序为聚类后的顺序 melt数据,处理成ggplot2能够直接处理的数据结构,并加上列名 ggplot_tile ...

  2. R语言与医学统计图形-【17】ggplot2几何对象之热图

    ggplot2绘图系统--heatmap.geom_rect 这里不介绍更常见的pheatmap包. 1.heatmap函数 基础包. data=as.matrix(mtcars) #接受矩阵 hea ...

  3. R语言学习 - 热图绘制heatmap

    生成测试数据 绘图首先需要数据.通过生成一堆的向量,转换为矩阵,得到想要的数据. data <- c(1:6, 6:1, 6:1, 1:6, (6:1)/10, (1:6)/10, (1:6)/ ...

  4. 基于HTML5实现3D热图Heatmap应用

    Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报.医疗成像.机房温度监控等行业,甚至应用于竞技体育领域的数据分析. http://www.hightopo.c ...

  5. 用Excel制作热图(heatmap)的方法

    http://jingyan.baidu.com/article/64d05a0240ec75de55f73bd8.html 利用Excel 2010及以上版本的"条件格式"--& ...

  6. Heatmap.js v2.0 – 最强大的 Web 动态热图

    Heatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示.Heatmap.js 这个 JavaScript 库可以实现 ...

  7. 基于HTML5实现的Heatmap热图3D应用

    Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报.医疗成像.机房温度监控等行业,甚至应用于竞技体育领域的数据分析. 已有众多文章分享了生成Heatmap热图原 ...

  8. 用R包中heatmap画热图

    一:导入R包及需要画热图的数据 library(pheatmap) data<- read.table("F:/R练习/R测试数据/heatmapdata.txt",head ...

  9. HeatMap(热图)的原理和实现

    先来看两张图: (1)10年世界杯决赛,冠军西班牙队中门将.后卫.中场及前锋的跑位热图 通过热图,我们可以很清楚的看出四个球员在比赛中跑动位置的差异. (2)历史地震震源位置的热图 也可以很清楚的看出 ...

随机推荐

  1. 解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题

    1.选择iis根节点,点击ARR 2.选择代理设置 3.去掉reverse rewrite host in response headers的勾选,点击应用即可

  2. SSH HTTP代理

    SSH 连接 参照https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy 若要使用goflyway连 ...

  3. mysql MHA架构搭建过程

    [环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 系统 IP 主机名 备注 版本 xx系统 192.168.142. ...

  4. JSR286portlet中使用Ajax的方法

    JSR286portlet支持Ajax 一个平常的portlet先,jsr286类型. /Train01/WebContent/WEB-INF/portlet.xml <?xml version ...

  5. C语言网蓝桥杯1116 IP判断

    判断IP地址的合法性, 1.不能出现除数字和点字符以外的的其他字符 2.数字必须在0-255之间,要注意边界. 题目分析: 因为一个IP是又四个数字组成,且可能存在符号和其他字符,故不能用整型数组处理 ...

  6. Visual Studio Code 的使用方法和技巧

    VSCode是微软推出的一款轻量编辑器,采取了和VS相同的UI界面,搭配合适的插件可以优化前端开发的体验. 布局:左侧是用于展示所要编辑的所有文件和文件夹的文件管理器,依次是`资源管理器`,`搜索`, ...

  7. c++ 智能指针用法详解

    本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用. 为什么要使用智能 ...

  8. 【原创】大数据基础之Zookeeper(3)选举算法

    提到zookeeper选举算法,就不得不提Paxos算法,因为zookeeper选举算法是Paxos算法的一个变种: Paxos要解决的问题是:在一个分布式网络环境中有众多的参与者,但是每个参与者都不 ...

  9. iOS -- Effective Objective-C 阅读笔记 (8)

    若想令自己缩写的对象具有拷贝功能, 则需要实现 NSCopying 协议, 如果自定义的对象分为可变版本与不可变版本, 那么就要同时实现 NSCopying 协议和 NSMutableCopying ...

  10. iOS -- Effective Objective-C 阅读笔记 (6)

    1: 在 既有类中使用 关联对象存放自定义数据 有时候需要在对象中存放相关信息, 这是我们经常会从对象所属的类中继承一个子类, 然后改用这个子类对象, 然而并非所有的情况下都能这么做,  有时候类的实 ...