RNA filaments assembly tutorial

Create a basic RNA structure

[1]:
import pyfurnace as pf

# MAKE THE BASIC STRUCTURE OF A FILAMENT TILE
origami = pf.simple_origami(dt_list=[120],
                            kl_columns=1,
                            main_stem=[22],
                            add_terminal_helix=True,
                            align="first",
                            use_angles=True)

pf.ipython_display_txt(origami, max_height=500)
# pf.ipython_display_3d(origami)

╭CGNNKNNNNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNKNNNNUU╮   
│  ┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │   
╰UUNNKNNNNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNKNNNNGC╯   
           ││                              ││                
           ↑↓                              ↑↓                
           ││            ╭───────╮         ││                
╭CGNNNNKNNN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNNNNUU╮
│  ┊┊┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊┊┊┊  │
╰UUNNNNKNNN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNNNNGC╯
                ││        ╰───────╯             ││           
                ││                              ││           
                ↑↓                              ↑↓           
                ││         ╭───────╮            ││           
   ╭CGNNNNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNKNNNNNUU╮
   │  ┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │
   ╰UUNNNNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNKNNNNNGC╯
                            ╰───────╯                        

Adjust the ends to make a tile

[2]:
# Adjust the length of the stems with Tetraloops
origami[(1, 7)].length = 5
origami[(1, 1)].length = 5

# Adjust the length of the stems with external KL
origami[(0, 7)].length = 7
origami[(2, 7)].length = 8
origami[(2, 1)].length = 6
origami[(0, 1)].length = 7

# Replace the tetraloops with kissing loops in the first and last helix
origami[(0, 0)] = pf.KissingLoop180(open_left = False, pk_index = "2")
origami[(2, 0)] = pf.KissingLoop180(open_left = False, pk_index = "1")
origami[(0, 8)] = pf.KissingLoop180(open_left = True, pk_index = "1'")
origami[(2, 8)] = pf.KissingLoop180(open_left = True, pk_index = "2'")

# Show the tile
pf.ipython_display_txt(origami)
                                                               ╭───────╮    
        ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯    
        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │            
╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯            
╰───────╯         ││                              ││                        
                  ││                              ││                        
                  ↑↓                              ↑↓                        
                  ││            ╭───────╮         ││                        
          ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮           
          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │           
          ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯           
                       ││        ╰───────╯             ││                   
                       ││                              ││                   
                       ↑↓                              ↑↓                   
                       ││         ╭───────╮            ││          ╭───────╮
            ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯
            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │        
    ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯        
    ╰───────╯                      ╰───────╯                                

Repeat the tiles to make a filament section

[3]:
tile = origami.copy()
n_tiles = 3

for i in range(n_tiles - 1):
    # add and empty line, it will be filled when
    # the columns are repeated
    origami.append([])

    # add the tile to the origami
    for line in tile:
        origami.append(line, copy=True)

pf.ipython_display_txt(origami)
                                                               ╭───────╮    
        ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯    
        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │            
╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯            
╰───────╯         ││                              ││                        
                  ││                              ││                        
                  ↑↓                              ↑↓                        
                  ││            ╭───────╮         ││                        
          ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮           
          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │           
          ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯           
                       ││        ╰───────╯             ││                   
                       ││                              ││                   
                       ↑↓                              ↑↓                   
                       ││         ╭───────╮            ││          ╭───────╮
            ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯
            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │        
    ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯        
    ╰───────╯                      ╰───────╯                                
                                                               ╭───────╮    
        ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯    
        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │            
╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯            
╰───────╯         ││                              ││                        
                  ││                              ││                        
                  ↑↓                              ↑↓                        
                  ││            ╭───────╮         ││                        
          ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮           
          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │           
          ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯           
                       ││        ╰───────╯             ││                   
                       ││                              ││                   
                       ↑↓                              ↑↓                   
                       ││         ╭───────╮            ││          ╭───────╮
            ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯
            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │        
    ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯        
    ╰───────╯                      ╰───────╯                                
                                                               ╭───────╮    
        ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯    
        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │            
╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯            
╰───────╯         ││                              ││                        
                  ││                              ││                        
                  ↑↓                              ↑↓                        
                  ││            ╭───────╮         ││                        
          ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮           
          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │           
          ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯           
                       ││        ╰───────╯             ││                   
                       ││                              ││                   
                       ↑↓                              ↑↓                   
                       ││         ╭───────╮            ││          ╭───────╮
            ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯
            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │        
    ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯        
    ╰───────╯                      ╰───────╯                                

Repeat the sections to make a filament

