PHYLOGENETIQUE : Arbre des pokémons selon leur capacité (5G)
Posté : dim. 23 nov. 2014, 14:22
Bonjour à tous ! 
Je suis un fan de Pokémon, de généalogie, d'informatique, de génétique et de biologie ! .
Mon master de bioinformatique, m'as permit d'apprendre non seulement le language de programmation Python mais aussi le logiciel R de statistique, mes connaissance en biologie et en génétique m'ont permit de reprendre un travail qui avait déjà été réalisé, mais basé sur d'autre critères.
J'ai le plaisir de vous présenter l'arbre phylogénétique des pokémon en fonction de leur capacitées.
Matériel et méthode.
# Récupération des donnés :
A l'aide d'un script python (Python v3.0) , nous avons récupéré toute les données du pokedex pour chaque pokémon. Lorsque qu'un pokémon pouvait apprendre une attaque, la valeur 1 lui et assigné et 0 quand il ne peut pas. Ainsi sur l'ensemble de toutes les capacité, attaques, CS et CT connues, un ADN de + de 300 caractère est créé pour chaque Pokémons connues. Les données ainsi créé sont stockées.
Choix des pokémon : Ont été choisi que les pokémon issus de la dernière évolution. Du fait que ce dernier à appris les capacité de ses évolution précédente, a défaut d'évolution,
#Traitement des données :
Il nous faut ensuite comparé les séquences de chaque pokémon 2 à 2, et le nombre de différences. La méthode ici utilisé et de calculé la Distance de Hamming. La distance de Hamming et souvent utilisé en informatique pour vérifier l'intégrité de fichier lors de copier-coller pour éviter la perte de données, elle permet de calculer, dans une séquence de caractère, le nombre de différence. (exemple entre les mots abba et baba , 1: a,b => 1 / 2: b,a => 1 / 3 : b,b => 0 / 4 : a,a => 0 <=> 1+1+0+0 = 2, la distance de hamming et de 2).
Nous réalisons cela pour chaque Pokémons, dans une matrice triangulaire, ce qui permet d'éviter de comparer un Pokémon avec lui même ou un couple de Pokémon< déjà réalisé (pokemon1 <=> pokemon2 et pokemon2 <=>pokemon1)
Pour 345 Pokémons, nous obtenons une matrice de distance de 59685 données de distances différentes.
# Visualisation des données et fabrication de l'arbre
Les distances sont sortie en un fichier csv, qui est traité avec le logiciel de statistique RStudio (ou R) qui importe les données.
Ont convertie les donnée en un objet de distance sous R
Ont utilise la méthode de la Classification Ascendante Hiérarchique (Hierarchical Clustering). Cette méthode permet de regrouper les Pokémons en fonction de leur distance respective. plus la distance entre deux Pokémon et faible, plus ils sont proche. En regroupant deux Pokémons ont forme un groupe, qui sera a sont tour comparer au reste, les minimum sont regroupé tour à tour.
enfin nous traçon l'arbre
bien sur, pour avoir un arbre phylogénétique optimisé, il a été nécessaire de regarder chaque pokémon et de voir à quels type il appartenait. Par la suite, certaine branches ont été inversé, pivoter sur elle-même pour regrouper au mieux chaque pokemons, cet ordre et ensuite inclu dans un fichier, importer et inclu dans l'arbre
Voila l'image !
Retrouvé mon interprétation de l'arbre dans un prochain message

Je suis un fan de Pokémon, de généalogie, d'informatique, de génétique et de biologie ! .
Mon master de bioinformatique, m'as permit d'apprendre non seulement le language de programmation Python mais aussi le logiciel R de statistique, mes connaissance en biologie et en génétique m'ont permit de reprendre un travail qui avait déjà été réalisé, mais basé sur d'autre critères.
J'ai le plaisir de vous présenter l'arbre phylogénétique des pokémon en fonction de leur capacitées.
Matériel et méthode.
# Récupération des donnés :
A l'aide d'un script python (Python v3.0) , nous avons récupéré toute les données du pokedex pour chaque pokémon. Lorsque qu'un pokémon pouvait apprendre une attaque, la valeur 1 lui et assigné et 0 quand il ne peut pas. Ainsi sur l'ensemble de toutes les capacité, attaques, CS et CT connues, un ADN de + de 300 caractère est créé pour chaque Pokémons connues. Les données ainsi créé sont stockées.
Choix des pokémon : Ont été choisi que les pokémon issus de la dernière évolution. Du fait que ce dernier à appris les capacité de ses évolution précédente, a défaut d'évolution,
#Traitement des données :
Il nous faut ensuite comparé les séquences de chaque pokémon 2 à 2, et le nombre de différences. La méthode ici utilisé et de calculé la Distance de Hamming. La distance de Hamming et souvent utilisé en informatique pour vérifier l'intégrité de fichier lors de copier-coller pour éviter la perte de données, elle permet de calculer, dans une séquence de caractère, le nombre de différence. (exemple entre les mots abba et baba , 1: a,b => 1 / 2: b,a => 1 / 3 : b,b => 0 / 4 : a,a => 0 <=> 1+1+0+0 = 2, la distance de hamming et de 2).
Nous réalisons cela pour chaque Pokémons, dans une matrice triangulaire, ce qui permet d'éviter de comparer un Pokémon avec lui même ou un couple de Pokémon< déjà réalisé (pokemon1 <=> pokemon2 et pokemon2 <=>pokemon1)
Pour 345 Pokémons, nous obtenons une matrice de distance de 59685 données de distances différentes.
# Visualisation des données et fabrication de l'arbre
Les distances sont sortie en un fichier csv, qui est traité avec le logiciel de statistique RStudio (ou R) qui importe les données.
Code : Tout sélectionner
(mat = read.table("output.csv",h=T,row.names=1))
Code : Tout sélectionner
(distance = as.dist(data)
Code : Tout sélectionner
tree = hclust(distances)
Code : Tout sélectionner
plot(tree)
Code : Tout sélectionner
newOrder = read.table("order2.txt")
Order2 = c(newOrder$V1) # transformer en vecteur
tree = hclust(distances)
tree$order = Order2
plot(tree)
Retrouvé mon interprétation de l'arbre dans un prochain message
