R: ape / phylobase: incapable de convertir ultramétrique, arbre binaire pour objet hclust (message d'avertissement)

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

  •  09-10-2019
  •  | 
  •  

Question

Je l'ai importé un arbre ClustalW2 dans R en utilisant la fonction de singe et la fonction read.tree du paquet de singe. J'évalue les âges moléculaire en utilisant la fonction de chronopl, ce qui entraîne un arbre binaire ultramétrique,. D'où je veux créer une version R dans l'objet dendrogramme.

Les parcelles d'arbres bien, et est un véritable objet phylo. Cependant, je suis en cours d'exécution dans des problèmes en essayant de le convertir:

Exemple de travail minimal:

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'arbre résultant bien des « regards », Je test pour vérifier que l'arbre n'est pas ultramétrique et binaire, et que vous souhaitez le convertir en un objet hclust, pour faire éventuellement un objet dendrogramme de celui-ci.

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

Après avoir essayé de faire un objet hclust de l'arbre, je reçois une erreur:

> 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

Je sais que c'est une question très détaillée, et peut-être des questions qui sont spécifiquement liés à certains paquets sont mieux ailleurs demandé, mais j'espère que quelqu'un est capable de me aider.

Toute aide est très appréciée,

Cordialement,

Télécharger le fichier

Le fichier Phylip peut être téléchargé ici http://www.box.net/shared/rnbdk973ja

Était-ce utile?

La solution

Je peux reproduire ce avec la version 2.6-2 de singe en R 2.12.1 beta (2010-12-07 r53808) sur Linux, mais votre code fonctionne dans la version 2.5-3 du singe.

Cela suggère un bug a glissé dans le paquet et vous devez en informer les développeurs du problème de demander des conseils d'experts. L'adresse e-mail du responsable, Emmanuel Paradis, est sur le package pour singe CRAN

Autres conseils

semble que le problème est que chronopl retourne un arbre qui est soit non racinées, ou a une racine multifurcating (selon la façon dont il est interprété). Aussi a as.hclust.phylo / avait des messages d'erreur inutiles.

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

supprime tous les conseils de l'un des trois clades descendant de la racine, donc

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

tout retour TRUE, et vous pouvez faire

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

. Bien que je pense que vous voulez vraiment un objet hclust représentant l'arbre multifurcating, et bien que les objets hclust peuvent gérer ceux-ci, as.hclust.phylo (du paquet « singe ») ne fonctionne pas sur multifurcations pour une raison quelconque. Si vous connaissez un moyen de fichiers Newick d'importation en objets hclust, qui pourrait être une voie à suivre -. Ade a write.tree () pour générer des fichiers Newick

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top