All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Refactored dimer prediction to look for exact 3' matches (as per Itokawa et al., 2020) with a Tm > 0.
- Add primary_only to run report config section
- Allow inputs with IUPAC ambiguity codes
- Fix unintended high-gc mode persistance when run as Celery task
- Fix incorrect parameter name in run report json
- Implement high-GC config option
- Warn user if high-GC detected (without --high-gc option)
- Include ref counts in run report
- Widen default primer size range (min 19, max 34 bp)
- Fix bug where last region could be a duplicate amplicon in opposite pool (no progress)
- Add MultiplexScheme parameters to debug log output
- Add version number to debug log and run report
- Improve --amplicon-size help text
- Move reference info logging into cli
- Fix outpath option in README
- Fix --amplicon-size % variation in help text
- Remove logger name from log file output
- Add
--pinned, -p
option: reverts to designing primers exclusively from first reference - Add short option names
- Add option to pass single target amplicon size and auto-determine a suitable range
- Add web interface link to README
- Switch from Argparse to Click
- Rename options
- Allow
--amplicon-size, -a
to be passed once to set a target size, or twice to set an exact size range - Refactor test_cli.py to use CliRunner throughout
- Remove argparse
- Remove non-functional --step-distance option
- Remove automatic reference sort on length (no longer serves a purpose)
- Fix edge case where last-but-one region steps right, putting last region out of bounds
- Fix (usually) inconsequential out-by-one error to make Window.slice_end coord inclusive
- Fix number of reported candidates considered
- Fix missing exception message where no suitable pair found
- Fix incorrect logging of --no-sort
- Define ProgressTracker interface as abstract base class (to facilitate web interface progress)
- Reorganise Region and Window into region.py
- Drop secondary references on repeated flank alignment failure
- Add primary_ref, secondary_refs and excluded_refs to json run report
- Reduce complexity of Region find_primers() method
- Use progress library
- Add region and considered primers to progress message
- DIY progress bar
- Use all reference sequences for primer generation
- 3' distance-weighted mismatch scoring
- Avoid stable heterodimers in same pool
- Sort inputs by length, to make longest the primary by default (--no-sort reverts)
- Inserts bed file output
- Run report json output
- Infer mismatches from aligned references and primer coordinates
- Merge mismatch and base primer scoring
- Generate primers by digesting all references into K-mers at region flanks
- Use own implementation of Primer3 base penalty algorithm
- Update parameters for thermodyamic calculations
- Rationalise the config file
- Remove any remaining constants from the code base
- Reduce code complexity
- Consolidate exception handling
- Improve candidate sorting to ensure deterministic output.
- primer3 FindPrimers function
- Redundant classes
- Redundant exceptions
- Windows compatibility
- Tests
- Valid BED file strand column
- Use parasail for alignment
- Improve stdout and logging
- Improve code readability
- Improved CLI
- Candidate ranking improvements
- Various bug fixes
- Speed improvements