[4]:
# REPEATE THE COLUMNS
n_columns = 3

# This is gonna be the basic column
column = origami.copy()
for col_ind in range(1, n_columns):


    # add two empty lines, it will be filled when
    # the columns are repeated
    origami.append([])
    origami.append([])

    # # add the column to the origami
    for line_ind, line in enumerate(column):
        line_index = line_ind + 2 * col_ind
        insert_at = (line_index, len(origami[line_index]))
        origami.insert(insert_at, line)


# Join adjacent 180 KL to kissing dimers
for y, line in enumerate(origami):

    # go through the line in reverse order
    for i in range(len(line) -1, 0, -1):

        # if the two adjacent motifs are kissing loops
        # pop the one and replace the other with a kissing dimer
        if type(line[i]) == pf.KL180 and type(line[i-1]) == pf.KL180:
            origami.pop((y,i))
            origami[y, i-1] = pf.KissingDimer()

pf.ipython_display_txt(origami)
pf.ipython_display_3d(origami)
                                                               ╭───────╮                                                                                                                                                            
        ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯                                                                                                                                                            
        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │                                                                                                                                                                    
╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯                                                                                                                                                                    
╰───────╯         ││                              ││                                                                                                                                                                                
                  ││                              ││                                                                                                                                                                                
                  ↑↓                              ↑↓                                                                                                                                                                                
                  ││            ╭───────╮         ││                                                                                                                                                                                
          ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮                                                                                                                                                                   
          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │                                                                                                                                                                   
          ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯                                                                                                                                                                   
                       ││        ╰───────╯             ││                                                                                                                                                                           
                       ││                              ││                                                                                                                                                                           
                       ↑↓                              ↑↓                                                                                                                                                                           
                       ││         ╭───────╮            ││          ╭───────╮                                                       ╭───────╮                                                                                        
            ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯                                                                                        
            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │                                                                                                
    ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯                                                                                                
    ╰───────╯                      ╰───────╯                        ╰───────╯         ││                              ││                                                                                                            
                                                                                      ││                              ││                                                                                                            
                                                                                      ↑↓                              ↑↓                                                                                                            
                                                                                      ││            ╭───────╮         ││                                                                                                            
                                                                              ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮                                                                                               
                                                                              │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │                                                                                               
                                                                              ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯                                                                                               
                                                                                           ││        ╰───────╯             ││                                                                                                       
                                                                                           ││                              ││                                                                                                       
                                                                                           ↑↓                              ↑↓                                                                                                       
                                                                       ╭───────╮           ││         ╭───────╮            ││          ╭───────╮                                                       ╭───────╮                    
                ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯                    
                │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │                            
        ╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯                            
        ╰───────╯         ││                              ││            ╰───────╯                      ╰───────╯                        ╰───────╯         ││                              ││                                        
                          ││                              ││                     ╭────────────────────────────────────────────────────────────────────────╯│                              ││                                        
                          ││                              ││                     │╭────────────────────────────────────────────────────────────────────────╯                              ││                                        
                          ││                              ││                     ││                              ╭────────────────────────────────────────────────────────────────────────╯│                                        
                          ││                              ││                     ││                              │╭────────────────────────────────────────────────────────────────────────╯                                        
                          ↑↓                              ↑↓                     ↑↓                              ↑↓                                                                                                                 
                          ││            ╭───────╮         ││                     ││            ╭───────╮         ││                                                                                                                 
                  ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮                                                                                                    
                  │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  ││  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │                                                                                                    
                  ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯                                                                                                    
                               ││        ╰───────╯             ││                     ││        ╰───────╯             ││                                                                                                            
                               ││                              ││                     ││                              │╰────────────────────────────────────────────────────────────────────────╮                                   
                               ││                              ││                     ││                              ╰────────────────────────────────────────────────────────────────────────╮│                                   
                               ││                              ││                     │╰────────────────────────────────────────────────────────────────────────╮                              ││                                   
                               ││                              ││                     ╰────────────────────────────────────────────────────────────────────────╮│                              ││                                   
                               ↑↓                              ↑↓                                                                                              ↑↓                              ↑↓                                   
                               ││         ╭───────╮            ││          ╭───────╮                                                       ╭───────╮           ││         ╭───────╮            ││          ╭───────╮                
                    ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯                
                    │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │                        
            ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯                        
            ╰───────╯                      ╰───────╯                        ╰───────╯         ││                              ││            ╰───────╯                      ╰───────╯                                                
                                                                                              ││                              ││                                                                                                    
                                                                                              ↑↓                              ↑↓                                                                                                    
                                                                                              ││            ╭───────╮         ││                                                                                                    
                                                                                      ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮                                                                                       
                                                                                      │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │                                                                                       
                                                                                      ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯                                                                                       
                                                                                                   ││        ╰───────╯             ││                                                                                               
                                                                                                   ││                              ││                                                                                               
                                                                                                   ↑↓                              ↑↓                                                                                               
                                                                               ╭───────╮           ││         ╭───────╮            ││          ╭───────╮                                                       ╭───────╮            
                        ╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯            
                        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │                    
                ╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯                    
                ╰───────╯         ││                              ││            ╰───────╯                      ╰───────╯                        ╰───────╯         ││                              ││                                
                                  ││                              ││                     ╭────────────────────────────────────────────────────────────────────────╯│                              ││                                
                                  ││                              ││                     │╭────────────────────────────────────────────────────────────────────────╯                              ││                                
                                  ││                              ││                     ││                              ╭────────────────────────────────────────────────────────────────────────╯│                                
                                  ││                              ││                     ││                              │╭────────────────────────────────────────────────────────────────────────╯                                
                                  ↑↓                              ↑↓                     ↑↓                              ↑↓                                                                                                         
                                  ││            ╭───────╮         ││                     ││            ╭───────╮         ││                                                                                                         
                          ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮                                                                                            
                          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  ││  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │                                                                                            
                          ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯                                                                                            
                                       ││        ╰───────╯             ││                     ││        ╰───────╯             ││                                                                                                    
                                       ││                              ││                     ││                              │╰────────────────────────────────────────────────────────────────────────╮                           
                                       ││                              ││                     ││                              ╰────────────────────────────────────────────────────────────────────────╮│                           
                                       ││                              ││                     │╰────────────────────────────────────────────────────────────────────────╮                              ││                           
                                       ││                              ││                     ╰────────────────────────────────────────────────────────────────────────╮│                              ││                           
                                       ↑↓                              ↑↓                                                                                              ↑↓                              ↑↓                           
                                       ││         ╭───────╮            ││          ╭───────╮                                                       ╭───────╮           ││         ╭───────╮            ││          ╭───────╮        
                            ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯        
                            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │                
                    ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯                
                    ╰───────╯                      ╰───────╯                        ╰───────╯         ││                              ││            ╰───────╯                      ╰───────╯                                        
                                                                                                      ││                              ││                                                                                            
                                                                                                      ↑↓                              ↑↓                                                                                            
                                                                                                      ││            ╭───────╮         ││                                                                                            
                                                                                              ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮                                                                               
                                                                                              │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │                                                                               
                                                                                              ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯                                                                               
                                                                                                           ││        ╰───────╯             ││                                                                                       
                                                                                                           ││                              ││                                                                                       
                                                                                                           ↑↓                              ↑↓                                                                                       
                                                                                                           ││         ╭───────╮            ││          ╭───────╮                                                       ╭───────╮    
                                                                                                ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNN─────NNNNKNNNNNN─3 5─NNNKNNNNNNN────NNNNKNNAA┼─NNNNNN╯    
                                                                                                │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │            
                                                                                        ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯╭NNNNNN─┼AANNNNKNN╮╭───NNNNKNNNNNN─────NNNKNNNNNNN╮╭──NNNNKNNA─╯            
                                                                                        ╰───────╯                      ╰───────╯                        ╰───────╯         ││                              ││                        
                                                                                                                                                                          ││                              ││                        
                                                                                                                                                                          ↑↓                              ↑↓                        
                                                                                                                                                                          ││            ╭───────╮         ││                        
                                                                                                                                                                  ╭CGNNNKN╯╰SSS──NNKNNAA┼─NNNNNN╯╭─ANNNNKN╯╰SSS──NNNKNUU╮           
                                                                                                                                                                  │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │           
                                                                                                                                                                  ╰UUNNNKN──SSS╮╭NNKNNA─╯╭NNNNNN─┼AANNNNKN──SSS╮╭NNNKNGC╯           
                                                                                                                                                                               ││        ╰───────╯             ││                   
                                                                                                                                                                               ││                              ││                   
                                                                                                                                                                               ↑↓                              ↑↓                   
                                                                                                                                                                               ││         ╭───────╮            ││          ╭───────╮
                                                                                                                                                                    ╭─ANNKNNN──╯╰NNNKNNNAA┼─NNNNNN╯╭─ANNKNNNN──╯╰NNNNKNNNAA┼─NNNNNN╯
                                                                                                                                                                    │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │        
                                                                                                                                                            ╭NNNNNN─┼AANNKNNN────NNNKNNNA─╯╭NNNNNN─┼AANNKNNNN────NNNNKNNNA─╯        
                                                                                                                                                            ╰───────╯                      ╰───────╯                                
