-
Notifications
You must be signed in to change notification settings - Fork 0
/
primer3_st_args.py
366 lines (357 loc) · 31.9 KB
/
primer3_st_args.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
# Copyright (c) 2006, 2007
# by Andreas Untergasser and Harm Nijveen
# All rights reserved.
#
# Copyright (C) 2014-2023. Ben Pruitt & Nick Conway; 2014-2018 Wyss Institute
#
# See COPYING-GPL3 for full GPLv3 license.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distr194,4 209,2ibuted in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# # You should have received a copy of the
# GNU General Public License along with this program.
# If not, see <https://www.gnu.org/licenses/>.
example_values = {"SCRIPT_SEQUENCE_ID": "MH1000",
"SEQUENCE_TEMPLATE":
"GCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCCTACATTTTAGCATCAGTGAGTAC"
"AGCATGCTTACTGGAAGAGAGGGTCATGCAACAGATTAGGAGGTAAGTTTGCAAAGGCAG"
"GCTAAGGAGGAGACGCACTGAATGCCATGGTAAGAACTCTGGACATAAAAATATTGGAAG"
"TTGTTGAGCAAGTNAAAAAAATGTTTGGAAGTGTTACTTTAGCAATGGCAAGAATGATAG"
"TATGGAATAGATTGGCAGAATGAAGGCAAAATGATTAGACATATTGCATTAAGGTAAAAA"
"ATGATAACTGAAGAATTATGTGCCACACTTATTAATAAGAAAGAATATGTGAACCTTGCA"
"GATGTTTCCCTCTAGTAG",
"SCRIPT_EXCLUDED_REGION": "11,10 280,5",
"SCRIPT_TARGET": "109,1 119,3",
"SCRIPT_INCLUDED_REGION": "5,286",
"SCRIPT_DETECTION_PICK_HYB_PROBE": True}
task_help = {"Detection": "Select primer pairs to detect the given template sequence. Optionally targets and included/excluded regions can be specified.",
"Cloning": "Mark an included region to pick primers fixed at its the boundaries. The quality of the primers might be low.",
"Sequencing": "Pick a series of primers on both strands for sequencing. Optionally the regions of interest can be marked using targets.",
"Primer_List": "Returns a list of all possible primers the can be designed on the template sequence. Optionally targets and included/exlcuded regions can be specified.",
"Primer_Check": "Evaluate a primer of known sequence with the given settings."
}
primer_task = {"Detection": "generic",
"Cloning": "pick_cloning_primers",
"Sequencing": "pick_sequencing_primers",
"Primer_List": "pick_primer_list",
"Primer_Check": "check_primers"
}
table_th = {"Breslauer et al. 1986": 0,
"SantaLucia 1998": 1
}
table_salt = {"Schildkraut and Lifson 1965": 0,
"SantaLucia 1998": 1,
"Owczarzy et. 2004": 2
}
st_default_values = {"P3_FILE_FLAG": {"value": 0},
"PRIMER_DNA_CONC": {"value": 50.0},
"PRIMER_DNTP_CONC": {"value": 0.6},
"PRIMER_EXPLAIN_FLAG": {"value": 1},
"PRIMER_FIRST_BASE_INDEX": {"value": 1},
"PRIMER_GC_CLAMP": {"value": 0},
"PRIMER_INSIDE_PENALTY": {"value": -1.0},
"PRIMER_INTERNAL_DNA_CONC": {"value": 50.0},
"PRIMER_INTERNAL_DNTP_CONC": {"value": 0.0},
"PRIMER_INTERNAL_MAX_GC": {"value": 80.0},
"PRIMER_INTERNAL_MAX_LIBRARY_MISHYB": {"value": 12.0},
"PRIMER_INTERNAL_MAX_NS_ACCEPTED": {"value": 0},
"PRIMER_INTERNAL_MAX_POLY_X": {"value": 5},
"PRIMER_INTERNAL_MAX_SELF_ANY": {"value": 12.0},
"PRIMER_INTERNAL_MAX_SELF_END": {"value": 12.0},
"PRIMER_INTERNAL_MAX_SIZE": {"value": 27},
"PRIMER_INTERNAL_MAX_TM": {"value": 63.0},
"PRIMER_INTERNAL_MIN_GC": {"value": 20.0},
"PRIMER_INTERNAL_MIN_QUALITY": {"value": 0},
"PRIMER_INTERNAL_MIN_SIZE": {"value": 18},
"PRIMER_INTERNAL_MIN_TM": {"value": 57.0},
"PRIMER_INTERNAL_OPT_GC_PERCENT": {"value": 50.0},
"PRIMER_INTERNAL_OPT_SIZE": {"value": 20},
"PRIMER_INTERNAL_OPT_TM": {"value": 60.0},
"PRIMER_INTERNAL_SALT_DIVALENT": {"value": 1.5},
"PRIMER_INTERNAL_SALT_MONOVALENT": {"value": 50.0},
"PRIMER_INTERNAL_WT_END_QUAL": {"value": 0.0},
"PRIMER_INTERNAL_WT_GC_PERCENT_GT": {"value": 0.0},
"PRIMER_INTERNAL_WT_GC_PERCENT_LT": {"value": 0.0},
"PRIMER_INTERNAL_WT_LIBRARY_MISHYB": {"value": 0.0},
"PRIMER_INTERNAL_WT_NUM_NS": {"value": 0.0},
"PRIMER_INTERNAL_WT_SELF_ANY": {"value": 0.0},
"PRIMER_INTERNAL_WT_SELF_END": {"value": 0.0},
"PRIMER_INTERNAL_WT_SEQ_QUAL": {"value": 0.0},
"PRIMER_INTERNAL_WT_SIZE_GT": {"value": 1.0},
"PRIMER_INTERNAL_WT_SIZE_LT": {"value": 1.0},
"PRIMER_INTERNAL_WT_TM_GT": {"value": 1.0},
"PRIMER_INTERNAL_WT_TM_LT": {"value": 1.0},
"PRIMER_MAX_END_GC": {"value": 5},
"PRIMER_MAX_END_STABILITY": {"value": 9.0, "format": "%.1f", "step": 0.1},
"PRIMER_MAX_GC": {"value": 70.0},
"PRIMER_MAX_LIBRARY_MISPRIMING": {"value": 12.0},
"PRIMER_MAX_NS_ACCEPTED": {"value": 0},
"PRIMER_MAX_POLY_X": {"value": 4},
"PRIMER_MAX_SELF_ANY": {"value": 8.0},
"PRIMER_MAX_SELF_END": {"value": 3.0},
"PRIMER_MAX_SIZE": {"value": 23},
"PRIMER_MAX_TEMPLATE_MISPRIMING": {"value": 12.0},
"PRIMER_MAX_TM": {"value": 62.0},
"PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION": {"value": 4},
"PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION": {"value": 7},
"PRIMER_MIN_END_QUALITY": {"value": 0},
"PRIMER_MIN_GC": {"value": 30.0},
"PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE": {"value": 3},
"PRIMER_MIN_QUALITY": {"value": 0},
"PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE": {"value": 3},
"PRIMER_MIN_SIZE": {"value": 18},
"PRIMER_MIN_TM": {"value": 57.0},
"PRIMER_NUM_RETURN": {"value": 5},
"PRIMER_OPT_GC_PERCENT": {"value": 50.0},
"PRIMER_OPT_SIZE": {"value": 20},
"PRIMER_OPT_TM": {"value": 59.0},
"PRIMER_OUTSIDE_PENALTY": {"value": 0.0},
"PRIMER_PAIR_MAX_COMPL_ANY": {"value": 8.0},
"PRIMER_PAIR_MAX_COMPL_END": {"value": 3.0},
"PRIMER_PAIR_MAX_DIFF_TM": {"value": 5.0},
"PRIMER_PAIR_MAX_LIBRARY_MISPRIMING": {"value": 20.0},
"PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING": {"value": 24.0},
"PRIMER_PAIR_WT_COMPL_ANY": {"value": 0.0},
"PRIMER_PAIR_WT_COMPL_END": {"value": 0.0},
"PRIMER_PAIR_WT_DIFF_TM": {"value": 0.0},
"PRIMER_PAIR_WT_IO_PENALTY": {"value": 0.0},
"PRIMER_PAIR_WT_LIBRARY_MISPRIMING": {"value": 0.0},
"PRIMER_PAIR_WT_PR_PENALTY": {"value": 1.0},
"PRIMER_PAIR_WT_PRODUCT_SIZE_GT": {"value": 0.0},
"PRIMER_PAIR_WT_PRODUCT_SIZE_LT": {"value": 0.0},
"PRIMER_PAIR_WT_PRODUCT_TM_GT": {"value": 0.0},
"PRIMER_PAIR_WT_PRODUCT_TM_LT": {"value": 0.0},
"PRIMER_PAIR_WT_TEMPLATE_MISPRIMING": {"value": 0.0},
"PRIMER_PICK_ANYWAY": {"value": 0},
"PRIMER_PICK_INTERNAL_OLIGO": {"value": 0},
"PRIMER_PICK_LEFT_PRIMER": {"value": 1},
"PRIMER_PICK_RIGHT_PRIMER": {"value": 1},
"PRIMER_PRODUCT_SIZE_RANGE": {"value": "150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000"},
"PRIMER_QUALITY_RANGE_MAX": {"value": 100},
"PRIMER_QUALITY_RANGE_MIN": {"value": 0},
"PRIMER_SALT_CORRECTIONS": {"value": 0},
"PRIMER_SALT_DIVALENT": {"value": 1.5},
"PRIMER_SALT_MONOVALENT": {"value": 50.0},
"PRIMER_SEQUENCING_ACCURACY": {"value": 20},
"PRIMER_SEQUENCING_INTERVAL": {"value": 250},
"PRIMER_SEQUENCING_LEAD": {"value": 50},
"PRIMER_SEQUENCING_SPACING": {"value": 500},
"PRIMER_WT_END_QUAL": {"value": 0.0},
"PRIMER_WT_END_STABILITY": {"value": 0.0},
"PRIMER_WT_GC_PERCENT_GT": {"value": 0.0},
"PRIMER_WT_GC_PERCENT_LT": {"value": 0.0},
"PRIMER_WT_LIBRARY_MISPRIMING": {"value": 0.0},
"PRIMER_WT_NUM_NS": {"value": 0.0},
"PRIMER_WT_POS_PENALTY": {"value": 0.0},
"PRIMER_WT_SELF_ANY": {"value": 0.0},
"PRIMER_WT_SELF_END": {"value": 0.0},
"PRIMER_WT_SEQ_QUAL": {"value": 0.0},
"PRIMER_WT_SIZE_GT": {"value": 1.0},
"PRIMER_WT_SIZE_LT": {"value": 1.0},
"PRIMER_WT_TEMPLATE_MISPRIMING": {"value": 0.0},
"PRIMER_WT_TM_GT": {"value": 1.0},
"PRIMER_WT_TM_LT": {"value": 1.0},
"SCRIPT_DETECTION_PICK_HYB_PROBE": {"value": False},
"SCRIPT_DETECTION_PICK_LEFT": {"value": True},
"SCRIPT_DETECTION_PICK_RIGHT": {"value": True},
"SCRIPT_EXCLUDED_REGION": {"value": ""},
"SCRIPT_FIX_PRIMER_END": {},
"SCRIPT_INCLUDED_REGION": {"value": ""},
"SCRIPT_PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS": {"value": True},
"SCRIPT_PRIMER_LIBERAL_BASE": {"value": True},
"SCRIPT_PRIMER_LOWERCASE_MASKING": {"value": False},
"SCRIPT_PRIMER_NAME_ACRONYM_INTERNAL": {"value": "IN"},
"SCRIPT_PRIMER_NAME_ACRONYM_LEFT": {"value": "L"},
"SCRIPT_PRIMER_NAME_ACRONYM_RIGHT": {"value": "R"},
"SCRIPT_PRIMER_NAME_ACRONYM_SPACER": {"value": "_"},
"SCRIPT_SEQUENCE_FILE": {},
"SCRIPT_SEQUENCE_ID": {"value": ""},
"SCRIPT_SEQUENCING_ACCURACY": {},
"SCRIPT_SEQUENCING_INTERVAL": {},
"SCRIPT_SEQUENCING_LEAD": {},
"SCRIPT_SEQUENCING_REVERSE": {},
"SCRIPT_SEQUENCING_SPACING": {},
"SCRIPT_SETTINGS_FILE": {},
"SCRIPT_TARGET": {"value": ""},
"SEQUENCE_INTERNAL_OLIGO": {"value": ""},
"SEQUENCE_PRIMER_REVCOMP": {"value": ""},
"SEQUENCE_PRIMER": {"value": ""},
"SEQUENCE_TEMPLATE": {"value": ""},
}
st_static_values = {"PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT": 0,
"PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT": 0,
"PRIMER_MAX_SELF_ANY_TH": 45.0,
"PRIMER_MAX_SELF_END_TH": 35.0,
"PRIMER_PAIR_MAX_COMPL_ANY_TH": 45.0,
"PRIMER_PAIR_MAX_COMPL_END_TH": 35.0,
"PRIMER_MAX_HAIRPIN_TH": 24.0,
"PRIMER_MAX_TEMPLATE_MISPRIMING_TH": 40.00,
"PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_TH": 70.00,
"PRIMER_WT_SELF_ANY_TH": 0.0,
"PRIMER_WT_SELF_END_TH": 0.0,
"PRIMER_WT_HAIRPIN_TH": 0.0,
"PRIMER_WT_TEMPLATE_MISPRIMING_TH": 0.0,
"PRIMER_PAIR_WT_COMPL_ANY_TH": 0.0,
"PRIMER_PAIR_WT_COMPL_END_TH": 0.0,
"PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH": 0.0,
"PRIMER_INTERNAL_MAX_SELF_ANY_TH": 47.00,
"PRIMER_INTERNAL_MAX_SELF_END_TH": 47.00,
"PRIMER_INTERNAL_MAX_HAIRPIN_TH": 47.00,
"PRIMER_INTERNAL_WT_SELF_ANY_TH": 0.0,
"PRIMER_INTERNAL_WT_SELF_END_TH": 0.0,
"PRIMER_INTERNAL_WT_HAIRPIN_TH": 0.0,
"SEQUENCE_FORCE_LEFT_START": -1000000,
"SEQUENCE_FORCE_RIGHT_START": -1000000,
"SEQUENCE_FORCE_LEFT_END": -1000000,
"SEQUENCE_FORCE_RIGHT_END": -1000000,
"PRIMER_PRODUCT_MIN_TM": -1000000.0,
"PRIMER_PRODUCT_OPT_TM": 0.0,
"PRIMER_PRODUCT_MAX_TM": 1000000.0
}
st_args = {"PRIMER_DNA_CONC": {'label': '[Annealing Oligo Concentration:](/Help#PRIMER_DNA_CONC)', 'key': 'PRIMER_DNA_CONC', 'help': 'Not the concentration of oligos in the reaction mix\nbut of those annealing to template.'},
"PRIMER_DNTP_CONC": {'label': '[Concentration of dNTPs:](/Help#PRIMER_DNTP_CONC)', 'key': 'PRIMER_DNTP_CONC'},
"PRIMER_EXPLAIN_FLAG": {'label': 'PRIMER_EXPLAIN_FLAG', 'key': 'PRIMER_EXPLAIN_FLAG'},
"PRIMER_FIRST_BASE_INDEX": {'label': '[First Base Index:](/Help#PRIMER_FIRST_BASE_INDEX)', 'key': 'PRIMER_FIRST_BASE_INDEX'},
"PRIMER_GC_CLAMP": {'label': '[CG Clamp:](/Help#PRIMER_GC_CLAMP)', 'key': 'PRIMER_GC_CLAMP'},
"PRIMER_GC_PERCENT": {'label': '[Primer GC%](/Help#PRIMER_GC_PERCENT)', 'key': 'PRIMER_GC_PERCENT'},
"PRIMER_INSIDE_PENALTY": {'label': '[Set Inside Target Penalty to allow primers inside a target.](/Help#PRIMER_INSIDE_PENALTY)', 'key': 'PRIMER_INSIDE_PENALTY'},
"PRIMER_INTERNAL_DNA_CONC": {'label': 'PRIMER_INTERNAL_DNA_CONC', 'key': 'PRIMER_INTERNAL_DNA_CONC'},
"PRIMER_INTERNAL_DNTP_CONC": {'label': 'PRIMER_INTERNAL_DNTP_CONC', 'key': 'PRIMER_INTERNAL_DNTP_CONC'},
"PRIMER_INTERNAL_MAX_GC": {'label': 'PRIMER_INTERNAL_MAX_GC', 'key': 'PRIMER_INTERNAL_MAX_GC'},
"PRIMER_INTERNAL_MAX_LIBRARY_MISHYB": {'label': 'PRIMER_INTERNAL_MAX_LIBRARY_MISHYB', 'key': 'PRIMER_INTERNAL_MAX_LIBRARY_MISHYB'},
"PRIMER_INTERNAL_MAX_NS_ACCEPTED": {'label': '[Max #Ns:](/Help#internal_oligo_generic)', 'key': 'PRIMER_INTERNAL_MAX_NS_ACCEPTED'},
"PRIMER_INTERNAL_MAX_POLY_X": {'label': 'PRIMER_INTERNAL_MAX_POLY_X', 'key': 'PRIMER_INTERNAL_MAX_POLY_X'},
"PRIMER_INTERNAL_MAX_SELF_ANY": {'label': 'PRIMER_INTERNAL_MAX_SELF_ANY', 'key': 'PRIMER_INTERNAL_MAX_SELF_ANY'},
"PRIMER_INTERNAL_MAX_SELF_END": {'label': 'PRIMER_INTERNAL_MAX_SELF_END', 'key': 'PRIMER_INTERNAL_MAX_SELF_END'},
"PRIMER_INTERNAL_MAX_SIZE": {'label': 'PRIMER_INTERNAL_MAX_SIZE', 'key': 'PRIMER_INTERNAL_MAX_SIZE'},
"PRIMER_INTERNAL_MAX_TM": {'label': 'PRIMER_INTERNAL_MAX_TM', 'key': 'PRIMER_INTERNAL_MAX_TM'},
"PRIMER_INTERNAL_MIN_GC": {'label': 'PRIMER_INTERNAL_MIN_GC', 'key': 'PRIMER_INTERNAL_MIN_GC'},
"PRIMER_INTERNAL_MIN_QUALITY": {'label': 'PRIMER_INTERNAL_MIN_QUALITY', 'key': 'PRIMER_INTERNAL_MIN_QUALITY'},
"PRIMER_INTERNAL_MIN_SIZE": {'label': 'PRIMER_INTERNAL_MIN_SIZE', 'key': 'PRIMER_INTERNAL_MIN_SIZE'},
"PRIMER_INTERNAL_MIN_TM": {'label': 'PRIMER_INTERNAL_MIN_TM', 'key': 'PRIMER_INTERNAL_MIN_TM'},
"PRIMER_INTERNAL_OPT_GC_PERCENT": {'label': '[Hyb Oligo GC%](/Help#PRIMER_GC)', 'key': 'PRIMER_INTERNAL_OPT_GC_PERCENT'},
"PRIMER_INTERNAL_OPT_SIZE": {'label': '[Hyb Oligo Size:](/Help#PRIMER_SIZE)', 'key': 'PRIMER_INTERNAL_OPT_SIZE'},
"PRIMER_INTERNAL_SALT_DIVALENT": {'label': 'PRIMER_INTERNAL_SALT_DIVALENT', 'key': 'PRIMER_INTERNAL_SALT_DIVALENT'},
"PRIMER_INTERNAL_SALT_MONOVALENT": {'label': 'PRIMER_INTERNAL_SALT_MONOVALENT', 'key': 'PRIMER_INTERNAL_SALT_MONOVALENT'},
"PRIMER_INTERNAL_WT_END_QUAL": {'label': 'PRIMER_INTERNAL_WT_END_QUAL', 'key': 'PRIMER_INTERNAL_WT_END_QUAL'},
"PRIMER_INTERNAL_WT_GC_PERCENT_GT": {'label': 'PRIMER_INTERNAL_WT_GC_PERCENT_GT', 'key': 'PRIMER_INTERNAL_WT_GC_PERCENT_GT'},
"PRIMER_INTERNAL_WT_GC_PERCENT_LT": {'label': 'PRIMER_INTERNAL_WT_GC_PERCENT_LT', 'key': 'PRIMER_INTERNAL_WT_GC_PERCENT_LT'},
"PRIMER_INTERNAL_WT_LIBRARY_MISHYB": {'label': 'PRIMER_INTERNAL_WT_LIBRARY_MISHYB', 'key': 'PRIMER_INTERNAL_WT_LIBRARY_MISHYB'},
"PRIMER_INTERNAL_WT_NUM_NS": {'label': 'PRIMER_INTERNAL_WT_NUM_NS', 'key': 'PRIMER_INTERNAL_WT_NUM_NS'},
"PRIMER_INTERNAL_WT_SELF_ANY": {'label': 'PRIMER_INTERNAL_WT_SELF_ANY', 'key': 'PRIMER_INTERNAL_WT_SELF_ANY'},
"PRIMER_INTERNAL_WT_SELF_END": {'label': 'PRIMER_INTERNAL_WT_SELF_END', 'key': 'PRIMER_INTERNAL_WT_SELF_END'},
"PRIMER_INTERNAL_WT_SEQ_QUAL": {'label': 'PRIMER_INTERNAL_WT_SEQ_QUAL', 'key': 'PRIMER_INTERNAL_WT_SEQ_QUAL'},
"PRIMER_INTERNAL_WT_SIZE_GT": {'label': 'PRIMER_INTERNAL_WT_SIZE_GT', 'key': 'PRIMER_INTERNAL_WT_SIZE_GT'},
"PRIMER_INTERNAL_WT_SIZE_LT": {'label': 'PRIMER_INTERNAL_WT_SIZE_LT', 'key': 'PRIMER_INTERNAL_WT_SIZE_LT'},
"PRIMER_INTERNAL_WT_TM_GT": {'label': 'PRIMER_INTERNAL_WT_TM_GT', 'key': 'PRIMER_INTERNAL_WT_TM_GT'},
"PRIMER_INTERNAL_WT_TM_LT": {'label': 'PRIMER_INTERNAL_WT_TM_LT', 'key': 'PRIMER_INTERNAL_WT_TM_LT'},
"PRIMER_MAX_DIFF_TM": {'label': '[Max Tm Difference:](/Help#PRIMER_MAX_DIFF_TM)', 'key': 'PRIMER_MAX_DIFF_TM'},
"PRIMER_MAX_END_GC": {'label': 'PRIMER_MAX_END_GC', 'key': 'PRIMER_MAX_END_GC'},
"PRIMER_MAX_END_STABILITY": {'label': "[Max 3' Stability:](/Help#PRIMER_MAX_END_STABILITY)", 'key': 'PRIMER_MAX_END_STABILITY'},
"PRIMER_MAX_GC": {'label': 'PRIMER_MAX_GC', 'key': 'PRIMER_MAX_GC'},
"PRIMER_MAX_LIBRARY_MISPRIMING": {'label': '[Max Library Mispriming:](/Help#PRIMER_MAX_LIBRARY_MISPRIMING)', 'key': 'PRIMER_MAX_LIBRARY_MISPRIMING'},
"PRIMER_MAX_NS_ACCEPTED": {'label': "[Max #N's:](/Help#PRIMER_MAX_NS_ACCEPTED)", 'key': 'PRIMER_MAX_NS_ACCEPTED'},
"PRIMER_MAX_POLY_X": {'label': '[Max Poly-X:](/Help#PRIMER_MAX_POLY_X)', 'key': 'PRIMER_MAX_POLY_X'},
"PRIMER_MAX_SELF_ANY": {'label': '[Max Self Complementarity:](/Help#PRIMER_MAX_SELF_ANY)', 'key': 'PRIMER_MAX_SELF_ANY'},
"PRIMER_MAX_SELF_END": {'label': "[Max 3' Self Complementarity:](/Help#PRIMER_MAX_SELF_END)", 'key': 'PRIMER_MAX_SELF_END'},
"PRIMER_MAX_SIZE": {'label': 'PRIMER_MAX_SIZE', 'key': 'PRIMER_MAX_SIZE'},
"PRIMER_MAX_TEMPLATE_MISPRIMING": {'label': '[Max Template Mispriming:](/Help#PRIMER_MAX_TEMPLATE_MISPRIMING)', 'key': 'PRIMER_MAX_TEMPLATE_MISPRIMING'},
"PRIMER_MAX_TM": {'label': 'PRIMER_MAX_TM', 'key': 'PRIMER_MAX_TM'},
"PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION": {'label': 'PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION', 'key': 'PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION'},
"PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION": {'label': 'PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION', 'key': 'PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION'},
"PRIMER_MIN_END_QUALITY": {'label': '[Min End Sequence Quality:](/Help#PRIMER_MIN_END_QUALITY)', 'key': 'PRIMER_MIN_END_QUALITY'},
"PRIMER_MIN_GC": {'label': 'PRIMER_MIN_GC', 'key': 'PRIMER_MIN_GC'},
"PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE": {'label': 'PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE', 'key': 'PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE'},
"PRIMER_MIN_QUALITY": {'label': '[Min Sequence Quality:](/Help#PRIMER_MIN_QUALITY)', 'key': 'PRIMER_MIN_QUALITY'},
"PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE": {'label': 'PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE', 'key': 'PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE'},
"PRIMER_MIN_SIZE": {'label': 'PRIMER_MIN_SIZE', 'key': 'PRIMER_MIN_SIZE'},
"PRIMER_MIN_TM": {'label': 'PRIMER_MIN_TM', 'key': 'PRIMER_MIN_TM'},
"PRIMER_MISPRIMING_LIBRARY": {'label': '[Mispriming/Repeat Library:](/Help#PRIMER_MISPRIMING_LIBRARY)', 'options': ('NONE', 'HUMAN', 'RODENT_AND_SIMPLE', 'RODENT', 'DROSOPHILA'), 'key': 'PRIMER_MISPRIMING_LIBRARY', 'help': 'Or N-out undesirable sequence (vector, ALUs, LINEs...)'},
"PRIMER_NUM_RETURN": {'label': '[Number To Return:](/Help#PRIMER_NUM_RETURN)', 'key': 'PRIMER_NUM_RETURN'},
"PRIMER_OPT_GC_PERCENT": {'label': 'PRIMER_OPT_GC_PERCENT', 'key': 'PRIMER_OPT_GC_PERCENT'},
"PRIMER_OPT_SIZE": {'label': '[Primer Size](/Help#PRIMER_SIZE)', 'key': 'PRIMER_OPT_SIZE'},
"PRIMER_OPT_TM": {'label': '[Hyb Oligo Tm:](/Help#PRIMER_TM)', 'key': 'PRIMER_OPT_TM'},
"PRIMER_OUTSIDE_PENALTY": {'label': '[Outside Target Penalty:](/Help#PRIMER_OUTSIDE_PENALTY)', 'key': 'PRIMER_OUTSIDE_PENALTY'},
"PRIMER_PAIR_MAX_COMPL_ANY": {'label': 'PRIMER_PAIR_MAX_COMPL_ANY', 'key': 'PRIMER_PAIR_MAX_COMPL_ANY'},
"PRIMER_PAIR_MAX_COMPL_END": {'label': 'PRIMER_PAIR_MAX_COMPL_END', 'key': 'PRIMER_PAIR_MAX_COMPL_END'},
"PRIMER_PAIR_MAX_DIFF_TM": {'label': 'PRIMER_PAIR_MAX_DIFF_TM', 'key': 'PRIMER_PAIR_MAX_DIFF_TM'},
"PRIMER_PAIR_MAX_LIBRARY_MISPRIMING": {'label': '[Pair Max Library Mispriming:](/Help#PRIMER_PAIR_MAX_LIBRARY_MISPRIMING)', 'key': 'PRIMER_PAIR_MAX_LIBRARY_MISPRIMING'},
"PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING": {'label': '[Pair Max Template Mispriming:](/Help#PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING)', 'key': 'PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING'},
"PRIMER_PAIR_WT_COMPL_ANY": {'label': '[Any Complementarity](/Help#generic_penalty_weights)', 'key': 'PRIMER_PAIR_WT_COMPL_ANY'},
"PRIMER_PAIR_WT_COMPL_END": {'label': "[3' Self Complementarity](/Help#generic_penalty_weights)", 'key': 'PRIMER_PAIR_WT_COMPL_END'},
"PRIMER_PAIR_WT_DIFF_TM": {'label': '[Tm Difference](/Help#generic_penalty_weights)', 'key': 'PRIMER_PAIR_WT_DIFF_TM'},
"PRIMER_PAIR_WT_IO_PENALTY": {'label': '[Hyb Oligo Penalty Weight](/Help#generic_penalty_weights)', 'key': 'PRIMER_PAIR_WT_IO_PENALTY'},
"PRIMER_PAIR_WT_LIBRARY_MISPRIMING": {'label': 'PRIMER_PAIR_WT_LIBRARY_MISPRIMING', 'key': 'PRIMER_PAIR_WT_LIBRARY_MISPRIMING'},
"PRIMER_PAIR_WT_PR_PENALTY": {'label': '[Primer Penalty Weight](/Help#generic_penalty_weights)', 'key': 'PRIMER_PAIR_WT_PR_PENALTY'},
"PRIMER_PAIR_WT_PRODUCT_SIZE_GT": {'label': 'PRIMER_PAIR_WT_PRODUCT_SIZE_GT', 'key': 'PRIMER_PAIR_WT_PRODUCT_SIZE_GT'},
"PRIMER_PAIR_WT_PRODUCT_SIZE_LT": {'label': 'PRIMER_PAIR_WT_PRODUCT_SIZE_LT', 'key': 'PRIMER_PAIR_WT_PRODUCT_SIZE_LT'},
"PRIMER_PAIR_WT_PRODUCT_TM_GT": {'label': 'PRIMER_PAIR_WT_PRODUCT_TM_GT', 'key': 'PRIMER_PAIR_WT_PRODUCT_TM_GT'},
"PRIMER_PAIR_WT_PRODUCT_TM_LT": {'label': 'PRIMER_PAIR_WT_PRODUCT_TM_LT', 'key': 'PRIMER_PAIR_WT_PRODUCT_TM_LT'},
"PRIMER_PAIR_WT_TEMPLATE_MISPRIMING": {'label': 'PRIMER_PAIR_WT_TEMPLATE_MISPRIMING', 'key': 'PRIMER_PAIR_WT_TEMPLATE_MISPRIMING'},
"PRIMER_PICK_ANYWAY": {'label': 'PRIMER_PICK_ANYWAY', 'key': 'PRIMER_PICK_ANYWAY'},
"PRIMER_PICK_INTERNAL_OLIGO": {'label': 'PRIMER_PICK_INTERNAL_OLIGO', 'key': 'PRIMER_PICK_INTERNAL_OLIGO'},
"PRIMER_PICK_LEFT_PRIMER": {'label': 'PRIMER_PICK_LEFT_PRIMER', 'key': 'PRIMER_PICK_LEFT_PRIMER'},
"PRIMER_PICK_RIGHT_PRIMER": {'label': 'PRIMER_PICK_RIGHT_PRIMER', 'key': 'PRIMER_PICK_RIGHT_PRIMER'},
"PRIMER_PRODUCT_SIZE_RANGE": {'label': '[Product Size Ranges](/Help#PRIMER_PRODUCT_SIZE_RANGE)', 'key': 'PRIMER_PRODUCT_SIZE_RANGE'},
"PRIMER_QUALITY_RANGE_MAX": {'label': '[Sequence Quality Range Max:](/Help#PRIMER_QUALITY_RANGE_MAX)', 'key': 'PRIMER_QUALITY_RANGE_MAX'},
"PRIMER_QUALITY_RANGE_MIN": {'label': '[Sequence Quality Range Min:](/Help#PRIMER_QUALITY_RANGE_MIN)', 'key': 'PRIMER_QUALITY_RANGE_MIN'},
"PRIMER_SALT_DIVALENT": {'label': '[Concentration of divalent cations:](/Help#PRIMER_DIVALENT_CONC)', 'key': 'PRIMER_SALT_DIVALENT'},
"PRIMER_SALT_MONOVALENT": {'label': '[Concentration of monovalent cations:](/Help#PRIMER_SALT_CONC)', 'key': 'PRIMER_SALT_MONOVALENT'},
"PRIMER_SEQUENCING_ACCURACY": {'label': 'PRIMER_SEQUENCING_ACCURACY', 'key': 'PRIMER_SEQUENCING_ACCURACY'},
"PRIMER_SEQUENCING_INTERVAL": {'label': 'PRIMER_SEQUENCING_INTERVAL', 'key': 'PRIMER_SEQUENCING_INTERVAL'},
"PRIMER_SEQUENCING_LEAD": {'label': 'PRIMER_SEQUENCING_LEAD', 'key': 'PRIMER_SEQUENCING_LEAD'},
"PRIMER_SEQUENCING_SPACING": {'label': 'PRIMER_SEQUENCING_SPACING', 'key': 'PRIMER_SEQUENCING_SPACING'},
"PRIMER_WT_END_QUAL": {'label': '[End Sequence Quality](/Help#generic_penalty_weights)', 'key': 'PRIMER_WT_END_QUAL'},
"PRIMER_WT_END_STABILITY": {'label': '[End Stability](/Help#generic_penalty_weights)', 'key': 'PRIMER_WT_END_STABILITY'},
"PRIMER_WT_GC_PERCENT_GT": {'label': 'PRIMER_WT_GC_PERCENT_GT', 'key': 'PRIMER_WT_GC_PERCENT_GT'},
"PRIMER_WT_GC_PERCENT_LT": {'label': 'PRIMER_WT_GC_PERCENT_LT', 'key': 'PRIMER_WT_GC_PERCENT_LT'},
"PRIMER_WT_LIBRARY_MISPRIMING": {'label': 'PRIMER_WT_LIBRARY_MISPRIMING', 'key': 'PRIMER_WT_LIBRARY_MISPRIMING'},
"PRIMER_WT_NUM_NS": {'label': "[#N's](/Help#generic_penalty_weights)", 'key': 'PRIMER_WT_NUM_NS'},
"PRIMER_WT_POS_PENALTY": {'label': '[Position Penalty](/Help#generic_penalty_weights)', 'key': 'PRIMER_WT_POS_PENALTY'},
"PRIMER_WT_SELF_ANY": {'label': 'PRIMER_WT_SELF_ANY', 'key': 'PRIMER_WT_SELF_ANY'},
"PRIMER_WT_SELF_END": {'label': 'PRIMER_WT_SELF_END', 'key': 'PRIMER_WT_SELF_END'},
"PRIMER_WT_SEQ_QUAL": {'label': '[Sequence Quality](/Help#generic_penalty_weights)', 'key': 'PRIMER_WT_SEQ_QUAL'},
"PRIMER_WT_SIZE_GT": {'label': 'PRIMER_WT_SIZE_GT', 'key': 'PRIMER_WT_SIZE_GT'},
"PRIMER_WT_SIZE_LT": {'label': 'PRIMER_WT_SIZE_LT', 'key': 'PRIMER_WT_SIZE_LT'},
"PRIMER_WT_SIZE": {'label': '[Size](/Help#generic_penalty_weights)', 'key': 'PRIMER_WT_SIZE'},
"PRIMER_WT_TEMPLATE_MISPRIMING": {'label': 'PRIMER_WT_TEMPLATE_MISPRIMING', 'key': 'PRIMER_WT_TEMPLATE_MISPRIMING'},
"PRIMER_WT_TM_GT": {'label': '[Tm](/Help#generic_penalty_weights)', 'key': 'PRIMER_WT_TM_GT'},
"SCRIPT_DETECTION_PICK_HYB_PROBE": {'label': "Pick hybridization probe", 'help': "internal oligo"},
"SCRIPT_DETECTION_PICK_LEFT": {'label': "Pick left primer"},
"SCRIPT_DETECTION_PICK_RIGHT": {'label': "Pick right primer"},
"SCRIPT_EXCLUDED_REGION": {'label': '[Excluded Regions:](/Help#EXCLUDED_REGION)', 'key': 'EXCLUDED_REGION', 'help': 'Primer oligos may not overlap any region specified in this tag. The associated value must be a space-separated list of start,length.\nE.g. 401,7 68,3 forbids selection of primers in the 7 bases starting at 401 and the 3 bases at 68.\n Or mark the source sequence with < and >:\n e.g. ...ATCT<CCCC>TCAT.. forbids primers in the central CCCC.'},
"SCRIPT_FIX_PRIMER_END": {'help': 'Select which end of the primer is fixed and which end can be extended or shortened by Primer3 to find optimal primers.'},
"SCRIPT_INCLUDED_REGION": {'label': '[Included Region:](/Help#INCLUDED_REGION)', 'key': 'INCLUDED_REGION', 'help': 'A sub-region of the given sequence in which to pick primers. For example, often the first dozen or so bases of a sequence are vector, and should be excluded from consideration.\nThe value for this parameter has the form start,length.\nE.g. 20,400: only pick primers in the 400 base region starting at position 20.\n Or use { and } in the source sequence to mark the beginning and end of the included\n region: e.g. in ATC{TTC...TCT}AT the included region is TTC...TCT.'},
"SCRIPT_PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS": {'label': 'Do not treat ambiguity codes in libraries as consensus', 'key': 'SCRIPT_PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS'},
"SCRIPT_PRIMER_LIBERAL_BASE": {'label': '[Liberal Base](/Help#SCRIPT_PRIMER_LIBERAL_BASE)', 'key': 'SCRIPT_PRIMER_LIBERAL_BASE'},
"SCRIPT_PRIMER_LOWERCASE_MASKING": {'label': 'Use Lowercase Masking', 'key': 'SCRIPT_PRIMER_LOWERCASE_MASKING'},
"SCRIPT_PRIMER_NAME_ACRONYM_INTERNAL": {'label': '[Internal Oligo Acronym:](/Help#PRIMER_NAME_ACRONYM_INTERNAL_OLIGO)', 'key': 'SCRIPT_PRIMER_NAME_ACRONYM_INTERNAL'},
"SCRIPT_PRIMER_NAME_ACRONYM_LEFT": {'label': '[Left Primer Acronym:](/Help#PRIMER_NAME_ACRONYM_LEFT)', 'key': 'SCRIPT_PRIMER_NAME_ACRONYM_LEFT'},
"SCRIPT_PRIMER_NAME_ACRONYM_RIGHT": {'label': '[Right Primer Acronym:](/Help#PRIMER_NAME_ACRONYM_RIGHT)', 'key': 'SCRIPT_PRIMER_NAME_ACRONYM_RIGHT'},
"SCRIPT_PRIMER_NAME_ACRONYM_SPACER": {'label': '[Primer Name Spacer:](/Help#PRIMER_NAME_ACRONYM_SPACER)', 'key': 'SCRIPT_PRIMER_NAME_ACRONYM_SPACER'},
"SCRIPT_PRIMER_SALT_CORRECTIONS": {'label': '[Salt correction formula:](/Help#PRIMER_SALT_CORRECTIONS)', 'options': ('Schildkraut and Lifson 1965', 'SantaLucia 1998', 'Owczarzy et. 2004'), 'key': 'SCRIPT_PRIMER_SALT_CORRECTIONS'},
"SCRIPT_PRIMER_TM_FORMULA": {'label': '[Table of thermodynamic parameters:](/Help#PRIMER_TM_SANTALUCIA)', 'options': ('Breslauer et al. 1986', 'SantaLucia 1998'), 'key': 'SCRIPT_PRIMER_TM_FORMULA'},
"SCRIPT_SEQUENCE_FILE": {'label': 'Paste source sequence below, or upload sequence file:', 'key': 'SCRIPT_SEQUENCE_FILE'},
"SCRIPT_SEQUENCE_ID": {'label': '[Sequence Id:](/Help#PRIMER_SEQUENCE_ID)', 'key': 'SCRIPT_SEQUENCE_ID', 'help': 'A name to identify your output.'},
"SCRIPT_SEQUENCING_ACCURACY": {'label': '[Accuracy](/Help#SEQUENCING_ACCURACY)', 'key': 'SCRIPT_SEQUENCING_ACCURACY', 'help': 'Space in which Primer3 picks the optimal primer'},
"SCRIPT_SEQUENCING_INTERVAL": {'label': '[Interval](/Help#SEQUENCING_INTERVAL)', 'key': 'SCRIPT_SEQUENCING_INTERVAL', 'help': 'Space between primers on the forward and the reverse strand'},
"SCRIPT_SEQUENCING_LEAD": {'label': '[Lead](/Help#SEQUENCING_LEAD)', 'key': 'SCRIPT_SEQUENCING_LEAD', 'help': 'Space between primer binding site and the start of readable sequencing'},
"SCRIPT_SEQUENCING_REVERSE": {'label': '[Pick Reverse Primers](/Help#SEQUENCING_REVERSE)', 'key': 'SCRIPT_SEQUENCING_REVERSE', 'help': 'Pick primers on the reverse DNA strand as well'},
"SCRIPT_SEQUENCING_SPACING": {'label': '[Spacing](/Help#SEQUENCING_SPACING)', 'key': 'SCRIPT_SEQUENCING_SPACING', 'help': 'Space between the primers on one DNA strand'},
"SCRIPT_SETTINGS_FILE": {'label': '_', 'label_visibility': 'hidden', 'key': 'SCRIPT_SETTINGS_FILE'},
"SCRIPT_SETTINGS_PRESET": {'label': '[Settings preset:](/Help#SETTINGS_PRESET)', 'options': ('Default', 'qPCR', 'Probe'), 'key': 'SCRIPT_SETTINGS_PRESET'},
"SCRIPT_TARGET": {'label': '[Targets:](/Help#TARGET)', 'key': 'TARGET', 'help': 'If one or more Targets is specified then a legal primer pair must flank at least one of them. The value should be a space-separated list of start,length pairs.\nE.g. 50,2 requires primers to surround the 2 bases at positions 50 and 51.\n Or mark the source sequence with [ and ]: e.g. ...ATCT[CCCC]TCAT..\n means that primers must flank the central CCCC.'},
"SCRIPT_TASK": {'label': '[Task:](/Help#TASK)', 'options': ('Detection', 'Cloning', 'Sequencing', 'Primer_List', 'Primer_Check'), 'key': 'SCRIPT_TASK'},
"SEQUENCE_INTERNAL_OLIGO": {'label': 'or use oligo below:', 'key': 'SEQUENCE_INTERNAL_OLIGO'},
"SEQUENCE_PRIMER_REVCOMP": {'label': 'or use right primer below', 'help': "5'->3' on opposite strand", 'key': 'SEQUENCE_PRIMER_REVCOMP'},
"SEQUENCE_PRIMER": {'label': 'or use left primer below:', 'key': 'SEQUENCE_PRIMER'},
"SEQUENCE_TEMPLATE": {'label': '[Sequence:](/Help#SEQUENCE)', 'key': 'SEQUENCE_TEMPLATE', 'help': '5 ->3 , as ACGTNacgtn -- other letters treated as N -- numbers and blanks ignored.'}
}