查看原文
其他

R包ade4的AMOVA分析

生信小白鱼 鲤小白 小白鱼的生统笔记 2022-05-08
R包ade4的AMOVA分析
AMOVAAnalysis of molecular variance)是一种非参数分析方法,基于对象间距离检验组间差异的显著性。
AMOVA最初是针对DNA单倍型实施的,利用分子标记检测种群分化,通过进化距离(evolutionary distance)度量并计算单倍型(含等位基因)或基因型间的方差(δ2),推断群体遗传变异水平。后经拓展,可适用于任何标记系统(marker system),例如AFLPSNPSSR等标记,广泛用于遗传多样性和群体遗传结构研究中。
本篇简介使用Rade4,执行AMOVA

 

示例数据集


ade4中的内置数据集humDNAm,提供了10种人群中线粒体DNA限制性位点的单倍型频率。(https://rdrr.io/cran/ade4/man/humDNAm.html

humDNAm 是3组数据的列表:

distances,56个单倍型的距离(距离矩阵,欧式距离属性),通过计算每两个单倍型之间限制性位点的差异数获得的;

samples,10种人群中56个单倍型的丰度;

structures,10种人群所处的地区名称。

library(ade4)
 
data(humDNAm)
 
names(humDNAm)
as.matrix(humDNAm$distance)[1:6,1:6]
head(humDNAm$samples)
head(humDNAm$structures)


 

ade4包的AMOVA方法

接下来使用AMOVA,目的为通过单倍型之间的一些分子差异测量以细分人群。如果观测到人群之间存在较大方差,则有证据支持预期的结构。

ade4包中执行AMOVA的函数为amova()。

#初步计算,详情 ?amova
#注:amova() 中输入的距离矩阵必须为欧氏距离属性,否则会报错
amovahum <- amova(samples = humDNAm$samples, distances = sqrt(humDNAm$distances), structures = humDNAm$structures)
amovahum

result中,分别显示每个分层的Df(自由度)、Sum Sq(总方差,即离差平方和)、Mean Sq (均方差,即SS/df)等统计指标。

componentsofcovariance中,显示了在每个分层中检测到的变异。Sigma代表了每个层次结构级别的方差,%代表了方差占比。

statphi中,Phi表征了人群分化的程度,值越高越明显。


如果对其中某些内容感兴趣,可以提取输出。

#例如
amovahum$result
amovahum$componentsofcovariance
amovahum$statphi
 
write.table(amovahum$componentsofcovariance, 'componentsofcovariance.txt', sep = '\t', col.names = NA, quote = FALSE)
 

置换检验


由于初始结果中未进行精确的检验,因此我们无法得知差异水平的显著性。randtest()提供了基于置换的方法用于测试。

#这里随机置换 99 次为例,详情 ?randtest
randtesthum <- randtest(amovahum, nrepet = 99)
randtesthum

plot(randtesthum)

人群分化程度的显著性检验显示,存在显著的人群结构。(如果不显著,p值大于0.05)


同时在三个直方图中,直方图代表随机分布,黑线代表实际观测的数据,由图可知,存在显著的人群结构。(如果不显著,则黑线将与直方图区域存在较大的重叠)


如果对其中某些内容感兴趣,可以提取输出。

#例如
summary(randtesthum)

randtesthum$expvar
randtesthum$adj.pvalue
randtesthum$plot
 

对于非欧式距离的输入


上述提到,amova()中输入的距离矩阵必须为欧氏距离属性,否则会报错。

但不幸的是,许多遗传距离测度并不总是欧氏几何性质的。如果有必要用到其它类型的距离测度,则需要在使用时作个转化,例如常见的平方根转化等。


之后将转化后的距离用作amova()的输入,就可以了。

  


链接

R包vegan的MRPP分析

R包vegan的相似性分析(ANOSIM)

R包vegan的置换多元方差分析(PERMANOVA)

RDA、db-RDA(CAP)及CCA的变差分解

R包vegan的典范对应分析(CCA)

R包vegan的基于距离的冗余分析(db-RDA)

R包vegan的冗余分析(RDA)

R包vegan实现在物种多度的非约束排序中被动拟合环境变量

R包vegan的非度量多维标度(NMDS)分析

R包vegan的主坐标分析(PCoA)

R包vegan的群落对应分析(CA)

R包vegan的群落PCA及tb-PCA分析



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存