Porting octahedron to cadnano 2.5



In 2004 William Shih published a paper titled A 1.7-kilobase single-stranded DNA that folds into a nanoscale octahedron Nature 427, 618-621. This design serves a nice testbed for cadnano development, as it includes several struts based on paranemic (px) crossovers.


  1. What is the exact base-level design of the octahedron?
  2. Can we port the octahedron design into cadnano and then export an 'abstract' sequence that matches the original base-pairing relationships, if not exact sequence?


  1. For The base-level design, we will import with the original schematic from Figure 1 into Illustrator, re-arrange it for easier editing, annotate the sequence lengths for every domain of the structure, and create a corresponding Schlegel diagram to keep track of overall arrangement and connectivity of the wireframe struts.
  2. Next we can use the schematic as a reference for recreating the same design in cadnano.
  3. Cadnano only exports abstract sequences at the moment, which encode the base-pairing relationships but not actual sequences. Downstream the base pairs must still be assigned a specific nucleotides prior to synthesis. We can easily write a python script to determine if a nucleotide sequence is an instance of an abstract sequence.


  1. Schematics made as shih-px-octa.ai, exported as a png:
  1. Cadnano design created with the schematic as reference. We lose the color information in the cadnano diagram due to the way that strands are currently colored (i.e. joining a source and target strand causes the target strand to inherit the source strand's color. I recorded a mov of connecting all the struts.
  2. Exported various stages of the cadnano design (.c25 files... I just picked 'c25' as a temporary extension for the current dev version of cadnano).

Comments / Next steps

  1. Didn't quite finish the sequence / abstract sequence comparison.
  .aseq(3) .c25(23)