Crate codenano

Source
Expand description

This crate (codenano) allows one to design DNA molecules.

The following creates a strand zig-zagging between three helices, and outputs it to a file:

use codenano::*;
let mut design: Design<(), ()> = Design::new();
for i in 0..3 {
   design.add_grid_helix(i, 0);
}
// Let's first design a strand.
design.strand(0, 0).to(31)
  .cross(1).to(10)
  .cross(2).to(21);
// Now its reverse complement:
design.strand(2, 21).to(10)
   .cross(1).to(31)
   .cross(0).to(0);
design.write_to("my_design.json").unwrap()

This library is compatible with the codenano-server crate, which watches changes made to a file and shows the result in 3D in a web browser. Additionally, the client part (also called codenano) of the the codenano-servercrate can run finite element simulations and display the secondary structure.

Re-exports§

pub use autoroll::RollSystem;
pub use autoroll::SpringSystem;

Modules§

autoroll
Automatic roll adjustment of helices
cadnano
Conversion to Cadnano format.
geometry
3D points and vectors
guess3d
Guess of the 3D structure
mrdna
Conversion to Mrdna
opengl
Utilities for drawing a design in OpenGL.
patch
Modification of an existing design
sequences
Extra tools for sequences (random completions, etc.)
transforms
Common geometric transforms on domains (most useful when working on grids or partial grids).

Structs§

Design
The main type of this crate, describing a DNA design.
Domain
A domain, i.e. an interval of a helix.
DomainIter
An iterator over all positions of a domain.
Error
The Error type, a wrapper around a dynamic error type.
Helix
A DNA helix. All bases of all strands must be on a helix.
HelixId
Identity of a helix, useful for referring to it.
Parameters
DNA geometric parameters.
Plate96
Representation of a 96-well plate being filled. Plates are filled from top to bottom (i.e. rows are incremented first), then from left to forward (columns are incremented).
Strand
A DNA strand.
StrandId
Identity of a strand, useful for referring to it.
StrandRef
A pointer to a strand being built, containing a current domain and position.

Enums§

Color
Colors

Constants§

M13_594
A cut version of the M13, which can be obtained with enzymes from the positional genome (the M13_7249 one).
M13_7249
The sequence of the M13 bacteriophage, used for example for DNA Origami.