v.1.3
Patch notes v.1.3
So this has been some time in the making with quite some improvements.
NEW
- Added
--compatible-primers: New argument is now available. This allows the user to pass a multi-fasta with already designed primer sequences. At the moment varVAMP checks all new primers for primer dimers against this list (including all permutations of the provided primer sequences) and excludes these primers in any mode. This should enable the user to make multiple primer schemes compatible with each other (at least regarding primer dimers). - Primer dimer considerations: Primer dimers are now more stringently filtered. In all cases, this includes temperature and deltaG checks as well as checks if two primers overlap at the end.
- Primer dimer reporting for the tiled mode: Primer dimer reporting was reworked. Primer dimers now reference the primers in the original scheme, temp and deltaG are reported and the ACII structure lines.
- Primer dimer solve: Primer dimer solve in the tiled mode was reworked. First of all, overlapping primers of the left half (LEFT primers) and right half (for RIGHT primers) are considered as replacements. However, they are only exchanged if they do now form new primer dimers with existing primers in the respective pools that initially passed the primer dimer check.
- Reporting: Sequences in the alignment that result in over-proportionally many gaps can hinder primer design (as varVAMP writes
Nduring gap-cleaning). To help the user be aware of this, such sequences are reported. - Insert overlap logic: We made some small changes to the insert overlap logic in the tiled mode. Now insert overlap is the space between two primers of adjacent amplicons. Previously, insert overlaps included primer regions.
- Threshold consideration: Previously, varVAMP would calculate the threshold or number of ambiguous characters if 50 % of the alignment could be considered for primer regions. Now it calculates the sequence space between potential regions. This results in far better estimates. However, now estimation can only be performed for the threshold. For the qPCR mode settings have to be manually set as of this update.
Performance
A lot of performance issues have been addressed.
- High conservation mode: For alignments where over 90% of the alignment can be considered for primer regions, varVAMP now switches to a stringent mode. Here, only low penalty primers are retained while all overlapping primers are excluded, instead of only the primers overlapping with the middle third. This dramatically reduces graph complexity and thereby computation.
- Find best primers: Changed to set based computations for excluding overlapping primers increasing performance.
- Multiprocessing: varVAMP now implements multi-thread support for all computations that can be done in batches (kmer searcher, amplicon calculations).
- Alignment cleaning: Complex alignments could take quite some time as reported by @Mailinnia. This was now reworked to use numpy-based computations, leading to massive performance gains.
What's Changed
- Clarified insert overlap by @jonas-fuchs in #44
- migrated to pytoml_usage by @jonas-fuchs in #46
- changed alignment cleaning computation by @jonas-fuchs in #53
- Report extensively gapped sequences to user by @jonas-fuchs in #55
- Better param estimation by @jonas-fuchs in #54
- High conservation mode by @jonas-fuchs in #56
- added fasta parsing for compatible primers and revisited primer dimer evaluation by @jonas-fuchs in #57
Full Changelog: v.1.2.2...v.1.3
Thanks a lot to:
@wm75 - Code review
@Mailinnia - Test driving