打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何绘制精美的PCoA图形?


什么是PCoA?


微生物群落结构受多种因素影响,例如光照、温度、人群性别、年龄等。要了解目的分组是否与某种因素存在联系,我们常常会用到PCA、PCoA等排序方法。


PCoA能够将样本之间的相似性距离(虚拟距离),经过投影后,在低维度空间进行欧几里德距离展示,以最大限度地保留原始样本的距离关系,使相似的样本在图形中的距离更为接近,相异的样本距离更远(图1)。因此相比于PCA,PCoA以样本距离为整体考虑,更符合生态学数据特征,应用也更为广泛。


图1. PCoA原理


如何作图?


虽然一般的16S或者宏基因组等分析流程当中都会包含PCoA分析,但如果自己想要更改分组的形状,或者挑选特定的OTU进行分析,那么自己进行操作会高效很多。

PCoA的作图主要分为三个步骤:


  1. 选择特定的相似性距离并计算距离矩阵。距离的选择可以有Bray-curits、Unifrac等,不同的距离有不同的作用和意义(具体可以参考 微生物β多样性常用计算方法比较)。相似性距离可以利用R的GUniFrac和vegan等包计算,也可以利用QIIME计算。

  2. 进行PCoA分析,也就是利用表征分析选择最能表示样本距离的坐标轴。这个可以利用R的ape包的pcoa()命令完成。

  3. PCoA图形展示。图形可以用ordiplot()命令展示,但如果需要比较美观的图形,建议用ggplot来画。


下面我们以R为基础,展示如何根据Unweighted Unifrac距离来画PCoA图:


----------------------代码开始了-----------------------


###导入需要的R包

library(GUniFrac) #用于计算Unifrac距离

library(ape) # 用于pcoa分析

library(ggplot2) #用于画图


##读文件

Otu_tab <- read.table('otu_table',row.names="">

Tree    <- read.tree('muscle.align.tree.nhx')="">#输入OTU表格

Otu_tab <->

Otu_tab_rff <->

unifracs <- gunifrac(otu_tab_rff,tree,alpha="c(0," 0.5,="">

du <- unifracs$unifracs[,="" ,="" 'd_uw']=""># 计算Unweighted UniFrac距离

Group <- c('a','b','c')="">#按照目的输入样本

shape <- c('a'="16,'B'" =17,'c'="16)">#定义点形状

color <- c('a'='#CCFF33' ,'b'='#CCFF33' ,'c'='#CCFF33' )="">#定义点颜色

PCOA <- pcoa(du,="" correction='none' ,="" rn="NULL)">#利用PCOA()指令做pcoa分析

result <>

pro1 = as.numeric(sprintf('%.3f',result[1]))*100

pro2 = as.numeric(sprintf('%.3f',result[2]))*100

x = PCOA$vectors

sample_names = rownames(x)

pc = as.data.frame(PCOA$vectors)

pc$names = sample_names

legend_title = ''

group = Group

pc$group = group

xlab=paste('PCOA1(',pro1,'%)',sep='') 

ylab=paste('PCOA2(',pro2,'%)',sep='')

pca=ggplot(pc,aes(Axis.1,Axis.2)) + #用ggplot作图

  geom_point(size=3,aes(color=group,shape=group)) + 

#  geom_text(aes(label=names),size=4,vjust=-1) +

  labs(x=xlab,y=ylab,title='PCOA',color=legend_title,shape=legend_title) + 

  geom_hline(yintercept=0,linetype=4,color='grey') + 

  geom_vline(xintercept=0,linetype=4,color='grey') + 

  scale_shape_manual(values=shape) +

  scale_color_manual(values=color) +

  theme_bw()


-------------------------代码结束------------------------


结果图展示:


输入OTU表格之后,运行上面代码,就可以出来图形(当然结果的数据输入是经过一定修改,自己根据需求定义样本数目,点的形状和颜色就可以)。



图2. PCoA结果展示


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
PCA、PCoA和NMDS有什么区别?
扩增子SCI套路--1微生物群落结构差异分析
排序出图三个重复带来的一系列问题的解决方案
ISME最新研究:地栖甲虫肠道中细菌和真菌群落与宿主的饮食习性和栖息地相关
三文读懂PCA和PCoA(一)
思影科技微生物菌群分析业务
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服