1

我正在分析蛋白质数据集。我正在尝试使用phangornR 中的包构建一棵树。当我构建它时,我会得到负边长度,这有时会导致难以进行分析(modelTest)。 根据数据集的大小(超过 250 种蛋白质),我无法执行模型测试。显然,由于负边长存在问题。但是,对于较短的数据集,即使存在一些负边长度,我也可以执行 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!

有人知道我能做什么吗?

干杯,阿尔巴

4

1 回答 1

1

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

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

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

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

于 2013-10-26T03:17:37.230 回答