{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "younger-catholic",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:24.793231Z",
     "iopub.status.busy": "2021-01-22T17:21:24.791802Z",
     "iopub.status.idle": "2021-01-22T17:21:25.772788Z",
     "shell.execute_reply": "2021-01-22T17:21:25.771875Z"
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import networkx as nx\n",
    "from importlib import reload\n",
    "import os\n",
    "import autodepgraph as adg\n",
    "from autodepgraph import  AutoDepGraph_DAG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "immediate-installation",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.777085Z",
     "iopub.status.busy": "2021-01-22T17:21:25.776158Z",
     "iopub.status.idle": "2021-01-22T17:21:25.867589Z",
     "shell.execute_reply": "2021-01-22T17:21:25.867067Z"
    }
   },
   "outputs": [],
   "source": [
    "cal_True_delayed =  'autodepgraph.node_functions.calibration_functions.test_calibration_True_delayed'\n",
    "test_graph = AutoDepGraph_DAG('test graph')\n",
    "for node in ['A', 'B', 'C', 'D', 'E']:\n",
    "    test_graph.add_node(node,\n",
    "                        calibrate_function=cal_True_delayed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "independent-smart",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.887384Z",
     "iopub.status.busy": "2021-01-22T17:21:25.876781Z",
     "iopub.status.idle": "2021-01-22T17:21:25.918862Z",
     "shell.execute_reply": "2021-01-22T17:21:25.918527Z"
    }
   },
   "outputs": [],
   "source": [
    "test_graph.add_node?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "unlimited-headset",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.923022Z",
     "iopub.status.busy": "2021-01-22T17:21:25.922035Z",
     "iopub.status.idle": "2021-01-22T17:21:25.927498Z",
     "shell.execute_reply": "2021-01-22T17:21:25.926945Z"
    }
   },
   "outputs": [],
   "source": [
    "test_graph.add_edge('C', 'A')\n",
    "test_graph.add_edge('C', 'B')\n",
    "test_graph.add_edge('B', 'A')\n",
    "test_graph.add_edge('D', 'A')\n",
    "test_graph.add_edge('E', 'D')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "seven-peripheral",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.933402Z",
     "iopub.status.busy": "2021-01-22T17:21:25.932168Z",
     "iopub.status.idle": "2021-01-22T17:21:25.957982Z",
     "shell.execute_reply": "2021-01-22T17:21:25.958329Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/home/docs/checkouts/readthedocs.org/user_builds/autodepgraph/envs/sphinx_doc/lib/python3.8/site-packages/autodepgraph/svg_viewer/adg_graph.svg'"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# The default plotting mode is SVG\n",
    "test_graph.cfg_plot_mode = 'svg'\n",
    "# Updates the monitor, in this case the svg/html page\n",
    "test_graph.update_monitor()\n",
    "\n",
    "# Updating the monitor overwrites an svg file whose location is determined by the attribute:\n",
    "test_graph.cfg_svg_filename"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "organized-embassy",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.962339Z",
     "iopub.status.busy": "2021-01-22T17:21:25.961530Z",
     "iopub.status.idle": "2021-01-22T17:21:25.976489Z",
     "shell.execute_reply": "2021-01-22T17:21:25.977088Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"162pt\" height=\"188pt\" viewBox=\"0.00 0.00 162.00 188.00\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184)\">\n",
       "<title>test graph</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184 158,-184 158,4 -4,4\"/>\n",
       "<!-- A -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>A</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"55\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">A</text>\n",
       "</g>\n",
       "<!-- B -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>B</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"55\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">B</text>\n",
       "</g>\n",
       "<!-- B&#45;&gt;A -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>B-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M55,-71.8314C55,-64.131 55,-54.9743 55,-46.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"58.5001,-46.4132 55,-36.4133 51.5001,-46.4133 58.5001,-46.4132\"/>\n",
       "</g>\n",
       "<!-- C -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>C</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"27\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"27\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">C</text>\n",
       "</g>\n",
       "<!-- C&#45;&gt;A -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>C-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M21.5776,-144.3457C16.7956,-125.9021 11.6359,-96.3219 19,-72 22.2661,-61.2127 28.4764,-50.6108 34.8313,-41.6963\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.6285,-43.8001 40.8771,-33.7156 32.0487,-39.5732 37.6285,-43.8001\"/>\n",
       "</g>\n",
       "<!-- C&#45;&gt;B -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>C-&gt;B</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M33.778,-144.5708C36.9872,-136.3187 40.8935,-126.2738 44.4758,-117.0623\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"47.8248,-118.1069 48.1874,-107.5182 41.3008,-115.5697 47.8248,-118.1069\"/>\n",
       "</g>\n",
       "<!-- D -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>D</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"127\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"127\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">D</text>\n",
       "</g>\n",
       "<!-- D&#45;&gt;A -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>D-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M111.7307,-74.7307C101.803,-64.803 88.6847,-51.6847 77.5637,-40.5637\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"79.7933,-37.8436 70.2473,-33.2473 74.8436,-42.7933 79.7933,-37.8436\"/>\n",
       "</g>\n",
       "<!-- E -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>E</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"127\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"127\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">E</text>\n",
       "</g>\n",
       "<!-- E&#45;&gt;D -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>E-&gt;D</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M127,-143.8314C127,-136.131 127,-126.9743 127,-118.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"130.5001,-118.4132 127,-108.4133 123.5001,-118.4133 130.5001,-118.4132\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {
      "filenames": {
       "image/svg+xml": "/home/docs/checkouts/readthedocs.org/user_builds/autodepgraph/checkouts/sphinx_doc/docs/_build/jupyter_execute/tutorials/example_notebook_5_0.svg"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.display import display, SVG\n",
    "display(SVG(test_graph.cfg_svg_filename))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "further-czech",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.979978Z",
     "iopub.status.busy": "2021-01-22T17:21:25.979524Z",
     "iopub.status.idle": "2021-01-22T17:21:25.982331Z",
     "shell.execute_reply": "2021-01-22T17:21:25.982999Z"
    }
   },
   "outputs": [],
   "source": [
    "# The html page is located at the location specified by the url.\n",
    "# The page generated based on a template when the open_html_viewer command is called.\n",
    "# url = test_graph.open_html_viewer()\n",
    "# print(url)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "statutory-leeds",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:25.998751Z",
     "iopub.status.busy": "2021-01-22T17:21:25.998309Z",
     "iopub.status.idle": "2021-01-22T17:21:26.218788Z",
     "shell.execute_reply": "2021-01-22T17:21:26.220326Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "filenames": {
       "image/png": "/home/docs/checkouts/readthedocs.org/user_builds/autodepgraph/checkouts/sphinx_doc/docs/_build/jupyter_execute/tutorials/example_notebook_7_0.png"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Alternatively a render in matplotlib can be drawn\n",
    "test_graph.draw_mpl()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "mature-report",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:26.225837Z",
     "iopub.status.busy": "2021-01-22T17:21:26.224101Z",
     "iopub.status.idle": "2021-01-22T17:21:26.230841Z",
     "shell.execute_reply": "2021-01-22T17:21:26.232016Z"
    }
   },
   "outputs": [],
   "source": [
    "test_graph.set_all_node_states('needs calibration')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "convenient-verification",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:26.237265Z",
     "iopub.status.busy": "2021-01-22T17:21:26.235553Z",
     "iopub.status.idle": "2021-01-22T17:21:27.327038Z",
     "shell.execute_reply": "2021-01-22T17:21:27.327503Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Maintaining node \"B\".\n",
      "Maintaining node \"A\".\n",
      "\tCalibrating node A.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\tCalibration of node A successful.\n",
      "\tCalibrating node B.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\tCalibration of node B successful.\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"162pt\" height=\"188pt\" viewBox=\"0.00 0.00 162.00 188.00\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184)\">\n",
       "<title>test graph</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184 158,-184 158,4 -4,4\"/>\n",
       "<!-- A -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>A</title>\n",
       "<ellipse fill=\"#2ca02c\" stroke=\"#2ca02c\" cx=\"55\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">A</text>\n",
       "</g>\n",
       "<!-- B -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>B</title>\n",
       "<ellipse fill=\"#2ca02c\" stroke=\"#2ca02c\" cx=\"55\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">B</text>\n",
       "</g>\n",
       "<!-- B&#45;&gt;A -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>B-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M55,-71.8314C55,-64.131 55,-54.9743 55,-46.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"58.5001,-46.4132 55,-36.4133 51.5001,-46.4133 58.5001,-46.4132\"/>\n",
       "</g>\n",
       "<!-- C -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>C</title>\n",
       "<ellipse fill=\"#ff7f0e\" stroke=\"#ff7f0e\" cx=\"27\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"27\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">C</text>\n",
       "</g>\n",
       "<!-- C&#45;&gt;A -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>C-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M21.5776,-144.3457C16.7956,-125.9021 11.6359,-96.3219 19,-72 22.2661,-61.2127 28.4764,-50.6108 34.8313,-41.6963\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.6285,-43.8001 40.8771,-33.7156 32.0487,-39.5732 37.6285,-43.8001\"/>\n",
       "</g>\n",
       "<!-- C&#45;&gt;B -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>C-&gt;B</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M33.778,-144.5708C36.9872,-136.3187 40.8935,-126.2738 44.4758,-117.0623\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"47.8248,-118.1069 48.1874,-107.5182 41.3008,-115.5697 47.8248,-118.1069\"/>\n",
       "</g>\n",
       "<!-- D -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>D</title>\n",
       "<ellipse fill=\"#ff7f0e\" stroke=\"#ff7f0e\" cx=\"127\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"127\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">D</text>\n",
       "</g>\n",
       "<!-- D&#45;&gt;A -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>D-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M111.7307,-74.7307C101.803,-64.803 88.6847,-51.6847 77.5637,-40.5637\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"79.7933,-37.8436 70.2473,-33.2473 74.8436,-42.7933 79.7933,-37.8436\"/>\n",
       "</g>\n",
       "<!-- E -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>E</title>\n",
       "<ellipse fill=\"#ff7f0e\" stroke=\"#ff7f0e\" cx=\"127\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"127\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">E</text>\n",
       "</g>\n",
       "<!-- E&#45;&gt;D -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>E-&gt;D</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M127,-143.8314C127,-136.131 127,-126.9743 127,-118.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"130.5001,-118.4132 127,-108.4133 123.5001,-118.4133 130.5001,-118.4132\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {
      "filenames": {
       "image/svg+xml": "/home/docs/checkouts/readthedocs.org/user_builds/autodepgraph/checkouts/sphinx_doc/docs/_build/jupyter_execute/tutorials/example_notebook_9_3.svg"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_graph.maintain_B()\n",
    "\n",
    "display(SVG(test_graph.cfg_svg_filename))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "civilian-desert",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:27.332881Z",
     "iopub.status.busy": "2021-01-22T17:21:27.332366Z",
     "iopub.status.idle": "2021-01-22T17:21:27.351863Z",
     "shell.execute_reply": "2021-01-22T17:21:27.352210Z"
    }
   },
   "outputs": [],
   "source": [
    "# Update the plotting monitor (default matplotlib) to show your graph\n",
    "test_graph.update_monitor()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "rising-circular",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:27.357399Z",
     "iopub.status.busy": "2021-01-22T17:21:27.356216Z",
     "iopub.status.idle": "2021-01-22T17:21:28.982042Z",
     "shell.execute_reply": "2021-01-22T17:21:28.982436Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Maintaining node \"E\".\n",
      "Maintaining node \"D\".\n",
      "Maintaining node \"A\".\n",
      "\tCalibrating node A.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\tCalibration of node A successful.\n",
      "\tCalibrating node D.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\tCalibration of node D successful.\n",
      "\tCalibrating node E.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\tCalibration of node E successful.\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"162pt\" height=\"188pt\" viewBox=\"0.00 0.00 162.00 188.00\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184)\">\n",
       "<title>test graph</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184 158,-184 158,4 -4,4\"/>\n",
       "<!-- A -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>A</title>\n",
       "<ellipse fill=\"#2ca02c\" stroke=\"#2ca02c\" cx=\"55\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">A</text>\n",
       "</g>\n",
       "<!-- B -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>B</title>\n",
       "<ellipse fill=\"#ff7f0e\" stroke=\"#ff7f0e\" cx=\"55\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">B</text>\n",
       "</g>\n",
       "<!-- B&#45;&gt;A -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>B-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M55,-71.8314C55,-64.131 55,-54.9743 55,-46.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"58.5001,-46.4132 55,-36.4133 51.5001,-46.4133 58.5001,-46.4132\"/>\n",
       "</g>\n",
       "<!-- C -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>C</title>\n",
       "<ellipse fill=\"#ff7f0e\" stroke=\"#ff7f0e\" cx=\"27\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"27\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">C</text>\n",
       "</g>\n",
       "<!-- C&#45;&gt;A -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>C-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M21.5776,-144.3457C16.7956,-125.9021 11.6359,-96.3219 19,-72 22.2661,-61.2127 28.4764,-50.6108 34.8313,-41.6963\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.6285,-43.8001 40.8771,-33.7156 32.0487,-39.5732 37.6285,-43.8001\"/>\n",
       "</g>\n",
       "<!-- C&#45;&gt;B -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>C-&gt;B</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M33.778,-144.5708C36.9872,-136.3187 40.8935,-126.2738 44.4758,-117.0623\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"47.8248,-118.1069 48.1874,-107.5182 41.3008,-115.5697 47.8248,-118.1069\"/>\n",
       "</g>\n",
       "<!-- D -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>D</title>\n",
       "<ellipse fill=\"#2ca02c\" stroke=\"#2ca02c\" cx=\"127\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"127\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">D</text>\n",
       "</g>\n",
       "<!-- D&#45;&gt;A -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>D-&gt;A</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M111.7307,-74.7307C101.803,-64.803 88.6847,-51.6847 77.5637,-40.5637\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"79.7933,-37.8436 70.2473,-33.2473 74.8436,-42.7933 79.7933,-37.8436\"/>\n",
       "</g>\n",
       "<!-- E -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>E</title>\n",
       "<ellipse fill=\"#2ca02c\" stroke=\"#2ca02c\" cx=\"127\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"127\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">E</text>\n",
       "</g>\n",
       "<!-- E&#45;&gt;D -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>E-&gt;D</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M127,-143.8314C127,-136.131 127,-126.9743 127,-118.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"130.5001,-118.4132 127,-108.4133 123.5001,-118.4133 130.5001,-118.4132\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {
      "filenames": {
       "image/svg+xml": "/home/docs/checkouts/readthedocs.org/user_builds/autodepgraph/checkouts/sphinx_doc/docs/_build/jupyter_execute/tutorials/example_notebook_11_4.svg"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_graph.set_all_node_states('needs calibration')\n",
    "\n",
    "test_graph.maintain_node('E')\n",
    "\n",
    "display(SVG(test_graph.cfg_svg_filename))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "violent-custody",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:28.988957Z",
     "iopub.status.busy": "2021-01-22T17:21:28.987065Z",
     "iopub.status.idle": "2021-01-22T17:21:29.139930Z",
     "shell.execute_reply": "2021-01-22T17:21:29.139231Z"
    }
   },
   "outputs": [],
   "source": [
    "test_dir = os.path.join(adg.__path__[0], 'tests', 'test_data')\n",
    "fn = os.path.join(test_dir, 'three_qubit_graph.yaml')\n",
    "DAG = nx.readwrite.read_yaml(fn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "atmospheric-peeing",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-01-22T17:21:29.149456Z",
     "iopub.status.busy": "2021-01-22T17:21:29.148401Z",
     "iopub.status.idle": "2021-01-22T17:21:29.194491Z",
     "shell.execute_reply": "2021-01-22T17:21:29.194034Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"2608pt\" height=\"692pt\" viewBox=\"0.00 0.00 2608.28 692.00\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 688)\">\n",
       "<title>q2 DAG</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-688 2604.2826,-688 2604.2826,4 -4,4\"/>\n",
       "<!-- 3 qubit device multiplexed readout -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>3 qubit device multiplexed readout</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1363.7912\" cy=\"-522\" rx=\"134.5761\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1363.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">3 qubit device multiplexed readout</text>\n",
       "</g>\n",
       "<!-- q0 optimal weights -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>q0 optimal weights</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1104.7912\" cy=\"-450\" rx=\"79.0865\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1104.7912\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 optimal weights</text>\n",
       "</g>\n",
       "<!-- 3 qubit device multiplexed readout&#45;&gt;q0 optimal weights -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>3 qubit device multiplexed readout-&gt;q0 optimal weights</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1305.3436,-505.752C1263.4919,-494.1175 1207.3,-478.4967 1165.0437,-466.7497\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1165.7362,-463.3096 1155.1641,-464.0033 1163.8613,-470.0538 1165.7362,-463.3096\"/>\n",
       "</g>\n",
       "<!-- q1 optimal weights -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>q1 optimal weights</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1458.7912\" cy=\"-450\" rx=\"79.0865\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1458.7912\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 optimal weights</text>\n",
       "</g>\n",
       "<!-- 3 qubit device multiplexed readout&#45;&gt;q1 optimal weights -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>3 qubit device multiplexed readout-&gt;q1 optimal weights</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1387.2744,-504.2022C1399.444,-494.9789 1414.4678,-483.5925 1427.5992,-473.6403\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1430.0504,-476.1742 1435.906,-467.3446 1425.8222,-470.5954 1430.0504,-476.1742\"/>\n",
       "</g>\n",
       "<!-- q2 optimal weights -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>q2 optimal weights</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2215.7912\" cy=\"-450\" rx=\"79.0865\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2215.7912\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 optimal weights</text>\n",
       "</g>\n",
       "<!-- 3 qubit device multiplexed readout&#45;&gt;q2 optimal weights -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>3 qubit device multiplexed readout-&gt;q2 optimal weights</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1459.7668,-509.3491C1475.7888,-507.425 1492.249,-505.5632 1507.7912,-504 1731.1827,-481.5321 1995.0702,-463.7012 2128.7615,-455.2816\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2129.181,-458.7623 2138.9422,-454.6428 2128.7426,-451.776 2129.181,-458.7623\"/>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude med -->\n",
       "<g id=\"node28\" class=\"node\">\n",
       "<title>q0 pulse amplitude med</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"991.7912\" cy=\"-378\" rx=\"96.6831\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"991.7912\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 pulse amplitude med</text>\n",
       "</g>\n",
       "<!-- q0 optimal weights&#45;&gt;q0 pulse amplitude med -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>q0 optimal weights-&gt;q0 pulse amplitude med</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1078.0118,-432.937C1063.0335,-423.3933 1044.1595,-411.3674 1027.8917,-401.002\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1029.4777,-397.8626 1019.1634,-395.4407 1025.7162,-403.766 1029.4777,-397.8626\"/>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude med -->\n",
       "<g id=\"node40\" class=\"node\">\n",
       "<title>q1 pulse amplitude med</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1458.7912\" cy=\"-378\" rx=\"96.6831\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1458.7912\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 pulse amplitude med</text>\n",
       "</g>\n",
       "<!-- q1 optimal weights&#45;&gt;q1 pulse amplitude med -->\n",
       "<g id=\"edge43\" class=\"edge\">\n",
       "<title>q1 optimal weights-&gt;q1 pulse amplitude med</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1458.7912,-431.8314C1458.7912,-424.131 1458.7912,-414.9743 1458.7912,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1462.2913,-406.4132 1458.7912,-396.4133 1455.2913,-406.4133 1462.2913,-406.4132\"/>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude med -->\n",
       "<g id=\"node53\" class=\"node\">\n",
       "<title>q2 pulse amplitude med</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2224.7912\" cy=\"-378\" rx=\"96.6831\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2224.7912\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 pulse amplitude med</text>\n",
       "</g>\n",
       "<!-- q2 optimal weights&#45;&gt;q2 pulse amplitude med -->\n",
       "<g id=\"edge60\" class=\"edge\">\n",
       "<title>q2 optimal weights-&gt;q2 pulse amplitude med</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2218.0623,-431.8314C2219.0249,-424.131 2220.1694,-414.9743 2221.2392,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2224.7221,-406.7702 2222.4896,-396.4133 2217.7762,-405.9019 2224.7221,-406.7702\"/>\n",
       "</g>\n",
       "<!-- 3 qubit device resonator frequencies coarse -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>3 qubit device resonator frequencies coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1514.7912\" cy=\"-18\" rx=\"163.5712\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1514.7912\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">3 qubit device resonator frequencies coarse</text>\n",
       "</g>\n",
       "<!-- AWG8 Flux&#45;staircase -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>AWG8 Flux-staircase</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1680.7912\" cy=\"-450\" rx=\"88.2844\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1680.7912\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">AWG8 Flux-staircase</text>\n",
       "</g>\n",
       "<!-- AWG8 MW&#45;staircase -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>AWG8 MW-staircase</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1109.7912\" cy=\"-162\" rx=\"89.0842\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1109.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">AWG8 MW-staircase</text>\n",
       "</g>\n",
       "<!-- CZ q0&#45;q1 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>CZ q0-q1</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1317.7912\" cy=\"-666\" rx=\"44.6926\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1317.7912\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">CZ q0-q1</text>\n",
       "</g>\n",
       "<!-- Chevron q0&#45;q1 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>Chevron q0-q1</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1317.7912\" cy=\"-594\" rx=\"63.8893\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1317.7912\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">Chevron q0-q1</text>\n",
       "</g>\n",
       "<!-- CZ q0&#45;q1&#45;&gt;Chevron q0&#45;q1 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>CZ q0-q1-&gt;Chevron q0-q1</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1317.7912,-647.8314C1317.7912,-640.131 1317.7912,-630.9743 1317.7912,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1321.2913,-622.4132 1317.7912,-612.4133 1314.2913,-622.4133 1321.2913,-622.4132\"/>\n",
       "</g>\n",
       "<!-- q0 cryo dist. corr. -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>q0 cryo dist. corr.</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1104.7912\" cy=\"-594\" rx=\"74.187\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1104.7912\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 cryo dist. corr.</text>\n",
       "</g>\n",
       "<!-- CZ q0&#45;q1&#45;&gt;q0 cryo dist. corr. -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>CZ q0-q1-&gt;q0 cryo dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1283.095,-654.2717C1249.189,-642.8105 1197.1079,-625.2056 1157.9723,-611.9767\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1158.9147,-608.6008 1148.3205,-608.7141 1156.6731,-615.2321 1158.9147,-608.6008\"/>\n",
       "</g>\n",
       "<!-- q1 cryo dist. corr. -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>q1 cryo dist. corr.</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1629.7912\" cy=\"-594\" rx=\"74.187\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1629.7912\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 cryo dist. corr.</text>\n",
       "</g>\n",
       "<!-- CZ q0&#45;q1&#45;&gt;q1 cryo dist. corr. -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>CZ q0-q1-&gt;q1 cryo dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1356.6754,-657.0267C1409.1627,-644.9143 1503.3337,-623.1825 1566.1992,-608.6751\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1567.0519,-612.0704 1576.0088,-606.4113 1565.4778,-605.2496 1567.0519,-612.0704\"/>\n",
       "</g>\n",
       "<!-- Chevron q0&#45;q1&#45;&gt;3 qubit device multiplexed readout -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>Chevron q0-q1-&gt;3 qubit device multiplexed readout</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1329.162,-576.2022C1334.4847,-567.871 1340.9351,-557.7748 1346.8191,-548.565\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1349.7972,-550.4045 1352.2317,-540.0931 1343.8984,-546.6357 1349.7972,-550.4045\"/>\n",
       "</g>\n",
       "<!-- Chevron q0&#45;q1&#45;&gt;AWG8 Flux&#45;staircase -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>Chevron q0-q1-&gt;AWG8 Flux-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1273.2246,-581.0475C1253.1824,-572.7509 1231.4501,-559.736 1219.7912,-540 1211.6533,-526.2242 1209.1145,-515.9167 1219.7912,-504 1268.5744,-449.5514 1474.2253,-476.867 1546.7912,-468 1563.0955,-466.0077 1580.4985,-463.7597 1597.1814,-461.5446\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1598.0108,-464.965 1607.4596,-460.1722 1597.0843,-458.0266 1598.0108,-464.965\"/>\n",
       "</g>\n",
       "<!-- q0 gates restless -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>q0 gates restless</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1104.7912\" cy=\"-522\" rx=\"68.4888\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1104.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 gates restless</text>\n",
       "</g>\n",
       "<!-- Chevron q0&#45;q1&#45;&gt;q0 gates restless -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>Chevron q0-q1-&gt;q0 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1276.7227,-580.1177C1242.4322,-568.5265 1193.366,-551.9408 1156.4205,-539.4521\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1157.4197,-536.0954 1146.8255,-536.2088 1155.1781,-542.7268 1157.4197,-536.0954\"/>\n",
       "</g>\n",
       "<!-- q1 gates restless -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>q1 gates restless</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1584.7912\" cy=\"-522\" rx=\"68.4888\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1584.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 gates restless</text>\n",
       "</g>\n",
       "<!-- Chevron q0&#45;q1&#45;&gt;q1 gates restless -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>Chevron q0-q1-&gt;q1 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1363.9943,-581.5408C1409.2362,-569.3407 1478.2975,-550.7174 1527.1177,-537.5524\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1528.1615,-540.896 1536.9053,-534.9131 1526.3389,-534.1375 1528.1615,-540.896\"/>\n",
       "</g>\n",
       "<!-- q0 cryo dist. corr.&#45;&gt;q0 gates restless -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>q0 cryo dist. corr.-&gt;q0 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1104.7912,-575.8314C1104.7912,-568.131 1104.7912,-558.9743 1104.7912,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1108.2913,-550.4132 1104.7912,-540.4133 1101.2913,-550.4133 1108.2913,-550.4132\"/>\n",
       "</g>\n",
       "<!-- q0 room temp. dist. corr. -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>q0 room temp. dist. corr.</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"917.7912\" cy=\"-522\" rx=\"100.9827\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"917.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 room temp. dist. corr.</text>\n",
       "</g>\n",
       "<!-- q0 cryo dist. corr.&#45;&gt;q0 room temp. dist. corr. -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>q0 cryo dist. corr.-&gt;q0 room temp. dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1065.1333,-578.7307C1037.3686,-568.0405 999.995,-553.6507 969.8364,-542.0388\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"970.9092,-538.7014 960.3194,-538.3745 968.394,-545.234 970.9092,-538.7014\"/>\n",
       "</g>\n",
       "<!-- q1 cryo dist. corr.&#45;&gt;q1 gates restless -->\n",
       "<g id=\"edge38\" class=\"edge\">\n",
       "<title>q1 cryo dist. corr.-&gt;q1 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1618.6676,-576.2022C1613.4212,-567.8079 1607.0548,-557.6218 1601.2636,-548.3558\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1604.2109,-546.4675 1595.9428,-539.8425 1598.2749,-550.1776 1604.2109,-546.4675\"/>\n",
       "</g>\n",
       "<!-- q1 room temp. dist. corr. -->\n",
       "<g id=\"node33\" class=\"node\">\n",
       "<title>q1 room temp. dist. corr.</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1809.7912\" cy=\"-522\" rx=\"100.9827\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1809.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 room temp. dist. corr.</text>\n",
       "</g>\n",
       "<!-- q1 cryo dist. corr.&#45;&gt;q1 room temp. dist. corr. -->\n",
       "<g id=\"edge39\" class=\"edge\">\n",
       "<title>q1 cryo dist. corr.-&gt;q1 room temp. dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1668.4058,-578.5542C1694.8564,-567.9739 1730.2122,-553.8316 1758.9506,-542.3362\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1760.4357,-545.5119 1768.4206,-538.5483 1757.8359,-539.0126 1760.4357,-545.5119\"/>\n",
       "</g>\n",
       "<!-- CZ q1&#45;q2 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>CZ q1-q2</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1629.7912\" cy=\"-666\" rx=\"44.6926\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1629.7912\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">CZ q1-q2</text>\n",
       "</g>\n",
       "<!-- CZ q1&#45;q2&#45;&gt;q1 cryo dist. corr. -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>CZ q1-q2-&gt;q1 cryo dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1629.7912,-647.8314C1629.7912,-640.131 1629.7912,-630.9743 1629.7912,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1633.2913,-622.4132 1629.7912,-612.4133 1626.2913,-622.4133 1633.2913,-622.4132\"/>\n",
       "</g>\n",
       "<!-- Chevron q1&#45;q2 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>Chevron q1-q2</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1473.7912\" cy=\"-594\" rx=\"63.8893\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1473.7912\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">Chevron q1-q2</text>\n",
       "</g>\n",
       "<!-- CZ q1&#45;q2&#45;&gt;Chevron q1&#45;q2 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>CZ q1-q2-&gt;Chevron q1-q2</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1600.0816,-652.2879C1576.4616,-641.3863 1543.1015,-625.9893 1516.5993,-613.7576\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1517.7227,-610.4213 1507.1764,-609.4085 1514.7893,-616.777 1517.7227,-610.4213\"/>\n",
       "</g>\n",
       "<!-- q2 cryo dist. corr. -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>q2 cryo dist. corr.</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2028.7912\" cy=\"-594\" rx=\"74.187\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2028.7912\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 cryo dist. corr.</text>\n",
       "</g>\n",
       "<!-- CZ q1&#45;q2&#45;&gt;q2 cryo dist. corr. -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>CZ q1-q2-&gt;q2 cryo dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1670.9884,-658.5659C1739.1024,-646.2747 1875.9282,-621.5843 1959.2381,-606.5509\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1959.9048,-609.9872 1969.1243,-604.767 1958.6617,-603.0985 1959.9048,-609.9872\"/>\n",
       "</g>\n",
       "<!-- Chevron q1&#45;q2&#45;&gt;3 qubit device multiplexed readout -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>Chevron q1-q2-&gt;3 qubit device multiplexed readout</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1448.2785,-577.3008C1433.82,-567.837 1415.5014,-555.8467 1399.6203,-545.4518\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1401.3721,-542.4153 1391.0882,-539.8671 1397.5384,-548.2722 1401.3721,-542.4153\"/>\n",
       "</g>\n",
       "<!-- Chevron q1&#45;q2&#45;&gt;AWG8 Flux&#45;staircase -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>Chevron q1-q2-&gt;AWG8 Flux-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1521.0451,-581.7259C1575.105,-567.4918 1656.8602,-545.2976 1661.7912,-540 1677.0306,-523.6277 1681.2819,-498.2301 1682.007,-478.5838\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1685.5087,-478.3844 1682.0944,-468.3548 1678.509,-478.3245 1685.5087,-478.3844\"/>\n",
       "</g>\n",
       "<!-- Chevron q1&#45;q2&#45;&gt;q0 gates restless -->\n",
       "<g id=\"edge16\" class=\"edge\">\n",
       "<title>Chevron q1-q2-&gt;q0 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1423.3608,-582.8358C1412.6219,-580.5222 1401.3401,-578.1393 1390.7912,-576 1315.8104,-560.7938 1229.4794,-544.6854 1171.4526,-534.0611\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1171.7817,-530.5634 1161.3153,-532.2081 1170.523,-537.4493 1171.7817,-530.5634\"/>\n",
       "</g>\n",
       "<!-- Chevron q1&#45;q2&#45;&gt;q1 gates restless -->\n",
       "<g id=\"edge17\" class=\"edge\">\n",
       "<title>Chevron q1-q2-&gt;q1 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1499.2569,-577.4817C1514.3783,-567.6733 1533.7563,-555.1037 1550.2432,-544.4096\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1552.5748,-547.069 1559.0597,-538.6907 1548.7654,-541.1963 1552.5748,-547.069\"/>\n",
       "</g>\n",
       "<!-- q2 gates restless -->\n",
       "<g id=\"node45\" class=\"node\">\n",
       "<title>q2 gates restless</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2215.7912\" cy=\"-522\" rx=\"68.4888\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2215.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 gates restless</text>\n",
       "</g>\n",
       "<!-- q2 cryo dist. corr.&#45;&gt;q2 gates restless -->\n",
       "<g id=\"edge55\" class=\"edge\">\n",
       "<title>q2 cryo dist. corr.-&gt;q2 gates restless</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2068.4491,-578.7307C2097.3748,-567.5935 2136.7296,-552.4409 2167.49,-540.5973\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2169.0765,-543.737 2177.1511,-536.8775 2166.5613,-537.2044 2169.0765,-543.737\"/>\n",
       "</g>\n",
       "<!-- q2 room temp. dist. corr. -->\n",
       "<g id=\"node46\" class=\"node\">\n",
       "<title>q2 room temp. dist. corr.</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2028.7912\" cy=\"-522\" rx=\"100.9827\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2028.7912\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 room temp. dist. corr.</text>\n",
       "</g>\n",
       "<!-- q2 cryo dist. corr.&#45;&gt;q2 room temp. dist. corr. -->\n",
       "<g id=\"edge56\" class=\"edge\">\n",
       "<title>q2 cryo dist. corr.-&gt;q2 room temp. dist. corr.</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2028.7912,-575.8314C2028.7912,-568.131 2028.7912,-558.9743 2028.7912,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2032.2913,-550.4132 2028.7912,-540.4133 2025.2913,-550.4133 2032.2913,-550.4132\"/>\n",
       "</g>\n",
       "<!-- q0 gates restless&#45;&gt;q0 optimal weights -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>q0 gates restless-&gt;q0 optimal weights</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1104.7912,-503.8314C1104.7912,-496.131 1104.7912,-486.9743 1104.7912,-478.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1108.2913,-478.4132 1104.7912,-468.4133 1101.2913,-478.4133 1108.2913,-478.4132\"/>\n",
       "</g>\n",
       "<!-- q1 gates restless&#45;&gt;q1 optimal weights -->\n",
       "<g id=\"edge42\" class=\"edge\">\n",
       "<title>q1 gates restless-&gt;q1 optimal weights</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1555.8843,-505.4817C1538.4476,-495.5179 1516.0247,-482.7049 1497.1211,-471.9028\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1498.8573,-468.8638 1488.4384,-466.9412 1495.3843,-474.9415 1498.8573,-468.8638\"/>\n",
       "</g>\n",
       "<!-- q0 T1 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>q0 T1</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"488.7912\" cy=\"-306\" rx=\"31.6951\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"488.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 T1</text>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude coarse -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>q0 pulse amplitude coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"589.7912\" cy=\"-234\" rx=\"103.1819\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"589.7912\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 pulse amplitude coarse</text>\n",
       "</g>\n",
       "<!-- q0 T1&#45;&gt;q0 pulse amplitude coarse -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>q0 T1-&gt;q0 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M508.7456,-291.7751C522.4244,-282.0239 540.8927,-268.8584 556.7447,-257.5579\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"559.1241,-260.1601 565.2352,-251.5053 555.0607,-254.4601 559.1241,-260.1601\"/>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude coarse&#45;&gt;AWG8 MW&#45;staircase -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>q0 pulse amplitude coarse-&gt;AWG8 MW-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M676.6552,-224.2025C761.9118,-214.2696 895.5532,-197.8542 1010.7912,-180 1018.499,-178.8058 1026.5296,-177.4806 1034.536,-176.1065\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1035.3876,-179.5109 1044.6382,-174.3459 1034.1858,-172.6149 1035.3876,-179.5109\"/>\n",
       "</g>\n",
       "<!-- q0 frequency coarse -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>q0 frequency coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"297.7912\" cy=\"-162\" rx=\"81.7856\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"297.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 frequency coarse</text>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude coarse&#45;&gt;q0 frequency coarse -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>q0 pulse amplitude coarse-&gt;q0 frequency coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M529.9961,-219.256C481.1917,-207.222 412.3652,-190.2511 362.3217,-177.9116\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"363.1221,-174.5042 352.575,-175.5083 361.4462,-181.3007 363.1221,-174.5042\"/>\n",
       "</g>\n",
       "<!-- q0 mixer offsets drive -->\n",
       "<g id=\"node25\" class=\"node\">\n",
       "<title>q0 mixer offsets drive</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"486.7912\" cy=\"-162\" rx=\"89.0842\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"486.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 mixer offsets drive</text>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude coarse&#45;&gt;q0 mixer offsets drive -->\n",
       "<g id=\"edge29\" class=\"edge\">\n",
       "<title>q0 pulse amplitude coarse-&gt;q0 mixer offsets drive</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M564.5946,-216.3868C551.1525,-206.9904 534.4423,-195.3095 519.9575,-185.1842\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"521.9291,-182.292 511.7277,-179.4313 517.9186,-188.0293 521.9291,-182.292\"/>\n",
       "</g>\n",
       "<!-- q0 mixer offsets readout -->\n",
       "<g id=\"node26\" class=\"node\">\n",
       "<title>q0 mixer offsets readout</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"691.7912\" cy=\"-162\" rx=\"97.4827\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"691.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 mixer offsets readout</text>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude coarse&#45;&gt;q0 mixer offsets readout -->\n",
       "<g id=\"edge30\" class=\"edge\">\n",
       "<title>q0 pulse amplitude coarse-&gt;q0 mixer offsets readout</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M614.7432,-216.3868C627.9304,-207.0782 644.2938,-195.5276 658.5442,-185.4685\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"660.9455,-188.0576 667.0968,-179.4313 656.9087,-182.3388 660.9455,-188.0576\"/>\n",
       "</g>\n",
       "<!-- q0 mixer skewness drive -->\n",
       "<g id=\"node27\" class=\"node\">\n",
       "<title>q0 mixer skewness drive</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"98.7912\" cy=\"-162\" rx=\"98.5829\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"98.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 mixer skewness drive</text>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude coarse&#45;&gt;q0 mixer skewness drive -->\n",
       "<g id=\"edge31\" class=\"edge\">\n",
       "<title>q0 pulse amplitude coarse-&gt;q0 mixer skewness drive</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M507.5207,-223.0078C429.9024,-212.4933 310.3289,-195.9246 206.7912,-180 198.4865,-178.7227 189.8297,-177.3498 181.1901,-175.9525\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"181.5106,-172.4586 171.0779,-174.3051 180.385,-179.3676 181.5106,-172.4586\"/>\n",
       "</g>\n",
       "<!-- q0 T2&#45;echo -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>q0 T2-echo</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"589.7912\" cy=\"-306\" rx=\"51.1914\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"589.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 T2-echo</text>\n",
       "</g>\n",
       "<!-- q0 T2&#45;echo&#45;&gt;q0 pulse amplitude coarse -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>q0 T2-echo-&gt;q0 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M589.7912,-287.8314C589.7912,-280.131 589.7912,-270.9743 589.7912,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"593.2913,-262.4132 589.7912,-252.4133 586.2913,-262.4133 593.2913,-262.4132\"/>\n",
       "</g>\n",
       "<!-- q0 T2&#45;star -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>q0 T2-star</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"706.7912\" cy=\"-306\" rx=\"47.3916\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"706.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 T2-star</text>\n",
       "</g>\n",
       "<!-- q0 T2&#45;star&#45;&gt;q0 pulse amplitude coarse -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>q0 T2-star-&gt;q0 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M681.6918,-290.5542C665.7962,-280.7723 644.9527,-267.9455 627.1352,-256.9809\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"628.4868,-253.703 618.1358,-251.4428 624.8181,-259.6647 628.4868,-253.703\"/>\n",
       "</g>\n",
       "<!-- q0 room temp. dist. corr.&#45;&gt;AWG8 Flux&#45;staircase -->\n",
       "<g id=\"edge34\" class=\"edge\">\n",
       "<title>q0 room temp. dist. corr.-&gt;AWG8 Flux-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M989.5485,-509.2716C1002.2598,-507.2988 1015.3932,-505.4412 1027.7912,-504 1257.4656,-477.3014 1316.7578,-491.4036 1546.7912,-468 1563.6769,-466.282 1581.7144,-464.0985 1598.9058,-461.8495\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1599.4626,-465.3064 1608.915,-460.5208 1598.5413,-458.3673 1599.4626,-465.3064\"/>\n",
       "</g>\n",
       "<!-- q0 resonator frequency -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>q0 resonator frequency</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"804.7912\" cy=\"-90\" rx=\"92.0841\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"804.7912\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 resonator frequency</text>\n",
       "</g>\n",
       "<!-- q0 frequency coarse&#45;&gt;q0 resonator frequency -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>q0 frequency coarse-&gt;q0 resonator frequency</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M357.4076,-149.621C367.8461,-147.6215 378.6195,-145.6643 388.7912,-144 500.3311,-125.7498 629.5157,-109.7818 713.9612,-100.0359\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"714.4984,-103.4973 724.0335,-98.8785 713.6993,-96.5431 714.4984,-103.4973\"/>\n",
       "</g>\n",
       "<!-- q0 resonator frequency&#45;&gt;3 qubit device resonator frequencies coarse -->\n",
       "<g id=\"edge33\" class=\"edge\">\n",
       "<title>q0 resonator frequency-&gt;3 qubit device resonator frequencies coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M886.9309,-81.6703C1008.8443,-69.3073 1238.8687,-45.9809 1384.0839,-31.2548\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1384.7944,-34.7008 1394.3902,-30.2097 1384.0881,-27.7365 1384.7944,-34.7008\"/>\n",
       "</g>\n",
       "<!-- q0 frequency fine -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>q0 frequency fine</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"914.7912\" cy=\"-306\" rx=\"73.387\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"914.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q0 frequency fine</text>\n",
       "</g>\n",
       "<!-- q0 frequency fine&#45;&gt;q0 pulse amplitude coarse -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>q0 frequency fine-&gt;q0 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M860.0269,-293.8676C806.1587,-281.9337 723.5428,-263.6311 663.8385,-250.4043\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"664.237,-246.9078 653.7167,-248.1619 662.7229,-253.7421 664.237,-246.9078\"/>\n",
       "</g>\n",
       "<!-- q0 pulse amplitude med&#45;&gt;q0 frequency fine -->\n",
       "<g id=\"edge32\" class=\"edge\">\n",
       "<title>q0 pulse amplitude med-&gt;q0 frequency fine</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M972.7575,-360.2022C963.1533,-351.2217 951.3558,-340.1902 940.9165,-330.4289\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"943.3008,-327.8665 933.606,-323.593 938.5198,-332.9795 943.3008,-327.8665\"/>\n",
       "</g>\n",
       "<!-- q1 T1 -->\n",
       "<g id=\"node29\" class=\"node\">\n",
       "<title>q1 T1</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1101.7912\" cy=\"-306\" rx=\"31.6951\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1101.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 T1</text>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude coarse -->\n",
       "<g id=\"node30\" class=\"node\">\n",
       "<title>q1 pulse amplitude coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1315.7912\" cy=\"-234\" rx=\"103.1819\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1315.7912\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 pulse amplitude coarse</text>\n",
       "</g>\n",
       "<!-- q1 T1&#45;&gt;q1 pulse amplitude coarse -->\n",
       "<g id=\"edge35\" class=\"edge\">\n",
       "<title>q1 T1-&gt;q1 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1126.7619,-294.5111C1132.0126,-292.2441 1137.5492,-289.9619 1142.7912,-288 1178.1755,-274.7571 1218.4276,-262.0568 1251.196,-252.3037\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1252.5131,-255.5642 1261.1116,-249.3741 1250.5297,-248.851 1252.5131,-255.5642\"/>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude coarse&#45;&gt;AWG8 MW&#45;staircase -->\n",
       "<g id=\"edge44\" class=\"edge\">\n",
       "<title>q1 pulse amplitude coarse-&gt;AWG8 MW-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1269.5608,-217.8418C1238.2505,-206.8984 1196.762,-192.3976 1163.9105,-180.9155\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1165.0473,-177.6052 1154.4525,-177.6098 1162.7377,-184.2133 1165.0473,-177.6052\"/>\n",
       "</g>\n",
       "<!-- q1 frequency coarse -->\n",
       "<g id=\"node34\" class=\"node\">\n",
       "<title>q1 frequency coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1514.7912\" cy=\"-162\" rx=\"81.7856\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1514.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 frequency coarse</text>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude coarse&#45;&gt;q1 frequency coarse -->\n",
       "<g id=\"edge45\" class=\"edge\">\n",
       "<title>q1 pulse amplitude coarse-&gt;q1 frequency coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1360.9474,-217.6621C1391.1892,-206.7203 1431.0926,-192.2829 1462.6815,-180.8538\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1463.9854,-184.1041 1472.198,-177.4106 1461.6038,-177.5217 1463.9854,-184.1041\"/>\n",
       "</g>\n",
       "<!-- q1 mixer offsets drive -->\n",
       "<g id=\"node37\" class=\"node\">\n",
       "<title>q1 mixer offsets drive</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1703.7912\" cy=\"-162\" rx=\"89.0842\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1703.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 mixer offsets drive</text>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude coarse&#45;&gt;q1 mixer offsets drive -->\n",
       "<g id=\"edge46\" class=\"edge\">\n",
       "<title>q1 pulse amplitude coarse-&gt;q1 mixer offsets drive</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1386.9564,-220.7941C1455.2464,-208.1217 1558.0331,-189.0479 1627.8709,-176.0883\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1628.7342,-179.488 1637.9277,-174.2221 1627.4569,-172.6054 1628.7342,-179.488\"/>\n",
       "</g>\n",
       "<!-- q1 mixer offsets readout -->\n",
       "<g id=\"node38\" class=\"node\">\n",
       "<title>q1 mixer offsets readout</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"904.7912\" cy=\"-162\" rx=\"97.4827\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"904.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 mixer offsets readout</text>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude coarse&#45;&gt;q1 mixer offsets readout -->\n",
       "<g id=\"edge47\" class=\"edge\">\n",
       "<title>q1 pulse amplitude coarse-&gt;q1 mixer offsets readout</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1242.7863,-221.2108C1170.5971,-208.5645 1060.3809,-189.2566 985.5941,-176.1552\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"986.1956,-172.7074 975.7417,-174.4293 984.9877,-179.6024 986.1956,-172.7074\"/>\n",
       "</g>\n",
       "<!-- q1 mixer skewness drive -->\n",
       "<g id=\"node39\" class=\"node\">\n",
       "<title>q1 mixer skewness drive</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1315.7912\" cy=\"-162\" rx=\"98.5829\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1315.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 mixer skewness drive</text>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude coarse&#45;&gt;q1 mixer skewness drive -->\n",
       "<g id=\"edge48\" class=\"edge\">\n",
       "<title>q1 pulse amplitude coarse-&gt;q1 mixer skewness drive</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1315.7912,-215.8314C1315.7912,-208.131 1315.7912,-198.9743 1315.7912,-190.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1319.2913,-190.4132 1315.7912,-180.4133 1312.2913,-190.4133 1319.2913,-190.4132\"/>\n",
       "</g>\n",
       "<!-- q1 T2&#45;echo -->\n",
       "<g id=\"node31\" class=\"node\">\n",
       "<title>q1 T2-echo</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1202.7912\" cy=\"-306\" rx=\"51.1914\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1202.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 T2-echo</text>\n",
       "</g>\n",
       "<!-- q1 T2&#45;echo&#45;&gt;q1 pulse amplitude coarse -->\n",
       "<g id=\"edge36\" class=\"edge\">\n",
       "<title>q1 T2-echo-&gt;q1 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1227.5896,-290.1993C1242.859,-280.4701 1262.6958,-267.8307 1279.6891,-257.0031\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1281.7242,-259.8565 1288.277,-251.5312 1277.9627,-253.9531 1281.7242,-259.8565\"/>\n",
       "</g>\n",
       "<!-- q1 T2&#45;star -->\n",
       "<g id=\"node32\" class=\"node\">\n",
       "<title>q1 T2-star</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1319.7912\" cy=\"-306\" rx=\"47.3916\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1319.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 T2-star</text>\n",
       "</g>\n",
       "<!-- q1 T2&#45;star&#45;&gt;q1 pulse amplitude coarse -->\n",
       "<g id=\"edge37\" class=\"edge\">\n",
       "<title>q1 T2-star-&gt;q1 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1318.7819,-287.8314C1318.3541,-280.131 1317.8454,-270.9743 1317.3699,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1320.8636,-262.2037 1316.8142,-252.4133 1313.8744,-262.592 1320.8636,-262.2037\"/>\n",
       "</g>\n",
       "<!-- q1 room temp. dist. corr.&#45;&gt;AWG8 Flux&#45;staircase -->\n",
       "<g id=\"edge51\" class=\"edge\">\n",
       "<title>q1 room temp. dist. corr.-&gt;AWG8 Flux-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1778.8925,-504.7542C1761.3411,-494.9581 1739.1843,-482.5915 1720.3704,-472.0907\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1721.8756,-468.9226 1711.4378,-467.1051 1718.464,-475.035 1721.8756,-468.9226\"/>\n",
       "</g>\n",
       "<!-- q1 resonator frequency -->\n",
       "<g id=\"node35\" class=\"node\">\n",
       "<title>q1 resonator frequency</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1514.7912\" cy=\"-90\" rx=\"92.0841\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1514.7912\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 resonator frequency</text>\n",
       "</g>\n",
       "<!-- q1 frequency coarse&#45;&gt;q1 resonator frequency -->\n",
       "<g id=\"edge40\" class=\"edge\">\n",
       "<title>q1 frequency coarse-&gt;q1 resonator frequency</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1514.7912,-143.8314C1514.7912,-136.131 1514.7912,-126.9743 1514.7912,-118.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1518.2913,-118.4132 1514.7912,-108.4133 1511.2913,-118.4133 1518.2913,-118.4132\"/>\n",
       "</g>\n",
       "<!-- q1 resonator frequency&#45;&gt;3 qubit device resonator frequencies coarse -->\n",
       "<g id=\"edge50\" class=\"edge\">\n",
       "<title>q1 resonator frequency-&gt;3 qubit device resonator frequencies coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1514.7912,-71.8314C1514.7912,-64.131 1514.7912,-54.9743 1514.7912,-46.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1518.2913,-46.4132 1514.7912,-36.4133 1511.2913,-46.4133 1518.2913,-46.4132\"/>\n",
       "</g>\n",
       "<!-- q1 frequency fine -->\n",
       "<g id=\"node36\" class=\"node\">\n",
       "<title>q1 frequency fine</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1458.7912\" cy=\"-306\" rx=\"73.387\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1458.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q1 frequency fine</text>\n",
       "</g>\n",
       "<!-- q1 frequency fine&#45;&gt;q1 pulse amplitude coarse -->\n",
       "<g id=\"edge41\" class=\"edge\">\n",
       "<title>q1 frequency fine-&gt;q1 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1426.3423,-289.6621C1406.2975,-279.5696 1380.3458,-266.503 1358.6244,-255.5664\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1360.1096,-252.3956 1349.6038,-251.0245 1356.9616,-258.6478 1360.1096,-252.3956\"/>\n",
       "</g>\n",
       "<!-- q1 pulse amplitude med&#45;&gt;q1 frequency fine -->\n",
       "<g id=\"edge49\" class=\"edge\">\n",
       "<title>q1 pulse amplitude med-&gt;q1 frequency fine</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1458.7912,-359.8314C1458.7912,-352.131 1458.7912,-342.9743 1458.7912,-334.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1462.2913,-334.4132 1458.7912,-324.4133 1455.2913,-334.4133 1462.2913,-334.4132\"/>\n",
       "</g>\n",
       "<!-- q2 T1 -->\n",
       "<g id=\"node41\" class=\"node\">\n",
       "<title>q2 T1</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1885.7912\" cy=\"-306\" rx=\"31.6951\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1885.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 T1</text>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude coarse -->\n",
       "<g id=\"node42\" class=\"node\">\n",
       "<title>q2 pulse amplitude coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2103.7912\" cy=\"-234\" rx=\"103.1819\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2103.7912\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 pulse amplitude coarse</text>\n",
       "</g>\n",
       "<!-- q2 T1&#45;&gt;q2 pulse amplitude coarse -->\n",
       "<g id=\"edge52\" class=\"edge\">\n",
       "<title>q2 T1-&gt;q2 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1910.7521,-294.485C1916.0036,-292.2198 1921.5429,-289.945 1926.7912,-288 1963.121,-274.5364 2004.5012,-261.7743 2038.1115,-252.0404\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2039.1812,-255.3748 2047.8253,-249.2487 2037.2476,-248.6471 2039.1812,-255.3748\"/>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude coarse&#45;&gt;AWG8 MW&#45;staircase -->\n",
       "<g id=\"edge61\" class=\"edge\">\n",
       "<title>q2 pulse amplitude coarse-&gt;AWG8 MW-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2000.964,-231.8592C1833.9997,-227.4736 1493.7926,-214.7534 1207.7912,-180 1199.7337,-179.0209 1191.3376,-177.796 1182.9978,-176.4483\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1183.3205,-172.9536 1172.8794,-174.7518 1182.1629,-179.8573 1183.3205,-172.9536\"/>\n",
       "</g>\n",
       "<!-- q2 frequency coarse -->\n",
       "<g id=\"node47\" class=\"node\">\n",
       "<title>q2 frequency coarse</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2108.7912\" cy=\"-162\" rx=\"81.7856\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2108.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 frequency coarse</text>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude coarse&#45;&gt;q2 frequency coarse -->\n",
       "<g id=\"edge62\" class=\"edge\">\n",
       "<title>q2 pulse amplitude coarse-&gt;q2 frequency coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2105.0529,-215.8314C2105.5877,-208.131 2106.2236,-198.9743 2106.8179,-190.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2110.3113,-190.6317 2107.5125,-180.4133 2103.3281,-190.1467 2110.3113,-190.6317\"/>\n",
       "</g>\n",
       "<!-- q2 mixer offsets drive -->\n",
       "<g id=\"node50\" class=\"node\">\n",
       "<title>q2 mixer offsets drive</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2297.7912\" cy=\"-162\" rx=\"89.0842\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2297.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 mixer offsets drive</text>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude coarse&#45;&gt;q2 mixer offsets drive -->\n",
       "<g id=\"edge63\" class=\"edge\">\n",
       "<title>q2 pulse amplitude coarse-&gt;q2 mixer offsets drive</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2147.8128,-217.6621C2176.7642,-206.9172 2214.7985,-192.8014 2245.3203,-181.4737\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2246.7877,-184.6625 2254.945,-177.9017 2244.352,-178.0999 2246.7877,-184.6625\"/>\n",
       "</g>\n",
       "<!-- q2 mixer offsets readout -->\n",
       "<g id=\"node51\" class=\"node\">\n",
       "<title>q2 mixer offsets readout</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2502.7912\" cy=\"-162\" rx=\"97.4827\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2502.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 mixer offsets readout</text>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude coarse&#45;&gt;q2 mixer offsets readout -->\n",
       "<g id=\"edge64\" class=\"edge\">\n",
       "<title>q2 pulse amplitude coarse-&gt;q2 mixer offsets readout</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2175.5853,-221.0447C2245.2281,-208.4776 2350.6901,-189.4468 2422.9441,-176.4085\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2423.6923,-179.8301 2432.9118,-174.6098 2422.4492,-172.9414 2423.6923,-179.8301\"/>\n",
       "</g>\n",
       "<!-- q2 mixer skewness drive -->\n",
       "<g id=\"node52\" class=\"node\">\n",
       "<title>q2 mixer skewness drive</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1909.7912\" cy=\"-162\" rx=\"98.5829\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1909.7912\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 mixer skewness drive</text>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude coarse&#45;&gt;q2 mixer skewness drive -->\n",
       "<g id=\"edge65\" class=\"edge\">\n",
       "<title>q2 pulse amplitude coarse-&gt;q2 mixer skewness drive</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2059.7696,-217.6621C2031.1209,-207.0296 1993.5781,-193.0962 1963.2217,-181.8299\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1964.2316,-178.4715 1953.6386,-178.2733 1961.796,-185.0341 1964.2316,-178.4715\"/>\n",
       "</g>\n",
       "<!-- q2 T2&#45;echo -->\n",
       "<g id=\"node43\" class=\"node\">\n",
       "<title>q2 T2-echo</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1986.7912\" cy=\"-306\" rx=\"51.1914\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1986.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 T2-echo</text>\n",
       "</g>\n",
       "<!-- q2 T2&#45;echo&#45;&gt;q2 pulse amplitude coarse -->\n",
       "<g id=\"edge53\" class=\"edge\">\n",
       "<title>q2 T2-echo-&gt;q2 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2012.4674,-290.1993C2028.2773,-280.4701 2048.8163,-267.8307 2066.4111,-257.0031\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2068.6208,-259.753 2075.3031,-251.5312 2064.9521,-253.7914 2068.6208,-259.753\"/>\n",
       "</g>\n",
       "<!-- q2 T2&#45;star -->\n",
       "<g id=\"node44\" class=\"node\">\n",
       "<title>q2 T2-star</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2103.7912\" cy=\"-306\" rx=\"47.3916\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2103.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 T2-star</text>\n",
       "</g>\n",
       "<!-- q2 T2&#45;star&#45;&gt;q2 pulse amplitude coarse -->\n",
       "<g id=\"edge54\" class=\"edge\">\n",
       "<title>q2 T2-star-&gt;q2 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2103.7912,-287.8314C2103.7912,-280.131 2103.7912,-270.9743 2103.7912,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2107.2913,-262.4132 2103.7912,-252.4133 2100.2913,-262.4133 2107.2913,-262.4132\"/>\n",
       "</g>\n",
       "<!-- q2 gates restless&#45;&gt;q2 optimal weights -->\n",
       "<g id=\"edge59\" class=\"edge\">\n",
       "<title>q2 gates restless-&gt;q2 optimal weights</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2215.7912,-503.8314C2215.7912,-496.131 2215.7912,-486.9743 2215.7912,-478.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2219.2913,-478.4132 2215.7912,-468.4133 2212.2913,-478.4133 2219.2913,-478.4132\"/>\n",
       "</g>\n",
       "<!-- q2 room temp. dist. corr.&#45;&gt;AWG8 Flux&#45;staircase -->\n",
       "<g id=\"edge68\" class=\"edge\">\n",
       "<title>q2 room temp. dist. corr.-&gt;AWG8 Flux-staircase</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1962.926,-508.3727C1903.009,-495.9761 1814.7495,-477.7155 1752.9454,-464.9284\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1753.3807,-461.4444 1742.8789,-462.8457 1751.9624,-468.2993 1753.3807,-461.4444\"/>\n",
       "</g>\n",
       "<!-- q2 resonator frequency -->\n",
       "<g id=\"node48\" class=\"node\">\n",
       "<title>q2 resonator frequency</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"1912.7912\" cy=\"-90\" rx=\"92.0841\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"1912.7912\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 resonator frequency</text>\n",
       "</g>\n",
       "<!-- q2 frequency coarse&#45;&gt;q2 resonator frequency -->\n",
       "<g id=\"edge57\" class=\"edge\">\n",
       "<title>q2 frequency coarse-&gt;q2 resonator frequency</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2066.2622,-146.3771C2036.7746,-135.5449 1997.2964,-121.0427 1965.7646,-109.4596\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1966.8475,-106.1288 1956.2539,-105.9659 1964.4337,-112.6995 1966.8475,-106.1288\"/>\n",
       "</g>\n",
       "<!-- q2 resonator frequency&#45;&gt;3 qubit device resonator frequencies coarse -->\n",
       "<g id=\"edge67\" class=\"edge\">\n",
       "<title>q2 resonator frequency-&gt;3 qubit device resonator frequencies coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1844.8248,-77.7046C1780.2571,-66.024 1682.559,-48.3499 1610.1992,-35.2597\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1610.6265,-31.7803 1600.1632,-33.4442 1609.3804,-38.6685 1610.6265,-31.7803\"/>\n",
       "</g>\n",
       "<!-- q2 frequency fine -->\n",
       "<g id=\"node49\" class=\"node\">\n",
       "<title>q2 frequency fine</title>\n",
       "<ellipse fill=\"#d3d3d3\" stroke=\"#d3d3d3\" cx=\"2242.7912\" cy=\"-306\" rx=\"73.387\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"2242.7912\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">q2 frequency fine</text>\n",
       "</g>\n",
       "<!-- q2 frequency fine&#45;&gt;q2 pulse amplitude coarse -->\n",
       "<g id=\"edge58\" class=\"edge\">\n",
       "<title>q2 frequency fine-&gt;q2 pulse amplitude coarse</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2211.25,-289.6621C2191.9924,-279.6869 2167.1259,-266.8064 2146.1644,-255.9487\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2147.6353,-252.7689 2137.146,-251.2773 2144.4156,-258.9846 2147.6353,-252.7689\"/>\n",
       "</g>\n",
       "<!-- q2 pulse amplitude med&#45;&gt;q2 frequency fine -->\n",
       "<g id=\"edge66\" class=\"edge\">\n",
       "<title>q2 pulse amplitude med-&gt;q2 frequency fine</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2229.3334,-359.8314C2231.2797,-352.0463 2233.598,-342.7729 2235.7576,-334.1347\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2239.158,-334.9636 2238.1879,-324.4133 2232.367,-333.2658 2239.158,-334.9636\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {
      "filenames": {
       "image/svg+xml": "/home/docs/checkouts/readthedocs.org/user_builds/autodepgraph/checkouts/sphinx_doc/docs/_build/jupyter_execute/tutorials/example_notebook_13_0.svg"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_graph.cfg_plot_mode = 'svg'\n",
    "DAG.update_monitor()\n",
    "# This graph is so big, the html visualization is more suitable.\n",
    "display(SVG(DAG.cfg_svg_filename))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.8.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}