[Bioperl-l] Q: contributing a UniVec module to BioPerl

Hilmar Lapp hlapp@lj.gnf.org
Tue, 1 Oct 2002 10:53:30 -0700


Go to the Wiki (linked from http://www.bioperl.org/). There's a link 
to Programming Conventions.

Generally speaking you want to inherit off Bio::Root::Root for a 
module and Bio::Root::RootI for an interface. This gives you a 
constructor already, but you can override it to have your own 
initialization. A good idea is also to use the template generated by 
bioperl.lisp (menu item 'bioperl object template'. (The latter of 
course means you need to use emacs ...)

Maybe we should post those bioperl.lisp templates on Wiki?

	-hilmar

BTW your return email bioperl-l@computational-biology.net looks 
suspicious. Either you need to fix it, or you should choose another 
one. It looks like I'd be sending to another list.

On Tuesday, October 1, 2002, at 02:00 AM, Tobias Thierer wrote:

> Hi,
>
> many of you probably know VecScreen:
>
> http://www.ncbi.nlm.nih.gov/VecScreen/VecScreen.html
>
> VecScreen is a specialised version of blastn that blasts a sequence
> against the UniVec vector database with special adjusted default
> parameters
>
>     -q -5 -G 3 -E 3 -F "m D" -e 700 -Y 1.75e12
>
> It then classifies the hits into four categories: "none", "weak",
> "moderate", "strong" as described on:
>
> http://www.ncbi.nlm.nih.gov/VecScreen/VecScreen_docs.html
>
> The results are presented in a nice graphical manner.
>
> Unfortunately, no offline (standalone) version of VecScreen is 
> available.
> Therefore, using BioPerl, I've developed a small script that 
> performs the
> VecScreen search, classifies the hits and merges the results.
>
> The script is not very large and most people could probably have 
> made it
> better, but there is no other script available (at least not to my
> knowledge). I would like to turn the relevant parts of my script into a
> Module and contribute it to BioPerl. Unfortunately, I am quite new to
> BioPerl (I started using it last week) and have very little 
> knowledge on
> how to contribute a module.
>
> On http://www.bioperl.org/UserInfo/  I have not found any guidelines on
> how BioPerl classes should be built (wouldn't a style guide be very
> helpful?). I have looked at a couple of randomly chosen modules 
> from the
> BioPerl source, and found quite different modules. For instance, some
> modules inherit from Bio::Root::Root via @ISA, some don't.
>
> I should probably let my new module inherit from Bio::Tools::Run only,
> shouldn't I? I was also thinking that it would be nice to use 
> Exporter for
> exporting only the crucial functions through @EXPORT, and some others
> through @EXPORT_OK, but I've found that no other BioPerl modules 
> seem to
> utilize that functionality.
>
> Currently my function gets a sequence and returns the sequence 
> without the
> moderate and strong hits. I thought that the constructor of the module
> could already execute the blast call and then the module might 
> provide a
> couple of functions for querying the result in different formats.
>
> So, to put a long story short, I have two questions/problems:
>
>   1. Are there any guidelines on from where a BioPerl module should
>      inherit, and what names it should export into the importing
>      namespace?
>
>   2. I am a bit unsure about a number of other design decisions for the
>      module, probably because I'm rather new to BioPerl. Should I 
> rather
>      ask the questions here on the list, or should I just go on and let
>      you have a look at a first version of the module, or should I 
> RTFBS
>      (read the f*cking bioperl sources) and learn more myself, first?
>
> Regards,
>
> 	Tobias
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>
--
-------------------------------------------------------------
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
-------------------------------------------------------------