热图是使用颜色来展示数值矩阵的图形。通常还会结合行、列的聚类分析,以表达实验数据多方面的结果。 
热图在生物学领域应用广泛,尤其在高通量测序的结果展示中很流行,如样品-基因表达,样品-OTU相对丰度矩阵非常适合采用热图呈现。
 
热图优点
 
因为人读数字需要思考和比较,而对颜色识别能力非常强,采用颜色的深浅代替数据表是非常高效的呈现方式,也便于从中挖掘规律。 
热图在非常小的区域展示了大量的基因表达/细菌丰度数据,即可以快速比较组间的变化,同时还可以显示组内每个样品的的丰度,以及组内各样品间的重复情况。
 
热图数据的转换
 
如果使用原始相对丰度或表达值,范围通常为0-100或0-1000000,而大部分的OTU或基因较低,做出的图会使绝大数据的数量颜色处于低丰度区,很难发现规律;因此需要数据变换,常用的方法有两类: 
1. log2(x+1) x为丰度或表达值 
为什么要原始值+1,是为了保证结果仍为正值,因为2的0次方为1; 
为什么要使用log变换,以log2为例,0-1000的表达范围,经变化为0-10的范围,颜色梯度范围更容易使人与数值建立对应关系。 
为什么常用log2对数变化,因为筛选差异的标准通常为两倍,log2对数变化后,每相差1的两个值都有两倍差异,选择目标很方便;有时也会根据具体情况,选择ln, log10等转换方式; 
标准分数(standard score)也叫z分数(z-score),是一个分数与平均数的差再除以标准差的过程。用公式表示为:z=(x-μ)/σ。其中x为某一具体分数,μ为平均数,σ为标准差。此种方法可以使有差异且稳定变化的两组明显区分为不同的颜色,但却丢失了原始相对丰度、差异倍数的信息。但由于结果比较美观,规律明显,使用较多。
 
常用热图绘制工具
 
最常用的是R语言的包,如heatmap和pheatmap等。
此外Excel, matlab也可以。
不想学语言的可以使用一些专门绘制工具,如HEMI,个人用过,绘图和聚类都很方便,但偶尔会崩溃,不知现在作者更新没有
 
用R绘制热图的教程
 
网上教程很多,因为这个太常用。我推荐”生信宝典”最新发布的教程三步曲,从入门到精通。
 
看图实战(Result)
 
示例1. OTU相对丰度 - 样品
2017新出炉的Nature文章,Jeffery Dangl组作品。这篇文章分析拟南芥细菌组在低磷条件下参与磷吸收,有规律发现,有实验验证,绝对前沿的微生物组研究,正文每一个组图都相当于10分文章的工作量,专业而细致,推荐阅读
图2有7个子图,信息量非常大,我只说其中的e图
图2.e 重组菌体系在不同样品中各菌的相对丰度。
1. 图中元素解释
- X轴标签isolate上面的名称为实验用菌的编号;本实验为人工重组微生物组体系,标签为作者定义的菌编号。自然微生物组鉴定体系一般会聚类为OTU-1/2/3…样式编号;
- 右侧Y轴标签为实验组的名称,共分两列:第一列为材料基因型名称,如Col-0, phf1等;第二列为条件,本实验中为磷浓度;两者组合为一个实验组,每个实验组每组均为6次生物学重复,其中接种起始混合液Inoculum有4次重复;
- 左侧颜色图例Abundance(%),来表示图中颜色的深浅所对应的数值范围,即白色为0,由浅到深连续变化范围,其中刻度对应的颜色丰度为0.01%, 0.14%和2.71%,至最深红棕色;
- 主图区中深浅的色块,代表每组样品每个菌相对丰度的值。
2. 图表结果:展示人工重组菌(起始接种Inoculum浓度相近)在不同实验组中发展成细菌群落后的相对丰度,发现突变体中一些菌的相对丰度发生变化;
3. 经验和技巧:一般OTU或菌的丰度间重复不是很好,尤其是自然样品丰度差异大,需要经过对数变换或做Z-score标准化;而本实验是重组体系,起始菌浓度相当,比较适合原始值直接绘制热图;此外,在扩增子研究中,实验个体间波动很大,一般热图呈现规律不明显,如上图,所以低水平文章很少用,一般只有顶级杂志敢用,尊重事实,尊重个体差异,相信统计上的差异。下面一篇文章也是如此
 
示例2. 热图+样品聚类展示菌相对丰度(log2%)
 
这篇文章也是Dangl组的,是最早植物人工重组菌群的文章,研究了植物水杨酸对微生物组的影响,开山之作值得阅读
图2C. 热图展示丰度显著差异的菌在所有样品中的相对丰度(相对丰度百分数%经log2对数变换)
1. 图中元素解读
- 左侧聚类图为所有样品聚类的结果,左上角的图例代表三大类样品,紫、灰和绿它们分别代表接种菌、土壤和根样品,颜色标签在热图中第一列,用以区分样品组; 
- 右侧为图的主图区,展示左侧样品中对应筛选的14个差异丰度菌的相对丰度值,丰度值百分比采用log2转换来缩小数据范围,并按从小到大对应的颜色梯度为蓝、白、红,即越红越高,越蓝越低。对应的图例为下方左上角的Color Key;
- 右侧正文区上方红上或蓝下箭头,代表这些菌的表达样式,为上调或下调,对应的图例为下方图例区的左下方(EC-enriched/depleted);
- 右侧正文区下方菌的标签上还有颜色,对应最下面图例区的菌门信息;同时菌还继续分为两类,稳定定殖者(Robust Colonizers)和偶然或非定殖者(Sporadic or Non-Colonizers)。
2. 图表结果:图中展示了人工重组的菌在接种后,也可以形成丰度各异的微生物群体,并与自然条件下很多样式保持一致。
4. 图表结论或规律:受水杨酸调控差异表达的菌,可以在人工重组实验中得到验证。
5. 图片优点:配色采用红白蓝,比较严肃;图中添加了聚类信息、分组信息和菌分类为信息,极大的增加了图片的信息和可读性。有些热图信息量大,标签太小或根本无标签导致理解困难,此图的做法值得学习。

扩增子图表解读3热图:差异菌、OTU及功能的更多相关文章

  1. 扩增子图表解读5火山图:差异OTU的数量及变化规律

    火山图 Volcano plot 在统计学上,火山图是一种类型的散点图,被用于在大数据中快速鉴定变化.由于它的形成像火山喷发的样子,所以被称为火山图.和上文讲的曼哈顿图类似.   火山图基本元素 火山 ...

  2. 扩增子图表解读4曼哈顿图:差异分类级别Taxonomy

    曼哈顿图 Manhattan Plot 曼哈顿图本质上是一个散点图,用于显示大量非零大范围波动数值,最早应用于全基因组关联分析(GWAS)研究展示高度相关位点.它得名源于样式与曼哈顿天际线相似(如下图 ...

  3. 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元

    韦恩图 Venn Diagram Venn Diagram,也称韦恩图.维恩图.文氏图,用于显示元素集合重叠区域的图示.   韦图绘制工具 常用R语言的VennDiagram包绘制,输出PDF格式方便 ...

  4. 扩增子图表解读8网络图:节点OTU或类Venn比较

    网络图 Network 网络图虽然给人高大上的感觉,但是由于信息太多,无法给读者提供读有效的可读信息或是读者不知道该理解什么,总是让人望尔却步.那是因为大家太不了解网络,自己读不懂网络想表达的意思及其 ...

  5. 扩增子图表解读1箱线图:Alpha多样性

    箱线图 箱形图(Box-plot)又称为盒须图.盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图.因形状如箱子而得名.在宏基因组领域,常用于展示样品组中各样品Alpha多样性的分布 第一种情 ...

  6. 宏基因组扩增子图表解读2散点图:组间整体差异分析(Beta多样性)

    散点图 数据点在直角坐标系平面上的分布图.在宏基因组领域,散点图常用于展示样品组间的Beta多样性,常用的分析方法有主成分分析(PCA),主坐标轴分析(PCoA/MDS)和限制条件的主坐标轴分析(CP ...

  7. 扩增子分析解读6进化树 Alpha Beta多样性

    分析前准备 # 进入工作目录 cd example_PE250 上一节回顾:我们的OTU获得了物种注释,并学习OTU表的各种操作————添加信息,格式转换,筛选信息.   接下来我们学习对OTU序列的 ...

  8. Python图表数据可视化Seaborn:3. 线性关系数据| 时间线图表| 热图

    1. 线性关系数据可视化 lmplot( ) import numpy as np import pandas as pd import matplotlib.pyplot as plt import ...

  9. seaborn线性关系数据可视化:时间线图|热图|结构化图表可视化

    一.线性关系数据可视化lmplot( ) 表示对所统计的数据做散点图,并拟合一个一元线性回归关系. lmplot(x, y, data, hue=None, col=None, row=None, p ...

随机推荐

  1. mysqlhighavailability

    http://mysqlhighavailability.com/getting-started-with-mysql-group-replication/

  2. linux 卸载php mysql apache

    卸载Mysql 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的包: mysql-3.23.58-9php-mysql-4.3.4-11mod_a ...

  3. 从理论到实践,全方位认识DNS(实践篇)

    在理论篇中,我们基本了解了DNS的整个协议原理,但是可能还会有着下面的疑问: 为什么我想申请的域名都没了? DNS 域名还要备案,这是为什么啊? 如何将刚申请的域名绑定到自己的网站呢? 怎么才能看到那 ...

  4. ubuntu Change Language

    慎用 所謂的語系(locale),其實包含語言及地區的設定,因為除了語言之外,國家與國家的日期表示方式.數字格式.貨幣符號.度量單位可能都不一樣,所以才會有了這個locale的發明,依照國家和語言給予 ...

  5. 转 java synchronized详解

    转自 http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能 ...

  6. js 四种调用方式 Method Invocation Pattern

    4.3. Invocation Invoking a function suspends the execution of the current function, passing control ...

  7. bzoj2073

    状压dp 预处理每个状态的初始值,枚举子集就行了 #include<bits/stdc++.h> using namespace std; , inf = ; int W, n; < ...

  8. ORACLE数据删除数据删除的解决办法

    今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志)删除表中数据有三种方法:·delete(删除一条记录)·drop或truncate删除表格中数据 1. ...

  9. 浅谈IO优化

    三层结构 磁盘(存储).VM(卷管理)和文件系统.专有名词不好理解,打个比方说:磁盘就相当于一块待用的空地:LVM相当于空地上的围墙(把空地划分成多个部分):文件系统则相当于每块空地上建的楼房(决定了 ...

  10. PCB 规则引擎之JSON对象查看器

    在PCB规则引擎开发中,JavaScript V8引擎是处理业务逻辑的, 当然业务逻辑需要数据支撑才行,  即需有将数据推进入到V8引擎.目前这边数据传输到JavaScript V8引擎以C# Mod ...