{
"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",
" '{}'.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",
" \n",
" \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",
" \n",
" \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",
" # \n",
" # \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
}