La question de Christophe Girod chrisgir69@hotmail.fr a été prise en
compte :
/J'ai un problème dans l'utilisation de la fonction taxo2phylog avec un
fichier de données. J'utilise un fichier représentant la classification
sous cronquist de 200 genres d'arbres de la forêt guyanaise. Je veux
intégrer ce fichier sous forme d'une phylogénie avant de l'utiliser dans
des analyses de DPCOA. L'intégration sous forme de data frame se passe
sans problème, tout comme le passage en objet de classe taxo. Au moment
d'utiliser la fonction taxo2phylog j'obtiens le message d'erreur suivant :
Erreur dans newick2phylog.addtools(res) : la longueur de 'dimnames' [2]
n'est pas égale à l'étendue du tableau
/La question était difficile et a mis en évidence plusieurs détails qui
n'apparaissent que dans le dialogue avec les utilisateurs.
newick2phylog est une fonction générale qui lit des phylogénies au
format newick et prépare diverses composantes pour des fonctions
statistiques évoluées. En général, les feuilles ont des noms et les
noeuds n'en ont pas : ils sont créés par le programme.
taxo2phylog est une fonction utilitaire qui écrit un arbre et l'envoie à
la précédente. Dans ce cas les niveaux des facteurs définissent les noms
des noeuds intérieurs de l'arbre. Le problème apparaît lorsque un nom de
niveau bas est complètement inclus avec un nom d'un niveau plus élevé,
par exemple Simarouba et Simaroubaceae dans l'exemple proposé.
La fonction as.taxo a été modifiée. Elle interdit un facteur avec un
seul niveau qui définit la racine et elle interdit un facteur avec un
seul individu par classe qui définit les feuilles. Mettre les noms des
feuilles dans les row.names du data frame. Seules les facteurs qui ont
un sens statistique (plusieurs classes à un ou plusieurs individus) sont
admis.
La fonction taxo2phylog a été modifiée.
taxo2phylog (taxo, add.tools = FALSE, root = "Root", abbrev = TRUE)
Par défaut les outils statistiques ne sont pas calculés. En effet la
présence d'énormes râteaux ou de chaînes de descendants uniques (une
espèce dans un genre dans une famille ...) dans une taxonomie en
invalide la plupart. Le test se fait avec un modèle linéaire sur des
variables emboîtées. Le calcul de la matrice des distances taxonomiques
se fera par ailleurs avec la fonction dist.tax de Sandrine Pavoine qui
sera optimisée. Il y a une fonction dist.taxo dans ape qui n'a rien à voir.
On peut passer en clair le nom de la racine pour remplacer le facteur à
un seul niveau interdit (dans l'exemple Magnoliophyta).
Par défaut les niveaux de chaque facteur sont abrégés (fonction
abbreviate du package base) et deux caractères l1, l2, l3, ... sont
ajoutés par niveau. Le défaut constaté est ainsi contourné.
Les nouvelles fonctions en attendant la prochaine mise à jour sont
provisoirement dans http://pbil.univ-lyon1.fr/R/donnees/taxomodif.r
Faire source("http://pbil.univ-lyon1.fr/R/donnees/taxomodif.r") pour les
avoir dans le dossier de travail. Tout commentaire bienvenu.
D. Chessel
This archive was generated by hypermail 2b30 : Mon Oct 31 2005 - 14:29:57 MET