0

考虑以下数据集:

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

4

1 回答 1

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
于 2019-02-13T20:17:00.830 回答