R: ape / phylobase: in grado di convertire ultrametrici, albero binario per oggetto hclust (messaggio di avviso)

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

  •  09-10-2019
  •  | 
  •  

Domanda

ho importato un albero ClustalW2 in R utilizzando la funzione di scimmia e la funzione read.tree del pacchetto di scimmia. Stimo età molecolari utilizzando la funzione chronopl, risultando in un ultrametrici, albero binario. Da cui voglio creare una build R in oggetto dendrogramma.

Le trame albero bene, ed è un oggetto phylo reale. Tuttavia sto incorrere in problemi quando si cerca di convertirlo:

Minimal Esempio di funzionamento:

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)

L'albero risultante fine "sguardi", I test per assicurarsi che l'albero non è ultrametrici e binario, e si desidera convertire in un oggetto hclust, per fare finalmente un oggetto dendrogramma di esso.

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

Dopo aver provato a fare un oggetto hclust dall'albero, ottengo un errore:

> 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

mi rendo conto questa è una domanda molto dettagliata, e forse queste domande che sono specificamente legati a determinati pacchetti sono meglio chiesto da qualche altra parte, ma spero che qualcuno è in grado di aiutarmi.

Ogni aiuto è molto apprezzato,

Saluti,

file scaricare

Il file Phylip può essere scaricato qui http://www.box.net/shared/rnbdk973ja

È stato utile?

Soluzione

posso riprodurre questo con la versione 2.6-2 di scimmia in R 2.12.1 beta (2010-12-07 r53808) su Linux, ma il vostro codice funziona nella versione 2.5-3 di scimmia.

Ciò suggerirebbe un bug si è insinuato nel pacchetto e si dovrebbe informare gli sviluppatori del problema di chiedere il parere di esperti. L'indirizzo email del manutentore, Emmanuel Paradis, è sul pacchetto CRAN per ape

Altri suggerimenti

Sembra che il problema è che chronopl restituisce un albero che è o senza radici, o ha una radice multifurcating (a seconda di come è interpretato). Anche as.hclust.phylo ha / avuto messaggi di errore inutili.

Questa:

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

rimuove tutti i commenti da uno dei tre cladi che discendono dalla radice, quindi

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

tutto il ritorno TRUE, e si può fare

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

. Anche se penso che si vuole veramente un oggetto che rappresenta l'albero hclust multifurcating, e anche se gli oggetti hclust in grado di gestire quelli, as.hclust.phylo (dal pacchetto 'ape') non funziona su multifurcations per qualche motivo. Se conoscete un modo per importare i file Newick in oggetti hclust, che potrebbe essere una via d'uscita -. Ade ha write.tree () per generare file Newick

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top