[BioSQL-l] Plone4bio 1.0 and BioSQL

James Procter jimp at compbio.dundee.ac.uk
Thu Oct 1 15:08:21 UTC 2009


Peter wrote:
> Thanks for the report James!
:)

> On Thu, Oct 1, 2009 at 2:20 PM, James Procter <jimp at compbio.dundee.ac.uk> wrote:
>> * issue #2: The imagemap shown under the 'Features' tab is generated using
>> bioperl from a genbank file emitted by biopython. This is a flaw, and means
>> lots of info is lost (my biosql db is used to serve protein
>> sequence DAS annotation, so it has URLs, scores, and lots of notes).
> 
> That is a curious and round about way of doing things, with many
> data transformations risking loosing things at each point.
I can understand why it was done - if you already have an image renderer 
that eats genbank, its the shortest path :)

> It would be possible to use Biopython's GenomeDiagram module to
> draw the image directly (although the style and capabilities would
> differ). I've done this for an in house TurboGears based BioSQL
> front end, and it was fine for prokaryotic organisms.
Sounds good... I was sure there was a python way to go here. Happy to 
test any alternative you can provide ;)

> Another more elegant alternative would be to call a BioPerl script which
> talks to the BioSQL database directly to get the data to draw the image.
definitely. It does incur the overhead of creating a new database 
connection and instantiating another object representation of the same 
biosql records, the latter isn't really a problem but the former could 
have scalabilty implications.

> Can you point me at the relevant files in Plone4bio to see their code?
> I agree with your general point that a pluggable rendering option might
> be best, but that would be a question for the Plone4bio team to debate.
The bioperl bits that generate images/maps for genbank files are here:
https://www.plone4bio.org/trac/browser/plone4bio.base/trunk/src/plone4bio/base/png/perl

The python that does the piping is here:
https://www.plone4bio.org/trac/browser/plone4bio.base/trunk/src/plone4bio/base/png/seqrecord.py


Looking at the code again, I can see that there are well defined 
interfaces - so in principle, plugging in other instances should be 
fairly easy.

My issues are here:
Patch for genbank parser: https://www.plone4bio.org/trac/ticket/8
Enhancement for Pluggable Renderers : 
https://www.plone4bio.org/trac/ticket/9

hope it helps!
Jim.



More information about the BioSQL-l mailing list