Skip to content

Releases: UC-Davis-molecular-computing/scadnano

v0.19.4

06 Sep 16:48
82b085b
Compare
Choose a tag to compare

Release notes

Embed oxView

You can now embed an oxView window in scadnano that will show the current scadnano design. It exports the current design the same as clicking Export-->oxDNA and dragging the .dat and .top files it generates. (Soon we will support the oxView format directly being shown, which preserves colors and base pairs.)

Click on View-->Show oxView:

image

and a window will appear on the right side:

image

Things are a bit buggy right now, for instance if the focus is on the oxView part of the window, then keyboard shortcuts for scadnano will not be recognized (and may be interpreted by oxView instead, e.g., the delete key and undo keyboard shortcuts will be interpreted by oxView). Oddly, clicking on the design/main view, it will not restore the focus, but clicking on the gray background of the menu or slider bars will restore focus to scadnano.

In the future some more features may be added. Currently this is a read-only view; any edits to the structure in oxView are not updated in scadnano and will be lost when the scadnano design changes. One useful feature is to right click on a base and select "focus in oxview":

image

Which will zoom in on and select that base in oxView:

image

If you want to do more sophisticated things in oxView, click on the oxView
window and press M, and the full oxView menu will appear:

image

However, recall that any changes made in this way will be lost upon editing the scadnano design. To make permanent changes it is better to export to oxView via the Export menu and then load that design in a separate oxView page.

Commits

  • ef386b1: bumped version (David Doty) #982
  • 94b387b: Update design_main_dna_sequence.dart (David Doty) #982
  • efab26b: removed .DS_Store and added to .gitignore (David Doty) #982
  • e073989: Update CONTRIBUTING.md (David Doty) #982
  • ac3b6f5: Update CONTRIBUTING.md (David Doty) #982
  • 18474aa: Update CONTRIBUTING.md (David Doty) #982
  • 1e25c86: added some hints for webdev errors (David Doty) #982
  • 39fba78: Update CONTRIBUTING.md (David Doty) #982
  • 6795ce7: replaced quadratic base-pair calculation in oxview export with linear-time search (David Doty) #982
  • 6e535d2: fixed bug in loading design with invalid JSON syntax (David Doty) #982
  • bb5097d: Update CONTRIBUTING.md (David Doty) #982
  • eeb65d1: Update main.dart (David Doty) #982
  • 3e75f1b: Create oxview_update_view.dart (David Doty) #978
  • 1f47128: fixed middleware (David Doty) #978
  • 2161d1b: added iframe to main page (David Doty) #978
  • 5c82d20: using top and dat for now until we can fix the oxview iframe to accept .oxview files (David Doty) #978
  • 561a762: fixed some styling of oxview and scadnano frames (David Doty) #978
  • accf6c0: fixed bad ref to oxview frame id (David Doty) #978
  • dbaec91: fixed slider separator for side pane and main pane; still can't get oxview and separator to display (David Doty) #978
  • 05664b8: got oxview and separator to display; not loading design properly when show though (David Doty) #978
  • 3e53221: cleaned up hover icon on separators after making them darker to distinguish from select modes (David Doty) #978
  • 02aeef0: Update oxview.dart (David Doty) #978
  • 58600d4: made oxview window full width in its container (David Doty) #978
  • 35059e2: got hide/show oxview working almost (David Doty) #978
  • f523e9d: fixed oxview display when showing/hiding the pane. Still need to fix when design changes while pane is open, to replace instead of adding to what was there (David Doty) #978
  • 3ccbe96: fixed bug where oxview displayed on startup even if show oxview is false (David Doty) #978
  • ad8e69b: added ability to focus on oxview base and fixed camera angles and reloading (David Doty) #978
  • 5358919: formatted (David Doty) #978
  • 740d359: Update design_main_strand.dart (David Doty) #982
  • 2f0a36b: closes #980: remove smart_dialog package dependency (David Doty) #981
  • 132f191: formatting (David Doty) #981

v0.19.3

24 Jul 02:45
ebf29a6
Compare
Choose a tag to compare

Bug fixes and one new feature: helices can be growth dynamically while moving/pasting strands: #579.

Commits

v0.19.2

28 Mar 21:49
c79287a
Compare
Choose a tag to compare

Release notes

Several bug fixes and a few new features:

Export to oxView format

The scadnano web interface can now export to the oxView format, which (like oxDNA files) can be read the tool oxView.

