Releases: ribokit/Primerize
v1.6.5
Transfer to Ribokit
Version bump for repository ownership transfer, no code changes, only docs updates.
Check for base-pair mismatch and UNION mode
- Added checking and warning for non-Watson-Crick base-pair in Primerize_3D jobs
- Changed default of DIFF mode to UNION mode in Primerize_3D jobs: helices shared across all input structures are now included as negative controls in experiments
- Restructured codebase files
Add Primerize_Custom class
- Add Primerize_Custom class for user specified list of constructs to make.
- Improve Construct_List and Mutation classes with merge() method, and type checking. Initiate Construct_List with 'WT' as first.
- Bug fix _mutate_primer() now use Construct_List, instead of calling get_mutation() again. Add mutation validity and out-of-bound checking.
Fix str_2_bps multi-mutation bug
Now parses secondary structure helix-wise, and then to base-pairs. This prevents from reshuffling of base-pairs from multiple structures and the resulting disarray of multi-mutation (e.g. when N_mutations = 2). The helix-wise algorithm groups base-pairs by helix, avoiding cross-helix mutants.
Also added new library for Mutation/Rescue: "Stable", which mutates all base-pairs to G:C pairs.
Unit Test and Singleton Class
- Added unit tests for entire module.
- Added Singleton Class, and used for Primerize_1D, Primerize_2D, Primerize_3D, and Nearest_Neighbor_Parameter classes. Only one instance allowed, and already initialized under
primerize
namespace. - Moved
has()
to__contains__()
for Plate_96Well, Mutation, and Construct_List classes. Usein
from now on. - Added strict filter for coords using RegExp.
- Used lambda function together with map and filter.
Drop numba dependency
Drop hard requirement for using numba @jit decorator on dynamic programming loop optimization. It now becomes an optional dependency for better run speed. If numba is installed, it will be detected and enabled. This is to reduce the complicated overhead for installing primerize for first-time users.
P.S. Thanks to Caleb Geniesse and Ann Kladwang for testing!
Sphinx Documentation
Added docstring for key classes and methods to generate Sphinx documentations, hosted on ribokit.github.io
Marked certain functions as private, and fixed import for those.
Illustration for Primerize_3D
- Added string illustration of sequence regions and base-pairs under investigation with highlighting for Primerize_3D results.
- Added base-pair connectivity table (bps) to Primerize_3D results.
Stable Primerize_3D designs
- Used Mutation for plate well tag; add tag to Plate;
- Highlighted color WT primer not just by name, but compare to ref_primers;
- Fixed Primerize_3D diff_bps when only 1 input structure;
- Fixed sequence unicode error;
- Fixed bug of eq for Mutation;
- Used init_dict for Design_* classes init; added iter for Mutation and Construct_List; added color echo for Mutation;
- Restructred code base .py files.