Releases: UC-Davis-molecular-computing/nuad
v0.3.0
Breaking changes
A few function names have changed, in particular nupack_complex_free_energy_*
functions are now nupack_free_energy_*
to avoid confusion with the ComplexConstraint
class and functions creating those.
Commits
- 8d67ae8: removed warnings about
report_only_violations
being ignored, now that #134 is implemented (David Doty) #215 - b0245f2: Update search.py (David Doty) #215
- 7cfb3a2: added parameter
overwrite
toassign_sequences_to_scadnano_design
to force overwrite of existing sequences (David Doty) #215 - 9376e02: changed type of
_process_pool
and ensure it is non-None
if accessed (David Doty) #215 - 2106de1: closes #213: display constraints report graphically in jupyter notebook (David Doty) #214
- 0f40483: fixed sphinx errors (David Doty) #214
- 4530191: closes #133: implement parallelism for SingularConstraints (David Doty) #215
- 1de5b5d: fixed scrolling output (David Doty) #215
- ae114a1: Update search.py (David Doty) #217
- 472ff71: added time trials Jupyter notebook that got lost in the failed merge (David Doty) #217
- 3e4d787: beefed up display options for
display_report
(David Doty) #217 - b633f17: re-implemented #133 after changes disappeared mysteriously in most recent PR (David Doty) #217
- 9c69d26: Update vienna_nupack.py (David Doty) #217
- ab39a3d: bumped version to 0.3.0 because of breaking changes in function names (David Doty) #217
- bc1395a: Merge branch 'main' into dev (David Doty) #217
v0.2.0
Breaking Change: removed domain_names
parameter from Strand
constructor
In fixing issue #175, we have removed the argument domain_names
from the Strand
constructor. Now, the correct way to create a Strand
from a list of domain names is to call the new method Design.add_strand
.
In particular, you will need to create a Design
prior to creating any strands.
The Design.add_strand
method returns the Strand
that was created, so design.add_strand
should be a drop-in replacement for the Strand
constructor that was previously used in this way.
So replace code like this:
# XXX: no longer works
strands = [Strand(domain_names=[f'a{i}', f'b{i}']) for i in range(5)]
design = Design(strands)
with this
# new way to create a Strand from domain names
design = Design()
strands = [design.add_strand(domain_names=[f'a{i}', f'b{i}']) for i in range(5)]
The reason this was done was to address issue #175. When the add_strand
method sees a new domain name, it creates a new Domain
object and saves it in the Design
, and when it sees a domain name that has been used before with the same Design
, then it uses the saved Domain
.
Previously, this saved Domain
object was stored in a global variable, which caused incorrect results in scripts where two designs were used at the same time with the same domain names.
Caution: call Design.computed_derived_fields()
Previously, it was advisable to create the Design
last, after creating all domains and strands. The constructor calls a method Design.computed_derived_fields()
that computes some fields based on other fields in Design
.
This method is called at the start of nuad.search.search_for_dna_sequences
, so if all you do with a design is give it to this function, your code should still work. However, if you are doing any other processing in between creating the Design
object and calling that function, then it is safest to call Design.computed_derived_fields()
to ensure that these fields have the proper values.
For example, the field Design.domains
is computed based on the strands in the design, so for it to be correct this method may need to be called, in case Strands were added "manually" by appending to the field Design.strands
, although that field should be correct if Design.add_strand
is called to add strands.
Commits
- 31b3220: updated requirements to include tabulate and installation instructions in README (David Doty) #207
- a50a454: Update search.py (David Doty) #207
- 13e6337: fixes #190:
DomainPool
's should have distinct names (David Doty) #204 - ec40907: closes #175: Domains and pools should be stored per-design (David Doty) #206
- bfb9c17: updated installation instructions to include pip (David Doty) #207
- 422e391: Update README.md (David Doty) #207
- 1ba345b: Update README.md (David Doty) #207
- beeb30c: Update README.md (David Doty) #207
- d7e1619: Update README.md (David Doty) #207
- 6e74f96: Update README.md (David Doty) #207
- 4b16c91: Update constraints.py (David Doty) #206
- f6dda1a: switched to print statements instead of logging for iteration updates; still need to add SearchParameters options to control this more (David Doty) #206
- 3b47359: closes #134: implement
SearchParameters.report_only_violations
(David Doty) #205 - d9cd965: Update search.py (David Doty) #205
- 43a5cc8: removed Python 3.8+ f-string formatting (David Doty) #205
- e56a861: Merge branch 'dev' into 175-domains-and-pools-are-global-rather-than-per-design-recreating-same-design-causes-error (David Doty) #206
- 6c5f215: added option
SearchParameters.scrolling_output
to control whether screen output scrolls on the terminal or updates in place (David Doty) #206 - 3c1ab46: bumped version since removing
domain_names
parameter fromStrand
constructor will be a breaking change (David Doty) #206 - faaaec3: updated docstring for scrolling_output (David Doty) #206
- e490fdd: fixed unit tests to use
Design.add_strand
instead of Strand constructor withdomain_names
parameter (David Doty) #206 - caabd55: fixed API calls in examples in examples folder (David Doty) #207
- 9387ad3: fixed unit test calling Complex constructor (David Doty) #207
v0.1.8
Commits
- 2695bc5: removed docstring comments in m13 function that were copied from scadnano and are out of place in nuad (David Doty) #203
- f6ba02f: Update constraints.py (David Doty) #203
- 6aef2d1: changed type of SubstringSampler.start_indices from list to tuple (David Doty) #203
- fbd9e54: closes #201: fix protocol for choosing dependent domains to change, and independent domains to be weighted to affect change probability (David Doty) #202
- 3bb9119: fixed bug in computation of domains intersecting strand for when strand does not cover whole domain tree (David Doty) #202
- 1bb3116: Update version.py (David Doty) #202
v0.1.7
Commits
- f0b5264: added Napoleon Sphinx extension for processing Google-style docstrings (David Doty) #198
- 8b3fbf6: added field
SearchParameters.target_score
(David Doty) #198 - 91a9ba7: partly addressed #191 for RNAduplex strand pairs; still need to add for other
StrandPairsConstriant
's (David Doty) #198 - f7cbd04: fixed None access bug (David Doty) #198
- d550388: Update many_strands_no_common_domains.py (David Doty) #198
- 16a81c7: fixed subscripting bug where ForbiddenSubstringConstraint.substrings is specified as a set (David Doty) #200
- ab38ee7: closes #191: pre-packaged strand pair constraints should allow threshold to depend on number of complementary domains (David Doty) #198
- 6a965fd: Merge branch 'dev' into 191-pre-packaged-strand-pair-constraints-should-allow-threshold-to-depend-on-number-of-complementary-domains (David Doty) #198
- d2bc378: added typing_extensions to requirements.txt (David Doty) #198
- c579189: fixed Protocol import to try typing first, then typing_extensions if an ImportError (David Doty) #198
- e22fddd: Update constraints.py (David Doty) #198
- d183406: Merge branch 'dev' into 197-store-domainpoolpossible_sequences-as-a-single-longer-sequence-and-substring-length (David Doty) #199
- 1ff68d1: formatting (David Doty) #199
- 128d161: closes #197: introduce SubstringSampler class to store DomainPool.possible_sequences as a single longer sequence and substring length (David Doty) #199
- 92fd2a6: fixed bug with storing modifications for strands that crashed on using restart search option (David Doty) #199
- 90ad762: added
except_overlapping_indices
parameter toSubstringSampler
constructor (David Doty) #199 - 8c3e38f: Update constraints.py (David Doty) #199
- 99f5ff9: bumped version (David Doty) #200
v0.1.6
Commits
- d61702a: Update README.md (David Doty) #194
- c01b683: change dsd to nuad in a few places (David Doty) #194
- 611fa61: sleep for half a second before clearing directory to prevent file errors (David Doty) #194
- 04d4a6a: change
nupack_strand_pair_constraint
tonupack_strand_pairs_constraint
to be consistent with other naming conventions (David Doty) #194 - 5e844a3: fixes #192: parallel constraints will fail on single-cpu systems (David Doty) #193
- 3576e9f: rename packages to use n (nuad) instead of d (dsd) (David Doty) #193
- fa50f5d: bumped version (David Doty) #194
v0.1.5
Commits
- 19f8acc: fixes #182:
info_log_file=True
should create output directory before opening log file (David Doty) #187 - 1cb834d: bumped version and fixed version in doc/conf.py to use single source of truth (nuad/version.py) for version number (David Doty) #187
- 13e7ce7: Merge branch 'dev' into 182-info_log_file-true-tries-to-open-log-file-before-creating-output-directory (David Doty) #187
v0.1.4
v0.1.3
v0.1.2
v0.1.0
Commits
- b11c646: Change sc_domain.dna_sequence() -> dna_sequence (Constantine Evans) #174
- 937a4ec: Add include_package_data to setup.py, .par files to MANIFEST. (Constantine Evans) #176
- 1894e58: Delete version.py (David Doty) #177
- 0120d38: added .readthedocs.yaml and specified custom readthedocs requirements that omit NUPACK dependency (David Doty) #177
- 86718e1: bumped version (David Doty) #177
- 2f83838: Update version.py (David Doty) #177