R: ape / phylobase: nicht in der Lage zu konvertieren ultrametrische, binärer Baum zu hclust Objekt (Warnmeldung)

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

  •  09-10-2019
  •  | 
  •  

Frage

Ich habe einen ClustalW2 Baum in R mit den Affen Funktion und read.tree Funktion des Affen-Pakets importiert. Ich schätze molekulares Alter der chronopl-Funktion, was zu einem ultrametrischen, binären Baum. Von denen will ich ein R build in dendrogram Objekt erstellen.

Der Baum Plots in Ordnung, und ist ein echtes phylo Objekt. Ich laufe Probleme jedoch bei dem Versuch, es zu konvertieren:

Minimal Arbeitsbeispiel:

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)

Der resultierende Baum "Looks" in Ordnung, I-Test sicherstellen, dass der Baum nicht ultrametrische und binär, und will es in ein hclust Objekt konvertieren, um schließlich ein Dendrogramm Objekt daraus zu machen.

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

Nach dem Versuch, ein hclust Objekt zu machen, aus dem Baum, ich erhalte eine Fehlermeldung:

> 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

Ich weiß, das eine sehr detaillierte Frage, und vielleicht solche Fragen, die auf bestimmte Pakete speziell im Zusammenhang sind, werden woanders besser gefragt, aber ich hoffe, dass jemand in der Lage ist, mir zu helfen.

Alle Hilfe ist sehr willkommen,

Grüße,

Datei herunterladen

Die Phylip Datei hier heruntergeladen http://www.box.net/shared/rnbdk973ja

War es hilfreich?

Lösung

Das kann ich mit der Version 2.6-2 reproduzieren von Affen unter R 2.12.1 Beta (2010-12-07 r53808) auf Linux, aber Ihr Code funktioniert in Version 2.5-3 von Affen.

Dies würde darauf hindeuten ein Bug in das Paket eingeschlichen hat und Sie sollten die Entwickler des Problems informieren für kompetente Beratung zu fragen. Die E-Mail-Adresse des Betreuers, Emmanuel Paradis ist auf dem CRAN-Paket für Affen

Andere Tipps

sieht aus wie das Problem ist, dass chronopl einen Baum gibt, die entweder unbewurzelten ist, oder eine multifurcating Wurzel (je nachdem, wie es interpretiert). Auch as.hclust.phylo hat / hatte nicht hilfreich Fehlermeldungen.

Dieses:

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

entfernt alle Tipps von einem der drei Subtypen von der Wurzel abwärts, also

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

alle Rückkehr TRUE, und Sie tun können,

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

. Obwohl ich glaube, Sie multifurcating Baum darstellt, wirklich ein hclust Objekt wollen und obwohl hclust Objekte diejenigen verarbeiten kann, as.hclust.phylo (aus dem Paket ‚Affe‘) funktioniert nicht auf multifurcations aus irgendeinem Grund. Wenn Sie eine Möglichkeit zu importieren Newick Dateien in hclust Objekte wissen, dass könnte ein Weg sein -. Ade hat write.tree (), um Newick Dateien zu erzeugen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top