Changelog
Version 2.2.0 (May 19, 2025)
Test improvements (determinism + increased coverage)
Sanitize
calc_tminput (see issue #115)Modernize build system & release process (see issue #154)
Version 2.1.0 (February 26, 2025)
Support for python 3.13
Silence stderr output during ascii structure generation (issue #146)
Updated default formamide concentration to match latest primer3web value + oligotm default (issue #140)
Version 2.0.3 (February 15, 2024)
Fix
_ThermoAnalysis._set_globals_and_seq_argsfor improper checks onmisprime_libandmishyb_libleading to incorrect initialization ofmp_libandmh_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
todictmethod ofThermoAnalysis
Version 2.0.0 (May 30, 2023)
Migrated primer3 header file Cython extern imports to
thermoanalysis.pxiOptional C structure string argument
c_ascii_structureadded to_ThermoAnalysismethods 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_structanddpal_results.sec_structinitialization toNULLinrecalc_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_libto correct missingseq_libdatastructure allocation and variable name typos.Increase test coverage to include
misprime_libandmishyb_libarguments
Version 1.2.0 (March 22, 2023)
Threadsafe changes made to
thal.cresulting in newthalflex.candthalflex.handthalflexsignatures.h.Threadsafe changes made to
libprimer3.cresulting in newlibprimer3flex.candibprimer3flex.c.h.libprimer3.seq_argsdatatype is now renamed tolibprimer3.seq_args_ttest_threadsafe.pyadd andnogilinstituted for calls tothal()andseqtm()addedrun_designandcalc_heterodimerthreadsafe testsThermoAnalysisclass no longer needs to be aSingletonso this was removed as a parent classp3helpers.pyxhouses new sequence and design helper functionssetup.pypackage_dataandMANIFEST.into 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
primer3source to 2.6.1 version, which adds new arguments for melting temperature codeIntergrated all Python C-API related code into
thermoanalysis.pyx/pxdDeprecated
camelCaserelated functions and addedsnake_casefunctions / methods inbindings.pyandthermoanalysis.pyxMigrated
primer3/wrappers.pytotests/wrappers.pyto indicate it should not be used.Expanded test coverage and now using pytest for testing
Added
pre-commithooksCall signature update and pattern update:
designPrimersnowdesign_primersintegrates setting of sequence arguments and global arguments as they are coupled inprimer3_boulder_main.c. Noteprimer3.primerdesignwas removed, includingsetGlobals. ReplacesetGlobals(GLOBALS, MISPRIME, MISHYB)anddesignPrimers(SEQARGS)with a single calldesign_primers(SEQARGS, GLOBALS, MISPRIME, MISHYB).primer3C code bug fixes to improve compiler warningsUsing
primer3read_boulder_recordto setup primer3 data structures instead of reproducing code inprimer3-pyC or Cython via a code signature updatedrawDimeranddrawHairpinupdates to unify sequence structure output for testingIntegrated GitHub Actions for CI testing
Updated
sphinxdocumentationBegin process of making
primer3-pycode thread-safeDocumentation migrated to
MySTMarkdownAutobuild GitHub action for
PyPIwheels and disttar.gzon version tagAutobuild GitHub action
sphinxdocumentation updates on version tag
Version 0.6.1 (May 9, 2020)
Fixed issue related to absolute paths populated in
SOURCES.txtof sdistClean up in
setup.pyand 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.calcTmreturned 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.cC macro errors.Added the
todict()methods inthermoanalysis.pyxfor 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_clibto 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_intervalswas not properly set via the bindingsFixed typo that caused incorrect output for
PRIMER_PAIR_EXPLAIN
Version 0.5.1 (May 25, 2016)
Update
thal.cto incorporate traceback fix from Primer3 dev team (thanks Triinu)
Version 0.5.0 (February 25, 2016)
Update
libprimer3to 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
misprimingCheckfunction toprimer3/thermoanalysis.pyxCorrected 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, andcalcEndStabilitynow raiseRuntimeErrors 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
libprimer3Refactored
libprimer3to pure C (khashlib 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
calcTmfunction 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_libinsetup.cfg)Documentation updates
Version 0.1 (March 3, 2014)
Initial release