我正在分析蛋白质数据集。我正在尝试使用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!
有人知道我该怎么办?
欢呼,阿尔巴答案 0 :(得分:1)
正如@Marc所说,你的例子不是真的可以重现......
如果问题确实是负数或零分支长度,您可以尝试将它们设为一个非常小的正数,例如:
tree$edge.length[which(tree$edge.length <= 0)] <- 0.0000001
另一个提示是订阅R-sig-phylo,这是一份关于R中系统发育的邮件列表。人们知识渊博,通常反应非常快。