Scadnano

Latest version: v0.19.4

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

Scan your dependencies

Page 7 of 15

0.15.1

Not much new, mainly this release is to alter the documentation to clarify that scadnano is a separate project from cadnano.

Commits
- [[fb249d8](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/fb249d8181dff1b9fe81b6d52953f39a7540e2d5)]: bumped version to 0.15.1 (David Doty) [#162](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/162)
- [[6ce55c2](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/6ce55c277c956efbf280ba770f67ff7670afaef1)]: added to README note clarifying difference between scadnano and cadnano, and table of contents (David Doty) [#162](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/162)
- [[cb09bfa](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/cb09bfadc2352be0418ac57c925a6f6728b6008e)]: added to API documentation note clarifying difference between scadnano and cadnano (David Doty) [#162](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/162)
- [[bed7b3c](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/bed7b3c40807d786e6bc7c2c7fad3f9ebee85e7a)]: Update tutorial.md (David Doty) [#162](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/162)
- [[05e76b9](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/05e76b95c845f59a2ab23960ec525002ced5b354)]: updated API docs to link from assign_m13_to_scaffold method to M13Variant enumerated type (David Doty) [#162](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/162)

0.15.0

**BREAKING CHANGE:** The field `Strand.idt.name` has been removed. Since each `Strand` now has a `name` field, that is used instead. So replace this:

python
old
idt = IDTFields(name='staple1', plate='plate1', well='A1')
strand = Strand(domains=[domain], idt=idt)


with this:

python
new
idt = sc.IDTFields(plate='plate1', well='A1')
strand = sc.Strand(domains=[domain], idt=idt, name='staple1')


and replace this:

python
old
design.strand(0,0).move(8).with_idt(name='staple1', scale='25nm')


with this:

python
new
design.strand(0,0).move(8).with_name('staple1').with_idt(scale='25nm')


Commits
- [[449f516](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/449f516ddceb18d5530def85cbe0565fdf653df6)]: updated docstrings (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[658e9e4](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/658e9e4df129b0a2b0dbefe2d9997e05cf83703b)]: closes #154; re-make tutorial; The tutorial is now up-to-date with scadnano features as of Dec. 2020. (David Doty) [161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[30cbfcc](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/30cbfcc90a5e53d9091feeeb09f6d578b0b9fdba)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[6a3dea8](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/6a3dea8d4139b1efbec1383718e7f319661950de)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[4a122e9](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/4a122e9d3849986f4a469dcdc473076700c3bfb4)]: added note about offsets being inclusive for half crossovers (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[1de2aa8](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/1de2aa876594204eb091b074f3a2f6043ffab63c)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[2c2cb1e](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/2c2cb1eb863a4789e453769baf3822d195da4604)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[a5969f0](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/a5969f0a8f0e7782e5e44a81197a0d53e92a069f)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[7c03a5d](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/7c03a5df9a6f8d3e3820c19481ada60140ea4887)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[1c09d6f](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/1c09d6f5a0b0cfedb29162aa3ef8d5753353961f)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[c4ea9c0](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/c4ea9c0555a170024e9f8a27f305b3b4fd7dbcc9)]: added note explaining type hints in tutorial (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[77f3a05](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/77f3a059c08f6871299d44b48296176b67b254a9)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[0fe9bf6](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/0fe9bf6881ea1d672b73fd7503253a8c379bf504)]: added screenshot of Excel file to tutorial (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[a563263](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/a563263a9c2c457d32e41bb62dddd93b3a3f70c6)]: Update tutorial.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[3254605](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/3254605c3b7c7e9bbfb972dcce0a52466fa473c7)]: closes #159; remove IDT name field; now Strand.name is the official name of the strand; bumped minor version since this is a breaking change (David Doty) [160](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/160)
- [[b096e5d](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/b096e5da5ab88322ee802565c9d52e080d19be7f)]: updated installation instructions to indicate how to test if scadnano was installed successfully (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)
- [[cfb2ffd](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/cfb2ffd2b14d2becba3f58754d95fe5307a6d93b)]: Update README.md (David Doty) [#161](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/161)

0.14.0

Exporting IDT files with default values for idt fields no longer requires first modifying the Strand.idt field
It is no longer necessary to modify the design to set the field `Strand.idt` in each Strand before calling the methods that export DNA sequences in IDT-formatted files. For staple strands with no idt field, a reasonable default for each value will be chosen.

So it is now possible to do this:

python
import scadnano as sc

design = sc.Design(helices=[sc.Helix(max_offset=100) for _ in range(2)], grid=sc.square)
design.strand(0, 0).move(8).cross(1).move(-8)
design.strand(0, 16).move(-8).cross(1).move(8)
design.assign_dna(strands[0], 'A'*16)
design.assign_dna(strands[1], 'C'*16)

before the change, the next line would have skipped writing the two strands since they have no idt field set,
now, reasonable defaults are used, without requiring the side-effect of writing the field Strand.idt
design.write_idt_plate_excel_file()

to skip exporting strands that lack an idt field, specify the parameter only_strands_with_idt
below, only the newly added strand with T's will be exported; the previous two will not
design.strand(0, 24).move(8).cross(1).move(-8).with_idt('only_strand_to_export')
design.assign_dna(strands[2], 'T'*16)
design.write_idt_plate_excel_file(only_strands_with_idt=True)


This implies several changes in the API

- **BREAKING CHANGE:** Changed the export methods so that, by default (with no parameters specified), they behave differently. In particular, now by default they will export DNA sequences for *all staple strands* (i.e., non-scaffold), using the `idt` field of the Strand if it is present, and otherwise using reasonable defaults, the same defaults that previously were stored in the Strand by calling `Strand.set_default_idt()`.

- **BREAKING CHANGE:** Removed the following:
- field `Strand.use_default_idt`
- method `Strand.set_default_idt()`
- method `Design.set_default_idt()`
- parameter `use_idt_defaults` in function `origami_rectangle.create()`
Now, if you want to set a Strand to have an `idt` field, it must be explicit, although the `IDTFields` constructor only requires a `name` parameter, so it's as easy as `strand.idt = IDTFields('name_of_strand')` if you are happy with the defaults for other `idt` fields such as `idt.purification`.

- **BREAKING CHANGE:** Removed parameter `warning_on_non_idt_strands` from the IDT export methods on `Design`. Now, you can either ask those methods to skip exporting Strands lacking an `idt` field by setting the parameter `only_strands_with_idt` to True, or let all (non-scaffold) strands be exported by setting `only_strands_with_idt` to False (the default).

- Added parameter `export_scaffold` to DNA sequence export methods to allow the scaffold(s) to be exported (False by default).


`Crossover` class and bulk `Design.add_crossovers` method removed

- **BREAKING CHANGE:** (This one is unrelated to exporting IDT files; it is related to the circular strands implemented in [v0.13.4](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/releases/tag/v0.13.4).) Since circular strands make it easier to use the `Design.add_half_crossover` and `Design.add_full_crossover` methods, we have removed the method `Design.add_crossovers` and the type `Crossover`. Previously, that method helped avoid creating circular strands by allowing one to build up a list of Crossovers and add them in bulk, where adding them one at a time would have resulted in an intermediate circular strand, even if the final result had all linear strands. Now that circular strands are supported, this is no longer needed. The recommended method of adding many crossovers at once is simply to call `Design.add_half_crossover` and/or `Design.add_full_crossover` repeatedly, i.e., replace

python
crossovers = [
Crossover(helix=0, helix2=1, offset=16, forward=True, half=True),
Crossover(helix=0, helix2=1, offset=24, forward=False, half=True),
Crossover(helix=2, helix2=3, offset=32, forward=True),
Crossover(helix=2, helix2=3, offset=40, forward=False),
]
design.add_crossovers(crossovers)


with this instead:

python
design.add_half_crossover(helix=0, helix2=1, offset=16, forward=True)
design.add_half_crossover(helix=0, helix2=1, offset=24, forward=False)
design.add_full_crossover(helix=2, helix2=3, offset=32, forward=True)
design.add_full_crossover(helix=2, helix2=3, offset=40, forward=False)




Commits
- [[d2e924c](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/d2e924cb79a75bea75e05d9e4fa226ea460e3eb8)]: closes #111: write_idt_plate_excel_file uses reasonable defaults even when some strands have no IDT field set; bumped version (David Doty) [157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[b52a046](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/b52a0463164aefcd7e1a9eb6e9f796a91e18bbf4)]: updated examples to fully type annotate all functions and avoid name shadowing in if __name__=="__main__" blocks (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[87a47d5](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/87a47d5da066a45dbc915b304bf92a494257ed24)]: fixed bug where scaffold property being lost when joining two strands (at least one of which was scaffold)by crossover; also reworked write_idt_plate_excel_file to work properly with default idt name if idt fields are not present in some strands (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[b17a6a1](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/b17a6a1a3555001844ff13c87d4c51716ace76f8)]: minor documentation and identifier name updates (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[c6620df](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/c6620dfbb87097892bac48a447e97cd25b2218e9)]: cleaned up old links in package docstring (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[e23f361](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/e23f361d95ab14e20f92c09248b1c5ce41e40026)]: re-ran examples after last commit (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[0667935](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/0667935c6e1fbe7d7b6436aa2cb6324dc7918ba1)]: inlined creation of empty design in tutorial script (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[424f478](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/424f478cc49744c2397a62a4255aef6248e45c4d)]: Update scadnano.py (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[dd63418](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/dd63418bd08a54331bde68c5fee444c2989d1ec7)]: made Loopout generic type parameterized by DomainLabel (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[7574058](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/7574058a5cdb7b717a5da8d80b53f1295742e046)]: Update scadnano.py (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[9e32cd4](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/9e32cd404cce18c1ac63c33517e2da2dedbe1527)]: fixed documentation of Strand.rotate_domains (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)
- [[3da17ec](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/3da17ec4d3508b4b0d074ae5d7d902cf92f4c3a9)]: Merge branch 'dev' into write_idt_plate_excel_file-uses-reasonable-defaults (David Doty) [#157](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/157)

0.13.4

Circular strands
Circular strands are now supported. (See 14.) In general, it is not recommended that a final design have circular strands. In particular, there are aspects of scadnano, such as naming conventions for strands and conventions for assigning DNA sequences, that assume the strand has a 5' and 3' end. Under the hood, the domains of a circular strand are still listed in some order, with the same constraint as before that a strand cannot begin or end with a loopout; see 2. In particular, this means a circular strand must have at least one crossover; it cannot be all loopouts linking the domains.

However, circular strands are convenient for the intermediate steps of a design, allowing one to add crossovers and join strands by ligation without worrying whether it will create a circular strand. But it is recommended, particularly before assigning DNA sequences, to linearize all circular strands (i.e., add a nick to break some domain into two, or remove a crossover somewhere). This includes even strands such as those representing M13 that are naturally circular. Otherwise the effect of assigning a DNA sequence is undefined. Operations that circularize and linearize strands with DNA sequences already assigned are similarly undefined and may change the DNA sequence in unexpected ways.

Strand DNA sequence export order
Previously, when exporting DNA sequences, they would be exported in whatever order the strands appear in the Design. Now, there are a few reasonable options to choose from. See 147.

Commits
- [[f524a56](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/f524a56e1b78e9db83a42510edb78fa19853693c)]: closes #147: allow row-major and column/major order of export of strands (David Doty) [156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[481d966](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/481d9669211506cb4f966d6995689cbc2b63f35a)]: updated unit tests (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[76b4b64](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/76b4b64fb9ad4c345501c732c7cd14247671882c)]: fixed documentation of hex coordinate system (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[a1e7467](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/a1e74674b7bdcc61208a06ac4e420938cbf9868d)]: fixed documentation of hex coordinate system (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[9d1ac96](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/9d1ac962405a73bb314fcb9d3ee161d04a0c0fce)]: fixed documentation of Loopout to say they are not allowed on ends of Strand, and added example of creating one with chained method calls. (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[4b13ef2](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/4b13ef26ccf1fee51e0f63e4571b7861fe608f3e)]: closes #14; add support for circular Strands (David Doty) [152](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/152)
- [[893075f](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/893075f37846b2c153a725f975afb3c76da68765)]: fixed docstring errors and bumped version (David Doty) [#152](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/152)
- [[7f5d3c9](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/7f5d3c96556721d825dd4ae8f94042369a627214)]: updated add_half_crossover and add_nick to handle circular strands (David Doty) [#153](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/153)
- [[84db6a8](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/84db6a8bc93cbdde38daa02d2e640193c721d937)]: added ligate method to design and associated unit tests (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[4a7dd1d](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/4a7dd1d6235519ed26044ef7585ec34eb881672d)]: added unit tests for nicking on circular strand with 3 domains and a loopout, nicking on all three domains (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[8eda390](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/8eda390b180f2f27ba924f74d17ef07dab5cf96e)]: Update scadnano_tests.py (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[c58b832](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/c58b8320da8a0607a198c1980e41d846def165c9)]: modified circular strand example script to have length 8 domains (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[5b1d084](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/5b1d08421fc6aa1c66f209dd393012e023dff9cc)]: bumped version to match web interface (David Doty) [#156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[22d446e](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/22d446eced1fccae06974ce84342af9421842e9c)]: updated tutorial script (still not completely in line with #154, however, since issue 111 still need to be implemented) (David Doty) [156](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/156)
- [[5f91962](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/5f91962e9aab8e31281b4fea5edc38200d1ab9cf)]: Modifications not needed in circular example (Cosmo) [#155](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/155)
- [[4ee5e28](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/4ee5e288d4c94fb57791845b2c5df79f7e7470ed)]: Importing circular strands from cadnano to scadnano is now functional. Two tests added: which come from cadnano Autostaple's output (Cosmo) [#155](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/155)
- [[6e27f5f](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/6e27f5f97ac3defafe3a754c127f7f51211ffdfa)]: Exporting designs with circular strands is working, un ignoring tests_inputs/cadnano_v2_export as some .sc files are not generated but directly read by the tests (Cosmo) [#155](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/155)
- [[675b542](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/commit/675b5428385bb8885cb25ba7ad45a225223608a7)]: fixed mypy and PEP errors in cadnano import/export code (David Doty) [#155](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/155)

0.13.3

Copy/paste across designs

Users can now copy strands, load a new design in the same browser window, and then paste those strands.

![copy-paste-across-design](https://user-images.githubusercontent.com/31255679/101793852-16c16300-3abb-11eb-9e02-1ad8a2cafdcd.gif)

Row-major and column-major order of export of strands

When exporting DNA sequences, previously the strand sequences were exported in the order the strands appear in the JSON. You can now specify a few other orderings:, row-major (i.e., lexicographically compared helix, then offset) column-major (lexicographically compared offset, then helix) of:

- 5' ends
- 3' ends
- minimum of 5' or 3' end
- start offset of top-left domain (i.e., domain that is on the minimum-index helix, which is leftmost among all such domains)

Commits
- [[0ba5874](https://github.com/UC-Davis-molecular-computing/scadnano/commit/0ba5874a9f21817061a559d5de3836e23ee7a6b5)]: Fixes #521; Fix deprecation warning on Release action (Benjamin Lee) [528](https://github.com/UC-Davis-molecular-computing/scadnano/pull/528)
- [[f0c92b4](https://github.com/UC-Davis-molecular-computing/scadnano/commit/f0c92b44bb1b464de2b41204796a17cc3a0f5bc5)]: Bump version to 0.13.3 (Benjamin Lee) [#528](https://github.com/UC-Davis-molecular-computing/scadnano/pull/528)
- [[6de75fd](https://github.com/UC-Davis-molecular-computing/scadnano/commit/6de75fdc78033ddaebc029150a43e7360fce839f)]: Fix typo in release title (Benjamin Lee) [#528](https://github.com/UC-Davis-molecular-computing/scadnano/pull/528)
- [[3c69ac6](https://github.com/UC-Davis-molecular-computing/scadnano/commit/3c69ac6ba8ee7d4aa6eb23482cfa7fcce7fdea34)]: added description of "assign DNA complement from bound strands" to README (David Doty) [#544](https://github.com/UC-Davis-molecular-computing/scadnano/pull/544)
- [[5969809](https://github.com/UC-Davis-molecular-computing/scadnano/commit/5969809152dbea07ed37b55472a957a8ba04b3f4)]: closes #520; copy strands from a design, load a new design, and then paste the strands into the newly loaded design (David Doty) [544](https://github.com/UC-Davis-molecular-computing/scadnano/pull/544)
- [[56b860d](https://github.com/UC-Davis-molecular-computing/scadnano/commit/56b860d56456d91455ed345cd001dceee3533f78)]: closes #530: allow row-major and column/major order of export of strands (David Doty) [532](https://github.com/UC-Davis-molecular-computing/scadnano/pull/532)
- [[f4c179a](https://github.com/UC-Davis-molecular-computing/scadnano/commit/f4c179adfd7f6c3b9ccb79bbcb7bf9daffc26fc5)]: Update README.md (David Doty) [#544](https://github.com/UC-Davis-molecular-computing/scadnano/pull/544)
- [[779e288](https://github.com/UC-Davis-molecular-computing/scadnano/commit/779e28802e8ea875dc2f9df6808a03afe85e04fd)]: Update README.md (David Doty) [#544](https://github.com/UC-Davis-molecular-computing/scadnano/pull/544)
- [[d3edf3d](https://github.com/UC-Davis-molecular-computing/scadnano/commit/d3edf3d628210b0df92cb4d2083232fdcb16098a)]: Fixes #489, removes AppState equality checks in UT (Benjamin Lee) [538](https://github.com/UC-Davis-molecular-computing/scadnano/pull/538)
- [[44ab413](https://github.com/UC-Davis-molecular-computing/scadnano/commit/44ab413f405f9a31418df5977a8c00950ee13efe)]: Remove extraneous checks from unit tests (Benjamin Lee) [#538](https://github.com/UC-Davis-molecular-computing/scadnano/pull/538)
- [[8b96d6c](https://github.com/UC-Davis-molecular-computing/scadnano/commit/8b96d6cba8b2316d60fdbe47edb36e792a2e4af1)]: Temporarily change backend due to maintenance (Benjamin Lee) [#539](https://github.com/UC-Davis-molecular-computing/scadnano/pull/539)
- [[fad560a](https://github.com/UC-Davis-molecular-computing/scadnano/commit/fad560aa24b6fe4ff29dc4b0049a76009c8c4f41)]: Changing backend URLs to https server (Cosmo) [#543](https://github.com/UC-Davis-molecular-computing/scadnano/pull/543)

0.13.2

new feature: "assign DNA complement from bound strands"

I couldn't think of a less awkward phrase, but what this feature allows you to do (see here: https://github.com/UC-Davis-molecular-computing/scadnano/issues/518) is to assign a DNA sequence to a strand based on existing strands bound to it that already have DNA assigned. This is under the context menu when right-clicking on a strand or a group of selected strands:

![image](https://user-images.githubusercontent.com/19274365/99916017-49e2b480-2cbc-11eb-9d58-de7400977b3f.png)

The "normal" way, particular for DNA origami with a single scaffold strand that is bound to every staple strand, is to assign a DNA sequnce to the scaffold and allow the complementary DNA sequence to be computed for every staple strand bound to it.

But in some circumstances, you might have some strand(s) that already have DNA sequences assigned, and through some modification of the design, new strand(s) come to be bound to them that were not present in the design at the time the DNA sequence was assigned. This feature allows you to select that new strand (or many strands if you like), and tell it to receive the appropriate complementary DNA sequence. It is equivalent to iterating over each strand bound to the selected strand(s), selecting "Assign DNA" from the context menu, and selecting the option "assign complement to bound strands", re-assigning the DNA sequence already assigned to that strand.

bug fix: exporting modifications to IDT files

This is technically classified as a bug fix, but really it's a feature I simply forgot to implement until now. The scadnano web interface supports displaying modifications on the 5' and 3' ends, and internal modifications, together with a "IDT text" field indicating what to output in exported files for ordering DNA strands from the synthesis company IDT. But until this version, the IDT text field was omitted from the exported DNA sequences. For instance, if you add a 5' biotin modification using IDT code `/5Biosg/`:

![image](https://user-images.githubusercontent.com/19274365/99915945-df317900-2cbb-11eb-992f-c69383594595.png)

then it will show up in exported IDT files using the same text `/5Biosg/`.


Commits
- [[76ba84c](https://github.com/UC-Davis-molecular-computing/scadnano/commit/76ba84c02f2c61c97a4fc162efc0d098ae7e2392)]: closes #518: add "assign DNA complement from bound strands" option (David Doty) [523](https://github.com/UC-Davis-molecular-computing/scadnano/pull/523)
- [[9b80745](https://github.com/UC-Davis-molecular-computing/scadnano/commit/9b8074556b9e450866750e4c8413cf6aeffaef3b)]: fixes #524: DNA ends not selectable by scaffold/staple after changing strand type (David Doty) [527](https://github.com/UC-Davis-molecular-computing/scadnano/pull/527)
- [[60ef6b8](https://github.com/UC-Davis-molecular-computing/scadnano/commit/60ef6b8daeb2392c1f2139300983c2a639666784)]: beefed up error-handling when catching errors with no cause or message field (David Doty) [#527](https://github.com/UC-Davis-molecular-computing/scadnano/pull/527)
- [[0fc270b](https://github.com/UC-Davis-molecular-computing/scadnano/commit/0fc270bb6e127a855c4eeb9c670351de0e07719d)]: fixes #525: export sequences to IDT should put modifications in sequence (David Doty) [527](https://github.com/UC-Davis-molecular-computing/scadnano/pull/527)
- [[92035e9](https://github.com/UC-Davis-molecular-computing/scadnano/commit/92035e956713b8c07b7df7d1e67950b1a593e463)]: fixed unit test to properly test is_scaffold property on domains after Strand is_scaffold property is set by calling initialize(), which sets Domain.is_scaffold field (David Doty) [#527](https://github.com/UC-Davis-molecular-computing/scadnano/pull/527)
- [[981081a](https://github.com/UC-Davis-molecular-computing/scadnano/commit/981081a3e9e49482ca2ed203c6ca5bf75cbe68fa)]: bumped version (David Doty) [#527](https://github.com/UC-Davis-molecular-computing/scadnano/pull/527)
- [[5bd9ba2](https://github.com/UC-Davis-molecular-computing/scadnano/commit/5bd9ba2cec89fd3ca5b4136db6ae426ea2e6ead8)]: Merge branch 'master' into dev (David Doty) [#527](https://github.com/UC-Davis-molecular-computing/scadnano/pull/527)

Page 7 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.