考虑以下数据集:
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
的值是?
答案 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