\
\
Parametrs for calculation of primer Tm: | \Parametrs for detection of primer dimers: | \
Primer concentration:µM | \Value of the sensivity for dimmer detection (1-10): (value 1 is maximum sensitive detection, 3 is optimal) | \
Salt concentration:mM | \
\
\
\ Results in tabular data format. To export the results: select all (Ctrl-A), copy (Ctrl-C) and paste (Ctrl-V) to Excel sheet.
\ \
\
\ Results for primer dimer detection. To export the results: select all (Ctrl-A), copy (Ctrl-C) and paste (Ctrl-V).
\ \
\ '; var vOD,nOD,dHBr,dSBr; this.loadData = function(){ vOD = {}; nOD = {}; dHBr = {}; dSBr = {}; vOD[0] = {}; vOD[0][0] = 27400.0; vOD[0][1] = 23000.0; vOD[0][2] = 21200.0; vOD[0][3] = 25066.7; vOD[0][6] = 25000.0; vOD[0][7] = 23800.0; vOD[0][10] = 23900.0; vOD[0][12] = 24300.0; vOD[0][13] = 24100.0; vOD[0][17] = 26200.0; vOD[0][18] = 23100.0; vOD[0][19] = 22800.0; vOD[0][21] = 24533.3; vOD[0][22] = 25100.0; vOD[0][23] = 24100.0; vOD[0][24] = 22000.0; vOD[1] = {}; vOD[1][0] = 23266.7; vOD[1][1] = 17666.7; vOD[1][2] = 16133.3; vOD[1][3] = 20044.4; vOD[1][6] = 19533.3; vOD[1][7] = 18911.1; vOD[1][10] = 18433.3; vOD[1][12] = 19700.0; vOD[1][13] = 19066.7; vOD[1][17] = 21400.0; vOD[1][18] = 17833.3; vOD[1][19] = 17333.3; vOD[1][21] = 19644.4; vOD[1][22] = 20300.0; vOD[1][23] = 19066.7; vOD[1][24] = 16733.3; vOD[2] = {}; vOD[2][0] = 21200.0; vOD[2][1] = 15933.3; vOD[2][2] = 14600.0; vOD[2][3] = 18133.3; vOD[2][6] = 18000.0; vOD[2][7] = 17000.0; vOD[2][10] = 16600.0; vOD[2][12] = 17900.0; vOD[2][13] = 17250.0; vOD[2][17] = 19600.0; vOD[2][18] = 16300.0; vOD[2][19] = 15200.0; vOD[2][21] = 17933.3; vOD[2][22] = 18200.0; vOD[2][23] = 17250.0; vOD[2][24] = 14900.0; vOD[3] = {}; vOD[3][0] = 25333.3; vOD[3][1] = 20022.2; vOD[3][2] = 18333.3; vOD[3][3] = 22355.6; vOD[3][6] = 21866.7; vOD[3][7] = 21177.8; vOD[3][10] = 20866.7; vOD[3][12] = 21833.3; vOD[3][13] = 21350.0; vOD[3][17] = 23600.0; vOD[3][18] = 20100.0; vOD[3][19] = 19866.7; vOD[3][21] = 21844.4; vOD[3][22] = 22600.0; vOD[3][23] = 21350.0; vOD[3][24] = 19100.0; vOD[6] = {}; vOD[6][0] = 25200.0; vOD[6][1] = 19733.3; vOD[6][2] = 17600.0; vOD[6][3] = 22266.7; vOD[6][6] = 21600.0; vOD[6][7] = 20933.3; vOD[6][10] = 20800.0; vOD[6][12] = 21400.0; vOD[6][13] = 21100.0; vOD[6][17] = 23400.0; vOD[6][18] = 19600.0; vOD[6][19] = 20000.0; vOD[6][21] = 21466.7; vOD[6][22] = 22600.0; vOD[6][23] = 21100.0; vOD[6][24] = 18800.0; vOD[7] = {}; vOD[7][0] = 24000.0; vOD[7][1] = 18755.6; vOD[7][2] = 17333.3; vOD[7][3] = 20977.8; vOD[7][6] = 20666.7; vOD[7][7] = 19866.7; vOD[7][10] = 19466.7; vOD[7][12] = 20666.7; vOD[7][13] = 20066.7; vOD[7][17] = 22333.3; vOD[7][18] = 19000.0; vOD[7][19] = 18266.7; vOD[7][21] = 20666.7; vOD[7][22] = 21133.3; vOD[7][23] = 20066.7; vOD[7][24] = 17800.0; vOD[10] = {}; vOD[10][0] = 24300.0; vOD[10][1] = 18533.3; vOD[10][2] = 16900.0; vOD[10][3] = 21000.0; vOD[10][6] = 20300.0; vOD[10][7] = 19866.7; vOD[10][10] = 19350.0; vOD[10][12] = 20600.0; vOD[10][13] = 19975.0; vOD[10][17] = 22300.0; vOD[10][18] = 18600.0; vOD[10][19] = 18400.0; vOD[10][21] = 20500.0; vOD[10][22] = 21350.0; vOD[10][23] = 19975.0; vOD[10][24] = 17650.0; vOD[12] = {}; vOD[12][0] = 24300.0; vOD[12][1] = 19466.7; vOD[12][2] = 17900.0; vOD[12][3] = 21600.0; vOD[12][6] = 21500.0; vOD[12][7] = 20400.0; vOD[12][10] = 20250.0; vOD[12][12] = 21100.0; vOD[12][13] = 20675.0; vOD[12][17] = 22900.0; vOD[12][18] = 19700.0; vOD[12][19] = 19000.0; vOD[12][21] = 21233.3; vOD[12][22] = 21650.0; vOD[12][23] = 20675.0; vOD[12][24] = 18450.0; vOD[13] = {}; vOD[13][0] = 24300.0; vOD[13][1] = 19000.0; vOD[13][2] = 17400.0; vOD[13][3] = 21300.0; vOD[13][6] = 20900.0; vOD[13][7] = 20133.3; vOD[13][10] = 19800.0; vOD[13][12] = 20850.0; vOD[13][13] = 20325.0; vOD[13][17] = 22600.0; vOD[13][18] = 19150.0; vOD[13][19] = 18700.0; vOD[13][21] = 20866.7; vOD[13][22] = 21500.0; vOD[13][23] = 20325.0; vOD[13][24] = 18050.0; vOD[17] = {}; vOD[17][0] = 26300.0; vOD[17][1] = 21366.7; vOD[17][2] = 19400.0; vOD[17][3] = 23666.7; vOD[17][6] = 23300.0; vOD[17][7] = 22366.7; vOD[17][10] = 22350.0; vOD[17][12] = 22850.0; vOD[17][13] = 22600.0; vOD[17][17] = 24800.0; vOD[17][18] = 21350.0; vOD[17][19] = 21400.0; vOD[17][21] = 23000.0; vOD[17][22] = 23850.0; vOD[17][23] = 22600.0; vOD[17][24] = 20400.0; vOD[18] = {}; vOD[18][0] = 23200.0; vOD[18][1] = 17833.3; vOD[18][2] = 16100.0; vOD[18][3] = 20200.0; vOD[18][6] = 19800.0; vOD[18][7] = 18966.7; vOD[18][10] = 18700.0; vOD[18][12] = 19650.0; vOD[18][13] = 19175.0; vOD[18][17] = 21500.0; vOD[18][18] = 17950.0; vOD[18][19] = 17600.0; vOD[18][21] = 19700.0; vOD[18][22] = 20400.0; vOD[18][23] = 19175.0; vOD[18][24] = 16850.0; vOD[19] = {}; vOD[19][0] = 23400.0; vOD[19][1] = 17333.3; vOD[19][2] = 16200.0; vOD[19][3] = 19733.3; vOD[19][6] = 19000.0; vOD[19][7] = 18800.0; vOD[19][10] = 17900.0; vOD[19][12] = 19800.0; vOD[19][13] = 18850.0; vOD[19][17] = 21200.0; vOD[19][18] = 17600.0; vOD[19][19] = 16800.0; vOD[19][21] = 19533.3; vOD[19][22] = 20100.0; vOD[19][23] = 18850.0; vOD[19][24] = 16500.0; vOD[21] = {}; vOD[21][0] = 24600.0; vOD[21][1] = 19555.6; vOD[21][2] = 17800.0; vOD[21][3] = 21822.2; vOD[21][6] = 21533.3; vOD[21][7] = 20577.8; vOD[21][10] = 20433.3; vOD[21][12] = 21200.0; vOD[21][13] = 20816.7; vOD[21][17] = 23066.7; vOD[21][18] = 19666.7; vOD[21][19] = 19333.3; vOD[21][21] = 21311.1; vOD[21][22] = 21966.7; vOD[21][23] = 20816.7; vOD[21][24] = 18566.7; vOD[22] = {}; vOD[22][0] = 25400.0; vOD[22][1] = 20166.7; vOD[22][2] = 18700.0; vOD[22][3] = 22400.0; vOD[22][6] = 22000.0; vOD[22][7] = 21300.0; vOD[22][10] = 20900.0; vOD[22][12] = 22050.0; vOD[22][13] = 21475.0; vOD[22][17] = 23700.0; vOD[22][18] = 20350.0; vOD[22][19] = 19800.0; vOD[22][21] = 22033.3; vOD[22][22] = 22600.0; vOD[22][23] = 21475.0; vOD[22][24] = 19250.0; vOD[23] = {}; vOD[23][0] = 24300.0; vOD[23][1] = 19000.0; vOD[23][2] = 17400.0; vOD[23][3] = 21300.0; vOD[23][6] = 20900.0; vOD[23][7] = 20133.3; vOD[23][10] = 19800.0; vOD[23][12] = 20850.0; vOD[23][13] = 20325.0; vOD[23][17] = 22600.0; vOD[23][18] = 19150.0; vOD[23][19] = 18700.0; vOD[23][21] = 20866.7; vOD[23][22] = 21500.0; vOD[23][23] = 20325.0; vOD[23][24] = 18050.0; vOD[24]={}; vOD[24][0] = 22300.0; vOD[24][1] = 16633.3; vOD[24][2] = 15400.0; vOD[24][3] = 18933.3; vOD[24][6] = 18500.0; vOD[24][7] = 17900.0; vOD[24][10] = 17250.0; vOD[24][12] = 18850.0; vOD[24][13] = 18050.0; vOD[24][17] = 20400.0; vOD[24][18] = 16950.0; vOD[24][19] = 16000.0; vOD[24][21] = 18733.3; vOD[24][22] = 19150.0; vOD[24][23] = 18050.0; vOD[24][24] = 15700.0; nOD[0] = -15400.0; nOD[1] = -9200.0; nOD[2] = -7400.0; nOD[3] = -11866.7; nOD[6] = -11500.0; nOD[7] = -10500.0; nOD[10] = -10100.0; nOD[12] = -11400.0; nOD[13] = -10750.0; nOD[17] = -13450.0; nOD[18] = -9450.0; nOD[19] = -8700.0; nOD[21] = -11433.3; nOD[22] = -12050.0; nOD[23] = -10750.0; nOD[24] = -8050.0; /* Modified Breslauer's thermodynamics, dHпїЅ and dSпїЅ parameters (PNAS, 1996) AA -9100 - 24 AC -6500 - 17.3 AG -7800 - 20.8 AT -8600 - 23.9 CA -5800 - 12.9 CC -11000 - 26.6 CG -11900 - 27.8 CT -7800 - 20.8 GA -5600 - 13.5 GC -11100 - 26.7 GG -11000 - 26.6 GT -6500 - 17.3 TA -6000 - 16.9 TC -5600 - 13.5 TG -5800 - 12.9 TT -9100 - 24 */ dHBr[0] = {}; dSBr[0] = {}; dHBr[0][0] = -9100.0; dSBr[0][0] = -24.0; dHBr[0][1] = -7633.3; dSBr[0][1] = -20.7; dHBr[0][2] = -6500.0; dSBr[0][2] = -17.3; dHBr[0][3] = -8500.0; dSBr[0][3] = -22.9; dHBr[0][6] = -7800.0; dSBr[0][6] = -20.8; dHBr[0][7] = -8066.7; dSBr[0][7] = -21.7; dHBr[0][10] = -8200.0; dSBr[0][10] = -22.4; dHBr[0][12] = -7800.0; dSBr[0][12] = -20.7; dHBr[0][13] = -8000.0; dSBr[0][13] = -21.5; dHBr[0][17] = -8450.0; dSBr[0][17] = -22.4; dHBr[0][18] = -7150.0; dSBr[0][18] = -19.1; dHBr[0][19] = -8600.0; dSBr[0][19] = -23.9; dHBr[0][21] = -7800.0; dSBr[0][21] = -20.7; dHBr[0][22] = -8850.0; dSBr[0][22] = -24.0; dHBr[0][23] = -8000.0; dSBr[0][23] = -21.5; dHBr[0][24] = -7550.0; dSBr[0][24] = -20.6; dHBr[1] = {}; dSBr[1] = {}; dHBr[1][0] = -5800.0; dSBr[1][0] = -14.4; dHBr[1][1] = -8866.7; dSBr[1][1] = -21.8; dHBr[1][2] = -9233.3; dSBr[1][2] = -22.3; dHBr[1][3] = -7722.2; dSBr[1][3] = -19.2; dHBr[1][6] = -9566.7; dSBr[1][6] = -22.4; dHBr[1][7] = -7611.1; dSBr[1][7] = -19.1; dHBr[1][10] = -8683.3; dSBr[1][10] = -21.6; dHBr[1][12] = -7516.7; dSBr[1][12] = -18.4; dHBr[1][13] = -8100.0; dSBr[1][13] = -20.0; dHBr[1][17] = -7683.3; dSBr[1][17] = -18.4; dHBr[1][18] = -9400.0; dSBr[1][18] = -22.4; dHBr[1][19] = -7800.0; dSBr[1][19] = -20.7; dHBr[1][21] = -8200.0; dSBr[1][21] = -19.7; dHBr[1][22] = -6800.0; dSBr[1][22] = -17.6; dHBr[1][23] = -8100.0; dSBr[1][23] = -20.0; dHBr[1][24] = -8516.7; dSBr[1][24] = -21.5; dHBr[2] = {}; dSBr[2] = {}; dHBr[2][0] = -5800.0; dSBr[2][0] = -12.9; dHBr[2][1] = -10233.3; dSBr[2][1] = -25.1; dHBr[2][2] = -11000.0; dSBr[2][2] = -26.6; dHBr[2][3] = -8500.0; dSBr[2][3] = -20.5; dHBr[2][6] = -11900.0; dSBr[2][6] = -27.8; dHBr[2][7] = -8200.0; dSBr[2][7] = -20.1; dHBr[2][10] = -9850.0; dSBr[2][10] = -24.3; dHBr[2][12] = -8400.0; dSBr[2][12] = -19.8; dHBr[2][13] = -9125.0; dSBr[2][13] = -22.0; dHBr[2][17] = -8850.0; dSBr[2][17] = -20.4; dHBr[2][18] = -11450.0; dSBr[2][18] = -27.2; dHBr[2][19] = -7800.0; dSBr[2][19] = -20.8; dHBr[2][21] = -9566.7; dSBr[2][21] = -22.4; dHBr[2][22] = -6800.0; dSBr[2][22] = -16.9; dHBr[2][23] = -9125.0; dSBr[2][23] = -22.0; dHBr[2][24] = -9400.0; dSBr[2][24] = -23.7; dHBr[3] = {}; dSBr[3] = {}; dHBr[3][0] = -6900.0; dSBr[3][0] = -18.1; dHBr[3][1] = -8000.0; dSBr[3][1] = -20.3; dHBr[3][2] = -7733.3; dSBr[3][2] = -19.2; dHBr[3][3] = -7722.2; dSBr[3][3] = -20.0; dHBr[3][6] = -8200.0; dSBr[3][6] = -20.1; dHBr[3][7] = -7566.7; dSBr[3][7] = -19.7; dHBr[3][10] = -8133.3; dSBr[3][10] = -20.9; dHBr[3][12] = -7316.7; dSBr[3][12] = -18.7; dHBr[3][13] = -7725.0; dSBr[3][13] = -19.8; dHBr[3][17] = -7550.0; dSBr[3][17] = -19.1; dHBr[3][18] = -7966.7; dSBr[3][18] = -19.6; dHBr[3][19] = -8066.7; dSBr[3][19] = -21.7; dHBr[3][21] = -7611.1; dSBr[3][21] = -19.1; dHBr[3][22] = -7483.3; dSBr[3][22] = -19.9; dHBr[3][23] = -7725.0; dSBr[3][23] = -19.8; dHBr[3][24] = -7900.0; dSBr[3][24] = -20.5; dHBr[6] = {}; dSBr[6] = {}; dHBr[6][0] = -5600.0; dSBr[6][0] = -13.5; dHBr[6][1] = -9533.3; dSBr[6][1] = -23.5; dHBr[6][2] = -11100.0; dSBr[6][2] = -26.7; dHBr[6][3] = -7700.0; dSBr[6][3] = -19.1; dHBr[6][6] = -11000.0; dSBr[6][6] = -26.6; dHBr[6][7] = -7733.3; dSBr[6][7] = -19.2; dHBr[6][10] = -8750.0; dSBr[6][10] = -22.0; dHBr[6][12] = -8350.0; dSBr[6][12] = -20.1; dHBr[6][13] = -8550.0; dSBr[6][13] = -21.0; dHBr[6][17] = -8300.0; dSBr[6][17] = -20.1; dHBr[6][18] = -11050.0; dSBr[6][18] = -26.7; dHBr[6][19] = -6500.0; dSBr[6][19] = -17.3; dHBr[6][21] = -9233.3; dSBr[6][21] = -22.3; dHBr[6][22] = -6050.0; dSBr[6][22] = -15.4; dHBr[6][23] = -8550.0; dSBr[6][23] = -21.0; dHBr[6][24] = -8800.0; dSBr[6][24] = -22.0; dHBr[7] = {}; dSBr[7] = {}; dHBr[7][0] = -6966.7; dSBr[7][0] = -17.9; dHBr[7][1] = -8233.3; dSBr[7][1] = -20.8; dHBr[7][2] = -7700.0; dSBr[7][2] = -19.1; dHBr[7][3] = -7988.9; dSBr[7][3] = -20.4; dHBr[7][6] = -8500.0; dSBr[7][6] = -20.5; dHBr[7][7] = -7722.2; dSBr[7][7] = -20.0; dHBr[7][10] = -8500.0; dSBr[7][10] = -21.7; dHBr[7][12] = -7333.3; dSBr[7][12] = -18.5; dHBr[7][13] = -7916.7; dSBr[7][13] = -20.1; dHBr[7][17] = -7733.3; dSBr[7][17] = -19.2; dHBr[7][18] = -8100.0; dSBr[7][18] = -19.8; dHBr[7][19] = -8500.0; dSBr[7][19] = -22.9; dHBr[7][21] = -7722.2; dSBr[7][21] = -19.2; dHBr[7][22] = -7733.3; dSBr[7][22] = -20.4; dHBr[7][23] = -7916.7; dSBr[7][23] = -20.1; dHBr[7][24] = -8100.0; dSBr[7][24] = -21.0; dHBr[10] = {}; dSBr[10] = {}; dHBr[10][0] = -5800.0; dSBr[10][0] = -15.2; dHBr[10][1] = -8183.3; dSBr[10][1] = -20.2; dHBr[10][2] = -8350.0; dSBr[10][2] = -20.1; dHBr[10][3] = -7333.3; dSBr[10][3] = -18.5; dHBr[10][6] = -8400.0; dSBr[10][6] = -19.8; dHBr[10][7] = -7316.7; dSBr[10][7] = -18.7; dHBr[10][10] = -8100.0; dSBr[10][10] = -20.2; dHBr[10][12] = -7075.0; dSBr[10][12] = -17.7; dHBr[10][13] = -7587.5; dSBr[10][13] = -18.9; dHBr[10][17] = -7100.0; dSBr[10][17] = -17.5; dHBr[10][18] = -8375.0; dSBr[10][18] = -19.9; dHBr[10][19] = -7800.0; dSBr[10][19] = -20.7; dHBr[10][21] = -7516.7; dSBr[10][21] = -18.4; dHBr[10][22] = -6800.0; dSBr[10][22] = -17.9; dHBr[10][23] = -7587.5; dSBr[10][23] = -18.9; dHBr[10][24] = -8075.0; dSBr[10][24] = -20.4; dHBr[12] = {}; dSBr[12] = {}; dHBr[12][0] = -7450.0; dSBr[12][0] = -18.5; dHBr[12][1] = -8933.3; dSBr[12][1] = -22.9; dHBr[12][2] = -8750.0; dSBr[12][2] = -22.0; dHBr[12][3] = -8500.0; dSBr[12][3] = -21.7; dHBr[12][6] = -9850.0; dSBr[12][6] = -24.3; dHBr[12][7] = -8133.3; dSBr[12][7] = -20.9; dHBr[12][10] = -9025.0; dSBr[12][10] = -23.3; dHBr[12][12] = -8100.0; dSBr[12][12] = -20.2; dHBr[12][13] = -8562.5; dSBr[12][13] = -21.8; dHBr[12][17] = -8650.0; dSBr[12][17] = -21.4; dHBr[12][18] = -9300.0; dSBr[12][18] = -23.1; dHBr[12][19] = -8200.0; dSBr[12][19] = -22.4; dHBr[12][21] = -8683.3; dSBr[12][21] = -21.6; dHBr[12][22] = -7825.0; dSBr[12][22] = -20.4; dHBr[12][23] = -8562.5; dSBr[12][23] = -21.8; dHBr[12][24] = -8475.0; dSBr[12][24] = -22.2; dHBr[13] = {}; dSBr[13] = {}; dHBr[13][0] = -6625.0; dSBr[13][0] = -16.8; dHBr[13][1] = -8558.3; dSBr[13][1] = -21.5; dHBr[13][2] = -8550.0; dSBr[13][2] = -21.0; dHBr[13][3] = -7916.7; dSBr[13][3] = -20.1; dHBr[13][6] = -9125.0; dSBr[13][6] = -22.0; dHBr[13][7] = -7725.0; dSBr[13][7] = -19.8; dHBr[13][10] = -8562.5; dSBr[13][10] = -21.8; dHBr[13][12] = -7587.5; dSBr[13][12] = -18.9; dHBr[13][13] = -8075.0; dSBr[13][13] = -20.3; dHBr[13][17] = -7875.0; dSBr[13][17] = -19.4; dHBr[13][18] = -8837.5; dSBr[13][18] = -21.5; dHBr[13][19] = -8000.0; dSBr[13][19] = -21.5; dHBr[13][21] = -8100.0; dSBr[13][21] = -20.0; dHBr[13][22] = -7312.5; dSBr[13][22] = -19.2; dHBr[13][23] = -8075.0; dSBr[13][23] = -20.3; dHBr[13][24] = -8275.0; dSBr[13][24] = -21.3; dHBr[17] = {}; dSBr[17] = {}; dHBr[17][0] = -7350.0; dSBr[17][0] = -18.8; dHBr[17][1] = -8583.3; dSBr[17][1] = -22.1; dHBr[17][2] = -8800.0; dSBr[17][2] = -22.0; dHBr[17][3] = -8100.0; dSBr[17][3] = -21.0; dHBr[17][6] = -9400.0; dSBr[17][6] = -23.7; dHBr[17][7] = -7900.0; dSBr[17][7] = -20.5; dHBr[17][10] = -8475.0; dSBr[17][10] = -22.2; dHBr[17][12] = -8075.0; dSBr[17][12] = -20.4; dHBr[17][13] = -8275.0; dSBr[17][13] = -21.3; dHBr[17][17] = -8375.0; dSBr[17][17] = -21.2; dHBr[17][18] = -9100.0; dSBr[17][18] = -22.9; dHBr[17][19] = -7550.0; dSBr[17][19] = -20.6; dHBr[17][21] = -8516.7; dSBr[17][21] = -21.5; dHBr[17][22] = -7450.0; dSBr[17][22] = -19.7; dHBr[17][23] = -8275.0; dSBr[17][23] = -21.3; dHBr[17][24] = -8175.0; dSBr[17][24] = -21.3; dHBr[18] = {}; dSBr[18] = {}; dHBr[18][0] = -5700.0; dSBr[18][0] = -13.2; dHBr[18][1] = -9883.3; dSBr[18][1] = -24.3; dHBr[18][2] = -11050.0; dSBr[18][2] = -26.7; dHBr[18][3] = -8100.0; dSBr[18][3] = -19.8; dHBr[18][6] = -11450.0; dSBr[18][6] = -27.2; dHBr[18][7] = -7966.7; dSBr[18][7] = -19.6; dHBr[18][10] = -9300.0; dSBr[18][10] = -23.1; dHBr[18][12] = -8375.0; dSBr[18][12] = -19.9; dHBr[18][13] = -8837.5; dSBr[18][13] = -21.5; dHBr[18][17] = -8575.0; dSBr[18][17] = -20.2; dHBr[18][18] = -11250.0; dSBr[18][18] = -26.9; dHBr[18][19] = -7150.0; dSBr[18][19] = -19.1; dHBr[18][21] = -9400.0; dSBr[18][21] = -22.4; dHBr[18][22] = -6425.0; dSBr[18][22] = -16.1; dHBr[18][23] = -8837.5; dSBr[18][23] = -21.5; dHBr[18][24] = -9100.0; dSBr[18][24] = -22.9; dHBr[19] = {}; dSBr[19] = {}; dHBr[19][0] = -6000.0; dSBr[19][0] = -16.9; dHBr[19][1] = -6833.3; dSBr[19][1] = -16.8; dHBr[19][2] = -5600.0; dSBr[19][2] = -13.5; dHBr[19][3] = -6966.7; dSBr[19][3] = -17.9; dHBr[19][6] = -5800.0; dSBr[19][6] = -12.9; dHBr[19][7] = -6900.0; dSBr[19][7] = -18.1; dHBr[19][10] = -7450.0; dSBr[19][10] = -18.5; dHBr[19][12] = -5800.0; dSBr[19][12] = -15.2; dHBr[19][13] = -6625.0; dSBr[19][13] = -16.8; dHBr[19][17] = -5900.0; dSBr[19][17] = -14.9; dHBr[19][18] = -5700.0; dSBr[19][18] = -13.2; dHBr[19][19] = -9100.0; dSBr[19][19] = -24.0; dHBr[19][21] = -5800.0; dSBr[19][21] = -14.4; dHBr[19][22] = -7550.0; dSBr[19][22] = -20.5; dHBr[19][23] = -6625.0; dSBr[19][23] = -16.8; dHBr[19][24] = -7350.0; dSBr[19][24] = -18.8; dHBr[21] = {}; dSBr[21] = {}; dHBr[21][0] = -6833.3; dSBr[21][0] = -16.8; dHBr[21][1] = -9133.3; dSBr[21][1] = -23.1; dHBr[21][2] = -9533.3; dSBr[21][2] = -23.5; dHBr[21][3] = -8233.3; dSBr[21][3] = -20.8; dHBr[21][6] = -10233.3; dSBr[21][6] = -25.1; dHBr[21][7] = -8000.0; dSBr[21][7] = -20.3; dHBr[21][10] = -8933.3; dSBr[21][10] = -22.9; dHBr[21][12] = -8183.3; dSBr[21][12] = -20.2; dHBr[21][13] = -8558.3; dSBr[21][13] = -21.5; dHBr[21][17] = -8533.3; dSBr[21][17] = -20.9; dHBr[21][18] = -9883.3; dSBr[21][18] = -24.3; dHBr[21][19] = -7633.3; dSBr[21][19] = -20.7; dHBr[21][21] = -8866.7; dSBr[21][21] = -21.8; dHBr[21][22] = -7233.3; dSBr[21][22] = -18.7; dHBr[21][23] = -8558.3; dSBr[21][23] = -21.5; dHBr[21][24] = -8583.3; dSBr[21][24] = -22.1; dHBr[22] = {}; dSBr[22] = {}; dHBr[22][0] = -7550.0; dSBr[22][0] = -20.5; dHBr[22][1] = -7233.3; dSBr[22][1] = -18.7; dHBr[22][2] = -6050.0; dSBr[22][2] = -15.4; dHBr[22][3] = -7733.3; dSBr[22][3] = -20.4; dHBr[22][6] = -6800.0; dSBr[22][6] = -16.9; dHBr[22][7] = -7483.3; dSBr[22][7] = -19.9; dHBr[22][10] = -7825.0; dSBr[22][10] = -20.4; dHBr[22][12] = -6800.0; dSBr[22][12] = -17.9; dHBr[22][13] = -7312.5; dSBr[22][13] = -19.2; dHBr[22][17] = -7175.0; dSBr[22][17] = -18.7; dHBr[22][18] = -6425.0; dSBr[22][18] = -16.1; dHBr[22][19] = -8850.0; dSBr[22][19] = -24.0; dHBr[22][21] = -6800.0; dSBr[22][21] = -17.6; dHBr[22][22] = -8200.0; dSBr[22][22] = -22.2; dHBr[22][23] = -7312.5; dSBr[22][23] = -19.2; dHBr[22][24] = -7450.0; dSBr[22][24] = -19.7; dHBr[23] = {}; dSBr[23] = {}; dHBr[23][0] = -6625.0; dSBr[23][0] = -16.8; dHBr[23][1] = -8558.3; dSBr[23][1] = -21.5; dHBr[23][2] = -8550.0; dSBr[23][2] = -21.0; dHBr[23][3] = -7916.7; dSBr[23][3] = -20.1; dHBr[23][6] = -9125.0; dSBr[23][6] = -22.0; dHBr[23][7] = -7725.0; dSBr[23][7] = -19.8; dHBr[23][10] = -8562.5; dSBr[23][10] = -21.8; dHBr[23][12] = -7587.5; dSBr[23][12] = -18.9; dHBr[23][13] = -8075.0; dSBr[23][13] = -20.3; dHBr[23][17] = -7875.0; dSBr[23][17] = -19.4; dHBr[23][18] = -8837.5; dSBr[23][18] = -21.5; dHBr[23][19] = -8000.0; dSBr[23][19] = -21.5; dHBr[23][21] = -8100.0; dSBr[23][21] = -20.0; dHBr[23][22] = -7312.5; dSBr[23][22] = -19.2; dHBr[23][23] = -8075.0; dSBr[23][23] = -20.3; dHBr[23][24] = -8275.0; dSBr[23][24] = -21.3; dHBr[24] = {}; dSBr[24] = {}; dHBr[24][0] = -5900.0; dSBr[24][0] = -14.9; dHBr[24][1] = -8533.3; dSBr[24][1] = -20.9; dHBr[24][2] = -8300.0; dSBr[24][2] = -20.1; dHBr[24][3] = -7733.3; dSBr[24][3] = -19.2; dHBr[24][6] = -8850.0; dSBr[24][6] = -20.4; dHBr[24][7] = -7550.0; dSBr[24][7] = -19.1; dHBr[24][10] = -8650.0; dSBr[24][10] = -21.4; dHBr[24][12] = -7100.0; dSBr[24][12] = -17.5; dHBr[24][13] = -7875.0; dSBr[24][13] = -19.4; dHBr[24][17] = -7375.0; dSBr[24][17] = -17.6; dHBr[24][18] = -8575.0; dSBr[24][18] = -20.2; dHBr[24][19] = -8450.0; dSBr[24][19] = -22.4; dHBr[24][21] = -7683.3; dSBr[24][21] = -18.4; dHBr[24][22] = -7175.0; dSBr[24][22] = -18.7; dHBr[24][23] = -7875.0; dSBr[24][23] = -19.4; dHBr[24][24] = -8375.0; dSBr[24][24] = -21.2; } var Seq = function (str) { var str1 = str.toLowerCase(); var returnString = ""; for (var i = 0; i < str1.length; i++) { var chr = str1.charAt(i); if (chr == 'a' || chr == 't' || chr == 'c' || chr == 'g' || chr == 'r' || chr == 'y' || chr == 'm' || chr == 'k' || chr == 'w' || chr == 'b' || chr == 'd' || chr == 'v' || chr == 'h' || chr == 's' || chr == 'i' || chr == 'n' || chr == 'u') { returnString += chr; } } return returnString; } var ReverseDNA = function(source) { return source.split("").reverse().join(""); } var AntiSenseDNA = function(source) { var result = []; var d = {}; d[97] = 116; //'t' a d[98] = 118; //'v' b d[99] = 103; //'g' c d[100] = 104; //'h' d d[103] = 99; //'c' g d[104] = 100; //'d' h d[105] = 99; //'i' i->c d[107] = 109; //'m' k d[109] = 107; //'k' m d[110] = 110; //'n' n d[114] = 121; //'y' r d[115] = 115; //'s' s d[116] = 97; //'a' t d[117] = 97; //'a' u d[118] = 98; //'b' v d[119] = 119; //'w' w d[121] = 114; //'r' y for (var i = 0; i < source.length; i++) { if(d[source.charCodeAt(i)]) { result.push(String.fromCharCode(d[source.charCodeAt(i)])); } } return result.join(''); } var TmBr = function( str, solt, pri) { var dS = -12.4; var dH = -3400; var T = 0; var j = str.length; for (var i = 0; i < j - 1; i++) { var n1 = parseInt(str.charCodeAt(i)); var n2 = parseInt(str.charCodeAt(i + 1)); dH = dH + dHBr[n1 - 97][n2 - 97]; dS = dS + dSBr[n1 - 97][n2 - 97]; } T = (16.6 * Math.log(solt) / Math.log(10)) + (dH / (1.9872 * Math.log(pri / 1600) + dS)) - 273.15; if (T < 0) { T = 0; } if (T > 95) { T = 95.0; } return (T); } var CG = function(str) { var sdn = {}; //M=(A/C) R=(A/G) W=(A/T) S=(G/C) Y=(C/T) K=(G/T) V=(A/G/C) H=(A/C/T) D=(A/G/T) B=(C/G/T) N=(A/G/C/T), U=T sdn[98] = 0.66666; //B=(C/G/T) sdn[99] = 1; //c sdn[100] = 0.33333; //D=(A/G/T) sdn[103] = 1; //g sdn[104] = 0.33333; //H=(A/C/T) sdn[105] = 1; //i=G sdn[107] = 0.5; //K=(G/T) sdn[109] = 0.5; //M=(A/C) sdn[110] = 0.5; //N=(A/G/C/T) sdn[114] = 0.5; //R=(A/G) sdn[115] = 1; //S=(G/C) sdn[118] = 0.66666; //V=(A/G/C) sdn[121] = 0.5; //Y=(C/T) var dr = parseFloat(0); var l = str.length; for (var i = 0; i < l; i++) { if(sdn[str.charCodeAt(i)] !== undefined) dr = dr + sdn[str.charCodeAt(i)]; } return (100 * dr / l); } var e260 = function(str) { var j = str.length; if (j < 4){return (0);} var n1 = parseInt(str.charCodeAt(0)); var n2 = parseInt(str.charCodeAt(1)); var t = vOD[n1 - 97][n2 - 97]; for (var i = 1; i < j - 1; i++) { n1 = parseInt(str.charCodeAt(i)); n2 = parseInt(str.charCodeAt(i + 1)); t = t + vOD[n1 - 97][n2 - 97] + nOD[n1 - 97]; } return (t); } /* var DimerLook = function(r1, r2, n_base, m0, m1, m2, m3) { var z1 = ""; var z2 = ""; var z3 = ""; var j = 0; var n = 0; var x = 0; var y = 0; var z = 0; var r = 0; var f = -1; var w = 0; var l = 0; var l1 = r1.length; var l2 = r2.length; n_base = parseInt(n_base); if (n_base <1) {n_base=1;} if (n_base >10) {n_base=10;} var initK = n_base + 1; var StrLen = n_base + 2; var FilterSize = n_base + 5; if (l1 < l2) { z1 = r2; z3 = ReverseDNA(r1); l = l1; l1 = l2; l2 = l; } else { z1 = r1; z3 = ReverseDNA(r2); } z2 = AntiSenseDNA(z3); var px = {}; var r1x = z1; var r2y = z2; for (y = 0; y < l2 - initK; y++) { x = -1; for (;;) { x = z1.indexOf(z2.substring(y, y + initK), x + 1); if (x == -1) { break; } w = l2 + x - y; z = y + l1 - x - 1; j = 0; l = initK; r = initK; if (!px[w]) { for (;;) { if (x + l > l1 - 1) { break; } if (y + l > l2 - 1) { break; } if (r1x[x + l] == r2y[y + l]) { l = l + 1; r = r + 1; } else { if (x + l + 1 > l1 - 1) { break; } if (y + l + 1 > l2 - 1) { break; } if (r1x[x + l + 1] == r2y[y + l + 1]) { l = l + 2; r = r + 1; } else { break; } } } for (;;) { if (x - j - 1 < 0) { break; } if (y - j - 1 < 0) { break; } if (r1x[x - j - 1] == r2y[y - j - 1]) { l = l + 1; r = r + 1; j = j + 1; } else { if (x - j - 2 < 0) { break; } if (y - j - 2 < 0) { break; } if (r1x[x - j - 2] == r2y[y - j - 2]) { l = l + 2; r = r + 1; j = j + 2; } else { break; } } } if (r > StrLen) { f++; m0[f] = 0; if (r > FilterSize) { m0[f] = 3; } // internal dimer for l1, x if (y - j < 2 && x - j > 1) { m0[f] = 1; } // 3'end dimer for l2, y if (z < l2 && x + 1 - j > l1 - 1) { m0[f] = 2; } // 3'end dimer for l1, x if (m0[f] > 0) { px[w] = 1; if (w > l2 - 1) { w = w - l2; m1[f] = "5-" + z1 + "->"; var value = []; for (j = 0; j < w; j++) { value.push(' '); } m3[f] = value.join('') + "<-" + z3 + "-5"; value = []; for (j = 0; j < w + 2; j++) { value.push(' '); } m2[f] = value.join(''); n = l1 - w; if (n > l2 - 1) { n = l2; } for (j = 0; j < n; j++) { if (r1x[w + j] == r2y[j]) { m2[f] = m2[f] + "|"; } else { m2[f] = m2[f] + " "; } } } else // if (w > l2 - 1) { w = l2 - w; m3[f] = "<-" + z3 + "-5"; var value = []; for (j = 0; j < w; j++) { value.push(' '); } m1[f] = value.join('') + "5-" + z1 + "->"; value =[]; for (j = 0; j < w + 2; j++) { value.push(' '); } m2[f] = value.join(''); for (j = 0; j < l2 - w; j++) { if (r1x[j] == r2y[j + w]) { m2[f] = m2[f] + "|"; } else { m2[f] = m2[f] + " "; } } } } // if (m0[f]>0) else { f--; } } // if (r > StrLen) { } } } return f; } */ var DimerLook = function(r1, r2, n_base, m0, m1, m2, m3) { n_base = parseInt(n_base); var z1 = ""; var z2 = ""; var z3 = ""; var j = 0; var n = 0; var x = 0; var y = 0; var z = 0; var r = 0; var f = -1; var w = 0; var l = 0; var l1 = r1.length; var l2 = r2.length; if (n_base < 1) n_base = 1; if (n_base > 10) n_base = 10; var initK = n_base + 1; var StrLen = n_base + 2; var FilterSize = n_base + 5; if (l1 < l2) { z1 = r2; z3 = ReverseDNA(r1); l = l1; l1 = l2; l2 = l; } else { z1 = r1; z3 = ReverseDNA(r2); } z2 = AntiSenseDNA(z3); var px = {}; var r1x = z1; var r2y = z2; for (y = 0; y < l2 - initK; y++) { x = -1; while (true) { x = z1.indexOf(z2.substring(y, y + initK), x + 1); if (x == -1) { break; } w = l2 + x - y; z = y + l1 - x - 1; j = 0; l = initK; r = initK; if (px[w] === undefined || px[w] == 0) { while (x + l <= l1 - 1) { if (y + l > l2 - 1) { break; } if (r1x[(x + l)] == r2y[(y + l)]) { l += 1; r += 1; } else { if (x + l + 1 > l1 - 1) { break; } if (y + l + 1 > l2 - 1) { break; } if (r1x[(x + l + 1)] != r2y[(y + l + 1)]) break; l += 2; r += 1; } } while (x - j - 1 >= 0) { if (y - j - 1 < 0) { break; } if (r1x[(x - j - 1)] == r2y[(y - j - 1)]) { l += 1; r += 1; j += 1; } else { if (x - j - 2 < 0) { break; } if (y - j - 2 < 0) { break; } if (r1x[(x - j - 2)] != r2y[(y - j - 2)]) break; l += 2; r += 1; j += 2; } } if (r > StrLen) { f++; m0[f] = 0; if (r > FilterSize) { m0[f] = 3; } if ((y - j < 2) && (x - j > 1)) { m0[f] = 1; } if ((z < l2) && (x + 1 - j > l1 - 1)) { m0[f] = 2; } if (m0[f] > 0) { px[w] = 1; if (w > l2 - 1) { w -= l2; m1[f] = ("5-" + z1 + "->"); var value = []; for (j = 0; j < w; j++) { value.push(' '); } m3[f] = (value.join('') + "<-" + z3 + "-5"); var value = []; for (j = 0; j < w+2; j++) { value.push(' '); } m2[f] = value.join(''); n = l1 - w; if (n > l2 - 1) { n = l2; } for (j = 0; j < n; j++) { if (r1x[(w + j)] == r2y[j]) { m2[f] = (m2[f] + "|"); } else { m2[f] = (m2[f] + " "); } } } else { w = l2 - w; m3[f] = ("<-" + z3 + "-5"); var value = []; for (j = 0; j < w; j++) { value.push(' '); } m1[f] = (value.join('') + "5-" + z1 + "->"); value = []; for (j = 0; j < w + 2; j++) { value.push(' '); } m2[f] = value.join(''); for (j = 0; j < l2 - w; j++) { if (r1x[j] == r2y[(j + w)]){ m2[f] = (m2[f] + "|"); } else m2[f] = (m2[f] + " "); } } } else { f--; } } } } } String() return f; } this.recount = function () { var primers = that.calcBuilder.getElement('primers'); var primer_concentration = that.calcBuilder.getElement('primer_concentration'); var sensivity = that.calcBuilder.getElement('sensivity'); var salt_concentration = that.calcBuilder.getElement('salt_concentration'); var results_for_primer_tab_date_fmat = that.calcBuilder.getElement('results_for_primer_tab_date_fmat'); var primers_dimer_detection = that.calcBuilder.getElement('primers_dimer_detection'); var number_of_primers = that.calcBuilder.getElement('number_of_primers'); primers_dimer_detection.value = ""; results_for_primer_tab_date_fmat.value = ""; var salt = 0.05; var p = 0.0000025; var salt0 = that.calcBuilder.NumToDouble(salt_concentration.value); var p0 = that.calcBuilder.NumToDouble(primer_concentration.value); if (salt0 > 0 && salt0 < 5000) { salt = salt0 / 1000; } if (p0 > 0 && p0 < 10) { p = p0 / 100000; } var s = primers.value; var l = s.length; var k = -1; var j = 0; var z = 0; var x = 0; var n_seq = -1; if (l < 2) return; var name_seq = {}; var seqs = {}; if (s.indexOf(">", 0) > -1) { do { k = s.indexOf(">", k + 1); if (k > -1) { n_seq = n_seq + 1; } } while (k > -1); name_seq = {}; seqs = {}; k = -1; j = 0; n_seq = -1; do { k = s.indexOf(">", k + 1); if (k > -1) { j = s.indexOf("\r", k + 1); z = s.indexOf("\n", k + 1); x = s.indexOf(" ", k + 1); if (j == -1 && z != -1) { j = z; } if (j == -1 & z == -1 && x > -1) { j = x; } if (j > -1) { n_seq = n_seq + 1; name_seq[n_seq] = s.substring(k + 1, j).trim(); k = s.indexOf(">", j + 1); if (k != -1) { seqs[n_seq] = Seq(s.substring(j + 1, k - 1)); k = k - 1; } else { seqs[n_seq] = Seq(s.substring(j + 1, l)); } } } } while (k > -1); } //(s.indexOf(">",0)>-1) // Tab reading if (n_seq == -1 && s.indexOf("\t", 0) > -1) { k = -1; do { k = s.indexOf("\t", k + 1); if (k > -1) { n_seq = n_seq + 1; } } while (k > -1); name_seq = {}; seqs = {}; k = -1; j = 0; x = 0; n_seq = -1; do { k = s.indexOf("\t", k + 1); if (k > -1) { j = s.indexOf("\r", k + 3); z = s.indexOf("\n", k + 3); if (j == -1 && z != -1) { j = z; } if (j > -1) { n_seq = n_seq + 1; name_seq[n_seq] = s.substring(x, k).trim(); seqs[n_seq] = Seq(s.substring(k, j)); x = j + 1; k = j; } else { n_seq = n_seq + 1; name_seq[n_seq] = s.substring(x, k).trim(); seqs[n_seq] = Seq(s.substring(k, l)); break; } } } while (k > -1); } // " " blank reading if (n_seq == -1 && s.indexOf(" ", 0) > -1) { k = -1; do { k = s.indexOf(" ", k + 1); if (k > -1) { n_seq = n_seq + 1; } } while (k > -1); name_seq = {}; seqs = {}; k = -1; j = 0; x = 0; n_seq = -1; do { k = s.indexOf(" ", k + 1); if (k > -1) { j = s.indexOf("\r", k + 3); z = s.indexOf("\n", k + 3); if (j == -1 && z != -1) j = z; if (j > -1) { n_seq = n_seq + 1; name_seq[n_seq] = s.substring(x, k).trim(); seqs[n_seq] = Seq(s.substring(k, j)); x = j + 1; k = j; } else { n_seq = n_seq + 1; name_seq[n_seq] = s.substring(x, k).trim(); seqs[n_seq] = Seq(s.substring(k, l)); break; } } } while (k > -1); } // single sequence if (n_seq == -1) { n_seq = 0; name_seq[n_seq] = "seq_1"; seqs[n_seq] = Seq(s); } number_of_primers.innerHTML ="Number of primers: " + (n_seq + 1); var zname = 4; var zseq = 8; var Sequence_width_title = 0; for (var n = 0; n < n_seq + 1; n++) { var lseqs = seqs[n].length; var lname = name_seq[n].length; if(Sequence_width_title
For analyzing and comparing multiple primer sequences simultaneously.
Write or paste your primer sequences to the input field (upper window). The analyzer accepts text and table format (can be copied from an Excel file, for example). Note: This analyzer requires at least 2 primer sequences in the input field. For single primers (determination of primer Tm) you can choose the Tm calculator for PCR.
- A name is required for each primer (eg. Seq1 agtcagtcagtcagtcagtc).
- The name and sequence string can be separated with either space or tab, as long as the style is the same for all the primers
- Degenerate primer sequences are also accepted
- NOTE: If the PCR primer contains desired mismatches, e.g. for creating a mutation or a restriction site, make sure to calculate the Tm only for the correctly matched sequence.
The results will appear instantly in the output fields (lower windows), and update automatically if you make changes to the sequences. The analyzer will give the following results:
- Tm (°C)*
- CG content (%)
- Length of the primers (nt)
- Number of individual bases (A, T, C and G)
- Extinction coefficient (l/(mol·cm))
- Molecular weight (g/mol)
- Amount / OD unit (nmol/OD260)
- Mass (µg/OD260)
- Primer-dimer estimation**
*The calculated Tm for a given primer can vary significantly between different calculation methods. This Tm calculator uses a modified nearest-neighbor method based on the method described by Breslauer et al., Proc. Natl. Acad. Sci. 83, 3746-50 (1986).
**The analyzer reports possible primer-dimers based on the detection parameters given below the sequence input window. The dimer information is intended to be used as a preliminary guide when selecting suitable primer combinations. It is not conclusive data. In the actual amplification reaction the primer-dimer formation can vary depending on the PCR conditions.