[Biojava-l] Visualisation?? (fwd)

Craig Melsopp craig@ebi.ac.uk
Tue, 27 Nov 2001 10:59:19 +0000

Hi Jonathan,

>This is general call for information on biojava/Ensembl.
>I'm developing a visualisation tool for presenting biological
>sequences/features as graphics blocks (not showing the bases) on a backbone
>(according to their start-stop positions), rather like the Ensembl viewer
>As the Ensembl project is going to move to Java I assume there are
>objects/interfaces and methods that I could use??? Could someone point me in
>the right direction or give me examples related to this type of biological
>display?? How far has the Ensembl java got??
>I have already developed a prototype viewer, but I am now trying to 'open it
>up' to represent different types of biological data and would like it to be
>compatible with BioJava stuff and Ensembl.
>Any tips- hints would be greatly appreciated.
The ensembl-java port is still in progress and could be in a state for 
you to use now; it really depends on what you need now, what database 
access layer your code currently depends upon and your development 

You have 3 options for accesing the ensembl database from java:
1 - use ensembl-java's driver mechanism (the so called "object layer").
2 - use bio-java's ensembl support.
3 - write your own object-relational mechanism.

Option 3 is a serious case if reinventing the wheel and unless you have 
some very peculiar requirements I am guessing you will opt for either 1 
or 2. I have no experience of using option 2 but Thomas Down (from the 
bio-java project) has agreed that bio-java will start using the 
ensembl-java driver mechanism for accesing ensembl data once it is 
complete and stable (replacing it's own support). That means that any 
code written against the current bio-java data access system will need 
to be changed in future.

The ensembl-java driver for our mysql database currently offers partial 
support for retrieving sequence, genes, exons, translations and 
transcripts. Take a look at the adaptors in 
org.ensembl.driver.plugin.standard to see which object properties are 
currently included from the database- others properties can often be 
quickly added. What information do the objects such as gene need to 
support your viewer?

We will make some minor changes to the ensembl-java API in about 1-2 
months time. This is to incorporate lessons learnt developing our 
current java pilot application (Id Mapping). The changes will not 
radically affect client code so you would only have a few tweaks to 
maintain your applications compatibility.

You can get more information about ensembl-java from 
http://www.ebi.ac.uk/~craig/ensembl_java. The compiled code is available 
from this site as a jar, or the latest source from the ensj-core module 
in our CVS repository. The available files include configuration 
settings to connect to our public database kaka.sanger.ac.uk which means 
the system should work out of the box without any database config.

We call the module that sits between the application and the database a 
driver, the driver consists of adaptors. The system is is easy to use:
Step 1- optionally configure the database settings if you don't want to 
use kaka.
Step 2 - call an initialisation method.
Step 3 - use data from the database by retrieving through the available 
through adaptors. For example genes are available through the registered 
gene adaptor. Take a look at the test code in the org.ensembl.test 
package for examples.

You might also want to have a look at another project called Omnigene 
which includes a viewer called Omniview. This system will use 
ensembl-java to access ensembl data in future.

I expect the ensembl-java object layer is the best solution for your 
problem but feel free to let me know if you have any further questions.