Software

Software for labwork: repurposing qPCR machines and making complex mixes

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:

Since then, things have moved on! See Dave Doty's nuad software below that uses much of the same thermodynaamic principles as SST-sequence-design but allows specification of much more general DNA systems and has an easier to program interface.

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: nuad

nuad, or NUcleic Acid Designer, and named after Maigh Nuad, the Irish-language word for Maynooth, 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 invokes the library to find suitable DNA sequences. Developement is led by Dave Doty (UC Davis Molecular Computing group), with occasional contributions, and extensive wet-lab testing, by members of 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:

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:

The whole project is written in Rust.

Pijul was featured in the following software conferences: