[Biojava-l] biojava and STRAP

mark.schreiber at group.novartis.com mark.schreiber at group.novartis.com
Thu Mar 10 20:55:18 EST 2005


>
>I would like to ask whether my program STRAP could benefit from
>BioJava and vice versa. Is it worth to develop converters to exchange
>objects like protein objects between both?
>
>http://www.charite.de/bioinf/strap/
>
>
>STRAP is a multi purpose multiple sequences alignment tool.  It
>contains wrapper classes for the alignment procedures
>SequenceAligner, ClustalW,Mafft5, T_Coffee, Muscle, Dialign, DialignT,
>Probcons2, NeoBio, JAligner and for the 3D-superposition program CE/CL
>and for transmembrane helix and secondary structure and coiled coil
>prediction.
>

I think many of these things would be new to biojava. We have a lot of 
parsers but one of the things we lack is wrappers to launch processes. 
There is a class called ProcessTools which can be used to make things like 
this but there are none that I know of in BioJava right now.

Your GUI components for structure and alignment viewing look quite nice 
too!

>Further it has a very fast PDB and DSSP parsers (30ms per PDB-file).

Biojava has an experimental PDB parser and model in the development 
version but I don't think we have DSSP. Not sure of the speed. I think 
that your parsers could implement one of the interfaces

>There is a wrapper for Rasmol and Pymol and a specialized multi-model
>3D-wire viewer.

These would also be useful.

>These classes could be made available in BioJava.  I guess one has to
>create classes that implement certain interfaces of BioJava.

That would be the best way to go. One of the nice things about biojava is 
that almost everything happens behind an interface. This means that as 
long as you provide the methods required by the interfaces you use your 
implementation can be anything. You could probably even leave most of your 
code as is and just write wrappers for your sequence objects etc to make 
them look like biojava sequence objects.

>BioJava looks very objectified. However, for performance reasons I had
>to use byte arrays for sequences in STRAP.  Otherwise I tried
>to follow the basic rules of modern programming.  As BioJava it
>defines many interfaces. E.g. all different alignment procedures are
>implementations of the interface SequenceAligner.

If you want to keep your byte array implementations then you simply need 
to wrap them as a BioJava SymbolList or Sequence object. They remain 
essentially the same but look like BioJava sequence objects. Behind the 
scenes (Interfaces) biojava can do some bit packing of large sequences. 
I'm not sure of the performance of these versus yours. Probably easier to 
stick with what you have and provide wrappers.

>I would like to know what additional functionality STRAP could gain by
>BioJava.

Hope this helps. As always contributions are greatly appreciated.

- Mark





More information about the Biojava-l mailing list