[][src]Crate codenano

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.