[Bioperl-l] Q: contributing a UniVec module to BioPerl
Tobias Thierer
bioperl-l@computational-biology.net
Tue, 1 Oct 2002 11:00:24 +0200
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