我已经使用 ape 函数和read.tree
ape 包的函数在 R 中导入了 ClustalW2 树。我使用 chronopl 函数估计分子年龄,得到一个超测量的二叉树。我想从中创建一个 R build in dendrogram 对象。
树的情节很好,是一个真正的phylo对象。但是我在尝试转换它时遇到了问题:
最小的工作示例:
require(ape)
test.tree <- read.tree(file = "testree.phylip", text = NULL, tree.names = NULL, skip = 0,
comment.char = "#", keep.multi = FALSE)
test.tree.nu <- chronopl(test.tree, 0, age.min = 1, age.max = NULL,
node = "root", S = 1, tol = 1e-8,
CV = FALSE, eval.max = 500, iter.max = 500)
is.ultrametric(test.tree.nu)
is.binary.tree(test.tree.nu)
treeclust <- as.hclust.phylo(test.tree.nu)
生成的树“看起来”很好,我测试以确保树不是超度量和二元的,并希望将其转换为 hclust 对象,最终使其成为树状图对象。
> is.binary.tree(test.tree.nu)
[1] TRUE
> is.ultrametric(test.tree.nu)
[1] TRUE
尝试从树中创建 hclust 对象后,出现错误:
> tree.phylo <- as.hclust.phylo(test.tree.nu)
Error in if (tmp <= n) -tmp else nm[tmp] :
missing value where TRUE/FALSE needed
In addition: Warning message:
In nm[inode] <- 1:N :
number of items to replace is not a multiple of replacement length
我意识到这是一个非常详细的问题,也许这些与某些软件包特别相关的问题最好在其他地方提出,但我希望有人能够帮助我。
非常感谢所有帮助,
问候,
文件下载
Phylip 文件可以在这里下载 http://www.box.net/shared/rnbdk973ja