Details
-
Type: Bug
-
Status: Open
-
Priority: Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Feature Request
-
Labels:None
-
Mantis ID:11678
Description
highlight a string of bases and calculate the Tm. source from primer3:
double oligoTm(char *dna, double DNA_nM = 50, double K_mM = 50)
{
delta_H = dh * -100.0; /*
* Nearest-neighbor thermodynamic values for dh
* are given in 100 cal/mol of interaction.
*/
delta_S = ds * -0.1; /*
* Nearest-neighbor thermodynamic values for ds
* are in in .1 cal/K per mol of interaction.
*/
touppers(s);
/* Use a finite-state machine (DFA) to calucluate dh and ds for s. */
c = *s; s++;
if (c == 'A') goto A_STATE;
else if (c == 'G') goto G_STATE;
else if (c == 'T') goto T_STATE;
else if (c == 'C') goto C_STATE;
else if (c == 'N') goto N_STATE;
else goto ERROR;
STATE(A);
STATE(T);
STATE(G);
STATE(C);
STATE(N);
/*
* See Rychlik, Spencer, Roads, Nucleic Acids Research, vol 18, no 21,
* page 6410, eqn (ii).
*/
return delta_H / (delta_S + 1.987 * log(DNA_nM/4000000000.0))
- 273.15 + 16.6 * log10(K_mM/1000.0);
}
double oligoTm(char *dna, double DNA_nM = 50, double K_mM = 50)
{
delta_H = dh * -100.0; /*
* Nearest-neighbor thermodynamic values for dh
* are given in 100 cal/mol of interaction.
*/
delta_S = ds * -0.1; /*
* Nearest-neighbor thermodynamic values for ds
* are in in .1 cal/K per mol of interaction.
*/
touppers(s);
/* Use a finite-state machine (DFA) to calucluate dh and ds for s. */
c = *s; s++;
if (c == 'A') goto A_STATE;
else if (c == 'G') goto G_STATE;
else if (c == 'T') goto T_STATE;
else if (c == 'C') goto C_STATE;
else if (c == 'N') goto N_STATE;
else goto ERROR;
STATE(A);
STATE(T);
STATE(G);
STATE(C);
STATE(N);
/*
* See Rychlik, Spencer, Roads, Nucleic Acids Research, vol 18, no 21,
* page 6410, eqn (ii).
*/
return delta_H / (delta_S + 1.987 * log(DNA_nM/4000000000.0))
- 273.15 + 16.6 * log10(K_mM/1000.0);
}
Attachments
Issue Links
- blocks
-
JAL-390 basic DNA, RNA (or general nucleic acid sequence) manipulation tools
- Open