[ ]:

Generete the sequence for a tile

[5]:
from pyfurnace.generate import generate_road

# Add the start sequence for transcription
sequence = 'GGGA' + tile.sequence[4:]

print("Generating the sequence for:")
print(tile.structure)
print(sequence)
print(tile.pseudoknots)



opti_sequence = generate_road(tile.structure,
                              sequence,
                              tile.pseudoknots)

print(opti_sequence)

tile.sequence = opti_sequence
pf.ipython_display_txt(tile)
# pf.ipython_display_3d(tile)
Generating the sequence for:
((((((((((((((((((.........)))))))((((((((....)))))((((((((.........))))))))(((((((..[[[[[[.))))))))))((((((..[[[[[[.)))))))))))))))))(((((((((((((((((((..]]]]]].)))))(((((((..]]]]]].)))))))((((((.........)))))))))(((((....)))))(((((((.........))))))))))))))))))
GGGANNNNNNNNNNNKNNAANNNNNNANNKNNNNSSSNNNKNUUCGNKNNNNNNNKNNNAANNNNNNANNNKNNNNNNNNKNNAANNNNNNANNKNNNNSSSNKNNNNAANNNNNNANNNNKNNNNNNNNKNNNNNNNNNKNNNNSSSNNKNNAANNNNNNANNKNNNNNKNNNAANNNNNNANNNKNNNNNNKNNAANNNNNNANNKNNNSSSNKNNNUUCGNNNKNNNKNNNNAANNNNNNANNNNKNNNNNNKNNNNNN
{'2': {'ind_fwd': [(237, 242)], 'ind_rev': [(61, 66)], 'E': -8.5, 'dE': 1.0}, '1': {'ind_fwd': [(198, 203)], 'ind_rev': [(20, 25)], 'E': -8.5, 'dE': 1.0}, '0_1': {'ind_fwd': [(155, 160)], 'ind_rev': [(110, 115)], 'E': -8.5, 'dE': 1.0}, '0_2': {'ind_fwd': [(176, 181)], 'ind_rev': [(85, 90)], 'E': -8.5, 'dE': 1.0}}
GGGACAAUUGCAGGCGAGAACUUCGAACUUGCCUCGGGCAUAUUCGUGUGCACGAUUCUAAUCCCAUAAGAGUCGUCAAGUGGAAACGAGAACCGCUUGCCGUUGACCAAAUGCUGAGGUCGAGCGAUUGUCCCGUGCGUGGUUCGGCGUUUUAACAGCAUAAAGACCCUGCUAAAUCUCGUAUAGUAGGGCGGGUAAUCGAAGAACUCGCGCCGUGCCUUCGGGCGCACGACCGAAAUGGGAACGGUUGUGAACUACGCAC
                                                               ╭───────╮    
        ╭─ACGGUUGU─────GAACUACGCAC─3 5─GGGACAAUUGC────AGGCGAGAA┼─CUUCGA╯    
        │  ┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │            
