[Bioperl-l] Re: Fwd: nucleic acid melting temperature

Rob Edwards redwards at utmem.edu
Tue Feb 24 19:27:40 EST 2004

This is a pretty good summary of the situation. I initially wrote  
Bio::SeqFeature::Primer to hold the Primer object.

At the time I was mainly using it with Bio::Tools::Run::Primer3 to  
design some primers for PCR amplification. The Tm calculation routine  
was included because it makes sense for a primer module (*). However,  
there are many people on the list that know a lot more about Tm  
calculations than I do, and I have updated the module when others  
propose better calculations.  I do think that Tm calculations should be  
in a separate module (probably either their own or  
Bio::Tools::SeqStats) as Tm calculations could be appropriate in a  
variety of different experiments, but I am happy to cede that this may  
not be desirable because of the large number of modules!

There actually is already a bioperl wrapper for running Melting ....  
Bio::Tools::Run::PiseApplication::melting (note that you'll need to  
install Bio::Tools::Run separately) that works via the Pise website.

We could duplicate the effort and rewrite Melting in Perl, we could  
write a separate Wrapper for Bio::Tools::Run, or we could direct people  
to the Pise implementation.


(*) The Bio::SeqFeature::Primer and other modules were re-written by me  
based on the work of Chad Matsalla for which I am grateful. I expect  
that Chad had a Tm calculator too (possibly the same one), though I  
can't find an old copy of his modules to check this.

On Feb 24, 2004, at 12:21 PM, Barry Moore wrote:

> Nicolas,
> There is a module (primer.pm) that will allow you to generate a primer  
> object.  This object has a Tm method to return the melting temperature  
> of that primer.  About a week ago that method was updated to use the  
> nearest-neighbor thermodynamic approach to calculating Tm, and there  
> has been a discussion going on since then about that.  Your program  
> exceeds the capabilities of that method in a variety of ways.  The  
> current method calculates the enthalpy and entropy for all  
> dinucleotide pairs, and adjusts those for duplex initiation.  It  
> calculates Tm based on those values, the oligo concentration and salt  
> concentration as per Allawi et. al Biochemistry 1997 36:10581-10594  
> (however the salt adjustment was taken from  
> http://biotools.idtdna.com/analyzer/).  The primer.pm module  
> containing that code can be found at:  
> http://cvs.bioperl.org/cgi-bin/viewcvs/viewcvs.cgi/bioperl-live/Bio/ 
> SeqFeature/Primer.pm?cvsroot=bioperl.  I believe that Rob Edwards is  
> the current maintainer of that module.  What the current method does  
> not do that your program does is account for the possibility of  
> mismatches and dangling ends.  I think the current primer object would  
> need some redesigning to allow for those.  You may also be using a  
> more accurate adjustments for salt concentration.
> Your Melting program looks like it would be a great addition to  
> bioperl.  I'm farily new to bioperl, and don't know the overall object  
> structure well enough yet to comment from a developers point of view,  
> but I wonder if your algorithm would be better placed somewhere with a  
> boarder scope than as a method of the SeqFeature::Primer object,  
> perhaps as a method available to all sequence objects.  I beleive Rob  
> made a similar comment in his original documentation of the Tm method.  
>  Perhaps some of the seasoned Bioperl developers can discuss where a  
> module with the capabilities of Melting should live.  Also as a new  
> user, I would suggest that porting Melting to perl and integrating it  
> into Bioperl is preferable to simply writing a wrapper (from the users  
> point of view, not the developers of course).  To casual and new users  
> of Bioperl, long lists of dependencies can be very daunting.
> Barry Moore

More information about the Bioperl-l mailing list