Skip to content

Releases: UC-Davis-molecular-computing/nuad

v0.3.0

02 Aug 16:52
3b86f93
Compare
Choose a tag to compare

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 to assign_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

20 Jul 22:26
47f13f7
Compare
Choose a tag to compare

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 from Strand 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 with domain_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

09 Jul 17:23
c904daa
Compare
Choose a tag to compare

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

08 Jul 19:19
7f48ca1
Compare
Choose a tag to compare

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 to SubstringSampler constructor (David Doty) #199
  • 8c3e38f: Update constraints.py (David Doty) #199
  • 99f5ff9: bumped version (David Doty) #200

v0.1.6

04 Jul 17:07
1fc5505
Compare
Choose a tag to compare

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 to nupack_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

29 Jun 17:09
305b33c
Compare
Choose a tag to compare

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

25 Jun 00:40
a4569a9
Compare
Choose a tag to compare

Commits

  • a44a571: fixes #181: rna_duplex_multiple causes KeyError with parallel=True (David Doty) #184
  • 5305210: fixes #183: restart runs with different random seeds (David Doty) #185
  • cf4b363: bumped version (David Doty) #186

v0.1.3

17 Jun 20:13
5713423
Compare
Choose a tag to compare

Commits

v0.1.2

17 Jun 20:07
56d6a90
Compare
Choose a tag to compare

Commits

v0.1.0

17 Jun 19:53
351cb11
Compare
Choose a tag to compare

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