前言: 仍然是三代测序数据的分析,宏基因组的文章中经常出现聚类热图和物种丰度图,用来直观地识别与某些疾病或者表型相关的菌群构成。
1.读取数据
一共有11个样本,每一个样本的测序reads都经过Nanopore官方的Epi2Me程序鉴定了物种,下表中第一列是被鉴定的菌种,第二列是该样本中每个物种产生的reads数目。
首先导入到R语言中,合并所有样本到一个数据框:
2.绘制热图
经过上一步,我们得到了列名为样本,行名为菌种的reads数据框,然后就可以绘制热图,进行聚类分析了:
绘制结果:
3.绘制物种丰度图
丰度图,其实就是堆积图,把每个样本的reads数目转换为百分数,然后作图就可以了:
绘制结果:
最近一直在学习转录组分析,在绘制差异表达基因热图的时候遇到了个坑?我发现的做出来的热图和别人不一样。如下图所示,图1是我的,图2是别人家的。
怎么解决呢?直接取对数吗?
如果对表达量去一下log10,发现10000变成了4,10变成了1,这样之前离散程度很大的数据就被集中了。
聚类分析中均一化是如何计算的?
表达矩阵每行数据的各个数值减去每行数据的均值,再除以每行数据的标准差。
详细的数据规范化(归一化)、及Z-score标准化可参考教程 https://blog.csdn.net/weixin_38706928/article/details/80329563
关于R环境搭建可参考教程, 【R语言入门】R语言环境搭建 -
绘制热图
通过一些数学函数,将原始值进行映射。该方法包括log、指数、正切等。当变量是正偏态分布的时候,选用log对数。是否取对数可根据自己的需求。
ps:生信小白一枚。内容仅供参考,和谐交流 ,欢迎大佬指导,也欢迎大家一起学习。
热图(Heatmap):用颜色变化直观的表达数据之间差异的图,是对实验数据进行质制和差异数据的展现,是数据挖掘类文章的标配。
例如上图,每个小方格表示每个基因,其颜色表示该基因表达量大小,表达量越大颜色越深(红色为上调,蓝色为下调)。每行表示每个基因在不同样本中的表达量情况,每列表示每个样品中所有基因的表达量情况。上方树形图表示对来自不同实验分组的不同样品的聚类分析结果