Scadnano

Latest version: v0.19.4

Safety actively analyzes 688554 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 15

0.18.3

Release notes

Custom delimiter between DNA sequences of domains

A custom delimiter string to go in between DNA sequences of different domains on a strand can be specified, e.g., a space (which is ignored by IDT), so that the exported IDT sequences might look like this for a 3-domain strand:

ST0[8]0[15];/5Biosg/ ACGTCGT ACGTC ACGTAC;25nm;STD

See

https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Strand.vendor_dna_sequence
https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Design.to_idt_bulk_input_format
https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Design.write_idt_bulk_input_file


Commits
- 301edc4: bumped version (David Doty) [278](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/278)
- 315c0f3: fixes 276: customize delimiter between domains in exported DNA sequences (David Doty) [277](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/277)
- 5d8b61d: updated unit test to test for non-default delimiter (David Doty) [277](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/277)
- 96b5e0d: removed delimiters between internal modifications and rest of sequence (David Doty) [277](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/277)
- 93431b4: Update scadnano.py (David Doty) [277](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/277)
- 19975dd: added unit test for internal modification that goes between bases (David Doty) [278](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/278)

0.18.2

Bug fixes related to relaxing helix rolls.

Commits
- 8165951: bumped version (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 3f5bb6e: fixed one unit test (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- a37b35a: Update scadnano.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 0837366: Update scadnano.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- caf20e1: fixed bug in calculating minimum strain angle for helices with no crossovers (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- e832e53: Update scadnano_tests.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 25fa92f: fixes 268: ignore loopouts when relaxing Helix rolls (David Doty) [269](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/269)
- 9ea350b: fixed bug with relaxing roll starting from non-0 roll (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 7d938b5: cleaned up unit test (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 15c1514: Update scadnano.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 770366a: fixes 270: ignore "same helix" crossovers when relaxing helix rolls; also ensures domains on helix are stored in increasing order of start offsets (David Doty) [272](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/272)
- 888565c: added new example (David Doty) [272](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/272)
- 832c503: Update scadnano_tests.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- d84419f: added unit test for relaxing helix rolls with intrahelix crossovers and fixed bug in relax code that didn't account for that case (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- d3a6d7d: change parameter name (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- a2d4e52: fixes 273: deal with inter-group crossovers when relaxing helix rolls (David Doty) [274](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/274)
- 27568e4: Update scadnano_tests.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 1dedd8b: fixed relax helix rolls to ignore intergroup crossovers (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 51fbc9c: Update tutorial.md (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)
- 5189e8d: Update scadnano.py (David Doty) [275](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/275)

0.18.1

Release notes

automatically set Helix rolls based on crossover locations ("relax" the rolls)
In this design, the crossovers are well placed relative to each other, but the helix rolls need to be rotated. As the slice bar shows, with the default roll of 0, the crossovers do not point at the helices they connect to:

![image](https://github.com/UC-Davis-molecular-computing/scadnano/assets/19274365/325b2b42-d7bd-4253-b949-37a7bfac23e9)

![image](https://github.com/UC-Davis-molecular-computing/scadnano/assets/19274365/45ae7174-0c4f-4055-95dc-e5ded60c84b2)

By calling [`Design.relax_helix_rolls`](https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.Design.relax_helix_rolls), the helix rolls are set to minimize "strain" in the crossovers:

![image](https://github.com/UC-Davis-molecular-computing/scadnano/assets/19274365/59b9cdf8-5e68-4ca0-bd8a-0c007011a745)

![image](https://github.com/UC-Davis-molecular-computing/scadnano/assets/19274365/9d1c46de-0819-4d55-913a-fb3528ebde54)

Formally, the strain is defined as the square of the angular distance between the "ideal" angle for the crossover (i.e., the relative angle of the other helix to which it is connecting) and the crossover's current angle. The roll is set so as to minimize this total strain across all crossovers in each helix.

The reason to minimize the sum of the squared angular distances is that, if we model each crossover as an angular spring exerting a rotational force on the helix proportional to its displacement from the "ideal" angle (pointing directly at the other helix), this minimizes the total energy stored in the springs.

Commits
- 2b11342: bumped version (David Doty) [267](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/267)
- 49867e3: Merge branch 'dev' into 257-automatically-set-helix-rolls-based-on-crossover-locations-relax-the-rolls (David Doty) [264](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/264)
- 123e001: closes 257: automatically set Helix rolls based on crossover locations (relax the rolls) (David Doty) [264](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/264)
- 5208be3: fixed some unit tests (David Doty) [264](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/264)
- c370a1f: Update scadnano.py (David Doty) [264](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/264)
- c26dbe6: fixed dependencies (David Doty) [266](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/266)
- 62c5dd5: changed unit test versions for openpyxl and tabulate to versions matching what is in Anaconda package repository (David Doty) [266](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/266)
- 7b963c5: added instructions for installing openpyxl and tabulate to README (David Doty) [266](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/266)
- f45d3f0: fixes 234: export new Excel format (David Doty) [266](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/266)
- 3da4763: added openpyxl to tests_require (David Doty) [266](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/266)
- c177ef0: added openpyxl installation to docs-check GitHub action (David Doty) [266](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/266)
- 50899e3: Merge branch 'dev' into 257-automatically-set-helix-rolls-based-on-crossover-locations-relax-the-rolls (David Doty) [264](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/264)

0.18.0

Release notes

BREAKING CHANGE: label type is now `str`
Strands, domains, loopouts, and extensions have a field `label`. Previously the declared type was arbitrary, though at runtime it was required to be JSON-serializable.

Now we have changed the type of `label` field in `Strand`, `Domain`, `Loopout`, and `Extension` to `str` instead of an arbitrary object.

This is a breaking change because existing code using non-string labels will have to be altered to change the data to a string before storing and change it back to structured data when reading.

If you would like to store "structured data" (e.g., lists or dicts) in the label, you can serialize to a string and deserialize back to structured data manually using the `json` package.

Before, this was possible:

python
from typing import List

previously was possible, now is not supported
nums = [1, 2, 3]
strand.label = nums stores strand.label as the list [1, 2, 3]; would be a mypy type error now

and to get the structured data back out:
nums: List[int] = strand.label would be a mypy type error now


Now this is necessary to store a list of `int`'s in the label:

python
import json
from typing import List

nums = [1, 2, 3]
strand.label = json.dumps(nums) stores strand.label as the string '[1, 2, 3]'

and to get the structured data back out:
nums: List[int] = json.loads(strand.label) nums is now the list [1, 2, 3]


added p8634 variant of M13
There is a variant of M13 mentioned in a few papers (e.g., https://doi.org/10.1038/s41565-022-01283-1) called "p8634". It can be obtained from Tilibit (though not listed on their website). This sequence is now available as a predefined sequence. See https://scadnano-python-package.readthedocs.io/en/latest/#scadnano.M13Variant.p8634



Commits
- d955eda: bumped version (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 2f58b2b: updated docstrings (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 0a482a7: Update scadnano.py (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- c55411e: Update scadnano.py (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- fca673a: added test generated by GitHub Copilot (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 3e84a38: changed docstring for `Design.base_pairs` (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- fc2176b: added examples (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 7b0603b: changed to LR newlines (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 01c43e3: added p8634 variant of M13 (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 0678d55: formatting (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- e8211db: fixed PyCharm warnings (David Doty) [258](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/258)
- 602575d: closes 261: change `label` type to `str` (David Doty) [262](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/262)
- a292757: removed all string type hints and replaced with forward references (not supported in Python 3.6) (David Doty) [262](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/262)

0.17.13

Added p8634 as a variant of M13 available for DNA sequence assignment.

Github action for generating release notes is currently broken, so commits are not listed here. To see them, see PR 851.

0.17.12

Fixed 845, an annoying bug that showed up on the production server but not locally, due to differences between the dev and production compilers for Dart.

Commits
- 6346c08: bump version (David Doty) [847](https://github.com/UC-Davis-molecular-computing/scadnano/pull/847)
- 8b9bf2d: fixed 845 click dragging extension ends crashes (Ho-Chih) [846](https://github.com/UC-Davis-molecular-computing/scadnano/pull/846)
- 8cdac35: Added fix comment (Ho-Chih) [846](https://github.com/UC-Davis-molecular-computing/scadnano/pull/846)

Page 3 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.