32
32
@dataclass (frozen = True , init = True , slots = True )
33
33
class Primer3Weights :
34
34
"""Holds the weights that Primer3 uses to adjust penalties
35
- that originate from the designed primer (s).
35
+ that originate from the designed oligo (s).
36
36
37
37
The weights that Primer3 uses when a parameter is less than optimal are labeled with "_lt".
38
38
"_gt" weights are penalties applied when a parameter is greater than optimal.
@@ -42,10 +42,10 @@ class Primer3Weights:
42
42
43
43
Example:
44
44
>>> Primer3Weights() #default implementation
45
- Primer3Weights(product_size_lt=1, product_size_gt=1, product_tm_lt=0.0, product_tm_gt=0.0, primer_end_stability=0.25, primer_gc_lt=0.25, primer_gc_gt=0.25, primer_self_any=0.1, primer_self_end=0.1, primer_size_lt=0.5, primer_size_gt=0.1, primer_tm_lt=1.0, primer_tm_gt=1.0)
45
+ Primer3Weights(product_size_lt=1, product_size_gt=1, product_tm_lt=0.0, product_tm_gt=0.0, primer_end_stability=0.25, primer_gc_lt=0.25, primer_gc_gt=0.25, primer_self_any=0.1, primer_self_end=0.1, primer_size_lt=0.5, primer_size_gt=0.1, primer_tm_lt=1.0, primer_tm_gt=1.0, probe_size_lt=0.25, probe_size_gt=0.25, probe_tm_lt=1.0, probe_tm_gt=1.0, probe_gc_lt=0.5, probe_gc_gt=0.5, probe_self_any=1.0, probe_self_end=1.0 )
46
46
47
47
>>> Primer3Weights(product_size_lt=5)
48
- Primer3Weights(product_size_lt=5, product_size_gt=1, product_tm_lt=0.0, product_tm_gt=0.0, primer_end_stability=0.25, primer_gc_lt=0.25, primer_gc_gt=0.25, primer_self_any=0.1, primer_self_end=0.1, primer_size_lt=0.5, primer_size_gt=0.1, primer_tm_lt=1.0, primer_tm_gt=1.0)
48
+ Primer3Weights(product_size_lt=5, product_size_gt=1, product_tm_lt=0.0, product_tm_gt=0.0, primer_end_stability=0.25, primer_gc_lt=0.25, primer_gc_gt=0.25, primer_self_any=0.1, primer_self_end=0.1, primer_size_lt=0.5, primer_size_gt=0.1, primer_tm_lt=1.0, primer_tm_gt=1.0, probe_size_lt=0.25, probe_size_gt=0.25, probe_tm_lt=1.0, probe_tm_gt=1.0, probe_gc_lt=0.5, probe_gc_gt=0.5, probe_self_any=1.0, probe_self_end=1.0 )
49
49
""" # noqa: E501
50
50
51
51
product_size_lt : int = 1
@@ -61,6 +61,14 @@ class Primer3Weights:
61
61
primer_size_gt : float = 0.1
62
62
primer_tm_lt : float = 1.0
63
63
primer_tm_gt : float = 1.0
64
+ probe_size_lt : float = 0.25
65
+ probe_size_gt : float = 0.25
66
+ probe_tm_lt : float = 1.0
67
+ probe_tm_gt : float = 1.0
68
+ probe_gc_lt : float = 0.5
69
+ probe_gc_gt : float = 0.5
70
+ probe_self_any : float = 1.0
71
+ probe_self_end : float = 1.0
64
72
65
73
def to_input_tags (self ) -> dict [Primer3InputTag , Any ]:
66
74
"""Maps weights to Primer3InputTag to feed directly into Primer3."""
@@ -78,5 +86,13 @@ def to_input_tags(self) -> dict[Primer3InputTag, Any]:
78
86
Primer3InputTag .PRIMER_WT_SIZE_GT : self .primer_size_gt ,
79
87
Primer3InputTag .PRIMER_WT_TM_LT : self .primer_tm_lt ,
80
88
Primer3InputTag .PRIMER_WT_TM_GT : self .primer_tm_gt ,
89
+ Primer3InputTag .PRIMER_INTERNAL_WT_SIZE_LT : self .probe_size_lt ,
90
+ Primer3InputTag .PRIMER_INTERNAL_WT_SIZE_GT : self .probe_size_gt ,
91
+ Primer3InputTag .PRIMER_INTERNAL_WT_TM_LT : self .probe_tm_lt ,
92
+ Primer3InputTag .PRIMER_INTERNAL_WT_TM_GT : self .probe_tm_gt ,
93
+ Primer3InputTag .PRIMER_INTERNAL_WT_GC_PERCENT_LT : self .probe_gc_lt ,
94
+ Primer3InputTag .PRIMER_INTERNAL_WT_GC_PERCENT_GT : self .probe_gc_gt ,
95
+ Primer3InputTag .PRIMER_INTERNAL_WT_SELF_ANY : self .probe_self_any ,
96
+ Primer3InputTag .PRIMER_INTERNAL_WT_SELF_END : self .probe_self_end ,
81
97
}
82
98
return mapped_dict
0 commit comments