Global Alignment Graphical User Interface
This project has been done during my postgrade degree specialising in Bioinformatics (DESS Bioinformatique) at Lille University.
The Project
The goal of this project is to develop an graphical interface for an library made in a previous project. This library calculates an global alignment between two sequences and it is realised in C language. This project has been developed in Java language. The idea is to interface Java and C, to have fast programs thanks to C ability. A french version of the project subject is available. So, finaly, the project is to have a alignment comparaison tool, allowing to display result of differents alignments. The alignments can be view following two modes: in text mode or graphical mode (dotplot).
Project parts
The project is composed of two parts:
- The first part of the project is to create an interface to use the library (C language) in a Java program. This interface is made with JNI (Java Native Interface, tutorial) The first version of the project is to implement a simple method with a linear gap function, and not a affine gap function. So, opening and extension gap penalties are the same.
- The second part is to design an graphical interface using the former interface. The application is made with the SWING API and is composed of a JDesktopPane and JInternalFrames. (Tutorials : 1, 2) The second version of the project is to implement a method with a affine gap function. So, opening and extension gap penalties are not the same.
- In addition, I use a design pattern to design the application project. This design pattern is "Observer/Observable". This pattern allows to separate the object code from its displaying and so, to change easy the displaying of the object by another one without modifying the object code. Another advantage is that the displaying of the observable object can be automatically update if the object is modified.
Project files
Project files are available here.
This project uses differents sub-directories:
- src, directory with the source files (C and Java) of the project;
- build, directory with the compiled files of the project;
- lib, directory with the shared library, compiled from C source files;
- test, directory with the example files (substitution matrixes, fasta sequences) to test the project;
and differents files, at the project root:
- README, project information file;
- TODO, modifications to add to the project;
- Makefile, the file to automized project compilation.
See the README file for installation information.
Project demonstration
The application can be launched by uncompressing the archive and compile the project (or simply by executing the archive (JAR), but it is very dependent of the platform due to the C language).
The result output(missing)
The project has been testing under GNU/Linux (Debian and Mandrake) and Windows XP with cygwin, using Sun Java sdk 1.4.1_3.