在“猿”中如何计算进化枝的比例和二等分的比例?

时间:2018-11-02 17:03:44

标签: r cluster-analysis hierarchical-clustering phylogeny ape-phylo

考虑以下数据集:

fictional.df <- data.frame(L1 = c(0,0,0,0,0,0,0,0), 
                       L2 = c(0,1,0,0,0,1,1,0),
                       L3 = c(1,1,0,1,1,1,1,1), 
                       L4=c(0,0,1,1,0,0,0,0))

我将其转换为phyDat对象,然后创建了如下的成对距离矩阵:

fictional.phydat <- as.phyDat(fictional.df,
                          type="USER",levels=c("1","0"),
                          names=names(fictional.df))
fictional.hamming <- dist.hamming(fictional.phydat)

然后从这个距离矩阵中估算出UPGMA树:

fictional.upgma <- upgma(fictional.hamming)

然后我创建了引导数据集:

set.seed(187)
fictional.upgma.bs <- bootstrap.phyDat(fictional.phydat, FUN =  
function(xx) upgma(dist.hamming(xx)), bs=100)

然后我计算了引导集中的分区比例:

upgma.bs.part <- prop.part(fictional.upgma.bs)

到目前为止,一切都很好。在这里,我将不胜感激。当我调用函数prop.clades时,我不明白结果:

prop.clades(fictional.upgma,fictional.upgma.bs)
[1] 100  NA  71

当在引导树集中有该线索的证据时,为什么此函数返回NA

第二个问题:

prop.clades(fictional.upgma,part=upgma.bs.part)
[1] 100  49 112

如果只有100个引导样本,为什么最后的进化枝112的值是?

1 个答案:

答案 0 :(得分:0)

您的树fictional.upgma扎根,prop.clades默认返回每个分割发生的频率。在一棵有根的树中,通往根的两条边都引用相同的二等分或分割:

prop.clades(unroot(fictional.upgma), fictional.upgma.bs)
[1] 100  71

对于有根的树,您有时想计算相同进化枝的数量:

prop.clades(fictional.upgma, fictional.upgma.bs, rooted=TRUE)
[1] 100  49  71

这似乎是一个错误,您最好将其报告给伊曼纽尔·帕迪斯(Emmanuel Pardis)

prop.clades(fictional.upgma,part=upgma.bs.part)
[1] 100  49 112