model中的测试和负边长度与R中的phangorn

时间:2013-10-25 09:22:05

标签: r edges phylogeny

我正在分析蛋白质数据集。我正在尝试使用R中的包phangorn构建一棵树。 当我构造它时,我得到负边长,有时难以进行分析(modelTest)。 根据数据集的大小(超过250种蛋白质),我无法执行modelTest。显然由于负边长而存在问题。但是,对于较短的数据集,即使存在一些负边长,我也可以执行modelTest。 的 我直接从我的终端运行它。

library(phangorn)
dat = read.phyDat(file, format="fasta", type="AA")
tax <- read.table("organism_names.txt", sep="\t", row.names=1)
names(dat) <- tax[,1]
distance <- dist.ml(dat, model="WAG")
tree <- bionj(distance)
mt <- modelTest(dat, tree, model=c("WAG", "LG", "cpREV", "mtArt", "MtZoa", "mtREV24"),multicore=TRUE)

    Error: NA/NaN/Inf in foreign function call (arg 1)
    In addition: Warning message:
    In pml(tree, data) : negative edges length changed to 0!

有人知道我该怎么办?

欢呼,阿尔巴

1 个答案:

答案 0 :(得分:1)

正如@Marc所说,你的例子不是真的可以重现......

如果问题确实是负数或零分支长度,您可以尝试将它们设为一个非常小的正数,例如:

tree$edge.length[which(tree$edge.length <= 0)] <- 0.0000001

另一个提示是订阅R-sig-phylo,这是一份关于R中系统发育的邮件列表。人们知识渊博,通常反应非常快。