【R语言编程】---利用三代测序绘制菌群聚类热图与物种丰度图

Python012

【R语言编程】---利用三代测序绘制菌群聚类热图与物种丰度图,第1张

前言: 仍然是三代测序数据的分析,宏基因组的文章中经常出现聚类热图和物种丰度图,用来直观地识别与某些疾病或者表型相关的菌群构成。

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):用颜色变化直观的表达数据之间差异的图,是对实验数据进行质制和差异数据的展现,是数据挖掘类文章的标配。

例如上图,每个小方格表示每个基因,其颜色表示该基因表达量大小,表达量越大颜色越深(红色为上调,蓝色为下调)。每行表示每个基因在不同样本中的表达量情况,每列表示每个样品中所有基因的表达量情况。上方树形图表示对来自不同实验分组的不同样品的聚类分析结果