UC-Davis-molecular-computing / scadnano

Web application for designing DNA structures such as DNA origami.
https://scadnano.org
MIT License
21 stars 13 forks source link

display DNA sequence on extension in order 5' to 3' #959

Closed damienwoods closed 3 months ago

damienwoods commented 6 months ago

DNA sequence 5'-TTT ATA ... ATC-3' was assigned to an extension (in scadnano-python by concatenating scadnano.Extension(num_bases=len(seq), dna_sequence=seq, display_angle=40, display_length=6) to a list of strand domains) is being displayed in the wrong (i.e. reverse) order on the bottom of a design. Extensions on the top of a design look fine.

image

When DNA sequences are exported from the design, this particular DNA sequence is in the correct order.

dave-doty commented 6 months ago

Just to illustrate the problem, here are other contexts in which the sequence is backward. In each case, the strand has sequence 5'-AAATA-CCCCCCCC-AAATA-3'. The backwards extensions are circled in green below:

image

So the general problem is that the DNA sequence is always drawn with 5' on left and 3' on right, and the mistake above correspond to cases where the extension reverses that: its 3' end is on the left and its 5' end is on the right.

Note that the two strands on the bottom helix are essentially the same as those on the top helix, only the free ends of their extensions have been dragged inward, so that their display_angle is greater than 90 degrees.