珍藏史上最全热图绘制工具及操作流程(一)

author author     2023-04-16     430

关键词:

参考技术A heat map(热图)一词相信大家肯定不会陌生,在很多重量级科学论文中非常常见。使用heat map可以容易展示多组分之间关系或相关性,也能展示基因表达前后差异。heat map其实还蕴含不少分析的秘诀,这么高大上的heat map是怎样实现的呢?

热图的应用性很广,在介绍热图绘制工具之前,我先给大家科普科普,讲讲有关热图的基本概念、历史、用途。

Heat map 的基本概念

Heatmap是热图,也叫热力图,可以用颜色变化来反映二维矩阵或表格中的数据信息,可以直观地将数据值的大小以定义的颜色深浅表示出来。热图使复杂的数据可视化和一目了然。通常根据需要将数据进行物种或样品间丰度相似性聚类,将聚类后数据表示在热图上,可将高丰度和低丰度的物种分块聚集,通过颜色梯度及相似程度来反映多个样品在各分类水平上群落组成的相似性和差异性。结果可有彩虹色和黑红色两种选择。

热图有两类:集群热图(cluster heat map)和空间热图(spatial heat map)。在集群热图里,图片大小固定在单元格里,制定成一个包含行和列的矩阵。单元格大小是可任意调节。而在空间热图里,在一个空间里大小和位置都固定好的。

Heatmap的生成原理可以这样概括,先为离散点设定一个半径,创建一个缓冲区;再对每个离散点的缓冲区,使用渐进的灰度带(完整的灰度带是0-255),从内至外、从浅至深填充;因为灰度值可以叠加,数值越大则颜色越深,在灰度带中显得越白。实际上可选择ARGB模型中任一通道作为叠加灰度值,从而对于有缓冲区交叉的区域,可叠加灰度值,因而缓冲区交叉的越多,灰度值越大,这块区域越“热”。最后,用叠加后的灰度值为索引,从一条有256色的色带中映射颜色,并对颜色重新着色,从而实现热图。

灰度带

彩色带

热图的历史

热图其实并不是一种新的概念,可以追溯到19世纪。

热图起源于数据矩阵中二维数值的显示。较大的数值用较小的深灰色或黑色方块(像素)表示。在1873年Lona就使用了阴影矩阵将巴黎各区的社会上统计数据实现了可视化。在1957年Sneath展示了聚类分析的结果,通过对矩阵的行和列进行置换,根据聚类将相似数值放置在彼此的附近。之后Jacques Bertin使用了类似方法显示出符合格特曼尺度的数据,他将集群树连接到数据矩阵的行和列,这一想法来自于1973年Robert Ling。Robert Ling使用了打印机的字符来表示不同灰度,即一个像素就有一个字符宽度。在1994年Leland Wilkinson开发了第一个计算机程序(SYSTAT),用于制作高分辨率彩色图形的集群热图。在1991年,软件设计师Cormac Kinney注册了“heatmap”商标,发明了一种用2D图形显示实时金融市场信息的工具。如今,热图仍然可以手工形式、Excel电子表格或使用像Hotjar这样的专业软件创建。

热图的4种类型

第一种,生物学热图,通常用在分子生物学范畴,可以显示从DNA微阵列获得的大量可比较样本(不同状态下的细胞、不同患者的样本)中的很多基因的表达水平。

第二种,树形图,是数据的2D分层分区,在视觉上类似于热图。

第三种,马赛克图,是一种平铺热图,用于表示双向或更高方式的数据表,与树形图一样,镶嵌在图中的矩形区域是分层组成。意味着这些区域是矩形。

第四种,密度函数可视化图,用来表示出图中点密度的热图,使人们能够独立在变焦参数感知点的密度。在2015年Perrot等人提出的一种方法,通过使用Spark和Hadoop等大数据基础设备,利用密度函数可看到几十亿个点。

热图在各个领域内的用途

