CaDNAno Helix vox.dna.CaDNAno.Helix

This class documents the helix objects found in the vstrands array of a caDNAno file. It's important to note that each of these objects represents a distinct helix, but not necessarily a distinct strand; strands may span multiple helices, and each helix may contain multiple strands.

The most important members are two linked list-like data structures, one for the scaffold (scaf) and one for the staples (stap), demonstrating how scaffold and staple strands are routed through the structure. This makes it very easy to (for instance) make/break crossovers and add/remove bases, but very awkward to (for instance) trace a strand throughout the structure, or enumerate all strands in the structure.

Properties

Access properties with .nameand .name = value.

  • col : Number

    Column (X-position) of the helix

  • loop : Number[]

    Used to add off-lattice bases to the scaffold. Each element of scaf must have a corresponding element of loop (at the same position), indicating how many off-lattice bases should be added after this base.

  • num : String/Number

    Number assigned to the helix. This number is used to refer to the helix within the scaf and stap array.

    Note 1: This number also implies the directionality of the scaffold on this helix:

    • On even-numbered helices, the scaffold runs 5' to 3' (+1) along the helix
    • On odd-numbered helices, the scaffold runs 3' to 5' (-1) along the helix

    Note 2: This number must obey the following rule with respect to row and col:

    (num % 2) = (row + col) % 2
    

    That is, if row and col are either both even or both odd, then num must be even; else it must be odd. This is due to the way that caDNAno figures scaffold directionality, as described above.

  • row : Number

    Row (Y-position) of the helix

  • scaf : Array[]

    Same as stap, but for the scaffold strands

  • scafLoop : Number[]

    Currently unknown

  • skip : Number[]

    Used to skip on-lattice bases in the scaffold. Each element of scaf must have a corresponding element of loop (at the same position), indicating whether the base of the scaffold should be skipped.

  • stap : Array[]

    Array of 4-element arrays, each representing a (possible) individual base on one of the staple strands that runs through this helix.

    The elements of this array form a linked list, with each inner array encoding the position of the 5' neighbor and 3' neighbor of this base, in the following order:

    [ 5' helix #, 5' base #, 3' helix #, 3' base # ]
    

    For instance, this is helix 5, and if base [5,6] (e.g. the 6th base of this helix) were connected to * base [5, 5] and [6,4], then stap[6] would be

    [5,5, 6,4]
    

    When there is no 5' neighbor (or no 3' neighbor), the respective helix and base numbers are both listed as -1. This means that the 5' end of the strand is written as:

    [-1,-1, 5'-most helix #, 5'-most base #]
    

    and the 3' end is written as:

    [3'-most helix #, 3'-most base #, -1, -1]
    

    Positions where there is no base should be written as

    [-1, -1, -1, -1]
    

    Note 1: Helix numbers correspond to values of the num property; that is, helix 5 refers to the helix where num = 5, not the helix at index 5 within vstrands. Base numbers refer to indices within the stap and scaf arrays.

    Note 2: Arrays are zero-indexed, so base 0 is the first base, base 1 is the second, and so on.

  • stapLoop : Number[]

    Currently unknown

  • stap_colors : Mixed

    Currently unknown