在生态学、微生物学和基因组学等领域,非欧几里德距离被广泛用于描述样本之间的两两差异,通常使用主坐标分析(PCoA)来构建数据的可视化。
然而协变量之间的相互作用可能会使感兴趣的科学问题相关的模式难以观察。本研究提供了一个新工具aPCoA,可以将协变量之间的影响排除,改进PCoA的结果。
#用法
aPCoA(formula,data,maincov,drawEllipse=TRUE,drawCenter=TRUE)
#formula:Y~ A,Y为不像似性距离。
#data: 需要包含所有的协变量
#maincov: 研究的目标协变量,必须是因子
#drawEllipse: 95%置信椭圆
#drawCenter:中心点和其他点连线
#实例
library(mvabund)
library(vegan)
#install.packages("aPCoA")
library(aPCoA)
data("Tasmania")
data<-data.frame(treatment=Tasmania$treatment,block=Tasmania$block)
data
treatment block
B1D1 Disturbed 1
B1D2 Disturbed 1
B1U1 Undisturbed 1
B1U2 Undisturbed 1
B2D1 Disturbed 2
B2D2 Disturbed 2
B2U1 Undisturbed 2
B2U2 Undisturbed 2
B3D1 Disturbed 3
B3D2 Disturbed 3
B3U1 Undisturbed 3
B3U2 Undisturbed 3
B4D1 Disturbed 4
B4D2 Disturbed 4
B4U1 Undisturbed 4
B4U2 Undisturbed 4
bray<-vegdist(Tasmania$abund, method="bray")
rownames(data)<-rownames(as.matrix(bray))
opar<-par(mfrow=c(1,2),
mar=c(3.1, 3.1, 3.1, 5.1),
mgp=c(2, 0.5, 0),
oma=c(0, 0, 0, 4))
#treatment为研究的目标协变量,排除其他协变量的影响
result<-aPCoA(bray~block,data,treatment)
par(opar)
image
左图为原始PCoA,右图为aPCoA调整过的PCoA。
aPCoA的方法增加了两轴的解释度,且treatment不同组之间分的更开了。
本文转自:aPCoA: 改进的PCoA方法
网友评论