# Software

## DNA sequence designer: SST-sequence-design

SST-sequence-design is a DNA sequence design and analysis tool for designing single-stranded DNA tiles.

Written in python by Damien Woods, David Doty and Erik Winfree, it was used to design DNA sequences for the following paper:

• Damien Woods*, David Doty*, Cameron Myhrvold, Joy Hui, Felix Zhou, Peng Yin, Erik Winfree. (*Joint first co-authors.) Diverse and robust molecular algorithms using reprogrammable DNA self-assembly.
Nature 567:366–372. 2019. [pdf].

## Simulators for abstract models of computation

When proving theorems about theoretical models of computation we sometimes use simulators that help guide our intuition and prove our results.

# Software that we contribute to and use

## DNA sequence designer: dsd

dsd, or "DNA sequence designer", is a Python library that we use to design DNA sequences. A user writes a python program that specifies thermodynamic-based energy constraints on a DNA nanostructure design, and involves the library to find suitable DNA sequences. Developed and maintained by the UC Davis Molecular Computing group, with occasional design contributions and extensive wet-lab testing by our group.

## GUI-based design of DNA nanostructures: scadnano

scadnano.org is a browser-based GUI for design of DNA nanostructures. Developed and maintained by the UC Davis Molecular Computing group, with extensive wet-lab testing by our group. There is also an associated python scripting library. scadnano has a similar look and feel to cadnano (https://cadnano.org/), by the Douglas lab at UCSF. See the following publication for details:

• David Doty, Benjamin L Lee, Tristan Stérin. scadnano: A Browser-Based, Scriptable Tool for Designing DNA Nanostructures. DNA26: The 26th International Conference on DNA Computing and Molecular Programming, LIPIcs 174:9:1--9:17, 2020

# Software by group members, but no longer actively maintained by us

## Codenano

codenano is a tool for designing DNA nanostructures: the user writes some code to specify DNA helices, DNA strands and hybridization/binding between strands, and the result is viewable in 3D in the browser.
Our blog post gives an overview of codenano's features. The source is on github and crates.io. You're welcome to try it, but code is no longer actively maintained so caveat emptor.

Built by group members Pierre-Étienne Meunier and Nicolas Levy.

## Pijul

pijul is a version control system by former group member Pierre-Étienne Meunier, along with Florent Becker.

A patch-based version control system based on a new datastructure for asynchronous computing, itself suggested by a result from category theory.

Pijul is theoretically correct (i.e. provably satisfies a number of axioms), and fast. The project required us to write other libraries to achieve the theoretical complexity in actual programs:

• Sanakirja, a fully transactional key-value store where tables can be forked in O(log n), where n is the number of bindings in the store.

• Thrussh, an SSH library handling both the client side and server side of the SSH 2 protocol.

• The Nest, a hosting platform for Pijul repositories.

The whole project is written in Rust.

Pijul was featured in the following software conferences: