标签:方法 聚集 不可 cti plink 进化 data rar tar
主要区别在于,非加权组平均法(UPGMA)是基于平均链接方法的聚集层次聚类方法,而邻接法(NJ)是基于最小演化准则的迭代聚类法。
UPGMA的假定条件是:在进化过程中,每一世系发生趋异的次数相同,即核苷酸或氨基酸的替换速率是均等且恒定的。
UPGMA生成有根树,而NJ生成无根树。由于UPGMA方法假定演化速率相等,因此分支末端相等,NJ方法允许不相等的演化速率,因此分支长度与变化量成正比。
UPGMA示意图:
NJ示意图:
UPGMA是一种简单,快速但不可靠的方法,而NJ方法是一种相对较快的方法,与UPGMA方法相比,效果更好。 当然也要看具体目的。
二者区别总结:
我用Plink处理得到样本的亲缘关系矩阵(IBD)文件,示例如下:
library(ape) #用于NJ法
df <- read.delim("prefix.ibdM0", sep = "\t",header=TRUE, row.names=1)
df[1:5,1:5]
df <- data.matrix(df)
str(df)
如果直接用亲缘关系矩阵,hclust函数(stats包)识别不了。
#hclust对象需要转化为距离
tr3 <- as.phylo(stats::hclust(df,method="average")) #UPGMA
str(tr3)
plot(tr3, cex=1)
使用dist计算距离:
tr4 <- as.phylo(hclust(dist(df),method="average"))
str(tr4)
plot(tr4, cex=1)
而在NJ法中,有没有dist都可以。但有没有转化距离二者还是有一些差别的,建议还是转化后使用。
tr1 <- bionj(df) #或nj(df)
str(tr1)
plot(tr1, cex=1)
tr2 <- bionj(dist(df))
str(tr2)
plot(tr2, cex=1)
没用dist:
用dist:
树文件在R中是一个列表,包括节点和边等信息:
保存树文件:
write.tree(tr1,"test.nwk")
NJ和UPGMA生成的树都可这样保存,保存后就可导入其他软件美化了。
如果想要更进一步的了解,建议看看这个教程:
Module 24: An Intro to Phylogenetic Tree Construction in R
包含了极大似然法ML等。
Ref: https://pediaa.com/difference-between-upgma-and-neighbor-joining-tree/
系统发育树邻接法(NJ)和非加权组平均法(UPGMA)之比较
标签:方法 聚集 不可 cti plink 进化 data rar tar
原文地址:https://www.cnblogs.com/jessepeng/p/14487696.html