╭AGGGUA─┼AAGCCAGCA╮╭───CUUGGUGCGUG─────CCCUGUUAGCG╮╭──UCCGUUCA─╯            
╰───────╯         ││                              ││                        
                  ││                              ││                        
                  ↑↓                              ↑↓                        
                  ││            ╭───────╮         ││                        
          ╭CGGGCGC╯╰GGC──GUUUUAA┼─CAGCAU╯╭─AGGUCGA╯╰CGG──GCAUAUU╮           
          │  ┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊┊  ┊┊┊┊┊  │           
          ╰UUCCGUG──CCG╮╭CAGAAA─╯╭GUCGUA─┼AACCAGUU──GCC╮╭CGUGUGC╯           
                       ││        ╰───────╯             ││                   
                       ││                              ││                   
                       ↑↓                              ↑↓                   
                       ││         ╭───────╮            ││          ╭───────╮
            ╭─AACUCGC──╯╰CCUGCUAAA┼─UCUCGU╯╭─ACCGCUUG──╯╰ACGAUUCUAA┼─UCCCAU╯
            │  ┊┊┊┊┊┊    ┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊  │        
    ╭GAAGCU─┼AAUGGGCG────GGAUGAUA─╯╭AGAGCA─┼AAGGUGAAC────UGCUGAGAA─╯        
    ╰───────╯                      ╰───────╯