[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
>does.
>
>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
schedule.
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.
Craig,