[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.
Rob
(*) 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