Je suis débutant et j'espère poser cette question dans la bonne section du forum.
Dans la partie "Phylogenetic analysis" de cet article (http://journals.plos.org/plosone/articl ... ne.0136047) les auteurs disent avoir transformé une matrice (composée de "0" et de "1") en objet de classe phyDat (phangorn library) pour ensuite pouvoir le traiter avec la fonction bab de la même librairie afin de trouver les arbres les plus parcimonieux.
J'ai voulu suivre la même démarche avec une matrice personnelle (composée de "0", de "1" et de "9" -- j'en donne un extrait à la fin de cet envoi pour que vous puissiez voir ce que c'est).
Voici ce que j'ai fait:
Code : Tout sélectionner
library(ape)
library(phangorn)
library(phytools)
J'ai chargé mon fichier au format .csv :
Code : Tout sélectionner
X <- read.csv("MonFichier.csv", header = FALSE)
Je l'ai transformé en objet phyDat pour pouvoir l'utiliser dans phangorn:
Code : Tout sélectionner
data <- as.phyDat(X, type = "USER", levels = c(0, 1, 9))
J'ai ensuite voulu faire l'arbre, en procédant ainsi:
Code : Tout sélectionner
starting <- rtree(n = length(data))
starting$edge.length <- NULL
starting$tip.label <- names(data)
tree <- optim.parsimony(starting, data, rearrangements = "SPR")
J'ai alors reçu le message suivant:
Code : Tout sélectionner
Error in rep(1:nr, attr(x, "weight")) : argument 'times' incorrect
Je ne sais pas ce qu'est l'argument 'times' et en quoi il est incorrect.
Quelqu'un peut-il me dire où se trouve mon erreur ?
Et me réorienter sur une méthode correcte (car je ne suis même pas sûr qu'il faille s'y prendre ainsi pour faire des arbres à partir d'une matrice, pour ensuite chercher les plus parcimonieux?)
Merci d'avance pour votre aide,
JLLQ
Type de matrice utilisée:
AfrC_NC_Tupuri 0 0 0 0 0
AfrC_NS_Mbai 0 1 1 1 0
AfrC_NS_Mbai 0 1 1 1 0
AfrE_AFR_Iraqw 0 0 9 0 0
AfrE_AFR_Iraqw 0 0 1 0 1
AfrE_NC_Usambara 0 0 0 0 0
AfrGL_NC_Isanzu 0 0 1 0 1