我正在分析蛋白质数据集。我试图在R中构建一个包phangorn
的树。 当我构建它时,我会得到负边长,有时会使分析难以继续(modelTest)。 根据数据集的大小(超过250种蛋白质),我无法执行modelTest。显然,由于边缘长度不足,存在问题。但是,对于较短的数据集,即使存在一些负边长,我也可以执行modelTest。 我直接从终端运行它。modelTest和负极长度与R中的phangorn
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!
有人知道我该怎么办?
欢呼声中,阿尔巴
欢迎来到SO - 您的示例不可重现,因为您的数据集不可用。看看您是否可以提供一个小数据示例,让其他人能够更好地提供示例。有关在R中创建可重复示例的提示,请参阅以下链接:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
答案在这里,如注释中所述下面是那个phangorn.ModelTest是给出大于220个分类群的数据集的错误。问题不是负分支长度。 – Argalatyr
我遇到了同样的错误信息,问题在于我的树不是超密度的。 – user1981275