Interface graphique d'Alignement global
Ce projet a été conçu durant mes études en DESS Bioinformatique de Lille.
Le Projet
Le but de ce projet est de développer une interface graphique pour la bibliothéque conçu lors d'un projet précédent. Cette bibliothéque calcule un alignement global entre deux séquences et elle est réalisée dans le langage. L'interface graphique est développé dans le langage Java. L'idée est d'interfacer Java et C, pour avoir un programme rapide grâce aux capacités du langage C. Le sujet est disponible. Le projet est d'avoir un outil comparaison d'alignement, permettant l'affichage de différents alignements. Les alignements peuvent être affichés suivant deux modes : texte ou graphiquement (dotplot).
Découpage du projet
Le projet est composé de deux parties :
- La première partie du projet est de créer une "interface" pour utiliser la bibliothéque C dans un programme Java. L'interface fait grâce la bibliothéque JNI (Java Native Interface, tutorial). Une première version du projet est d'implémenter une méthode simple avec une fonction linéaire, pas un fonction affine. C'est-à-dire que les coûts d'ouverture et d'extension sont les mêmes.
- La seconde partie est de concevoir une interface graphique utilisant l'interface créée précédemment. L'application utilise la bibliothéque Java Swing et est composé d'un JDesktopPane et des JInternalFrames.(Tutorials : 1, 2) Une seconde version du projet est d'implémenter une méthode affine. Les coûts d'ouverture et d'extension ne sont identiques.
- De plus, un design pattern a été employé pour concevoir l'application. Ce design pattern est "Observeur/Observable". Ce pattern permet de séparer le code de l'objet de son affichage et ainsi faciliter l'affichage de l'objet par une autre méthode sans modifer le code de l'objet. Un autre avantage est que l'affichage de l'objet observable peut être automatiquement mis à jour si l'objet est modifié.
Fichiers
Les fichiers du projet sont disponibles ici.
Le projet se compose différents sous répertoires :
- src, répertoire contenant les fichiers sources (C et Java) du projet;
- build, répertoire contenant les fichiers compilés;
- lib, répertoire contenant la bibliothéque partagée, compilée à partie des fichiers sources C;
- test, répertoire contenant des fichiers d'exemple (matrice de substitution, séquences Fasta) pour tester le projet;
et des différents fichiers à la racine du projet:
- README, fichier contenant des informations sur le projet;
- TODO, modifications à appliquer au projet;
- Makefile, fichier pour automatiser la compilation du projet.
Lisez le fichier README pour l'installation.
Démonstration du projet
L'application peut être lancé en décompilant l'archive et en compilant le projet.
Fichier résultat (manquant)
Le projet a été testé sous GNU/Linux (Debian/Mandrake), ainsi que sous Windows XP et cygwin, utilisant Sun Java sdk 1.4.1_3.