Release v5.2.0 "maräng".
Thanks to all users, especially @amijalis and @jan-glx who found bugs in the way features are handled (#92 and #88) . Hopefully these bugs have been solved in this release.
There is an important change in how restriction digestions are handled. Before this release, enzymes would cut in the order they were given if in a list or some other ordered iterable.
In the present release, the enzyme that cut the sequence in the first (5'-most) position is used to create a linear sequence. The linear sequence is then digested with all enzymes using the underlying Biopython function. This happens regardless of the order the enzymes were given. I decided that this was the way that creates least surprises for the user.
An example:
from pydna.dseqrecord import Dseqrecord
"""
aaaGGATCCnnnGAATTCnnGGATCCggg
tttCCTAGGnnnCTTAAGnnCCTAGGccc
"""
x=Dseqrecord("aaaGGATCCnnnGAATTCnnGGATCCggg", circular=True)
from Bio.Restriction import BamHI,EcoRI
assert (x.cut(BamHI, EcoRI) ==
x.cut(EcoRI, BamHI) ==
x.cut(BamHI+EcoRI))
a, b, c = x.cut(BamHI,EcoRI)
print(a.figure())
print(b.figure())
print(c.figure())
"""
Output:
Dseqrecord(-13)
GATCCnnnG
GnnnCTTAA
Dseqrecord(-12)
AATTCnnG
GnnCCTAG
Dseqrecord(-16)
GATCCgggaaaG
GccctttCCTAG
"""
Other changes:
removed .github/workflows/codeql-analysis.yml
Update to using Poetry for build. No conda packages will be built.
added dependencies:
- pyperclip
- pyqt
- pyfiglet
run_test.py now returns an integer (0 or 1).
Using pyfiglet for the logo (now including version).
Changed Biopython FeatureLocation to SimpleLocation everywhere.
Added a terminal_transferase method for Dseq
and Dseqrecord
for T/A cloning.
New private method _firstcut
for Dseq
. This is used to determine the first cut of a circular sequence.
NEW function shift_location
in pydna.utils.
Dseqrecord cut and shifted has new an hopefully more manageable code.
NEW figure method for Dseqrecord
.
new default feature color for ape : #ffff49
for better visibility.
NEW file pydna/gui.py, work in progress for a GUI viewer for sequences.
NEW function pydna/sequence_picker.py
😄 . No documentation yet 😞
Removed seqfeature.py file and SeqFeature subclass.
LOTS of new tests:
- test_amijalis
- test_jan_glx
Dseq
figure method now takes a class variable "trunc" to control if sequences in figure are truncated or not
NEW Dseqrecord methods:
Dseqrecord.copy_gb_to_clipboard()
Dseqrecord.copy_fasta_to_clipboard()
Full Changelog: v5.0.1...v5.2.0