{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Glycolysis Model and Metabolic Control Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kaizu/.local/share/virtualenvs/python-eSbFG-Wg/lib/python3.7/site-packages/xarray/core/merge.py:18: FutureWarning: The Panel class is removed from pandas. Accessing it from the top-level namespace will also be removed in the next version\n",
      "  PANDAS_TYPES = (pd.Series, pd.DataFrame, pd.Panel)\n",
      "/home/kaizu/.local/share/virtualenvs/python-eSbFG-Wg/lib/python3.7/site-packages/xarray/core/dataarray.py:1829: FutureWarning: The Panel class is removed from pandas. Accessing it from the top-level namespace will also be removed in the next version\n",
      "  'DataArray', pd.Series, pd.DataFrame, pd.Panel]:\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from ecell4.prelude import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A Simple Model of the Glycolysis of Human Erythrocytes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is a model for the glycolysis of human erythrocytes which takes into account ATP-synthesis and -consumption.\n",
    "This model is based on the model introduced in the following publications:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "Heinrich R, Rapoport TA, Mathematical analysis of multienzyme systems. II. Steady state and transient control. *Bio Systems*, **1**(7), 130-6, 1975. [10.1016/0303-2647(75)90050-7](https://doi.org/10.1016/0303-2647(75)90050-7). PubMed PMID: [125616](https://www.ncbi.nlm.nih.gov/pubmed/125616)."
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "citation(125616)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "Rapoport TA, Heinrich R, Mathematical analysis of multienzyme systems. I. Modelling of the glycolysis of human erythrocytes. *Bio Systems*, **1**(7), 120-9, 1975. [10.1016/0303-2647(75)90049-0](https://doi.org/10.1016/0303-2647(75)90049-0). PubMed PMID: [168932](https://www.ncbi.nlm.nih.gov/pubmed/168932)."
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "citation(168932)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The model consists of seven reactions and is at the steady state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "with reaction_rules():\n",
    "    2 * ATP > 2 * A13P2G + 2 * ADP | (3.2 * ATP / (1.0 + (ATP / 1.0) ** 4.0)) | {'name': 'HK_PFK'}\n",
    "    A13P2G > A23P2G | 1500 | {'name': 'P2GM'}\n",
    "    A23P2G > PEP | 0.15 | {'name': 'P2Gase'}\n",
    "    A13P2G + ADP > PEP + ATP | 1.57e+4 | {'name': 'PGK'}\n",
    "    PEP + ADP > ATP | 559 | {'name': 'PK'}\n",
    "    AMP + ATP > 2 * ADP | 1.0 * AMP * ATP | {'name': 'AK_f'}\n",
    "    2 * ADP > AMP + ATP | 2.0 * ADP * ADP | {'name': 'AK_r'}\n",
    "    ATP > ADP | 1.46 | {'name': 'ATPase'}\n",
    "\n",
    "m = get_model()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "2 * ATP > 2 * A13P2G + 2 * ADP | ((3.2 * ATP) / (1.0 + pow((ATP / 1.0), 4.0))) | {'name': 'HK_PFK'}\n",
      "A13P2G > A23P2G | 1500.0 | {'name': 'P2GM'}\n",
      "A23P2G > PEP | 0.15 | {'name': 'P2Gase'}\n",
      "A13P2G + ADP > PEP + ATP | 15700.0 | {'name': 'PGK'}\n",
      "PEP + ADP > ATP | 559.0 | {'name': 'PK'}\n",
      "AMP + ATP > 2 * ADP | (1.0 * AMP * ATP) | {'name': 'AK_f'}\n",
      "2 * ADP > AMP + ATP | (2.0 * ADP * ADP) | {'name': 'AK_r'}\n",
      "ATP > ADP | 1.46 | {'name': 'ATPase'}\n"
     ]
    }
   ],
   "source": [
    "show(m)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "y0 = {\"A13P2G\": 0.0005082, \"A23P2G\": 5.0834, \"PEP\": 0.020502,\n",
    "      \"AMP\": 0.080139, \"ADP\": 0.2190, \"ATP\": 1.196867}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "ret = run_simulation(100, model=m, y0=y0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ret"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Metabolic Control Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "w = ret.world\n",
    "sim = ode.Simulator(w, m)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First of all, `get_stoichiometry` gives a stoichiometry matrix from the given species and reactions as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 2., -1.,  0., -1.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  1., -1.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 2.,  0.,  0., -1., -1.,  2., -2.,  1.],\n",
       "       [ 0.,  0.,  0.,  0.,  0., -1.,  1.,  0.],\n",
       "       [-2.,  0.,  0.,  1.,  1., -1.,  1., -1.],\n",
       "       [ 0.,  0.,  1.,  1., -1.,  0.,  0.,  0.]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.array(get_stoichiometry(m.list_species(), m.reaction_rules()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `evaluate` method of `ode.ODEWorld` returns current fluxes of the given reactions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.25489042, 0.76235178, 0.76235178, 1.74742906, 2.50978084,\n",
       "       0.0959183 , 0.0959183 , 1.74742906])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.array(w.evaluate(m.reaction_rules()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`ode.ODESimulator` has methods for the fundamental properties related to metabolic control analysis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.08234520e-04, 5.08234520e+00, 2.05016233e-02, 8.01410043e-02,\n",
       "       2.18995778e-01, 1.19686922e+00])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = numpy.array(sim.values())\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.00000000e+00, -7.32716110e-11, -1.27009514e-13,  1.07631959e-12,\n",
       "        1.09356968e-12, -2.16981988e-12])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dxdt = numpy.array(sim.derivatives())\n",
    "dxdt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4.93823371e+03,  0.00000000e+00,  0.00000000e+00,\n",
       "         0.00000000e+00, -7.97928197e+00, -3.54260035e+00],\n",
       "       [ 1.50000000e+03, -1.50000000e-01,  0.00000000e+00,\n",
       "         0.00000000e+00,  0.00000000e+00,  0.00000000e+00],\n",
       "       [ 3.43823371e+03,  1.50000000e-01, -1.22418640e+02,\n",
       "         0.00000000e+00, -3.48112548e+00,  0.00000000e+00],\n",
       "       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
       "        -1.19686922e+00,  8.75985548e-01, -8.01410043e-02],\n",
       "       [-3.43823371e+03,  0.00000000e+00, -1.22418640e+02,\n",
       "         2.39373844e+00, -2.11916605e+01, -1.92231834e+00],\n",
       "       [ 3.43823371e+03,  0.00000000e+00,  1.22418640e+02,\n",
       "        -1.19686922e+00,  2.03156750e+01,  2.00245935e+00]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "J = numpy.array(sim.jacobian())\n",
    "J"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
       "         0.00000000e+00,  0.00000000e+00, -1.77130018e+00],\n",
       "       [ 1.50000000e+03,  0.00000000e+00,  0.00000000e+00,\n",
       "         0.00000000e+00,  0.00000000e+00,  0.00000000e+00],\n",
       "       [ 0.00000000e+00,  1.50000000e-01,  0.00000000e+00,\n",
       "         0.00000000e+00,  0.00000000e+00,  0.00000000e+00],\n",
       "       [ 3.43823371e+03,  0.00000000e+00,  0.00000000e+00,\n",
       "         0.00000000e+00,  7.97928197e+00,  0.00000000e+00],\n",
       "       [ 0.00000000e+00,  0.00000000e+00,  1.22418640e+02,\n",
       "         0.00000000e+00,  1.14604074e+01,  0.00000000e+00],\n",
       "       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
       "         1.19686922e+00,  0.00000000e+00,  8.01410043e-02],\n",
       "       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
       "         0.00000000e+00,  8.75985548e-01,  0.00000000e+00],\n",
       "       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
       "         0.00000000e+00,  0.00000000e+00,  1.46000000e+00]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "E = numpy.array(sim.elasticity())\n",
    "E"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`ode.ODESimulator` also provides a stoichiometry matrix and fluxes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 2., -1.,  0., -1.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  1., -1.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  1.,  1., -1.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0., -1.,  1.,  0.],\n",
       "       [ 2.,  0.,  0., -1., -1.,  2., -2.,  1.],\n",
       "       [-2.,  0.,  0.,  1.,  1., -1.,  1., -1.]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S = numpy.array(sim.stoichiometry())\n",
    "S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.25489042, 0.76235178, 0.76235178, 1.74742906, 2.50978084,\n",
       "       0.0959183 , 0.0959183 , 1.74742906])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v = numpy.array(sim.fluxes())\n",
    "v"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These properties satisfy some relations at the steady state."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\frac{\\mathrm{d}}{\\mathrm{d}t}\\mathbf{x} = \\mathbf{S} \\mathbf{v}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.isclose(dxdt, S @ v)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\mathbf{J} = \\frac{\\mathrm{d}^2}{\\mathrm{d}t^2}\\mathbf{x} = \\mathbf{S}\\left(\\frac{\\mathrm{d}}{\\mathrm{d}t}\\mathbf{v}\\right) = \\mathbf{S} \\mathbf{E}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True]])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.isclose(J, S @ E)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, the `ecell4.mca` submodule provides useful functions for metabolic network and control analyses."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from ecell4.mca import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`generate_full_rank_matrix` gives square matrix to be full rank. In this model, 5 out of 8 reactions are independent."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.  0.  0.  0.  0.]\n",
      " [ 0.  1.  0.  0.  0.]\n",
      " [ 0.  0.  1.  0.  0.]\n",
      " [ 0.  0.  0.  1.  0.]\n",
      " [ 0.  0.  0.  0.  1.]\n",
      " [ 0.  0.  0. -1. -1.]]\n",
      "[[-0.  -0.   0.5]\n",
      " [-0.  -1.   1. ]\n",
      " [-0.  -1.   1. ]\n",
      " [-0.   1.   0. ]\n",
      " [ 0.   0.   1. ]\n",
      " [ 1.   0.   0. ]\n",
      " [ 1.   0.   0. ]\n",
      " [ 0.   1.   0. ]]\n",
      "[0 1 2 3 4]\n"
     ]
    }
   ],
   "source": [
    "(link_matrix, kernel_matrix, independent_list) = generate_full_rank_matrix(S)\n",
    "print(link_matrix)\n",
    "print(kernel_matrix)\n",
    "print(independent_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 2., -1.,  0., -1.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  1., -1.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  1.,  1., -1.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0., -1.,  1.,  0.],\n",
       "       [ 2.,  0.,  0., -1., -1.,  2., -2.,  1.]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reduced_matrix = numpy.take(S, independent_list, 0)\n",
    "reduced_matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The original stoichiometry matrix can be reproduced from these reduced matrices:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ True,  True,  True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True,  True,  True,  True]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S == link_matrix @ reduced_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ True,  True,  True],\n",
       "       [ True,  True,  True],\n",
       "       [ True,  True,  True],\n",
       "       [ True,  True,  True],\n",
       "       [ True,  True,  True],\n",
       "       [ True,  True,  True]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "0 == S @ kernel_matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, `ecell4.mca` provides two functions, `unscaled_control_coefficients` and `scaled_control_coefficients`, which calculate concentration and flux control coefficients from stoichiometry and elasticity matrices."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 4.45754267e-04 -2.22877134e-04  0.00000000e+00 -1.93612289e-04\n",
      "   0.00000000e+00 -7.45294400e-04  7.45294400e-04 -2.92648441e-05]\n",
      " [ 4.45754267e+00  4.43789533e+00 -6.66666667e+00 -1.93612289e+00\n",
      "   0.00000000e+00 -7.45294400e+00  7.45294400e+00 -2.92648441e-01]\n",
      " [ 2.20583561e-02 -2.86048736e-03  0.00000000e+00  1.24794630e-03\n",
      "  -8.16869067e-03 -4.03592231e-02  4.03592231e-02 -4.10843366e-03]\n",
      " [-1.22757774e-01  6.13788871e-02  0.00000000e+00 -2.67777988e-02\n",
      "   0.00000000e+00 -5.85505375e-01  5.85505375e-01  8.81566859e-02]\n",
      " [-1.43377537e-01  7.16887683e-02  0.00000000e+00 -3.12756961e-02\n",
      "   0.00000000e+00  3.62033276e-01 -3.62033276e-01  1.02964464e-01]\n",
      " [ 2.66135311e-01 -1.33067655e-01  0.00000000e+00  5.80534949e-02\n",
      "   0.00000000e+00  2.23472099e-01 -2.23472099e-01 -1.91121150e-01]]\n",
      "[[ 5.28594477e-01  2.35702761e-01  0.00000000e+00 -1.02830166e-01\n",
      "   0.00000000e+00 -3.95836168e-01  3.95836168e-01  3.38532927e-01]\n",
      " [ 6.68631401e-01  6.65684300e-01  0.00000000e+00 -2.90418434e-01\n",
      "   0.00000000e+00 -1.11794160e+00  1.11794160e+00 -4.38972662e-02]\n",
      " [ 6.68631401e-01  6.65684300e-01  1.11022302e-16 -2.90418434e-01\n",
      "   0.00000000e+00 -1.11794160e+00  1.11794160e+00 -4.38972662e-02]\n",
      " [ 3.88557554e-01 -1.94278777e-01  0.00000000e+00  8.47581026e-02\n",
      "   0.00000000e+00  3.26269264e-01 -3.26269264e-01  7.20963121e-01]\n",
      " [ 1.05718895e+00  4.71405523e-01  0.00000000e+00 -2.05660332e-01\n",
      "   0.00000000e+00 -7.91672336e-01  7.91672336e-01  6.77065854e-01]\n",
      " [-1.25596650e-01  6.27983250e-02  0.00000000e+00 -2.73970578e-02\n",
      "   0.00000000e+00  3.17135918e-01  6.82864082e-01  9.01953828e-02]\n",
      " [-1.25596650e-01  6.27983250e-02  0.00000000e+00 -2.73970578e-02\n",
      "   0.00000000e+00  3.17135918e-01  6.82864082e-01  9.01953828e-02]\n",
      " [ 3.88557554e-01 -1.94278777e-01  0.00000000e+00  8.47581026e-02\n",
      "   0.00000000e+00  3.26269264e-01 -3.26269264e-01  7.20963121e-01]]\n"
     ]
    }
   ],
   "source": [
    "ccc, fcc = unscaled_control_coefficients(S, E)\n",
    "print(ccc)\n",
    "print(fcc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Unscaled control coefficients satisfies connectivity theorem:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True]])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.isclose(fcc @ (E @ link_matrix), 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "and"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True],\n",
       "       [ True,  True,  True,  True,  True]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.isclose(numpy.take(ccc, independent_list, 0) @ (E @ link_matrix), -numpy.identity(link_matrix.shape[1]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On the other hand, scaled control coefficients"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.10061937 -0.3343157   0.         -0.6656843   0.         -0.14065824\n",
      "   0.14065824 -0.10061937]\n",
      " [ 1.10061937  0.6656843  -1.         -0.6656843   0.         -0.14065824\n",
      "   0.14065824 -0.10061937]\n",
      " [ 1.35017697 -0.10636707  0.          0.10636707 -1.         -0.18882349\n",
      "   0.18882349 -0.35017697]\n",
      " [-1.92220644  0.58387469  0.         -0.58387469  0.         -0.70077336\n",
      "   0.70077336  1.92220644]\n",
      " [-0.82158249  0.2495576   0.         -0.2495576   0.          0.15856752\n",
      "  -0.15856752  0.82158249]\n",
      " [ 0.27903688 -0.0847581   0.          0.0847581   0.          0.01790928\n",
      "  -0.01790928 -0.27903688]]\n",
      "[[ 5.28594477e-01  1.43190526e-01  0.00000000e+00 -1.43190526e-01\n",
      "   0.00000000e+00 -3.02559747e-02  3.02559747e-02  4.71405523e-01]\n",
      " [ 1.10061937e+00  6.65684300e-01  0.00000000e+00 -6.65684300e-01\n",
      "   0.00000000e+00 -1.40658239e-01  1.40658239e-01 -1.00619373e-01]\n",
      " [ 1.10061937e+00  6.65684300e-01  1.11022302e-16 -6.65684300e-01\n",
      "   0.00000000e+00 -1.40658239e-01  1.40658239e-01 -1.00619373e-01]\n",
      " [ 2.79036879e-01 -8.47581026e-02  0.00000000e+00  8.47581026e-02\n",
      "   0.00000000e+00  1.79092784e-02 -1.79092784e-02  7.20963121e-01]\n",
      " [ 5.28594477e-01  1.43190526e-01  0.00000000e+00 -1.43190526e-01\n",
      "   0.00000000e+00 -3.02559747e-02  3.02559747e-02  4.71405523e-01]\n",
      " [-1.64316956e+00  4.99116585e-01  0.00000000e+00 -4.99116585e-01\n",
      "   0.00000000e+00  3.17135918e-01  6.82864082e-01  1.64316956e+00]\n",
      " [-1.64316956e+00  4.99116585e-01  0.00000000e+00 -4.99116585e-01\n",
      "   0.00000000e+00  3.17135918e-01  6.82864082e-01  1.64316956e+00]\n",
      " [ 2.79036879e-01 -8.47581026e-02  0.00000000e+00  8.47581026e-02\n",
      "   0.00000000e+00  1.79092784e-02 -1.79092784e-02  7.20963121e-01]]\n"
     ]
    }
   ],
   "source": [
    "ccc, fcc = scaled_control_coefficients(S, E, v, x)\n",
    "print(ccc)\n",
    "print(fcc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "satisfies summation theorem:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.isclose(ccc.sum(axis=1), 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "and"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numpy.isclose(fcc.sum(axis=1), 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "tags": [
     "nbsphinx-thumbnail"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/png": "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YAIULIOBsjkSIAESIAESIAESoGDxHCABEiABEiABEiABgwlQsAwGyuZIgARIgARIgARIgILFc4AESIAESIAESIAEDCZAwTIYKJsjARIgARIgARIgAQoWzwESIAESIAESIAESMJgABctgoGyOBEiABEiABEiABChYPAdIgARIgARIgARIwGACFCyDgbI5EiABEiABEiABEqBg8RwgARIgARIgARIgAYMJULAMBsrmSIAESIAESIAESICCxXOABEiABEiABEiABAwmQMEyGCibIwESIAESIAESIAEKFs8BEiABEiABEiABEjCYAAXLYKBsjgRIgARIgARIgAQoWDwHSIAESIAESIAESMBgAhQsg4GyORIgARIgARIgARKgYPEcIAESIAESIAESIAGDCVCwDAbK5kiABEiABEiABEiAgsVzgARIgARIgARIgAQMJkDBMhgomyMBEiABEiABEiABChbPARIgARIgARIgARIwmAAFy2CgbI4ESIAESIAESIAEKFg8B0iABEiABEiABEjAYAIULIOBsjkSIAESIAESIAESoGDxHCABEiABEiABEiABgwlQsAwGyuZIgARIgARIgARIgILFc4AESIAESIAESIAEDCZAwTIYKJsjARIgARIgARIgAQoWzwESIAESIAESIAESMJgABctgoGyOBEiABEiABEiABChYPAdIgARIgARIgARIwGACFCyDgbI5EiABEiABEiABEqBg8RwgARIgARIgARIgAYMJULAMBsrmSIAESIAESIAESICCxXOABEiABEiABEiABAwmQMEyGCibIwESIAESIAESIAEKFs8BEiABEiABEiABEjCYAAXLYKBsjgRIgARIgARIgAQoWDwHSIAESIAESIAESMBgAhQsg4GyORIgARIgARIgARKgYPEcIAESIAESIAESIAGDCVCwDAbK5kiABEiABEiABEiAgsVzgARIgARIgARIgAQMJkDBMhgomyMBEiABEiABEiABChbPARIgARIgARIgARIwmAAFy2CgbI4ESIAESIAESIAEKFg8B0iABEiABEiABEjAYAIULIOBsjkSIAESIAESIAESoGDxHCABEiABEiABEiABgwlQsAwGyuZIgARIgARIgARIgILFc4AESIAESIAESIAEDCZAwTIYKJsjARIgARIgARIgAQoWzwESIAESIAESIAESMJgABctgoGyOBEiABEiABEiABChYPAdIgARIgARIgARIwGACFCyDgbI5EiABEiABEiABEqBg8RwgARIgARIgARIgAYMJULAMBsrmSIAESIAESIAESICCxXOABEiABEiABEiABAwmQMEyGCibIwESIAESIAESIAEKFs8BEiABEiABEiABEjCYAAXLYKBsjgRIgARIgARIgAQoWDwHSIAESIAESIAESMBgAhQsg4GyORIgARIgARIgARKgYPEcIAESIAESIAESIAGDCVCwDAbK5kiABEiABEiABEiAgsVzgARIgARIgARIgAQMJkDBMhgomyMBEiABEiABEiABChbPARIgARIgARIgARIwmAAFy2CgbI4ESIAESIAESIAEKFg8B0iABEiABEiABEjAYAL/B/+YQbclfRY+AAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "z = ccc\n",
    "x = [rr.get_attribute('name') for rr in m.reaction_rules()]\n",
    "y = [sp.serial() for sp in w.list_species()]\n",
    "z_text = numpy.around(z, decimals=2)\n",
    "\n",
    "import plotly.figure_factory\n",
    "fig = plotly.figure_factory.create_annotated_heatmap(\n",
    "    z, x=x, y=y, annotation_text=z_text, hoverinfo='z', colorscale='Viridis')\n",
    "\n",
    "# fig.show()\n",
    "fig.show(renderer=\"png\", width=600, height=500, scale=1)"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "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.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
