Page 1 sur 2

Visualisé un arbre phylogénétique

Publié : sam. 10/juin/2006 12:55
par Ulix
Bonjour a tous,

Je recherche du code (si possible en PB) pour visualisé un arbre phylogénétique.

C'est comme un TreeGadget, mais a l'horizontal.

Si quelqu'un a déjà développé une tel représentation graphique, je lui serais reconnaissant s'il pouvait me donné un exemple de code.

Merci d'avance. :lol:

Publié : sam. 10/juin/2006 13:38
par Flype

Publié : sam. 10/juin/2006 14:12
par Ulix
Voici un exemple d'arbre phylogénétique :



http://pbil.univ-lyon1.fr/ird/instree2.gif

ou alors
http://www.snv.jussieu.fr/vie/dossiers ... eVIH1.gif

Je cherche du code qui me permet d'obtenir une representation graphique a l'horizontal.
Les données d'entrées sont représenyté ou la forme :
((((EAS,ECA),(EZH,EBU)),(CSI,DBI)),HSA), chaque parranthése représente un niveau de l'arbre.
Tous code me permettant de représenté un arbre a l'horizontal sera la bien venu, cela me donnera (peut-être) des idées :?:

Publié : sam. 10/juin/2006 14:22
par Flype
oui mùais avant la représentation graphique il faut s'attaquer à la représentation logique de l'arbre en mémoire.

donc ce que tu voudrais c'est quelque chose du genre :

*arbre = Arbre("((((EAS,ECA),(EZH,EBU)),(CSI,DBI)),HSA)")

ArbreDessiner(*arbre)

?

Publié : sam. 10/juin/2006 18:06
par Ulix
Je dois avoué que je n'est pas trop pensé à la représentation logique de l'arbre en mémoire !

J'ai une procedure qui me revoit les chemins pour chaque terminaison dans une liste structurée

NomTaxon$ = EAS
Chemin$ = L000,L001,L002,L003,L004,

NomTaxon$ = ECA
Chemin$ = L000,L001,L002,L003,L005,

NomTaxon$ = EZH
Chemin$ = L000,L001,L002,L006,L007,

etc

Mais je ne sais pas trop comment m'y prendre pour concevoir le graphique.

Si tu a une petite idée, n'hésite pas a me la proposé... :wink:

Merci Flype d'avance.

Publié : sam. 10/juin/2006 23:54
par Frenchy Pilou
C'est laquelle?
parcequ'il y a l'air d'y en avoir plusieurs formes :)
http://images.google.fr/images?q=arbre+ ... art=0&sa=N

Publié : dim. 11/juin/2006 4:53
par Ulix

Publié : dim. 11/juin/2006 9:31
par Flype
et combien au maximum de branches peut-il y avoir dans le dernier niveau ?

parce que l'algorithme doit commencer par là, pour la mise à l'échelle du dessin.

je vais m'y essayé en commencant par le parser qui va interpréter une chaine.

par contre ce que je trouve bizarre dans cette representation c'est que les noeuds n'ont pas de nom...

Publié : dim. 11/juin/2006 9:40
par Flype
bon déjà, j'essaye de représenter sur la forme d'une formule l'arbre suivant :

Code : Tout sélectionner

ARBRE = ( ( ( ( ( ( ( A, C ), G ), ( F, H ) ), B ), E ), D ), O )
Image

en principe, en math, on ferait comme çà.
je vais faire une fonction récursive pour lire la formule.

Publié : dim. 11/juin/2006 12:41
par Ulix
et combien au maximum de branches peut-il y avoir dans le dernier niveau ?
Dans mon cas : ((((EAS,ECA),(EZH,EBU)),(CSI,DBI)),HSA)
il y a 7 branches dans le dernier niveau, avec 4 niveau.

Dans le modele que j'ai donné en exemple (((((((A,C),G), (F,H)),B),E),D),O)
il y a 9 branches dans le dernier niveau avec 7 niveau.

Mais dans l'absolu, pour d'autre arbre le nombre de branche terminale peut être bien plus important ainsi que le nombre de niveau.

Publié : lun. 12/juin/2006 22:55
par Remy Vincent
Ulix a écrit : Dans mon cas : ((((EAS,ECA),(EZH,EBU)),(CSI,DBI)),HSA)
il y a 7 branches dans le dernier niveau, avec 4 niveau.

Dans le modele que j'ai donné en exemple (((((((A,C),G), (F,H)),B),E),D),O)
il y a 9 branches dans le dernier niveau avec 7 niveau.

Mais dans l'absolu, pour d'autre arbre le nombre de branche terminale peut être bien plus important ainsi que le nombre de niveau.
C'est pas des copies d'écran "hard" (si on peut dire) de ce type que vous cherchez ?


Image


Image


Par contre pour traduire en PUREBASIC, c'est pas facile, EN PLUS le programme fait 800 lignes de .... et une fois traduit il risque de ne plus rentrer dans les 900 LIGNES MAXIMUM de ma version d'évaluation de PUREBASIC... Et alors il faudrait que j'achète enfin le produit, qui a augmenté, parait-il... ... etc.,..., etc...

Bref, je discute, je pinaille, mais petit à petit, je tente quand même une traduction...

Publié : mar. 13/juin/2006 0:10
par Flype
çà l'air intéressant et plus 'formel' que ce à quoi j'avais réfléchis.

dans quel langage est programmé ce dont tu parles ?
parce qu'on pourrait aider à traduire si besoin...

Publié : mar. 13/juin/2006 8:43
par Ulix
@Remy Vincent : C'est tous a fait cela, par contre pourrais tu me donné un lien pour téléchargé les sources les (800 lignes peu un porte le langage) ?

@Flype : Je pense que cela pourrai être intéressant et pourquoi utile a d'autre !

Publié : mar. 13/juin/2006 8:44
par Ulix
@Remy Vincent : C'est tous a fait cela, par contre pourrais tu me donné un lien pour téléchargé les sources les (800 lignes peu un porte le langage) ?

@Flype : Je pense que cela pourrai être intéressant et pourquoi utile a d'autre !

Publié : mar. 13/juin/2006 9:48
par Frenchy Pilou
merci qui :) et c'est gratos!
http://evolgen.biol.metro-u.ac.jp/TE/TE_man.html
(il vaut mieux l'intégrer à Mega3 gratos aussi :roll:
http://www.megasoftware.net/mega.html
C'est un rien bestial et puissant!

Image

Image

Image

Evidemment cela enlève le plaisir de programmer son propre soft :roll:

trouvé ici : Alors là je dois dire que je n'avais jamais vu une telle
concentration :lol:
Du phylogénétique en veux-tu en voilà :D
(y sont pas tous gratos) :!:
http://evolution.genetics.washington.ed ... tware.html