It has been possible for a while to export to the oxDNA format, but this is nicer just for visualizing scadnano structures in oxView, because

  1. The oxDNA format has two files, whereas oxView has only one.
  2. The oxView format includes some extra data such as which bases are paired, and what color strands are. This information is populated with the relevant scadnano data. Have the strands be the same color in each tool makes it easier to figure out which strand is which.

For example, this scadnano design:

image

exports like this in oxView:

image

In particular, this provides an immediate visual cue that the view angle in oxView is reversed in both horizontal and vertical directions from that of scadnano, since the purple staple in the bottom right of scadnano appears in the top left of oxView. Rotating it 180 degrees around the y (up-down) axis, and then rotating 180 degree around the z (left-right) axis, then the oxView orientation matches scadnano's:

image

This can also be checked with the axis arrows of oxView and scadnano, which match colors:

image image

Sequences of selected strands are not exported

There was already a feature where only sequences of selected strands could be exported. Now it is possible to declare that exactly the unselected strands should be exported:

image

Commits

  • a071097: bumped version (David Doty) #972
  • 58cd26e: added css class for darker stroke on crossovers within the same helix (David Doty) #972
  • e487457: fixed batch remove label, remove name, set name (Raybipse) #954
  • abcecd2: fixes #953 (Raybipse) #954
  • 22ae227: Fixed batch remove/set for extensions and loopouts (Raybipse) #954
  • f72c32c: implemented logic for filtering connected base pairs (Raybipse) #955
  • 8657d04: Fixed typo in action name for remove strand name (Raybipse) #954
  • d291063: add menu option for retaining color on strand selection (Edwin Chang) #957
  • 1471f3f: implemented logic for filtering connected base pairs (Raybipse) #955
  • 17f944b: closes #895 selected base pair lines is exported (Raybipse) #955
  • 34ff35c: Rebased branch onto dev and fixed minor bug (Raybipse) #955
  • e438f97: Fixed copy image not displaying base lines (Raybipse) #955
  • b3dd9c7: Changed to letterSpacing (Raybipse) #963
  • 146a350: closes #870: Feature request: selection preserves color (Edwin Chang) #957
  • d68babc: reformat code (Edwin Chang) #957
  • 94c0b0f: Refractored code for readability and consistency (RayBipse) #955
  • 1a66286: Setup separate export setting (RayBipse) #963
  • 692e01d: moved set separate text menu (RayBipse) #963
  • a0d3ac2: Added separate text support (RayBipse) #963
  • 5d4cc56: Merge branch 'dev' of https://github.com/UC-Davis-molecular-computing/scadnano into dev (RayBipse) #955
  • 760fb4a: fixes #959: display DNA sequence on extension in order 5' to 3' (David Doty) #960
  • 1840933: fixes bug with setting extension name when no extensions are selected (David Doty) #960
  • 35f4e9f: fixes bug with selecting strand "pieces" (domains/extensions/ends/etc) with new property retain_strand_color_on_selection, which was not being properly prop-drilled into those view components (David Doty) #960
  • da99847: fixed some variable/file names (David Doty) #972
  • c9c2894: fixed problem with non-unique React key when a strand has a 5' and a 3' extension adjacent to the same domain (David Doty) #972
  • 2cfac1f: Update README.md (David Doty) #972
  • 1e78e1e: Fixed the frequent "cannot read undefined" error in console (RayBipse) #963
  • 63b66af: Fixes #941 (RayBipse) #963
  • b307a48: Changed names to snakes case and fixed outline bug (RayBipse) #963
  • bf718f2: Fixed bug export SVG main view doesn't contain a viewbox (RayBipse) #963
  • d0adc28: Merge branch 'dev' into 941-dna-sequences-justified (Ray Zhu) #963
  • 3ce8c86: Fixed wrong merge resolve (RayBipse) #963
  • 3850c48: Fixed bug where selected strands were pink (RayBipse) #963
  • a6b06ac: re-ordered export menu (David Doty) #963
  • 34ba098: added ability to exclude scaffolds from selection when using "select all with same..." (David Doty) #972
  • 33a5630: closes #964: exclude selected strands from export DNA sequences (Dave Doty) #965
  • 77e21ef: Added the button for base pair display (RayBipse) #966
  • 7c5645a: Closes #897 (RayBipse) #966
  • f842e25: Changed the layout for base pair display to checkboxes (RayBipse) #966
  • 4e75ec2: closes #588: export to oxView format (David Doty) #971

