sont liés les uns aux autres par des relations de spécialisation (is_a) mais qu'il en existe d'autres.
2. Étudiez le code du parser OBO8. À noter :
- on se sert de args[0],
- on se sert d'un itérateur sur l'ensemble des termes du fichier. Un itérateur est, comme son nom
l'indique, un objet qui va itérer une collection (i.e. passer en revue chaque élément de celle-ci).
La méthode hasNext() retourne True tant qu'il reste des éléments à parcourir. La méthode
next() retourne l'élément en cours et passe au suivant.
3. Récupérez et compilez le code du parser (vous aurez besoin de le modifier quelque peu).
4. Testez le code du parser.
5. Nous aimerions pouvoir créer un graphe de l'ontologie pour pouvoir effectuer des calculs dessus,
afficher le graphe qui la représente, etc. Au passage, nous allons explorer la documentation de
l'interface Ontology. Le code n'accède qu'aux termes de l'ontologie (getTerms()), pas au reste.
Affichez les autres informations de l'ontologie données par getDescription(), getName()
et getTriples() représentant le type de relation entre deux termes de l'ontologie.
GetTriples() peut sembler étrange : cette méthode (voir doc) permet d'accéder à la structure
du graphe et retourne une liste de triplets qui représentent chacun un sommet de départ (le sujet),
un sommet d'arrivée (l'objet), et l'arc qui les relie (le prédicat).
6. Vous rendez-vous compte du problème ? Heureusement que les développeurs ont corrigé le
problème dans la version 1.8. Récupérez la version 1.8.4 de biojava.jar sur le site et exécutez
à nouveau votre code en vous servant de celle-ci.
7. Modifiez le code pour lister tous les types de relation existant dans Gene Ontology.
8. Maintenant que nous nous servons de la version 1.8.4, étudions le code de OBO2Graphviz9.
GraphViz est un outil de dessin de graphe. Cette classe produit un fichier d'entrée pour le logiciel
Graphviz. On va donc produire une belle image de notre ontologie préférée. À noter :
- on se sert de args[3]. Vous pouvez simplifier le code pour ne passer que 2 arguments : le nom du
fichier et la racine du sous-arbre que vous voulez dessiner. La racine doit être une chaîne de la
forme GO:00XXXXX.
- les méthodes des chaînes split(), replace() et trim() ont le même rôle que leur
équivalent Perl ou Python.
- on note au passage le hack peu élégant faisant intervenir le caractère 'ä' (umlaut a).
9. Compilez et exécutez. Sous Unix, pour que la sortie de votre programme aille directement dans un
fichier : monProgramme > monFichier. Ici, on fera donc :
java -cp biojava.jar:. OBO2GraphViz GO:0000003 > reproduction.dot
10. Regardez le contenu du fichier .dot obtenu. C'est l'un des nombreux formats de graphe existants.
11. Créez une image grâce à Graphviz :
dot -Tpng reproduction.dot > reproduction.png
Graphviz possède énormément de possibilités10,
12. Affichez-la : eog reproduction.png &
13. Modifiez le code pour créer un graphe par type de relation existant et éliminer les éventuel termes
obsolètes.
3RichSequence.IOTools
•Regardez la documentation de la classe Biojava org.biojavax.bio.seq.RichSequence.IOTools. Cette
classe permet de créer des parsers pour différents formats de fichiers utilisés en bio-informatique,
ainsi que des méthodes permettant de créer des documents dans ce format.
•A l'aide de cette documentation, ainsi que des deux exemples du tutoriel11,12, créez deux exemples
permettant de traduire d'un format de fichier en un autre. Pour cette question, vous rendrez les
codes source Java ainsi que les deux formats de fichier d'entrée. Bien entendu, utilisez 4 formats
différents.
8http://www.biojava.org/wiki/BioJava:CookBook:OBO:parse
9http://www.biojava.org/wiki/BioJava:CookBook:OBO:visualize
10 pour plus d'informations : http://graphviz.org/
11 http://biojava.org/wiki/BioJava:Cookbook:SeqIO:ReadGESBiojavax
12 http://biojava.org/wiki/BioJava:Cookbook:SeqIO:GBtoFasta