热图是使用颜色来展示数值矩阵的图形。通常还会结合行、列的聚类分析,以表达实验数据多方面的结果。 
热图在生物学领域应用广泛,尤其在高通量测序的结果展示中很流行,如样品-基因表达,样品-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. NETCore项目报错 An error occurred while starting the application

    在发布到IIS的webApi项目中,运行时报出以上错误, 解决方法: 1.打开发布目录文件夹,找到web.config文件 2.打开web.config找到stdoutLogEnabled=" ...

  2. Android 自己定义控件实现刮刮卡效果 真的就仅仅是刮刮卡么

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40162163 , 本文出自:[张鸿洋的博客] 非常久以前也过一个html5的刮刮 ...

  3. 线程调度策略SCHED_RR(轮转法)和SCHED_FIFO(先进先出)之对照

    我们在用pthread创建线程时,能够指定调度策略policy--SCHED_OTHER(默认).SCHED_RR和SCHED_FIFO.这里TALK一下两个实时策略--SCHED_RR和SCHED_ ...

  4. effective C++ 读书笔记 条款14 以对象管理资源

    如果我们使用一个投资行为的程序库: #include "stdafx.h" #include <iostream> #include <memory> us ...

  5. poj 1741 楼教主男人八题之中的一个:树分治

    http://poj.org/problem? id=1741 Description Give a tree with n vertices,each edge has a length(posit ...

  6. git-svn for mac

    熟练使用 git ,新公司用的是 svn,这就尴尬了,为了这个习惯问题,我还是毅然坚持使用 git,但是又不与公司的 svn 冲突,所以就找到了 git 的 git-svn 插件. 在 mac 上使用 ...

  7. express的路由

    就是 app.get().app.post().app.all()啦,啦啦啦 (其中,var express = require("express"); var app = exp ...

  8. 【bzoj1082】栅栏[SCOI2005]

    显然我们取的肯定是前ans块木板.然后砍的木材也应该是从小到大砍(如果小的木材可以满足条件,就一定不会去动大的木材) 所以两遍排序. 二分答案. 然后对于要取的每块木板,我们搜索它是在第x块木板上砍下 ...

  9. innerxml and outerxml

    xml文件如下 <root> <a></a> <b></b> <c></c> <a></a> ...

  10. Changing the Output Path in your Web Applications is a bad idea

    http://lnbogen.com/2006/09/20/changing-the-output-path-in-your-web-applications-is-a-bad-idea/ Let’s ...