用R包中heatmap画热图
一:导入R包及需要画热图的数据
library(pheatmap)
data<- read.table("F:/R练习/R测试数据/heatmapdata.txt",head = T,row.names=1,sep="\t")
二:画图
1)pheatmap(data)#默认参数

2)pheatmap(data,clustering_distance_rows = "correlation")#聚类线长度优化

3)pheatmap(data,scale="column")#按列均一化,"row","column" or "none"默认是"none"

4)pheatmap(data,scale="row")#按行均一化,"row","column" or "none"默认是"none"

5)pheatmap(data,display_numbers=T,number_format="%.2f",number_color="red",fontsize_number=8)#是否在每一格上显示数据,及其数据格式,大小及其颜色

6)pheatmap(data,cellwidth = 50,cellheight= 14)#格子大小

7) pheatmap(data,main="sbheatmap")#标题

8)pheatmap(data,color = colorRampPalette(c("MediumBlue","white","red"))(256))#颜色

9)pheatmap(data,clustering_distance_rows = "correlation",scale="column",display_numbers=T,number_format="%.1f",number_color="black",
fontsize_number=8,cellwidth = 14,cellheight= 14,color = colorRampPalette(c("MediumBlue","white","red"))(256))

原因是当每行只有两个数值的时候,任何两个不同的数值标准正态均一化后,都会变成-1和1。所以,会产生上述的图形(只有两种颜色)。面对这种类型的数据,建议直接计算每行两个数值的倍数的log2值,然后使用OS-tools画单列的热图。
当然, 单列热图也可以使用R语言的pheatmap包绘制,并通过一个函数控制0点的位置,在另一个R语言绘图的主题帖中也有介绍。
(3)聚类的原理
如同上图的聚类效果,简单说来,在基因完成归一化处理后,如果我们对行聚类(在上图中也就是对基因聚类),那么基因的顺序就会被重排。表达规律比较相似的基因将会被排在一起。表达模式差异越大的基因,则会远离。类似的,如果对列聚类(在上图中也就是对样本聚类),那么样本的顺序将会被重排,表达模式比较相似的样本自动会被归为一类。
例如,在以下的热图中,选择了对行(基因)聚类,不对列(样本)聚类。那是因为作者希望通过聚类,将表达模式相似基因归为一类在图中展示,所以基因聚类选择yes。而样本(列)是作者提前排好序的,是小鼠三个组织在6个发育阶段的样本。因为样本是提前排好序的,当然作者不希望这个顺序被打乱,所以列选择不聚类。
还有两个方向都不聚类的例子。例如在下图中,X轴是1个实验处理后0h、5h、10h的样本,是作者提前排好序的。本意是想呈现相关基因在梯度时间水平的变化规律。当然,作者不想这个顺序被重新排布了,所以列方向的聚类选择:no。在y轴方向,这些基因也是作者提前按照其所属的基因家族排过序的,当然也不想其顺序被打乱,所以行聚类也是选择no。
用R包中heatmap画热图的更多相关文章
- R绘图(2): 离散/分类变量如何画热图/方块图
相信很多人都看到过上面这种方块图,有点像"华夫饼图"的升级版,也有点像"热图"的离散版.我在一些临床多组学的文章里面看到过好几次这种图,用它来展示病人的临床信息 ...
- 机器学习数据集,主数据集不能通过,人脸数据集介绍,从r包中获取数据集,中国河流数据集
机器学习数据集,主数据集不能通过,人脸数据集介绍,从r包中获取数据集,中国河流数据集 选自Microsoft www.tz365.Cn 作者:Lee Scott 机器之心编译 参与:李亚洲.吴攀. ...
- Matplotlib学习---用matplotlib画热图(heatmap)
这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/ppg2008.csv ...
- HeatMap(热图)的原理和实现
先来看两张图: (1)10年世界杯决赛,冠军西班牙队中门将.后卫.中场及前锋的跑位热图 通过热图,我们可以很清楚的看出四个球员在比赛中跑动位置的差异. (2)历史地震震源位置的热图 也可以很清楚的看出 ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- 【代码更新】单细胞分析实录(20): 将多个样本的CNV定位到染色体臂,并画热图
之前写过三篇和CNV相关的帖子,如果你做肿瘤单细胞转录组,大概率看过: 单细胞分析实录(11): inferCNV的基本用法 单细胞分析实录(12): 如何推断肿瘤细胞 单细胞分析实录(13): in ...
- seaborn用heatmap画热度图
原文链接 https://blog.csdn.net/m0_38103546/article/details/79935671
- complexHeatmap包画分类热图
用途:一般我们画热图是以连续变量作为填充因子,complexHeatmap的oncopoint函数可以以类别变量作为填充因子作热图. 用法:oncoPrint(mat, get_type = func ...
- gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot
主要步骤 ggplot2 数据处理成矩阵形式,给行名列名 hclust聚类,改变矩阵行列顺序为聚类后的顺序 melt数据,处理成ggplot2能够直接处理的数据结构,并加上列名 ggplot_tile ...
随机推荐
- WPF 获取文件夹路径,目录路径,复制文件,选择下载文件夹/目录
private void Border_MouseLeftButtonUp_4(object sender, MouseButtonEventArgs e) { //获取项目中文件 , System. ...
- 微信小程序开发踩坑日记
2017.12.29 踩坑记录 引用图片名称不要使用中文,尽量使用中文命名,IDE中图片显示无异样,手机上图片可能出现不显示的情况. 2018.1.5 踩坑记录 微信小程序设置元素满屏,横向直接w ...
- Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar
搭建环境:XMWare Ubuntu14.04 ROS(indigo) 转载自古月居 转载连接:http://www.guyuehome.com/243 一.创建硬件描述包 已创建catkin_ ...
- Linux配置和管理msyql命令
配置和管理msyql: 1. 修改mysql最大连接数:cp support-files/my-mediuf,vim my.cnf,增加或修改max_connections=1024 关于my.cnf ...
- CopyOnWriteList-JDK1.8
CopyOnWrite,一个写时复制的技术来保证并发操作的安全,使用这种技术的前提是读大于写. 读读之间相容, 写写之间互斥, 读写操作相容. 实现方法: 在对底层数据进行写的时候,把底层数据复制一份 ...
- anchor values list
- 【转载】Putty出现 Network error:Software caused connection abort
一.putty發生 network error 开始菜单进入regedit,尋找 HKEY_CURRENT_USER\Software\SimonTatham 并把这个目录下的子目录全部删除,删除前务 ...
- OV7670配置和调试小结
先上一下OV7670的框架图 OV7670常用寄存器设置说明 直接看OV7670 Implementation Guide (V1.0)等 资料我已经上传了 https://files.cnblogs ...
- 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)
1. cv2.matchTemplate(src, template, method) # 用于进行模板匹配 参数说明: src目标图像, template模板,method使用什么指标做模板的匹配 ...
- spark使用scala读取Avro数据(转)
这是一篇翻译,原文来自:How to load some Avro data into Spark. 首先,为什么使用 Avro ? 最基本的格式是 CSV ,其廉价并且不需要顶一个一个 schema ...