Scadnano
Web application for designing DNA structures such as DNA origami.
Install / Use
/learn @UC-Davis-molecular-computing/ScadnanoREADME
scadnano
scadnano ("scriptable-cadnano", source code repository here) is a program for designing synthetic DNA structures such as DNA origami. The scadnano project is developed and maintained by the UC Davis Molecular Computing group. Note that cadnano is a separate project, developed and maintained by the Douglas lab at UCSF.
If you find scadnano useful in a scientific project, please cite its associated paper:
<ins>scadnano: A browser-based, scriptable tool for designing DNA nanostructures</ins>.
David Doty, Benjamin L Lee, and Tristan Stérin.
DNA 2020: Proceedings of the 26th International Conference on DNA Computing and Molecular Programming
[ paper | BibTeX ]
Table of contents
- Overview
- Reporting issues
- Tutorial
- WARNING: Save your work
- Stable and development versions
- Terminology
- Grid types
- Relation of grid_position and position to side and main view display
- Navigation and control
- Menu
- Side view menu
- Edit modes
- Circular strands
- Assigning DNA
- Exporting to cadnano
- How to design structures manually using scadnano
- Reset local settings
- Running offline
- Performance tips
- Contributing
Overview
The design of scadnano is similar to cadnano, specifically version 2, with three main differences:
-
scadnano runs entirely in the browser, with no installation required. Currently only Chrome, Firefox, and Edge are supported.
-
scadnano designs, while they can be edited manually in scadnano, can also be created and edited by a well-documented Python scripting library (help / API), to help automate tedious tasks.
-
The file format is easily human-readable (see example below), to help when debugging scripts or interfacing with other software.
This document explains how to use the web interface for viewing and manually editing designs. The documentation for the Python scripting package is here. This document does not assume any familiarity with cadnano, although some parts explain slight differences between cadnano and scadnano for the benefit of those who have used cadnano.
Although this document provides some help with how to use scadnano, it is not comprehensive. scadnano is fairly discoverable, however, so nearly every capability it has can be found by looking though the menu, right-clicking on various objects such as strands/crossovers/etc. and by hovering over certain objects to see the pop-up text message that gives more information.
Please file bug reports and make feature requests as GitHub repository issues in the repositories for the web interface or the Python scripting library.
We will try to announce breaking changes (and possibly new features) under the GitHub releases page. The version numbers in this web interface repo and the Python library repo won't always advance at the same time, and sometimes a feature is supported in one before the other.
Following semantic versioning, version numbers are major.minor.patch, i.e., version 0.9.2 has minor version number 9. Prior to version 1.0.0, when a breaking change is made, this will increment the minor version (for example, going from 0.9.4 to 0.10.0). After version 1.0.0, breaking changes will increment the major version.
Reporting issues
Please report issues in the web interface at the scadnano web interface GitHub repository, and report issues in the Python scripting library at the scadnano Python package GitHub repository.
If you find an existing issue that you would like to see handled, please "vote" for it with the GitHub "thumbs up" on the top comment describing the issue:

Tutorial
A tutorial shows how to create a "standard" 24-helix DNA origami rectangle using the scadnano web interface.
WARNING: Save your work
It is strongly recommended that you frequently save your work by pressing the "Save" button to save your
design to a .sc file on your computer.
Despite being run in a browser, currently this application is not really a "web app". Nothing is stored on a server; everything is running and being stored in your browser locally. In particular, your design is not automatically saved in an easily recoverable way. For convenience only, the application uses something called localStorage to store your most recent design in the browser. Thus, if you close your browser and re-start the application later, you should see the design you were working on before. There are some options to customize the schedule of this in the file menu.
However, relying on your browser's localStorage is not a safe or recommended method of saving your work. The storage format may change, or your browser may remove the contents of localStorage, and then your work would be lost. You should press the "Save" button (or Ctrl+S keyboard shortcut) to save your design to your local file system. Unfortunately, due to browser security restrictions on accessing the local file system, it is not possible to save your file automatically without further interaction; after pressing "Save", you will always be prompted to specify a filename to which to save.
Chrome automatically appends (1), (2), ... to the filename if it already exists in the directory, so repeatedly saving the file will change its name on your local filesystem every time. To disable this so that it uses the same filename every time you save, you can install the extension Downloads Overwrite Already Existing Files.
Security settings preventing saving: Some users have reported that in Chrome, they will be unable to save the file, which we have tracked as an issue. However, it's not straightforward to reproduce that error. If you have trouble with this, try setting your Chrome "Safe Browsing" settings from "Enhanced protection" to "Standard protection". This is in Chrome Settings (listed under ⋮ symbol in the top right), under "Security". (See the issue for a screenshot.)
Stable and development versions
- stable: https://scadnano.org
- dev: https://scadnano.org/dev
The scadnano stable version matches what is on the main branch of the web interface code repository. The scadnano dev version matches what is on the dev branch of the web interface code repository.
Releases of the stable version are explained on the releases page. When issues are handled in a release, they are closed at the time the changes make their way to the main branch. If an issue is handled in the dev branch, the issue remains open, but you will see a comment that looks something like this: "dave-doty added a commit that referenced this issue 17 hours ago @dave-doty make width of File menu just enough to fit all entries on one line; fixes #339". These comments can help you decide if you want to use the latest version of scadnano (https://scadnano.org/dev), which has fixed an issue, before it makes its way to the stable version (https://scadnano.org).
Terminology
The main parts of the program are the side view on the left, and the main view in the center. The side view shows DNA helices "head on", with the interpretation that as you move to the right in the main view, this is like moving "into the screen" in the side view. The side view assumes that all helices are parallel. One can use different groups to specify groups of helices, such that all helices within a group are parallel, but different groups have different relative angles. The side view shows o
