libnano / primer3-py

Simple oligo analysis and primer design
https://libnano.github.io/primer3-py
GNU General Public License v2.0
157 stars 43 forks source link

Different default formamide concentration for `oligotm` and `primer3.calc_tm()` #140

Open Reindertvc opened 6 months ago

Reindertvc commented 6 months ago

I noticed a discrepancy between the default formamide concentration (mol/l) between primer3 oligotm and primer3-py primer3.calc_tm(). While the former is set at 0 the latter is set at 0.8. This results in a difference between Tm's predicted with primer3 and primer3-py when using the default settings or not setting the formamide concentration.

primer3: v2.6.1 primer3-py: v2.0.3

https://github.com/libnano/primer3-py/blob/8a6d6760b9ab58c69fb8f73334329581858e77a7/primer3/argdefaults.py#L59

USAGE: oligotm OPTIONS oligo

where oligo is a DNA sequence of between 2 and 36 bases

and

OPTIONS can include any of the the following:

-mv monovalent_conc - concentration of monovalent cations in mM, by default 50mM

-dv divalent_conc   - concentration of divalent cations in mM, by default 1.5mM

-n  dNTP_conc       - concentration of deoxynycleotide triphosphate in mM, by default 0.6mM

-d  dna_conc        - concentration of DNA strands in nM, by default 50nM

-dm dmso_conc       - concentration of DMSO in %, by default 0

-df dmso_factor     - correction factor for DMSO, by default 0.6

-fo formamide_conc  - concentration of formamide in mol/l, by default 0 mol/l

-tp [0|1]     - Specifies the table of thermodynamic parameters and
                the method of melting temperature calculation:
                 0  Breslauer et al., 1986 and Rychlik et al., 1990
                    (used by primer3 up to and including release 1.1.0).
                 1  Use nearest neighbor parameters from SantaLucia 1998
                    *This is the default and recommended value*

-sc [0..2]    - Specifies salt correction formula for the melting 
                 temperature calculation
                  0  Schildkraut and Lifson 1965, used by primer3 up to 
                     and including release 1.1.0.
                  1  SantaLucia 1998
                     *This is the default and recommended value*
                  2  Owczarzy et al., 2004
grinner commented 2 weeks ago

This is a great identification.

However, we will do a minor point release following PR #143 to ensure that this get's included.

Reindertvc commented 4 days ago

Ok, I noticed that the initial goal was to match default of primer3web so it might be 0.8 for a reason. https://github.com/libnano/primer3-py/blob/8a6d6760b9ab58c69fb8f73334329581858e77a7/primer3/argdefaults.py#L40