热图通过众多数据点信息,汇聚成直观可视化颜色效果,至今热图被广泛应用在不同领域和范畴,比如气象预报、医疗成像、机房温度等,甚至应用于竞技体育领域的数据分析。

观看一场世界杯足球竞赛时,评委们通常利用热图了解到champion队伍中门将、后卫、中场和前锋的跑位,让我们一目了然地看到多名球员在比赛中跑位的差异。

气象局还可利用热图判断地震震源位置,可清楚看出哪些地方是地震高发区(频率最高)。

还可结合百度地图和热图,就可利用热图看到金融商圈,将商家的坐标采集下来,根据坐标点进行聚类。看下面这张图,红色表示商家较多的地方,我们就可知道哪些是金融商圈。

那么,在 生物学 领域上热图提供什么用处呢?

热图经常用于 展示多个基因在不同样本的表达水平 ,然后通过聚类等方式查看实验组和对照组特有的方式。

如上图所示,每一列代表一个样本,每一行代表一个基因,颜色代表表达量(这张图的图例看出,颜色越偏红色,数值越大,基因表达量越高)。

热图还可用于 展示其他物质的丰度 ,如某细菌的相对丰度、代谢组不同物质的含量。当然热图还有一个重要的用处是展现出不同指标、不同样本等之间的相关性。

以上这图就是相关性热图,颜色深浅代表着相关系数的大小,越接近白色说明相关性越弱,偏蓝(负相关)或偏红(正相关),颜色越浅说明相关性越弱。在相关性计算中除了相关系数外,我们还看到p值是否显著。如果把P值表示出来,可以在方格内加入*号或具体数值。但是由于我们在上图看到不同的两个指标之间的关系是被重复展现2次,所以有时候我们只需展现一半(对角线以上或以下)的一半图形就够了。就像下图所示:

好了,这篇就讲到这里,下一篇将为你揭晓更多有关热图的奥秘。

史上最全java架构师技能图谱(上)

java架构师最全技能图谱上篇,包含:数结构算法、java进阶、web开发、框架与工具四大技能图谱。下篇将包含大数据以及性能、设计模式、UML、中间件、分布式集群、负载均衡、通讯协议、架构设计等技术图谱等章节本文作者,... 查看详情

史上最全的并发编程学习目录

目录一:线程基础知识1.并发编程的基本概念2.线程的基本操作3.线程之间的通信wait和notify4.join和yield以及sleep详解5.synchronized关键字讲解6.volatile原理7.线程组8.线程优先级9.守护线程10.ThreadLocal二:JDK并发包1.jdk并发工具类2.jdk并发... 查看详情

史上最全关于苹果开发者账号及上架appstore总结

很多人如果开发这种移动应用APP,上架到到APPStore难免会遇到一系列的问题,这里孙叫兽进行总结一下,如果本文对你有帮助,记得转发点赞收藏。一:开发者账号的介绍1个人开发者账号  申请费用:99美元/年   ... 查看详情

史上最全java架构师技能图谱(下)

“java架构史上最全技能图谱分为上下两篇,这是java架构史上最全图谱下篇,包含:大数据以及性能、设计模式、UML、中间件、分布式集群、负载均衡、通讯协议、架构设计等技术图谱等章节。如果需要上篇内容:数结构算法、j... 查看详情

史上最全关于苹果开发者账号及上架appstore总结

很多人如果开发这种移动应用APP,上架到到APPStore难免会遇到一系列的问题,这里孙叫兽进行总结一下,如果本文对你有帮助,记得转发点赞收藏。一:开发者账号的介绍1个人开发者账号  申请费用:99美元/年   ... 查看详情

史上最全cocoapods安装及问题解决(代码片段)

前言近期由于入手一台iMac,要重新配置许多东西,众所周知cocoaPods是iOS开发的利器,废话不多说,下面开始安装吧。a.使用RVM对Ruby进行升级先查看现在的Ruby版本号输入命令:ruby-v安装RVMRVM:RubyVersionManager&... 查看详情