v0.19.1

13 Oct 14:51
af78cb4
Compare
Choose a tag to compare

Release notes

A few bug fixes.

Commits

  • 3e752ec: bumped version (David Doty) #951
  • 7395f7f: changed "Select all with same..." trait named "IDT fields" to "Vendor fields" (David Doty) #951
  • 21b7287: fixes #904 large design should not hide strands on hover (Abhishek Gokhale) #949
  • 7da7a68: Formatting changes (Abhishek Gokhale) #949
  • 855fe21: Update README.md (David Doty) #951
  • ca85360: Update README.md (David Doty) #951
  • de91ace: Update README.md (David Doty) #951
  • 0f73968: fixes bug in reading .sc files with old modification keys (David Doty) #951

v0.19.0

07 Sep 00:38
433e709
Compare
Choose a tag to compare

Release notes

IDT fields renamed to Vendor fields

Previously, some fields had names specific to the DNA synthesis company IDT. Now, these have been renamed to the more generic "Vendor" fields:

image

Similarly, the field previously called "IDT text" for modifications has been renamed to "vendor code".

image

The vendor code is used, the same as IDT text was, when exporting DNA sequences to IDT file formats via the Export-->DNA sequences menu.

A similar change was made in the Python package: https://github.com/UC-Davis-molecular-computing/scadnano-python-package/releases/tag/v0.19.0

The change was breaking for the Python package since code using the old field names will have to be re-written. It is not a breaking change if you only use the web interface, since the code reading older .sc files is backwards compatible with the old field names.

Select all with same...

You can select a strand (or multiple strands) and pick Edit-->Copy/Paste/Select-->Select all with same... and select all strands that have the same "trait" as the currently selected strand.

A common case is to use Strand labels to generate "groups" of strands, where strands with the same label are considered in the same group. Then by selecting a strand with that label, and picking "Select all with same..." label:

image

image

all strands with the label are selected:

image

Option for selection box/rope to use intersection instead of containment

In some graphics programs, selecting many objects with a single box will select all objects entirely contained within the box. In others, it will select any object intersecting any part of the box. Scadnano's default behavior is the former, but now the latter can be done through Edit-->Copy/Paste/Select-->Selection box intersection:

image

Then draw a selection box:

image

Note that all strands touching the box are selected:

image

This also applies to rope select mode.

Note that, like with containment, the test for intersection is between the box (or rope-drawn polygon) and the bounding box containing the object (not the object itself). So for instance, although the selection box here does not appear to touch the strand, it does intersect the bounding box of the strand,

image

so the strand ends up selected:

image

Commits

  • cb0d5a2: fixes #902: make menu dropdown wider for Edit-->Copy/Paste/Select (Edwin Chang) #905
  • 1117e88: bumped version (David Doty) #943
  • ff1b027: moved add modification code from design_main_strand.dart to design_main_strand_modification.dart to keep similar code together (David Doty) #943
  • 26bec37: fixed bug in regex for allowed bases on internal modification dialog (David Doty) #920
  • 3e09fab: fixes #919: display internal modifications un-attached to a base between bases (David Doty) #920
  • da641ab: closes #882: select all with same (David Doty) #922
  • ac3cb52: formatting (David Doty) #922
  • 4dece41: added helices as option for "Select all strands with same..." (David Doty) #943
  • b4fa336: closes #598: option for selection box and rope select to use intersection instead of containment (not yet implemented for rope select) (David Doty) #923
  • 8ff9225: formatting (David Doty) #923
  • b31c0dc: closes #924: option for rope select polygon to use intersection instead of containment (David Doty) #926
  • 7999921: Update menu.dart (David Doty) #926
  • 3365b50: fixed example, but problem with #921 still remains (David Doty) #928
  • beb614f: closes #929: rename IDTFields to VendorFields (David Doty) #930
  • 1b6066e: added more tooltips to modification dialogs (David Doty) #930
  • f325b61: bumped version (David Doty) #930
  • 20a2352: fixed unit test (David Doty) #930
  • 9abe176: Update design_footer.dart (David Doty) #943
  • 6208ca5: added keyboard shortcuts to Undo and Redo menus and optional keyboard_shortcut' prop to all MenuDropdownRight` components (David Doty) #943
  • da647f8: removed display_connector field from Modification JSON (David Doty) #932
  • 690c148: closes #931: remove field Modification.id (David Doty) #932
  • f82700a: Update menu.dart (David Doty) #943
  • 376956a: closes #934: deal with non-unique Modification vendor codes (David Doty) #935
  • 00cbd18: closes #917: change deploy action to use node16 (Edwin Chang) #936
  • d8107cb: update formatting and test actions to use latest actions/checkout (Edwin Chang) #936
  • 07a8de3: moved "Show helix coordinates in side view" to View-->Helices submenu and made helix dialogs for setting grid position and position not use saved responses (David Doty) #939
  • 33d2c56: closes #938: changing from grid to no grid removes major ticks (David Doty) #940

