R: APE / PHYLOBASE: невозможно преобразовать ультраметорический, двоичный дерево на объект HCLUSS (предупреждение)

StackOverflow https://stackoverflow.com/questions/4430778

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top