-
Notifications
You must be signed in to change notification settings - Fork 44
/
CHANGES
199 lines (133 loc) · 8 KB
/
CHANGES
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
# Changelog
## Version 2.0.3 (February 15, 2024)
- Fix `_ThermoAnalysis._set_globals_and_seq_args` for improper checks on `misprime_lib` and
`mishyb_lib` leading to incorrect initialization of `mp_lib` and `mh_lib`. See issue #133
## Version 2.0.2 (February 9, 2024)
- Support for python 3.12 (build, test, docs)
## Version 2.0.1 (September 18, 2023)
- Fixed bug in `todict` method of `ThermoAnalysis`
## Version 2.0.0 (May 30, 2023)
- Migrated primer3 header file Cython extern imports to `thermoanalysis.pxi`
- Optional C structure string argument `c_ascii_structure` added to `_ThermoAnalysis` methods to enable 3rd party use for structures
- Version bump to 2.0.0 due to breaking change
- Fix issue whereby no_structure is not correctly 1 set to 1 when no secondary structure in found
- Add list version of `PRIMER_{PAIR, LEFT, RIGHT, INTERNAL}` to design output dictionary keys. Retaining original keys as well for compatibility.
- Fix for missing `thal_result.sec_struct` and `dpal_results.sec_struct` initialization to `NULL` in `recalc_primer_sec_struct`
## Version 1.2.2 (May 16, 2023)
- Bug fixes for output formatting related to penalty, "problem", and mispriming fields
## Version 1.2.1 (April 28, 2023)
- Bug fixes for `pdh_create_seq_lib` to correct missing `seq_lib` datastructure allocation and variable name typos.
- Increase test coverage to include `misprime_lib` and `mishyb_lib` arguments
## Version 1.2.0 (March 22, 2023)
- Threadsafe changes made to `thal.c` resulting in new `thalflex.c` and `thalflex.h` and `thalflexsignatures.h`.
- Threadsafe changes made to `libprimer3.c` resulting in new `libprimer3flex.c` and `ibprimer3flex.c.h`.
- `libprimer3.seq_args` datatype is now renamed to `libprimer3.seq_args_t`
- `test_threadsafe.py` add and `nogil` instituted for calls to `thal()` and `seqtm()` added `run_design` and `calc_heterodimer` threadsafe tests
- `ThermoAnalysis` class no longer needs to be a `Singleton` so this was removed as a parent class
- `p3helpers.pyx` houses new sequence and design helper functions
- `setup.py` `package_data` and `MANIFEST.in` to assist with future builds from `tar.gz` (`conda`)
## Version 1.1.0 (March 1, 2023)
- Added specificity to error non-N IUPAC error for issue #59
- Wheel build support for python 3.8 to move towards following the CPython EOL model for issue #88. See https://devguide.python.org/versions/
## Version 1.0.0 (February 11, 2023)
- Migrated `primer3` source to 2.6.1 version, which adds new arguments for melting temperature code
- Intergrated all Python C-API related code into `thermoanalysis.pyx`/`pxd`
- Deprecated `camelCase` related functions and added `snake_case` functions / methods in `bindings.py` and `thermoanalysis.pyx`
- Migrated `primer3/wrappers.py` to `tests/wrappers.py` to indicate it should not be used.
- Expanded test coverage and now using pytest for testing
- Added `pre-commit` hooks
- Call signature update and pattern update: `designPrimers` now `design_primers` integrates setting of sequence arguments and global arguments as they are coupled in `primer3_boulder_main.c`.
Note `primer3.primerdesign` was removed, including `setGlobals`.
Replace `setGlobals(GLOBALS, MISPRIME, MISHYB)` and `designPrimers(SEQARGS)` with a single call `design_primers(SEQARGS, GLOBALS, MISPRIME, MISHYB)`.
- `primer3` C code bug fixes to improve compiler warnings
- Using `primer3` `read_boulder_record` to setup primer3 data structures instead of reproducing code in `primer3-py` C or Cython via a code signature update
- `drawDimer` and `drawHairpin` updates to unify sequence structure output for testing
- Integrated GitHub Actions for CI testing
- Updated `sphinx` documentation
- Begin process of making `primer3-py` code thread-safe
- Documentation migrated to `MyST` Markdown
- Autobuild GitHub action for `PyPI` wheels and dist `tar.gz` on version tag
- Autobuild GitHub action `sphinx` documentation updates on version tag
## Version 0.6.1 (May 9, 2020)
- Fixed issue related to absolute paths populated in `SOURCES.txt` of sdist
- Clean up in `setup.py` and better Windows build support
## Version 0.6.0 (May 10, 2019)
- Added functionality for bindings to expose the ASCII representation of
computed dimer and hairpin structures
## Version 0.5.7 (August 10, 2018)
- Changes to upper case sequences in seqtm() in oligotm.c because calls to `ThermoAnalysis.calcTm` returned 0.0 for strings with lower case letters
- disabled existing tests on Windows due to incompatibility with process and
memory calls. TODO: create more tests for `ThermoAnalysis`
## Version 0.5.6 (July 12, 2018)
- Fixes to `primerdesign_helpers.c` C macro errors.
- Added the `todict(`)` methods in `t`hermoanalysis.pyx` for serialization help for
tests there
## Version 0.5.5 (October 30, 2017)
- Remove unicode character from `README.rst`
## Version 0.5.4 (June 20, 2017)
- Migration of Cython extension build process to `build_clib` to remove Cython
as a runtime requirement for `setup.py` (thanks to @tdsmith)
## Version 0.5.3 (May 6, 2017)
- Fixed improper assignment of `"PRIMER_PAIR_MAX_COMPL_END_TH"` during design
arg parsing
## Version 0.5.2 (May 1, 2017)
- Fixed issue where `pa->num_intervals` was not properly set via the bindings
- Fixed typo that caused incorrect output for `PRIMER_PAIR_EXPLAIN`
## Version 0.5.1 (May 25, 2016)
- Update `thal.c` to incorporate traceback fix from Primer3 dev team
(thanks Triinu)
## Version 0.5.0 (February 25, 2016)
- Update `libprimer3` to version 2.3.7
- Better test coverage for low level bindings
## Version 0.4.3 (December 1, 2015)
- Fixed compilation errors, unicode-related build problems
- Fixed memory allocation / deallocation issues with mispriming libraries
## Version 0.4.2 (September 18, 2015)
- Added `misprimingCheck` function to `primer3/thermoanalysis.pyx`
- Corrected unclear syntax in C API code
## Version 0.4.1 (November 28, 2014)
- Better documentation regarding max. seq. lengths for thermo. calcs
- `calcHairpin`, `calcHomodimer`, `calcHeterodimer`, and `calcEndStability` now raise
`RuntimeError`s as appropriate
## Version 0.4.0 (November 25, 2014)
- Several major bug fixes in the design bindings pipeline
- Better testing framework for the design bindings
- New documentation system
- Better under-the-hood thermodynamic analysis abstraction
## Version 0.3.1 (August 13, 2014)
- Improved support for sequences stored in Bytes objects
- Renamed getThermoParams to loadThermoParams for clarity
## Version 0.3.0 (August 12, 2014)
- Fixed memory leak in global param struct allocation for design bindings
- Integrated C API patch code into `libprimer3`
- Refactored `libprimer3` to pure C (`khash` lib is now used in lieu of hashmap)
- Corrected many minor compiler warnings in `libprimer3`
- (POTENTIAL BREAKING CHANGE) Refactored thermodynamic alignment bindings to
always return a thermoresult namedtuple (in the previous embodiment, if no
structure was found, the return value was `None`)
## Version 0.2.5 (August 7, 2014)
- Fixed incorrect tm/salt correction method lookups in `calcTm` function in
both bindings and wrappers
## Version 0.2.4 (June 17, 2014)
- Addressed bug in mispriming/mishybridization library parsing in which
memory for the global parameters struct was not being properly allocated
## Version 0.2.3 (June 5, 2014)
- Corrected several potential sources of memory leaks in the C API design
bindings.
## Version 0.2.2 (June 3, 2014)
- Corrected issue with parsing `"SEQUENCE_PRIMER_PAIR_OK_REGION_LIST"` as a
python sequence object. `"SEQUENCE_PRIMER_PAIR_OK_REGION_LIST"` should now
be provided as a list of lists or tuple of tuples (or a combination of the
two). -1 should be used in the case where an index is ommitted. For example:
```
Primer3 boulder IO input: 100,50,300,50 ; 900,60,,
Primer3 python input: [[100,50,300,50], [900,60,-1,-1]]
```
## Version 0.2.1 (April 24, 2014)
- C API path fix
## Version 0.2 (April 23, 2014)
- Corrected installation issue (replace inplace with `build_lib` in `setup.cfg`)
- Documentation updates
-
## Version 0.1 (March 3, 2014)
- Initial release