{ "cells": [ { "cell_type": "markdown", "id": "b07fb0a9", "metadata": {}, "source": [ "## A collection of origami from ROAD\n", "\n", "This is a collection of the some RNA origami design and published with the ROAD software from Cody Geary and Ebbe Andersen, slightly modified (e.g. twist corrected).\n", "(ROAD paper: https://doi.org/10.1038/s41557-021-00679-1)" ] }, { "cell_type": "code", "execution_count": 1, "id": "c7ba8081", "metadata": {}, "outputs": [], "source": [ "import pyfurnace as pf" ] }, { "cell_type": "markdown", "id": "3e37328d", "metadata": {}, "source": [ "### 3H-2DT" ] }, { "cell_type": "code", "execution_count": 2, "id": "a3c00d9b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
                                                                                ╭────────╮            \n",
       "                  ╭NNKNN────NNNNKNNNNKNN─3 5─NNNKNNNNNNKNNNNNKNNNN────NNNKNNNNKN┼─NNNNNNN╯            \n",
       "                  │┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊│                     \n",
       "         ╭NNNNNNN─┼NNKNN╮╭──NNNNKNNNNKNN─────NNNKNNNNNNKNNNNNKNNNN╮╭──NNNKNNNNKN╯                     \n",
       "         ╰────────╯     ││                                        ││                                  \n",
       "                        ││                                        │╰╮                                 \n",
       "                        ││                                        ╰╮│                                 \n",
       "                        ↑↓                                         ↑↓                                 \n",
       "                        ││                 ╭───────╮               ││                                 \n",
       "              ╭CGNNKNNNN╯╰SS──NNNKNNNKNNNAA┼─NNNNNN╯╭─ANNNNKNNNNNNN╯╰SS──NNKNNNNUU╮                   \n",
       "              │  ┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊  │                   \n",
       "              ╰UUNNKNNNN──SS╮╭NNNKNNNKNNNA─╯╭NNNNNN─┼AANNNNKNNNNNNN──SS╮╭NNKNNNNGC╯                   \n",
       "                            ││              ╰───────╯                  ││                             \n",
       "                            ││                                         ││                             \n",
       "                            ↑↓                                         ↑↓                             \n",
       "                            ││              ╭───────╮                  ││                   ╭────────╮\n",
       "         ╭NNKNNNNNKNNNNNNN──╯╰NNNNKNNNNNKNAA┼─NNNNNN╯╭─ANNNKNNNNNKNNN──╯╰NNNNKNNNNNNKNNNNKNN┼─NNNNNNN╯\n",
       "         │┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊│         \n",
       "╭NNNNNNN─┼NNKNNNNNKNNNNNNN────NNNNKNNNNNKNA─╯╭NNNNNN─┼AANNNKNNNNNKNNN────NNNNKNNNNNNKNNNNKNN╯         \n",
       "╰────────╯                                   ╰───────╯                                                
\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ori_3H_2DT = pf.simple_origami([-2], main_stem=33, end_helix_len=7)\n", "# adjust start position\n", "ori_3H_2DT[0, 3].length = 12\n", "ori_3H_2DT[0, 5].length = 21\n", "\n", "# adjust stems before the KL\n", "ori_3H_2DT[0, 1].length = 5\n", "ori_3H_2DT[-1, 1].length = 16\n", "ori_3H_2DT[0, -2].length = 10\n", "ori_3H_2DT[-1, -2].length = 19\n", "\n", "# put the KL in the right place\n", "ori_3H_2DT[0, 0] = pf.KissingLoop120(pk_index=1)\n", "ori_3H_2DT[-1, 0] = pf.KissingLoop120(pk_index=2)\n", "ori_3H_2DT[0, -1] = pf.KissingLoop120(open_left=True, pk_index=1)\n", "ori_3H_2DT[-1, -1] = pf.KissingLoop120(open_left=True, pk_index=2)\n", "\n", "pf.ipython_display_txt(ori_3H_2DT)\n" ] }, { "cell_type": "markdown", "id": "3581b8fd", "metadata": {}, "source": [ "### 3H-3DT" ] }, { "cell_type": "code", "execution_count": 3, "id": "7ebd5adf", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
                                                                                 ╭────────╮             \n",
       "           ╭NNNNKNNNNNNN────NNNKNNNNKNNN─3 5─NNNKNNNNKNNNNKNNNNKNN────NNNKNNNNNKN┼─NNNNNNN╯             \n",
       "           │┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊│                      \n",
       "  ╭NNNNNNN─┼NNNNKNNNNNNN╮╭──NNNKNNNNKNNN─────NNNKNNNNKNNNNKNNNNKNN╮╭──NNNKNNNNNKN╯                      \n",
       "  ╰────────╯            ││                                        ││                                    \n",
       "                        ││                                        │╰╮                                   \n",
       "                        ││                                        ╰╮│                                   \n",
       "                        ↑↓                                         ↑↓                                   \n",
       "                        ││                 ╭───────╮               ││                                   \n",
       "              ╭CGNNNKNNN╯╰SS──NNNNKNNNNNNAA┼─NNNNNN╯╭─ANNKNNNNNKNNN╯╰SS──NNKNNNNUU╮                     \n",
       "              │  ┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊  │                     \n",
       "              ╰UUNNNKNNN──SS╮╭NNNNKNNNNNNA─╯╭NNNNNN─┼AANNKNNNNNKNNN──SS╮╭NNKNNNNGC╯                     \n",
       "                            ││              ╰───────╯                  ││                               \n",
       "                            ││                                         ││                               \n",
       "                            ↑↓                                         ↑↓                               \n",
       "                            ││              ╭───────╮                  ││                     ╭────────╮\n",
       "         ╭NNNKNNNNNNKNNNNN──╯╰NNNNKNNNNNNNAA┼─NNNNNN╯╭─ANNNNKNNNNNNKN──╯╰NNNKNNNNNKNNNNNKNNNNN┼─NNNNNNN╯\n",
       "         │┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊│         \n",
       "╭NNNNNNN─┼NNNKNNNNNNKNNNNN────NNNNKNNNNNNNA─╯╭NNNNNN─┼AANNNNKNNNNNNKN────NNNKNNNNNKNNNNNKNNNNN╯         \n",
       "╰────────╯                                   ╰───────╯                                                  
\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ori_3H_3DT = pf.simple_origami([-2], main_stem=33, end_helix_len=7)\n", "# adjust start position\n", "ori_3H_3DT[0, 3].length = 12\n", "ori_3H_3DT[0, 5].length = 21\n", "\n", "# adjust stems before the KL\n", "ori_3H_3DT[0, 1].length = 12\n", "ori_3H_3DT[-1, 1].length = 16\n", "ori_3H_3DT[0, -2].length = 11\n", "ori_3H_3DT[-1, -2].length = 21\n", "\n", "# put the KL in the right place\n", "ori_3H_3DT[0, 0] = pf.KissingLoop120(pk_index=1)\n", "ori_3H_3DT[-1, 0] = pf.KissingLoop120(pk_index=2)\n", "ori_3H_3DT[0, -1] = pf.KissingLoop120(open_left=True, pk_index=1)\n", "ori_3H_3DT[-1, -1] = pf.KissingLoop120(open_left=True, pk_index=2)\n", "\n", "pf.ipython_display_txt(ori_3H_3DT)\n" ] }, { "cell_type": "markdown", "id": "4ce174f2", "metadata": {}, "source": [ "### 3H-4DT" ] }, { "cell_type": "code", "execution_count": 4, "id": "eacd1491", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
                                                                                 ╭────────╮              \n",
       "                 ╭NNNNN────NNNKNNNNKNNN─3 5─NNKNNNNNKNNNNKNNNNNKN────NNKNNNNKNNNN┼─NNNNNNN╯              \n",
       "                 │┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊│                       \n",
       "        ╭NNNNNNN─┼NNNNN╮╭──NNNKNNNNKNNN─────NNKNNNNNKNNNNKNNNNNKN╮╭──NNKNNNNKNNNN╯                       \n",
       "        ╰────────╯     ││                                        ││                                      \n",
       "                       ││                                        │╰╮                                     \n",
       "                       ││                                        ╰╮│                                     \n",
       "                       ↑↓                                         ↑↓                                     \n",
       "                       ││                  ╭───────╮              ││                                     \n",
       "             ╭CGNNKNNNN╯╰NNNN──NNKNNNNKNNAA┼─NNNNNN╯╭─ANNNKNNNNNKN╯╰NNNN──NNNNKNNUU╮                     \n",
       "             │  ┊┊┊┊┊┊┊  ┊┊┊┊  ┊┊┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊┊┊┊┊  ┊┊┊┊  ┊┊┊┊┊┊┊  │                     \n",
       "             ╰UUNNKNNNN──NNNN╮╭NNKNNNNKNNA─╯╭NNNNNN─┼AANNNKNNNNNKN──NNNN╮╭NNNNKNNGC╯                     \n",
       "                             ││             ╰───────╯                   ││                               \n",
       "                             ││                                         ││                               \n",
       "                             ↑↓                                         ↑↓                               \n",
       "                             ││              ╭───────╮                  ││                     ╭────────╮\n",
       "         ╭NNNKNNNNNKNNNNNKN──╯╰NNNNKNNNNNNNAA┼─NNNNNN╯╭─ANNNNKNNNNKNNN──╯╰NNNNKNNNNNNKNNNNNNKNN┼─NNNNNNN╯\n",
       "         │┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊┊┊┊┊┊┊┊    ┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊│         \n",
       "╭NNNNNNN─┼NNNKNNNNNKNNNNNKN────NNNNKNNNNNNNA─╯╭NNNNNN─┼AANNNNKNNNNKNNN────NNNNKNNNNNNKNNNNNNKNN╯         \n",
       "╰────────╯                                    ╰───────╯                                                  
\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ori_3H_4DT = pf.simple_origami([-4], main_stem=33, end_helix_len=7)\n", "# adjust start position\n", "ori_3H_4DT[0, 3].length = 12\n", "ori_3H_4DT[0, 5].length = 21\n", "\n", "# adjust stems before the KL\n", "ori_3H_4DT[0, 1].length = 5\n", "ori_3H_4DT[-1, 1].length = 17\n", "ori_3H_4DT[0, -2].length = 12\n", "ori_3H_4DT[-1, -2].length = 21\n", "\n", "# put the KL in the right place\n", "ori_3H_4DT[0, 0] = pf.KissingLoop120(pk_index=1)\n", "ori_3H_4DT[-1, 0] = pf.KissingLoop120(pk_index=2)\n", "ori_3H_4DT[0, -1] = pf.KissingLoop120(open_left=True, pk_index=1)\n", "ori_3H_4DT[-1, -1] = pf.KissingLoop120(open_left=True, pk_index=2)\n", "\n", "pf.ipython_display_txt(ori_3H_4DT)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "159eac57", "metadata": {}, "outputs": [], "source": [] } ], "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 }