{ "cells": [ { "cell_type": "markdown", "id": "e14c827c", "metadata": {}, "source": [ "# RNA filaments assembly tutorial\n", "\n", "### Create a basic RNA structure" ] }, { "cell_type": "code", "execution_count": 1, "id": "fb9da810", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
╭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╯
                            ╰───────╯                        
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pyfurnace as pf\n", "\n", "# MAKE THE BASIC STRUCTURE OF A FILAMENT TILE\n", "origami = pf.simple_origami(dt_list=[120], \n", " kl_columns=1, \n", " main_stem=[22],\n", " add_terminal_helix=True, \n", " align=\"first\", \n", " use_angles=True) \n", "\n", "pf.ipython_display_txt(origami, max_height=500)\n", "# pf.ipython_display_3d(origami)\n" ] }, { "cell_type": "markdown", "id": "b98ce8d8", "metadata": {}, "source": [ "### Adjust the ends to make a tile" ] }, { "cell_type": "code", "execution_count": 2, "id": "32014500", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
                                                               ╭───────╮    
        ╭─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─╯        
    ╰───────╯                      ╰───────╯                                
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Adjust the length of the stems with Tetraloops\n", "origami[(1, 7)].length = 5\n", "origami[(1, 1)].length = 5\n", "\n", "# Adjust the length of the stems with external KL\n", "origami[(0, 7)].length = 7 \n", "origami[(2, 7)].length = 8 \n", "origami[(2, 1)].length = 6\n", "origami[(0, 1)].length = 7 \n", "\n", "# Replace the tetraloops with kissing loops in the first and last helix\n", "origami[(0, 0)] = pf.KissingLoop180(open_left = False, pk_index = \"2\")\n", "origami[(2, 0)] = pf.KissingLoop180(open_left = False, pk_index = \"1\")\n", "origami[(0, 8)] = pf.KissingLoop180(open_left = True, pk_index = \"1'\")\n", "origami[(2, 8)] = pf.KissingLoop180(open_left = True, pk_index = \"2'\")\n", "\n", "# Show the tile\n", "pf.ipython_display_txt(origami)" ] }, { "cell_type": "markdown", "id": "03b24561", "metadata": {}, "source": [ "### Repeat the tiles to make a filament section" ] }, { "cell_type": "code", "execution_count": 3, "id": "da9dd0c9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
                                                               ╭───────╮    
        ╭─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─╯        
    ╰───────╯                      ╰───────╯                                
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tile = origami.copy()\n", "n_tiles = 3\n", "\n", "for i in range(n_tiles - 1):\n", " # add and empty line, it will be filled when\n", " # the columns are repeated\n", " origami.append([])\n", "\n", " # add the tile to the origami\n", " for line in tile:\n", " origami.append(line, copy=True)\n", "\n", "pf.ipython_display_txt(origami)" ] }, { "cell_type": "markdown", "id": "5da3e8dd", "metadata": {}, "source": [ "### Repeat the sections to make a filament" ] }, { "cell_type": "code", "execution_count": 4, "id": "b3fee7f5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
                                                               ╭───────╮                                                                                                                                                            
        ╭─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─╯        
                                                                                                                                                            ╰───────╯                      ╰───────╯                                
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# REPEATE THE COLUMNS\n", "n_columns = 3\n", "\n", "# This is gonna be the basic column\n", "column = origami.copy()\n", "for col_ind in range(1, n_columns):\n", "\n", "\n", " # add two empty lines, it will be filled when\n", " # the columns are repeated\n", " origami.append([])\n", " origami.append([])\n", " \n", " # # add the column to the origami\n", " for line_ind, line in enumerate(column):\n", " line_index = line_ind + 2 * col_ind\n", " insert_at = (line_index, len(origami[line_index]))\n", " origami.insert(insert_at, line)\n", "\n", " \n", "# Join adjacent 180 KL to kissing dimers\n", "for y, line in enumerate(origami):\n", "\n", " # go through the line in reverse order\n", " for i in range(len(line) -1, 0, -1):\n", "\n", " # if the two adjacent motifs are kissing loops\n", " # pop the one and replace the other with a kissing dimer\n", " if type(line[i]) == pf.KL180 and type(line[i-1]) == pf.KL180:\n", " origami.pop((y,i))\n", " origami[y, i-1] = pf.KissingDimer()\n", "\n", "pf.ipython_display_txt(origami)\n", "pf.ipython_display_3d(origami)" ] }, { "cell_type": "code", "execution_count": null, "id": "2f658b55", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "653f1785", "metadata": {}, "source": [ "### Generete the sequence for a tile" ] }, { "cell_type": "code", "execution_count": 5, "id": "0fb3f1f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generating the sequence for:\n", "((((((((((((((((((.........)))))))((((((((....)))))((((((((.........))))))))(((((((..[[[[[[.))))))))))((((((..[[[[[[.)))))))))))))))))(((((((((((((((((((..]]]]]].)))))(((((((..]]]]]].)))))))((((((.........)))))))))(((((....)))))(((((((.........))))))))))))))))))\n", "GGGANNNNNNNNNNNKNNAANNNNNNANNKNNNNSSSNNNKNUUCGNKNNNNNNNKNNNAANNNNNNANNNKNNNNNNNNKNNAANNNNNNANNKNNNNSSSNKNNNNAANNNNNNANNNNKNNNNNNNNKNNNNNNNNNKNNNNSSSNNKNNAANNNNNNANNKNNNNNKNNNAANNNNNNANNNKNNNNNNKNNAANNNNNNANNKNNNSSSNKNNNUUCGNNNKNNNKNNNNAANNNNNNANNNNKNNNNNNKNNNNNN\n", "{'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}}\n", "GGGACAAUUGCAGGCGAGAACUUCGAACUUGCCUCGGGCAUAUUCGUGUGCACGAUUCUAAUCCCAUAAGAGUCGUCAAGUGGAAACGAGAACCGCUUGCCGUUGACCAAAUGCUGAGGUCGAGCGAUUGUCCCGUGCGUGGUUCGGCGUUUUAACAGCAUAAAGACCCUGCUAAAUCUCGUAUAGUAGGGCGGGUAAUCGAAGAACUCGCGCCGUGCCUUCGGGCGCACGACCGAAAUGGGAACGGUUGUGAACUACGCAC\n" ] }, { "data": { "text/html": [ "
                                                               ╭───────╮    
        ╭─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─╯        
    ╰───────╯                      ╰───────╯                                
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pyfurnace.generate import generate_road\n", "\n", "# Add the start sequence for transcription\n", "sequence = 'GGGA' + tile.sequence[4:]\n", "\n", "print(\"Generating the sequence for:\")\n", "print(tile.structure)\n", "print(sequence)\n", "print(tile.pseudoknots)\n", "\n", "\n", "\n", "opti_sequence = generate_road(tile.structure, \n", " sequence, \n", " tile.pseudoknots)\n", "\n", "print(opti_sequence)\n", "\n", "tile.sequence = opti_sequence\n", "pf.ipython_display_txt(tile)\n", "# pf.ipython_display_3d(tile)" ] } ], "metadata": { "kernelspec": { "display_name": "vrna", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.6" } }, "nbformat": 4, "nbformat_minor": 5 }