R: Mono / phylobase: incapaz de convertir ultramétrico, árbol binario de objeto hclust (mensaje de advertencia)

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

  •  09-10-2019
  •  | 
  •  

Pregunta

He importado un árbol ClustalW2 en I usando la función mono y función read.tree del paquete de simio. Calculo edades moleculares utilizando la función chronopl, lo que resulta en un árbol ultramétrico, binario. De la que yo quiero para crear una versión R en objeto dendrograma.

El parcelas de árboles bien, y es un objeto phylo real. Sin embargo estoy corriendo en problemas al tratar de convertirlo:

Ejemplo de trabajo mínima:

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)

El árbol resultante bien "miradas", Me prueba para asegurarse de que el árbol no es ultramétrico y binario, y quieren convertirla en un objeto hclust, para hacer finalmente un objeto dendrograma de la misma.

> is.binary.tree(test.tree.nu)
[1] TRUE
> is.ultrametric(test.tree.nu)
[1] TRUE

Después de tratar de hacer un objeto hclust del árbol, me sale un error:

> 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

Me di cuenta que es una pregunta muy detallado, y tal vez este tipo de preguntas que se relacionan específicamente con ciertos paquetes se les pide mejor en otro lugar, pero espero que alguien es capaz de ayudarme.

Todo tipo de ayuda es muy apreciada,

Saludos,

descarga de archivos

El archivo Phylip se puede descargar aquí http://www.box.net/shared/rnbdk973ja

¿Fue útil?

Solución

Me puede reproducir este con la versión 2.6-2 de simio bajo R 2.12.1 beta (2010-12-07 r53808) en Linux, pero el código que funciona en la versión 2.5-3 de simio.

Esto sugeriría un error se ha colado en el paquete y debe informar a los desarrolladores del problema de pedir el asesoramiento de expertos. La dirección de correo del responsable, Emmanuel Paradis, está en el paquete href="http://cran.r-project.org/web/packages/ape/index.html" rel="nofollow"> CRAN

Otros consejos

se parece el problema es que chronopl vuelve un árbol que está bien sin enraizar, o tiene una raíz multifurcating (dependiendo de cómo se interpreta). También ha as.hclust.phylo / tenía mensajes de error poco útiles.

Este:

modded.tree <- drop.tip(test.tree.nu,c(
'An16g06590','An02g12505','An11g00390','An14g01130'))

elimina todos los consejos de uno de los tres clados que descienden de la raíz, por lo tanto

is.ultrametric(modded.tree)
is.binary.tree(modded.tree)
is.rooted(modded.tree)

todo de vuelta verdad, y se puede hacer

treeclust <- as.hclust.phylo(modded.tree)

. Aunque creo que realmente quiere un objeto que representa el árbol hclust multifurcating, y aunque los objetos hclust pueden manejar los, as.hclust.phylo (del paquete 'mono') no funciona en multifurcations por alguna razón. Si conoces una forma de archivos de importación en Newick objetos hclust, que podría ser un camino a seguir -. Ade tiene write.tree () para generar archivos Newick

scroll top