[Bioperl-l] Primer3 Redux

Chris Fields cjfields at illinois.edu
Tue Mar 17 00:09:00 EDT 2009


All,

I have been working on a Primer3 refactor (for $job) that is pretty  
much ready to go; I'll be adding it to bioperl-dev in a few days along  
with tests.  This'll also include a Primer3 wrapper.  It's a fairly  
major overhaul, so I'm using the namespace Bio::Tools::Primer3Redux in  
the meantime so there are no API collisions (any other suggestions for  
a namespace are welcome).

The main changes, for those interested:

Bio::Tools::Run::Primer3Redux (the wrapper):
* Compatible with both version 1 and the (very recently released) v2.0  
alpha now in Sourceforge (features generated should have the same tags).
* Uses either 'primer3' or 'primer3_core' by default, unless  
program_name is specified.
* No sequence caching; Bio::SeqI are simply passed in (like most other  
wrappers) to run().
* run() now accepts multiple sequences and returns the parser; each  
seq result is iteratively parsed and returned as a separate  
AnalysisResultI.
* primer3 parameters are getter/setters (varies for v1 and v2).
* Any primer3 parameters can accept multiple values (for instance, if  
multiple regions need to be excluded)
* no parameter checking yet
* no arguments hash (just refer to the primer3 docs for now).  I'm not  
planning on implementing this one at least for now.

Bio::Tools::Primer3Redux (the AnalysisParserI parser):
* parses multiple results
* each result is a Bio::Tools::Primer3Redux::Result

Bio::Tools::Primer3Redux::Result (seq-specific result set)
* each result contains 0 or more Primers (for/rev/internal), and  
addition possible PrimerPairs, Bio::Seq, and runtime parameters
* one can iterate through either left/right primers, internal oligos,  
or pairs
* Features are attached to either a default Bio::Seq or a passed-in  
Bio::SeqI (via attach_seq())

Bio::Tools::Primer3Redux::Primer (oligo-specific class)
* Primer instances are simply Bio::SeqFeature::Generic with a few  
additional convenience methods
* Tags are data related directly to the primer
* Features are attached to either a default Bio::Seq or a passed in  
Bio::SeqI (via attach_seq())
* Primer sequences (via seq()) can be validated against the one  
returned via primer3.  Comes in useful when using attaching a Bio::Seq  
to the Result.

Bio::Tools::Primer3Redux::PrimerPair (amplicon/pair-specific class)
* PrimerPair instances are simply Bio::SeqFeature::Generic with a few  
additional convenience methods
* Contain left/right primers and internal oligos as subfeatures
* Tags are data related directly to the product/amplicon
* seq() returns the amplicon sequence.

chris



More information about the Bioperl-l mailing list