{ "cells": [ { "cell_type": "markdown", "id": "3ce5bca1", "metadata": { "lines_to_next_cell": 2 }, "source": [ "Create the repressilator from libsbgn.\n", "\n", "See on libsbgn-python: https://github.com/matthiaskoenig/libsbgn-python" ] }, { "cell_type": "code", "execution_count": 1, "id": "5a12b7e5", "metadata": { "execution": { "iopub.execute_input": "2023-04-17T14:01:52.147890Z", "iopub.status.busy": "2023-04-17T14:01:52.147399Z", "iopub.status.idle": "2023-04-17T14:01:52.168255Z", "shell.execute_reply": "2023-04-17T14:01:52.168731Z" } }, "outputs": [], "source": [ "import os\n", "from pathlib import Path\n", "\n", "import IPython\n", "import libsbgnpy.libsbgn as libsbgn\n", "from IPython.core.display import HTML\n", "from IPython.display import Image\n", "from libsbgnpy.libsbgnTypes import ArcClass, GlyphClass, Language, Orientation\n", "from pygments import highlight\n", "from pygments.formatters import HtmlFormatter\n", "from pygments.lexers import PythonLexer" ] }, { "cell_type": "code", "execution_count": 2, "id": "ed71767f", "metadata": { "execution": { "iopub.execute_input": "2023-04-17T14:01:52.170901Z", "iopub.status.busy": "2023-04-17T14:01:52.170206Z", "iopub.status.idle": "2023-04-17T14:01:52.173759Z", "shell.execute_reply": "2023-04-17T14:01:52.174110Z" } }, "outputs": [], "source": [ "def pprint_xml(xml_str: str) -> None:\n", " \"\"\"Create highlighted xml.\"\"\"\n", " IPython.display.display(\n", " HTML(\n", " '<style type=\"text/css\">{}</style>{}'.format(\n", " HtmlFormatter().get_style_defs(\".highlight\"),\n", " highlight(xml_str, PythonLexer(), HtmlFormatter()),\n", " )\n", " )\n", " )" ] }, { "cell_type": "code", "execution_count": 3, "id": "c9994d10", "metadata": { "execution": { "iopub.execute_input": "2023-04-17T14:01:52.176500Z", "iopub.status.busy": "2023-04-17T14:01:52.175675Z", "iopub.status.idle": "2023-04-17T14:01:52.233570Z", "shell.execute_reply": "2023-04-17T14:01:52.234167Z" } }, "outputs": [], "source": [ "def create_repressilator(sbgn_path: Path) -> libsbgn.sbgn:\n", " \"\"\"Create repressilator SBGN using libsbgn.\"\"\"\n", " # create empty sbgn\n", " sbgn: libsbgn.sbgn = libsbgn.sbgn()\n", "\n", " # create map, set language and set in sbgn\n", " map = libsbgn.map()\n", " map.set_language(Language.PD)\n", " sbgn.set_map(map)\n", "\n", " # create a bounding box for the map\n", " box = libsbgn.bbox(x=0, y=0, w=363, h=253)\n", " map.set_bbox(box)\n", "\n", " # create some glyphs\n", " # glyphs with labels\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph3\")\n", " g.set_bbox(libsbgn.bbox(x=530, y=25, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph2\")\n", " g.set_bbox(libsbgn.bbox(x=180, y=25, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph11\")\n", " g.set_bbox(libsbgn.bbox(x=455, y=265, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph12\")\n", " g.set_bbox(libsbgn.bbox(x=625, y=125, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph5\")\n", " g.set_bbox(libsbgn.bbox(x=273, y=33, w=20, h=20))\n", " g.add_port(libsbgn.port(y=\"43.0\", x=\"263.0\", id=\"glyph5.1\"))\n", " g.add_port(libsbgn.port(y=\"43.0\", x=\"303.0\", id=\"glyph5.2\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph10\")\n", " g.set_bbox(libsbgn.bbox(x=545, y=378.61728, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph15\")\n", " g.set_bbox(libsbgn.bbox(x=800, y=125, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph25\")\n", " g.set_bbox(libsbgn.bbox(x=800, y=450, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph16\")\n", " g.set_bbox(libsbgn.bbox(x=808, y=228, w=20, h=20))\n", " g.add_port(libsbgn.port(y=\"218.0\", x=\"818.0\", id=\"glyph16.1\"))\n", " g.add_port(libsbgn.port(y=\"258.0\", x=\"818.0\", id=\"glyph16.2\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.MACROMOLECULE, id=\"glyph8\")\n", " g.set_label(libsbgn.label(text=\"Laclp\"))\n", " g.set_bbox(libsbgn.bbox(x=342, y=20.5, w=72, h=45))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph30\")\n", " g.set_bbox(libsbgn.bbox(x=275, y=625, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph14\")\n", " g.set_bbox(libsbgn.bbox(x=283, y=558, w=20, h=20))\n", " g.add_port(libsbgn.port(y=\"588.0\", x=\"293.0\", id=\"glyph14.2\"))\n", " g.add_port(libsbgn.port(y=\"548.0\", x=\"293.0\", id=\"glyph14.1\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph17\")\n", " g.set_bbox(libsbgn.bbox(x=115, y=480, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph19\")\n", " g.set_bbox(libsbgn.bbox(x=350, y=378.61728, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph18\")\n", " g.set_bbox(libsbgn.bbox(x=20, y=378.617, w=36, h=36))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.MACROMOLECULE, id=\"glyph27\")\n", " g.set_label(libsbgn.label(text=\"Clp\"))\n", " g.set_bbox(libsbgn.bbox(x=782, y=280.5, w=72, h=45))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.MACROMOLECULE, id=\"glyph24\")\n", " g.set_label(libsbgn.label(text=\"Tetp\"))\n", " g.set_bbox(libsbgn.bbox(x=257, y=475.5, w=72, h=45))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph13\")\n", " g.set_label(libsbgn.label(text=\"Laclp\"))\n", " g.set_bbox(libsbgn.bbox(y=\"386.61728\", x=\"618.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"396.61728\", x=\"608.0\", id=\"glyph13.1\"))\n", " g.add_port(libsbgn.port(y=\"396.61728\", x=\"648.0\", id=\"glyph13.2\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph26\")\n", " g.set_label(libsbgn.label(text=\"Laclp\"))\n", " g.set_bbox(libsbgn.bbox(y=\"386.61728\", x=\"808.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"376.61728\", x=\"818.0\", id=\"glyph26.1\"))\n", " g.add_port(libsbgn.port(y=\"416.61728\", x=\"818.0\", id=\"glyph26.2\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.SOURCE_AND_SINK, id=\"glyph22\")\n", " g.set_bbox(libsbgn.bbox(y=\"528.6667\", x=\"700.0\", h=\"36.0\", w=\"36.0\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.NUCLEIC_ACID_FEATURE, id=\"glyph21\")\n", " g.set_label(libsbgn.label(text=\"Clm\"))\n", " g.set_bbox(libsbgn.bbox(y=\"374.117\", x=\"682.0\", h=\"45.0\", w=\"72.0\"))\n", " \"\"\"\n", " <glyph id=\"glyph21a\" class=\"unit of information\">\n", " <label text=\"ct:mRNA\"/>\n", " <bbox y=\"365.367\" x=\"686.25\" h=\"17.5\" w=\"63.5\"/>\n", " </glyph>\n", " \"\"\"\n", " g1 = libsbgn.glyph(id=\"glyph21a\", class_=GlyphClass.UNIT_OF_INFORMATION)\n", "\n", " g1.set_label(libsbgn.label(text=\"ct:mRNA\"))\n", " g1.set_bbox(libsbgn.bbox(y=\"365.367\", x=\"686.25\", h=\"17.5\", w=\"63.5\"))\n", " map.add_glyph(g)\n", " g.add_glyph(g1)\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph28\")\n", " g.set_bbox(libsbgn.bbox(y=\"456.6667\", x=\"708.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"486.6667\", x=\"718.0\", id=\"glyph28.2\"))\n", " g.add_port(libsbgn.port(y=\"446.6667\", x=\"718.0\", id=\"glyph28.1\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph32\")\n", " g.set_bbox(libsbgn.bbox(y=\"386.61728\", x=\"288.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"396.61728\", x=\"318.0\", id=\"glyph32.2\"))\n", " g.add_port(libsbgn.port(y=\"396.61728\", x=\"278.0\", id=\"glyph32.1\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph9\")\n", " g.set_bbox(libsbgn.bbox(y=\"386.61728\", x=\"110.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"396.61728\", x=\"100.0\", id=\"glyph9.1\"))\n", " g.add_port(libsbgn.port(y=\"396.61728\", x=\"140.0\", id=\"glyph9.2\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.NUCLEIC_ACID_FEATURE, id=\"glyph1\")\n", " g.set_label(libsbgn.label(text=\"Tetm\"))\n", " g.set_bbox(libsbgn.bbox(y=\"374.117\", x=\"167.0\", h=\"45.0\", w=\"72.0\"))\n", " g1 = libsbgn.glyph(id=\"glyph1a\", class_=GlyphClass.UNIT_OF_INFORMATION)\n", "\n", " g1.set_label(libsbgn.label(text=\"ct:mRNA\"))\n", " g1.set_bbox(libsbgn.bbox(y=\"365.367\", x=\"171.25\", h=\"17.5\", w=\"63.5\"))\n", " \"\"\"\n", " <glyph id=\"glyph1a\" class=\"unit of information\">\n", " <label text=\"ct:mRNA\"/>\n", " <bbox y=\"365.367\" x=\"171.25\" h=\"17.5\" w=\"63.5\"/>\n", " </glyph>\n", " \"\"\"\n", " map.add_glyph(g)\n", " g.add_glyph(g1)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph23\")\n", " g.set_bbox(libsbgn.bbox(y=\"488.0\", x=\"194.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"498.0\", x=\"184.0\", id=\"glyph23.1\"))\n", " g.add_port(libsbgn.port(y=\"498.0\", x=\"224.0\", id=\"glyph23.2\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph4\")\n", " g.set_bbox(libsbgn.bbox(y=\"33.0\", x=\"463.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"43.0\", x=\"493.0\", id=\"glyph4.2\"))\n", " g.add_port(libsbgn.port(y=\"43.0\", x=\"453.0\", id=\"glyph4.1\"))\n", " map.add_glyph(g)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph7\")\n", " g.set_label(libsbgn.label(text=\"Tetm\"))\n", " g.set_bbox(libsbgn.bbox(y=\"208.0\", x=\"463.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"238.0\", x=\"473.0\", id=\"glyph7.2\"))\n", " g.add_port(libsbgn.port(y=\"198.0\", x=\"473.0\", id=\"glyph7.1\"))\n", " map.add_glyph(g)\n", "\n", " # \"\"\"\n", " # <glyph id=\"glyph20\" class=\"nucleic acid feature\">\n", " # <label text=\"Laclm\"/>\n", " # <bbox y=\"120.5\" x=\"437.0\" h=\"45.0\" w=\"72.0\"/>\n", " # <glyph id=\"glyph20a\" class=\"unit of information\">\n", " # <label text=\"ct:mRNA\"/>\n", " # <bbox y=\"111.75\" x=\"441.25\" h=\"17.5\" w=\"63.5\"/>\n", " # </glyph>\n", " # </glyph>\n", " # \"\"\"\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.NUCLEIC_ACID_FEATURE, id=\"glyph20\")\n", " g.set_label(libsbgn.label(text=\"Laclm\"))\n", " g.set_bbox(libsbgn.bbox(y=\"120.5\", x=\"437.0\", h=\"45.0\", w=\"72.0\"))\n", " g1 = libsbgn.glyph(id=\"glyph20a\", class_=GlyphClass.UNIT_OF_INFORMATION)\n", "\n", " g1.set_label(libsbgn.label(text=\"ct:mRNA\"))\n", " g1.set_bbox(libsbgn.bbox(y=\"111.75\", x=\"441.25\", h=\"17.5\", w=\"63.5\"))\n", " # TODO: add nested glyphs\n", " # g.add_glyph()\n", " map.add_glyph(g)\n", " g.add_glyph(g1)\n", "\n", " g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph6\")\n", "\n", " g.set_bbox(libsbgn.bbox(y=\"133.0\", x=\"553.0\", h=\"20.0\", w=\"20.0\"))\n", " g.add_port(libsbgn.port(y=\"143.0\", x=\"583.0\", id=\"glyph6.2\"))\n", " g.add_port(libsbgn.port(y=\"143.0\", x=\"543.0\", id=\"glyph6.1\"))\n", " map.add_glyph(g)\n", "\n", " # g = libsbgn.glyph(class_=GlyphClass.PROCESS, id=\"glyph6\")\n", " # g.set_label(libsbgn.label(text=\"Tetm\"))\n", " # g.set_bbox(libsbgn.bbox(y=\"133.0\", x=\"553.0\", h=\"20.0\", w=\"20.0\"))\n", " # map.add_glyph(g)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph4.2\", source=\"glyph3\", id=\"arc1\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"43.0\", x=\"530.0\"))\n", " a.set_end(libsbgn.endType(y=\"43.0\", x=\"493.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph2\", source=\"glyph5.1\", id=\"arc4\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"43.0\", x=\"263.0\"))\n", " a.set_end(libsbgn.endType(y=\"43.0\", x=\"216.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph7.2\", source=\"glyph11\", id=\"arc6\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"265.0\", x=\"473.0\"))\n", " a.set_end(libsbgn.endType(y=\"238.0\", x=\"473.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph12\", source=\"glyph6.2\", id=\"arc9\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"143.0\", x=\"583.0\"))\n", " a.set_end(libsbgn.endType(y=\"143.0\", x=\"625.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph5.2\", source=\"glyph8\", id=\"arc3\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"43.0\", x=\"342.0\"))\n", " a.set_end(libsbgn.endType(y=\"43.0\", x=\"303.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph13.1\", source=\"glyph10\", id=\"arc19\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.61728\", x=\"581.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.61728\", x=\"608.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph8\", source=\"glyph4.1\", id=\"arc22\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"43.0\", x=\"453.0\"))\n", " a.set_end(libsbgn.endType(y=\"43.0\", x=\"414.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph15\", source=\"glyph16.1\", id=\"arc24\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"218.0\", x=\"818.0\"))\n", " a.set_end(libsbgn.endType(y=\"161.0\", x=\"818.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph27\", source=\"glyph26.1\", id=\"arc10\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"376.61728\", x=\"818.0\"))\n", " a.set_end(libsbgn.endType(y=\"325.5\", x=\"818.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph26.2\", source=\"glyph25\", id=\"arc11\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"450.0\", x=\"818.0\"))\n", " a.set_end(libsbgn.endType(y=\"416.61728\", x=\"818.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph16.2\", source=\"glyph27\", id=\"arc13\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"280.5\", x=\"818.0\"))\n", " a.set_end(libsbgn.endType(y=\"258.0\", x=\"818.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.INHIBITION, target=\"glyph32\", source=\"glyph8\", id=\"arc15\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"65.5\", x=\"353.74677\"))\n", " a.set_end(libsbgn.endType(y=\"386.61728\", x=\"297.89154\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph30\", source=\"glyph14.2\", id=\"arc16\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"588.0\", x=\"293.0\"))\n", " a.set_end(libsbgn.endType(y=\"625.0\", x=\"293.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph14.1\", source=\"glyph24\", id=\"arc17\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"520.5\", x=\"293.0\"))\n", " a.set_end(libsbgn.endType(y=\"548.0\", x=\"293.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph23.1\", source=\"glyph17\", id=\"arc20\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"498.0\", x=\"151.0\"))\n", " a.set_end(libsbgn.endType(y=\"498.0\", x=\"184.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph24\", source=\"glyph23.2\", id=\"arc21\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"498.0\", x=\"224.0\"))\n", " a.set_end(libsbgn.endType(y=\"498.0\", x=\"257.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph32.2\", source=\"glyph19\", id=\"arc25\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.61728\", x=\"350.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.61728\", x=\"318.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph18\", source=\"glyph9.1\", id=\"arc28\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.61728\", x=\"100.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.617\", x=\"56.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.INHIBITION, target=\"glyph7\", source=\"glyph27\", id=\"arc2\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"280.5\", x=\"791.871\"))\n", " a.set_end(libsbgn.endType(y=\"217.66245\", x=\"483.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.INHIBITION, target=\"glyph13\", source=\"glyph24\", id=\"arc23\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"498.77063\", x=\"329.0\"))\n", " a.set_end(libsbgn.endType(y=\"406.61728\", x=\"627.2619\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph21\", source=\"glyph13.2\", id=\"arc5\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.61728\", x=\"648.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.617\", x=\"682.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.NECESSARY_STIMULATION,\n", " target=\"glyph26\",\n", " source=\"glyph21\",\n", " id=\"arc7\",\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.617\", x=\"754.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.61728\", x=\"808.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph22\", source=\"glyph28.2\", id=\"arc8\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"486.6667\", x=\"718.0\"))\n", " a.set_end(libsbgn.endType(y=\"528.6667\", x=\"718.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph28.1\", source=\"glyph21\", id=\"arc12\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"419.117\", x=\"718.0\"))\n", " a.set_end(libsbgn.endType(y=\"446.6667\", x=\"718.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph1\", source=\"glyph32.1\", id=\"arc14\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.61728\", x=\"278.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.617\", x=\"239.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph9.2\", source=\"glyph1\", id=\"arc18\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"396.617\", x=\"167.0\"))\n", " a.set_end(libsbgn.endType(y=\"396.61728\", x=\"140.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.NECESSARY_STIMULATION,\n", " target=\"glyph23\",\n", " source=\"glyph1\",\n", " id=\"arc26\",\n", " )\n", " a.set_start(libsbgn.startType(y=\"419.117\", x=\"203.22192\"))\n", " a.set_end(libsbgn.endType(y=\"488.0\", x=\"203.90137\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.NECESSARY_STIMULATION,\n", " target=\"glyph4\",\n", " source=\"glyph20\",\n", " id=\"arc27\",\n", " )\n", " a.set_start(libsbgn.startType(y=\"120.5\", x=\"473.0\"))\n", " a.set_end(libsbgn.endType(y=\"53.0\", x=\"473.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.PRODUCTION, target=\"glyph20\", source=\"glyph7.1\", id=\"arc29\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"198.0\", x=\"473.0\"))\n", " a.set_end(libsbgn.endType(y=\"165.5\", x=\"473.0\"))\n", " map.add_arc(a)\n", "\n", " a = libsbgn.arc(\n", " class_=ArcClass.CONSUMPTION, target=\"glyph6.1\", source=\"glyph20\", id=\"arc30\"\n", " )\n", " a.set_start(libsbgn.startType(y=\"143.0\", x=\"509.0\"))\n", " a.set_end(libsbgn.endType(y=\"143.0\", x=\"543.0\"))\n", " map.add_arc(a)\n", "\n", " f_out = str(sbgn_path)\n", " os.makedirs(os.path.dirname(f_out), exist_ok=True)\n", " sbgn.write_file(f_out)\n", "\n", " # render SBGN\n", " from libsbgnpy import render\n", "\n", " f_png: str = str(sbgn_path.parent / f\"{sbgn_path.stem}.png\")\n", " render.render_sbgn(sbgn, image_file=f_png, file_format=\"png\")\n", " Image(f_png, width=300)\n", " return sbgn" ] }, { "cell_type": "code", "execution_count": 4, "id": "1b90041c", "metadata": { "execution": { "iopub.execute_input": "2023-04-17T14:01:52.236596Z", "iopub.status.busy": "2023-04-17T14:01:52.235813Z", "iopub.status.idle": "2023-04-17T14:01:53.289213Z", "shell.execute_reply": "2023-04-17T14:01:53.289468Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SBGN rendered: /home/hmanneri/Documents/compbiolibs/combine-notebooks-original/combine-notebooks/results/repressilator.png\n" ] } ], "source": [ "if __name__ == \"__main__\":\n", " from combine_notebooks import RESULTS_DIR\n", "\n", " RESULTS_DIR\n", " sbgn: libsbgn.sbgn = create_repressilator(\n", " sbgn_path=RESULTS_DIR / \"repressilator_sbgn.sbgn\"\n", " )" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "main_language": "python", "notebook_metadata_filter": "-all" }, "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.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }