我正在尝试为样品中发现的微生物群落创建属水平的热图。
问题
丰度范围从0到1,大多数细菌的丰度非常低(〜10 ^ -6)。结果,这些低丰度并没有清晰可见,并且与0不同。
我尝试的解决方法
因此,我尝试对丰度进行对数转换,以实现更好的可视化。但是,我遇到一个问题,即对数转换后的丰度> = 0.50或50%表示可能的最大丰度(1或100%),因为log(0.50)=-0.3并且log(1)= 0。因此,这些值与最大丰度没有区别。
我的数据框:
Gene Sample Abundance Log10.abundance
A 1 0.0186 -1.7306
B 1 0.0009 -2.0412
C 1 7.79E-06 -5.108
D 1 0.0031 -2.5103
... ... ... ...
P 14 0.5337 -0.272
... ... .... ...
我的代码:
ggplot(data=heatmap,
mapping=aes(x= Sample, y= Gene,fill= Log10.abundance)) +
geom_tile() +
xlab(label = "Sample") +
scale_fill_distiller(name = "Relative Abundance (log10)", palette = "RdYlGn") +
theme(text = element_text(size=12),
axis.text.x = element_text(colour = "black"),
axis.text.y = element_text(size = 11, colour = "black"),
legend.direction = "horizontal",
legend.position = "bottom")
结果:
x轴是基因,y轴是样本。基因P的丰度与最大丰度log(1)没什么不同
我很欣赏有关如何更改图以更好地可视化的任何建议,以及有关如何更改色键的标签的任何建议,因为我希望将其表示为10的指数因子,例如10 ^ -6 ,10 ^ -4等。.我尝试绘制百分比,平方根的丰度和对数转换的丰度,但仍然存在此问题。