R: APE / PHYLOBASE: невозможно преобразовать ультраметорический, двоичный дерево на объект HCLUSS (предупреждение)
-
09-10-2019 - |
Вопрос
Я импортировал дерево ClustalW2 в R, используя функцию APE и read.tree
Функция пакета AVE. Я оцениваю молекулярные возрасты с использованием функции Chronoph, что приводит к ультраметрическому двоичному дереву. Из которого я хочу создать r построить в объекте дендрограмма.
Дерево графики хорошо, и является настоящим объектом 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)
Полученное дерево «выглядит» хорошо, я проверяю, чтобы убедиться, что дерево не является ультраметочным и двоичным, и хочет преобразовать его в объект Hcclust, чтобы в конечном итоге сделать объект дендрограммы.
> is.binary.tree(test.tree.nu)
[1] TRUE
> is.ultrametric(test.tree.nu)
[1] TRUE
После попытки сделать объект hcclust из дерева, я получаю ошибку:
> 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.
Решение
Я могу воспроизвести это с версией 2.6-2 APE под A 2.12.1 Beta (2010-12-07 R53808) на Linux, но ваш код работает в версии 2.5-3 APE.
Это будет предложить бы, чтобы ошибка была подкрашена в пакет, и вы должны проинформировать разработчиков о проблеме просить советы экспертов. Адрес электронной почты сопровождающего, Эммануэль Парадис, находится на Cran Package для APE
Другие советы
Похоже, проблема в том, что Chronopl возвращает дерево, которое либо не обязательно, либо имеет многофункциональный корню (в зависимости от того, как он интерпретируется). Также as.hclust.phylo имеет / имел бесполезные сообщения об ошибках.
Этот:
modded.tree <- drop.tip(test.tree.nu,c(
'An16g06590','An02g12505','An11g00390','An14g01130'))
Удаляет все советы от одного из трех кладов, спускающихся от корня, таким образом
is.ultrametric(modded.tree)
is.binary.tree(modded.tree)
is.rooted(modded.tree)
все возвращается истина, и вы можете сделать
treeclust <- as.hclust.phylo(modded.tree)
. Отказ Хотя я думаю, что вы действительно хотите, чтобы объект HCLUSS, представляющий многофуртурный дерево, и хотя объекты HCLUSSS могут обрабатывать тех, as.hclust.phylo (из пакета 'APE') не работает на многофункциональных. Если вы знаете способ импорта файлов Newick в объекты HCCLUSSUSUSS, которые могут быть способом Wistress - Ade имеет write.tree () для генерации файлов newick.