Changelog
Version 2.0.3 (February 15, 2024)
Fix
_ThermoAnalysis._set_globals_and_seq_args
for improper checks onmisprime_lib
andmishyb_lib
leading to incorrect initialization ofmp_lib
andmh_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 ofThermoAnalysis
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 structuresVersion 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
anddpal_results.sec_struct
initialization toNULL
inrecalc_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 missingseq_lib
datastructure allocation and variable name typos.Increase test coverage to include
misprime_lib
andmishyb_lib
arguments
Version 1.2.0 (March 22, 2023)
Threadsafe changes made to
thal.c
resulting in newthalflex.c
andthalflex.h
andthalflexsignatures.h
.Threadsafe changes made to
libprimer3.c
resulting in newlibprimer3flex.c
andibprimer3flex.c.h
.libprimer3.seq_args
datatype is now renamed tolibprimer3.seq_args_t
test_threadsafe.py
add andnogil
instituted for calls tothal()
andseqtm()
addedrun_design
andcalc_heterodimer
threadsafe testsThermoAnalysis
class no longer needs to be aSingleton
so this was removed as a parent classp3helpers.pyx
houses new sequence and design helper functionssetup.py
package_data
andMANIFEST.in
to assist with future builds fromtar.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 codeIntergrated all Python C-API related code into
thermoanalysis.pyx
/pxd
Deprecated
camelCase
related functions and addedsnake_case
functions / methods inbindings.py
andthermoanalysis.pyx
Migrated
primer3/wrappers.py
totests/wrappers.py
to indicate it should not be used.Expanded test coverage and now using pytest for testing
Added
pre-commit
hooksCall signature update and pattern update:
designPrimers
nowdesign_primers
integrates setting of sequence arguments and global arguments as they are coupled inprimer3_boulder_main.c
. Noteprimer3.primerdesign
was removed, includingsetGlobals
. ReplacesetGlobals(GLOBALS, MISPRIME, MISHYB)
anddesignPrimers(SEQARGS)
with a single calldesign_primers(SEQARGS, GLOBALS, MISPRIME, MISHYB)
.primer3
C code bug fixes to improve compiler warningsUsing
primer3
read_boulder_record
to setup primer3 data structures instead of reproducing code inprimer3-py
C or Cython via a code signature updatedrawDimer
anddrawHairpin
updates to unify sequence structure output for testingIntegrated GitHub Actions for CI testing
Updated
sphinx
documentationBegin process of making
primer3-py
code thread-safeDocumentation migrated to
MyST
MarkdownAutobuild GitHub action for
PyPI
wheels and disttar.gz
on version tagAutobuild 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 sdistClean 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 lettersdisabled 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
thermoanalysis.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 forsetup.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 bindingsFixed 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.7Better 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 toprimer3/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
, andcalcEndStability
now raiseRuntimeError
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
insetup.cfg
)Documentation updates
Version 0.1 (March 3, 2014)
Initial release