[Biojava-dev] Vecmath in biojava

Jose Duarte jose.duarte at psi.ch
Thu Nov 28 17:13:04 UTC 2013


Hi biojava-ers

I am a long-time follower of the biojava project but never wrote to the 
list or contributed to the project, so here is my official presentation.

I work mainly in protein structure analysis and develop in java. 
Together with some colleagues we took the decision quite some time ago 
to go our way and developed our own library for structural 
bioinformatics ( http://www.bioinformatics.org/owl/). Which in general 
was a good idea and allowed for a lot of flexibility. Of course we knew 
that at some point joining a bigger project like biojava would always be 
a better option in the long term.

After talking to Andreas at the PDBx workshop I think that this is the 
right moment to try joining in. For us that would mean a lot of code 
rewriting but surely it will be beneficial for us and hopefully also for 
the biojava project as we could contribute quite a lot of code back.

The main project I am working on at the moment is protein interface 
classification in crystal structures (see our website 
http://www.eppic-web.org <http://www.eppic-web.org/>). It involves 
mainly structural calculations so it should be possible to do with the 
structural modules of biojava. For instance some things we do are 
reconstruction of the crystal lattice from the asymmetric unit or 
accessible surface areas (ASA) calculations.

So for now I will try to do my first contribution into biojava by 
contributing the ASA code (an implementation of Shrake and Rupley's 
algorithm). So there I have my first question already:

I see that the javax.vecmath library is not used in biojava. I find that 
strange since it is natural thing to use in dealing with 3D objects. For 
instance in our OWL framework we have used it extensively and it was 
very useful indeed. Our atom coordinates were represented as Point3d 
objects, which for instance allows for usage of built-in methods for 
transformations (represented as Matrix4d objects) and in general any 
kind of vector maths, necessary in almost any structural analysis.

For instance in the context of ASA calculations I need to sample 3D 
points on the atoms' spherical surfaces (so these points are not atoms). 
There I used Point3d again and it seemed very natural. Of course one can 
instead use arrays or create a vecmath library ourselves but that seems 
overkill when a vecmath library exists already and is "almost" part of 
the core java libraries.

So what is the opinion about using the vecmath library? could atom 
coordinates be represented as Point3ds? would it be a major issue to 
change that implementation? are there alternatives to that within the 
existing framework? I have only read some parts of the code and I'm not 
yet very familiar with it, so apologies in advance if I ask too obvious 
questions!

Cheers

Jose


---
Jose Duarte
Laboratory of Biomolecular Research
5232 Villigen PSI
Switzerland




More information about the biojava-dev mailing list