v0.18.10

26 Aug 17:23
bb86fcc
Compare
Choose a tag to compare

Bug fix for editing IDT text of internal modifications.

Commits

  • 5d6434e: bumped version (David Doty) #918
  • 4cc8fd3: Update design_main_strand.dart (David Doty) #918
  • 571fda0: fixed bug in editing IDT text of internal modification (David Doty) #918

v0.18.9

26 Aug 04:51
a7fa24d
Compare
Choose a tag to compare

Release notes

Custom delimiters in exported DNA sequences

Added ability to control delimiter symbols in exported DNA sequence files, both delimiters between IDT fields (; in the example below) and between DNA sequences of different domains (- in the example below), e.g.,

image

Which exports this line to a file: strand 1;/5Biosg/-AAAAAAAA-CCCC/ISp9/CCCC-GGGGGGGG;25nm;STD.

Distinction between internal modifications that attach to a base, versus those between bases

Some internal modifications are attached to a base (e.g., internal biotin on a T: /iBiodT/) versus those that go in between bases (e.g., a spacer such as /ISp9/). Previously the web interface assumed all internal modifications are of the former type, and also assumed they could be attached to any base. Now in the web interface (as in the Python package), one can distinguish between these two types, and for modifications attached to a base, can specify a subset of bases that they can attach to (e.g., IDT's internal biotin may only be on a T base):

image

Commits

  • d00fe82: bumped version (David Doty) #916
  • c219170: Update CONTRIBUTING.md (David Doty) #916
  • 0ef4f44: fixes #912: customize delimiter between domains in exported DNA sequences (David Doty) #914
  • c9698af: closes #913: handle internal modifications that go in between bases (David Doty) #915
  • eff3768: fixed edit mod dialog to account for base vs. linker (David Doty) #915

v0.18.8

24 Aug 23:52
3553d90
Compare
Choose a tag to compare

Fixed (continuing) bug in helix roll relax algorithm to ignore intra-helix crossovers and inter-group crossovers.

Commits

  • 0007983: bumped version (David Doty) #911
  • b82a8e9: fixes #906: fix warning about unique React keys (David Doty) #911
  • dd731bf: fixes null crash bug with showing newly created helix in newly created group (David Doty) #911
  • dbdf509: fixed null pointer bug in footer strand details (David Doty) #911
  • 663f28c: fixed helix roll relax algorithm to ignore intra-helix crossovers and inter-group crossovers (David Doty) #911
  • c940c72: formatting (David Doty) #911

v0.18.7

24 Aug 15:07
bc8cb6d
Compare
Choose a tag to compare

Bug fixes related to relaxing helix rolls.

Commits

  • b1aca0e: bumped version (David Doty) #910
  • 2a8f685: Update menu.dart (David Doty) #910
  • 240c772: Update menu.dart (David Doty) #910
  • b85e234: added explanation of Ctrl+click for columns of insertions/deletions to tooltip text for those Edit Mode buttons (David Doty) #910
  • 98d9aec: fixed bug in relaxing helix rolls with intrahelix crossovers and added unit test for that case (David Doty) #910
  • 880194f: fixed relax helix rolls to ignore inter-group crossovers (David Doty) #910

v0.18.6

20 Aug 21:33
89ecffd
Compare
Choose a tag to compare

Fixed bugs in helix relax roll algorithm.

Commits

  • 18bf88f: bumped version (David Doty) #909
  • fca783f: added (commented out) code for faster-rendering base pair lines, but that will not work when exporting selected strands to SVG (David Doty) #909
  • 30ffaca: fixed bug in relaxing helix rolls with loopouts (David Doty) #909
  • 4c65f2d: Update menu.dart (David Doty) #909
  • db57719: fixes #907: fix bug with relaxing helix rolls (David Doty) #908