操作系统面试题(史上最全持续更新)(代码片段)

尼恩面试宝典专题40:操作系统面试题(史上最全、持续更新)本文版本说明:V28《尼恩面试宝典》升级规划为:后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩获取,... 查看详情

面试必备利器:史上最全http状态码及请求方式

        今天查看node.js的http模块时,看到最全面的介绍http请求方式和响应状态码.        http请求方法: METHODS:    [ ‘ACL‘,& 查看详情

史上最全-appium自动化测试框架

参考技术A“appium是一个开源的移动端自动化测试框架,可以测试原生的、混合的以及移动端的web项目,appium是跨平台的,可以运行在osx、windows以及linux桌面系统上,用来测试ios、android应用”Selenium2004年,Thoughtworks的员工JasonHuggi... 查看详情

史上最全redis面试题及答案

1、什么是Redis?2、Redis相比memcached有哪些优势?3、Redis支持哪几种数据类型?4、Redis主要消耗什么物理资源?5、Redis的全称是什么?6、Redis有哪几种数据淘汰策略?7、Redis官方为什么不提供Windows版本?8、一个字符串类型的值能... 查看详情

史上最全最正确的zabbixserver安装过程

说在前面的话:本例使用的是centos7、zabbix2.2.6版本,其他版本需要再验证不要使用yum安装tomcat和jdk,否则安装zabbix会报错正文:一、Lamp安装及准备工作yum-yinstallhttpdmysqlmysql-serverphpphp-mysqlphp-develyuminstallmariadb-server–yyuminstallphp-bcma... 查看详情

史上最全mysql基本操作(这一篇就够用了!!!)(代码片段)

基础知识请移步:数据库、MySQL基本知识欢迎学习交流!!!持续更新中…文章目录MySQL基本操作一、SQL语法规则二、SQL库操作1、创建数据库2、显示数据库3、使用数据库4、修改数据库5、删除数据库三、SQL表(... 查看详情

史上最全sql基础知识语法(代码片段)

文章目录一、SQL基本介绍二、SQL基础1、SQL基本语法2、SQL库操作1)创建数据库2)显示数据库3)使用数据库4)修改数据库5)删除数据库6)总结3、SQL表(字段)操作1)创建数据表2)显示数据表3)查看数据表4)更改数据表5)更改字段①... 查看详情

史上最全web.xml配置文件元素详解

一、web.xml配置文件常用元素及其意义预览二、各个配置元素详解1.Web应用图标:指出IDE和GUI工具用来表示Web应用的大图标和小图标2.Web应用名称:提供GUI工具可能会用来标记这个特定的Web应用的一个名称3.Web应用描述:给出于此... 查看详情

史上最全面的springbootcache使用与整合

一:Spring缓存抽象Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;Cache接口为缓存的组件规范定义,包含缓存的各种操作集合... 查看详情

史上最全最实用hbuilder快捷键大全

史上最全最实用HBuilder快捷键大全 一、文件操作二、编辑操作三、插入操作四、转义操作五、选择操作六、跳转操作七、查找操作八、运行九、视图一、文件操作新建菜单:ctrl+N新建:ctrl+N关闭:ctrl+w全部关闭:ctrl+shift+w保... 查看详情

史上最全js表单验证封装类

转自:http://www.cnblogs.com/linjiqin/p/3429919.html/*****************************************************************表单校验工具类(linjq)*****************************************************************//***判 查看详情

金九银十,史上最强java面试题整理。

...,会从以下几个方面汇总,本文会长期更新。Java面试篇史上最全Java面试题,带全部答案史上最全69道Spring面试题和答案史上最全Java多线程面试题及答案史上最全50道Redis面试题及答案史上最全 55道MySQL面试题总结i++是线程安... 查看详情