pub fn tmbresluc(primer: &[u8], primerc: f32, saltc: f32) -> Result<f32, InvalidPrimer> {
    let saltc = saltc / 1000.0;
    let pri = primerc / 10E7;
    let mut dS = -12.4;
    let mut dH = -3400.0;

    let s = primer.to_ascii_lowercase();

    for i in 0..(s.len() - 1) {
        let n1 = s[i];
        let n2 = s[i + 1];
        dH += dHBr(n1 - 97, n2 - 97)?;
        dS += dSBr(n1 - 97, n2 - 97)?;
    }
    let tm =
        (dH / (1.9872 * (pri / 1600.0).ln() + dS) + (16.6 * saltc.ln()) / (10f32).ln()) - 273.15;
    Ok(tm)
}
/// Returns the tm for a primer using a formula adapted to polymerases
/// with a DNA binding domain, such as the Phusion polymerase.
/// Parameters
/// ----------
/// primer : string
///     primer sequence 5'-3'
/// primerc : float
///    primer concentration in nM), set to 500.0 nm by default.
/// saltc : float, optional
///    Monovalent cation concentration in mM, set to 50.0 mM by default.
Returns the tm for a primer using a formula adapted to polymerases
with a DNA binding domain, such as the Phusion polymerase.
Parameters

primer : string
primer sequence 5'-3'
primerc : float
primer concentration in nM), set to 500.0 nm by default.
saltc : float, optional
Monovalent cation concentration in mM, set to 50.0 mM by default.
Returns the tm for a primer using a formula adapted to polymerases with a DNA binding domain such as the Phusion polymerase . Parameters primer : string primer sequence 5 ' - 3 ' primerc : float primer concentration in nM ) set to 500 . 0 nm by default . saltc : float optional Monovalent cation concentration in mM set to 50 . 0 mM by default .
pub fn tmbresluc(primer: &[u8], primerc: f32, saltc: f32) -> Result<f32, InvalidPrimer> {
    let saltc = saltc / 1000.0;
    let pri = primerc / 10E7;
    let mut dS = -12.4;
    let mut dH = -3400.0;
    let s = primer.to_ascii_lowercase();
    for i in 0..(s.len() - 1) {
        let n1 = s[i];
        let n2 = s[i + 1];
        dH += dHBr(n1 - 97, n2 - 97)?;
        dS += dSBr(n1 - 97, n2 - 97)?;
    }
    let tm =
        (dH / (1.9872 * (pri / 1600.0).ln() + dS) + (16.6 * saltc.ln()) / (10f32).ln()) - 273.15;
    Ok(tm)
}
pub fn tmbresluc ( primer : & [ u8 ] , primerc : f32 , saltc : f32 ) -> Result < f32 , InvalidPrimer > { let saltc = saltc / 1000.0 ; let pri = primerc / 10E7 ; let mut dS = - 12.4 ; let mut dH = - 3400.0 ; let s = primer . to_ascii_lowercase ( ) ; for i in 0 .. ( s . len ( ) - 1 ) { let n1 = s [ i ] ; let n2 = s [ i + 1 ] ; dH += dHBr ( n1 - 97 , n2 - 97 ) ? ; dS += dSBr ( n1 - 97 , n2 - 97 ) ? ; } let tm = ( dH / ( 1.9872 * ( pri / 1600.0 ) . ln ( ) + dS ) + ( 16.6 * saltc . ln ( ) ) / ( 10f32 ) . ln ( ) ) - 273.15 ; Ok ( tm ) }
Returns the tm for a primer using a formula adapted to polymerases
with a DNA binding domain, such as the Phusion polymerase.
Returns the tm for a primer using a formula adapted to polymerases with a DNA binding domain such as the Phusion polymerase .
primer
&[u8]
primerc
f32
saltc
f32
primer
&[u8]
primerc
f32
saltc
f32