Changelog

Version 1.0.0 (February 10, 2023)

  • Migrated primer3 source to 2.6.1 version

  • 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

  • Using primer3 read_boulder_record to setup primer3 data structures instead of reproducing code in primer3-py C or Cython

  • Intergrated GitHub Actions for CI

  • Updated documentation

  • Begin process of making primer3-py code thread-safe

  • Documentation migrated to MyST Markdown

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 inthermoanalysis.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 RuntimeErrors 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