{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9f3ea760-c589-4449-bc2c-325a37a3d416",
   "metadata": {},
   "source": [
    "# Hons Tut Assessment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d88ca623-f2dd-41cc-aa85-6532fa829649",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Matplotlib backend set to: \"module://ipympl.backend_nbagg\"\n",
      "Matplotlib interface loaded (pysces.plt.m)\n",
      "Continuation routines available\n",
      "NLEQ2 routines available\n",
      "SBML support available\n",
      "You are using NumPy (2.4.2) with SciPy (1.17.0)\n",
      "Assimulo CVode available\n",
      "RateChar is available\n",
      "Parallel scanner is available\n",
      "\n",
      "PySCeS environment\n",
      "******************\n",
      "pysces.model_dir = C:\\Users\\nabee\\Pysces\\psc\n",
      "pysces.output_dir = C:\\Users\\nabee\\Pysces\n",
      "\n",
      "\n",
      "***********************************************************************\n",
      "* Welcome to PySCeS (1.2.3) - Python Simulator for Cellular Systems   *\n",
      "*                http://pysces.sourceforge.net                        *\n",
      "* Copyright(C) B.G. Olivier, J.M. Rohwer, J.-H.S. Hofmeyr, 2004-2025  *\n",
      "* Triple-J Group for Molecular Cell Physiology                        *\n",
      "* Stellenbosch University, ZA and VU University Amsterdam, NL         *\n",
      "* PySCeS is distributed under the PySCeS (BSD style) licence, see     *\n",
      "* LICENCE.txt (supplied with this release) for details                *\n",
      "* Please cite PySCeS with: doi:10.1093/bioinformatics/bti046          *\n",
      "***********************************************************************\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib import pyplot as plt\n",
    "import numpy as np\n",
    "import scipy as sp\n",
    "import pandas as pd\n",
    "import os\n",
    "import pysces\n",
    "from lmfit import Model\n",
    "from numdifftools import Derivative\n",
    "backupdir=os.getcwd()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b97150ff-214a-4230-bdeb-5d6303368bab",
   "metadata": {},
   "source": [
    "# Question 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "189dadb5-93dd-4c6a-b181-b462f41932f3",
   "metadata": {},
   "outputs": [],
   "source": [
    "A0_5B24=pd.read_csv('A0.5B24.csv', names=['Time','NADPH'])\n",
    "A0B0=pd.read_csv('A0B0.csv', names=['Time','NADPH'])\n",
    "A1B24=pd.read_csv('A1B24.csv', names=['Time','NADPH'])\n",
    "A2B24=pd.read_csv('A2B24.csv', names=['Time','NADPH'])\n",
    "A4B24=pd.read_csv('A4B24.csv', names=['Time','NADPH'])\n",
    "A8B1_5=pd.read_csv('A8B1.5.csv', names=['Time','NADPH'])\n",
    "A8B3=pd.read_csv('A8B3.csv', names=['Time','NADPH'])\n",
    "A8B6=pd.read_csv('A8B6.csv', names=['Time','NADPH'])\n",
    "A8B12=pd.read_csv('A8B12.csv', names=['Time','NADPH'])\n",
    "A8B24=pd.read_csv('A8B24.csv', names=['Time','NADPH'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "id": "a6d8ccb2-f420-4b51-bd26-0a62e4bd447f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7e4de3d2607640af8a2e369e69ece5fd",
       "version_major": 2,
       "version_minor": 0
      },
      "image/png": "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B9A7PYDHjx+X888/31WOjIyUgQMHmgsOAACAIJ0E8tZbb5kZsk4nT56Ud955R/7yl7+46m6//XZv/XgAAAD05xDwgAGn71jUhaI7OjokkNGFDABA4GliCNg7PYDa2wcAAADLnwUMAACAIL8HUL377ruyceNGOXDggBnyTU5Olu9973syceJEb/5YAAAA+KIHMC8vzzwBpLi4WBoaGuTo0aPy+uuvy4033iiPPvqot34sAAAAfBEA9Ukgv/rVr2TNmjVSX18v27dvlz/96U8mBL766quyatUq85g4AAAABMksYF3e5Vvf+pYsWrTI4/45c+bI559/Lr///e8lkDGLCACAwNPELGDv9AB+/PHH8nd/93en3D9lyhSpqKjwxo8GAACALwKgDvtedNFFp9yv+/S+QAAAAARJAGxtbZWIiIhT7g8LCzNtemP58uVmFnFUVJRkZGRIWVlZj+1LS0tNO22fkpIiK1euPGXbdevWmVnKubm5vTonAACAQOS1ZWCefPJJGTRokMd9zc3NvXqt9evXS0FBgQmB48ePl1/+8pcyadIk+eyzz+SSSy7p1r6qqkomT54sDzzwgLz22muybds2efjhh2XYsGFm+LmzgwcPyuzZs2XChAm9fIcAgtn+o8fl4FfNMjJ2sCTHDfb16QCA/08CueGGG0yP2um89957Z/R6WVlZkp6eLitWrHDVpaammh47TxNNdJKJzjLevXu327I0u3btMjOSnfRRdNdff73cd999pkfx2LFj8m//9m9ypriJFAg+x5pbJb94p7y/96irbuJlw2TJXaMlZlC4T88NwLnRxCQQ7/QAbt269Zy9lg4V64SRxx9/3K0+OztbysvLPR6jIU/3d5aTkyNFRUXS1tYm4eH/+0d8wYIFpldw5syZpx1SVi0tLWbr/AsEILho+Nu2r96tTsuPFlfK2pljfHZeABDwj4L785//bIZ0z3RCifbUxcfHu9Vruba21uMxWu+pfXt7u3k9pcPCGgh1XcIzpb2NMTExri0xMfGMjwUQGMO+2vPX0WVgRMtaX1V/wmfnBgABGQC1t0zv3RszZox8+9vf7nUvYdchZR257mmY2VN7Z/3XX38t99xzjwl/cXFxZ3wOc+fOlcbGRtd26NChXr0HAP5N7/nryYEGAiCA4ODVZwE7Z+NqT9uGDRvkm2++kR//+Mfyr//6rzJq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",
      "text/html": [
       "\n",
       "            <div style=\"display: inline-block;\">\n",
       "                <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
       "                    Figure\n",
       "                </div>\n",
       "                <img src='data:image/png;base64,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B9A7PYDHjx+X888/31WOjIyUgQMHmgsOAACAIJ0E8tZbb5kZsk4nT56Ud955R/7yl7+46m6//XZv/XgAAAD05xDwgAGn71jUhaI7OjokkNGFDABA4GliCNg7PYDa2wcAAADLnwUMAACAIL8HUL377ruyceNGOXDggBnyTU5Olu9973syceJEb/5YAAAA+KIHMC8vzzwBpLi4WBoaGuTo0aPy+uuvy4033iiPPvqot34sAAAAfBEA9Ukgv/rVr2TNmjVSX18v27dvlz/96U8mBL766quyatUq85g4AAAABMksYF3e5Vvf+pYsWrTI4/45c+bI559/Lr///e8lkDGLCACAwNPELGDv9AB+/PHH8nd/93en3D9lyhSpqKjwxo8GAACALwKgDvtedNFFp9yv+/S+QAAAAARJAGxtbZWIiIhT7g8LCzNtemP58uVmFnFUVJRkZGRIWVlZj+1LS0tNO22fkpIiK1euPGXbdevWmVnKubm5vTonAACAQOS1ZWCefPJJGTRokMd9zc3NvXqt9evXS0FBgQmB48ePl1/+8pcyadIk+eyzz+SSSy7p1r6qqkomT54sDzzwgLz22muybds2efjhh2XYsGFm+LmzgwcPyuzZs2XChAm9fIcAgtn+o8fl4FfNMjJ2sCTHDfb16QCA/08CueGGG0yP2um89957Z/R6WVlZkp6eLitWrHDVpaammh47TxNNdJKJzjLevXu327I0u3btMjOSnfRRdNdff73cd999pkfx2LFj8m//9m9ypriJFAg+x5pbJb94p7y/96irbuJlw2TJXaMlZlC4T88NwLnRxCQQ7/QAbt269Zy9lg4V64SRxx9/3K0+OztbysvLPR6jIU/3d5aTkyNFRUXS1tYm4eH/+0d8wYIFpldw5syZpx1SVi0tLWbr/AsEILho+Nu2r96tTsuPFlfK2pljfHZeABDwj4L785//bIZ0z3RCifbUxcfHu9Vruba21uMxWu+pfXt7u3k9pcPCGgh1XcIzpb2NMTExri0xMfGMjwUQGMO+2vPX0WVgRMtaX1V/wmfnBgABGQC1t0zv3RszZox8+9vf7nUvYdchZR257mmY2VN7Z/3XX38t99xzjwl/cXFxZ3wOc+fOlcbGRtd26NChXr0HAP5N7/nryYEGAiCA4ODVZwE7Z+NqT9uGDRvkm2++kR//+Mfyr//6rzJq1KgzOl4DWmhoaLfevrq6um69fE4JCQke2+vs49jYWPn000/N84lvu+021/6TJ0+ar9pmz549cumll3Z73cjISLMBCE5JQz1PXHPSCSEAEAy80gNYU1MjCxcuNCFv2rRpJsRpEBwwYIDMmDHjjMOf0uVkdDmXLVu2uNVredy4cR6PGTt2bLf2JSUlkpmZae7/u/LKK80w9M6dO12bPr1En1Os3zO0C9gpZdgQM+EjtMsIgpa1ntnAAIKFV3oAdb2+O++8U5YtWyY333yzCX5nY9asWTJ9+nQT4DTc6bOEq6urzcxe59Ds4cOHZe3ataas9UuXLjXH6VIwOilEeyGLi4vNfl0bMC0tze1nnH/++eZr13oAdtHZvjrho/Ms4PGj4kw9AAQLrwTApKQk+eCDD8waffq99ridjalTp5onh+isXe1d1JC2efNm89pK6zQQdg6gur+wsNCE0BEjRsjixYu7rQEIAF3pUi8621cnfOg9f6wDCCAYeWUdwM6zbH/729/K5ZdfbiZd/OQnP5FPPvnErOEXDFhHCACAwNPEOoDemwWsT+xYs2aN6Z3TIdk33njDLOeiT+TQ2bdHj/7/4RUAAAAEQQ+gJ/roNu0V1MezffXVV2ZR5kDGvyAAAAg8TfQA9u9C0FdddZX8/Oc/NxM29Pm+AAAACJJJIDrr93TPAtb9+mQOAAAABEEAfPPNN0+5T5/fu2TJEm/8WAAAAPgqAN5xxx3d6j7//HOzXt+///u/y9133y3PPfecN340AAAAfH0P4JEjR8xizNdcc40Z8tUnbfzmN78xawQCAAAgiAJgY2OjzJkzxzz2TZ+9+84775jeP560AQAAEIRDwC+++KK88MILkpCQYB6/5mlIGAAAAEG0DqDOAh44cKDcdNNNEhoaesp2GzdulEDGOkIAAASeJtYB9E4P4IwZM067DAwAAACCKAD++te/9sbLAgAAINCeBAIAAADfIwACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJbxypNAAKCz/UePy8GvmmVk7GBJjhvMxQEAHyMAAvCaY82tkl+8U97fe9RVN/GyYbLkrtESMyicKw8APsIQMACv0fC3bV+9W52WHy2u5KoDgA8RAAF4bdhXe/46HA63ei1rfVX9Ca48APgIARCAV+g9fz050EAABABfIQAC8IqkoYN63K8TQgAAvkEABOAVKcOGmAkfoSEhbvVa1npmAwOA7xAAAXiNzvYdPyrOrU7LWg8A8B2WgQHgNbrUy9qZY8yED73nj3UAAcA/EAABeJ0O9zLkCwD+I2CGgJcvXy7JyckSFRUlGRkZUlZW1mP70tJS007bp6SkyMqVK932b9y4UTIzM+X888+XwYMHy7XXXiv/8i//4uV3AQAA4HsBEQDXr18vBQUFMn/+fKmsrJQJEybIpEmTpLq62mP7qqoqmTx5smmn7efNmyf5+fmyYcMGV5uhQ4ea19u+fbt88sknct9995ntrbfe6sd3BgAA0P9CHI4uq7T6oaysLElPT5cVK1a46lJTUyU3N1cWLVrUrf2cOXNk06ZNsnv3blddXl6e7Nq1ywS+U9Gfceutt8pzzz13RufV1NQkMTEx0tjYKNHR0b1+XwAAoP818fnt/z2Ara2tUlFRIdnZ2W71Wi4vL/d4jIa8ru1zcnJkx44d0tbW1q29ZuB33nlH9uzZIxMnTjzlubS0tJhfms4bAABAoPH7AFhfXy8dHR0SHx/vVq/l2tpaj8dovaf27e3t5vWctOduyJAhEhERYXr+lixZIjfffPMpz0V7G7XHz7klJiae9fsDAADob34fAJ1Cuiwmq712XetO175r/XnnnSc7d+6U//qv/5Lnn39eZs2aJVu3bj3la86dO9eERud26NChs3hHAAAAvuH3y8DExcVJaGhot96+urq6br18TgkJCR7bh4WFSWxsrKtuwIABMmrUKPO9zgLWewa1l++GG27w+LqRkZFmAwAACGR+3wOow7O6nMuWLVvc6rU8btw4j8eMHTu2W/uSkhKz7Et4ePgpf5b2Eup9fgAAAMHM73sAlQ7NTp8+3QQ4DXerVq0yS8DozF7n0Ozhw4dl7dq1pqz1S5cuNcc98MADZlJIUVGRFBcXu15Te/r09S699FIz0WTz5s3m+M4zjQEAAIJRQATAqVOnSkNDgyxYsEBqamokLS3NBLakpCSzX+s6rwmoC0br/sLCQlm2bJmMGDFCFi9eLFOmTHG1OXHihDz88MPy5ZdfysCBA+XKK6+U1157zfwsAACAYBYQ6wD6K9YRAgAg8DSxDqD/3wMIAACAc4sACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAlgnz9QkA6J39R4/Lwa+aZWTsYEmOG8zlAwD0GgEQCBDHmlslv3invL/3qKtu4mXDZMldoyVmULhPzw0AEFgYAgYChIa/bfvq3eq0/Ghxpc/OCQAQmAiAQIAM+2rPX4fD4VavZa2vqj/hs3MDAAQeAiAQAPSev54caCAAAgDOHAEQCABJQwf1uF8nhAAAcKYIgEAASBk2xEz4CA0JcavXstYzGxgA0BsEQCBA6Gzf8aPi3Oq0rPUAAPQGy8AAAUKXelk7c4yZ8KH3/LEOIACgrwiAQIDR4V6GfAEAZ4MhYAAAAMsQAAEAACxDAAQAALAMARAAAMAyBEAAAADLEAABAAAsQwAEAACwDAEQAADAMgRAAAAAywRMAFy+fLkkJydLVFSUZGRkSFlZWY/tS0tLTTttn5KSIitXrnTb/+qrr8qECRPkggsuMNtNN90kH330kZffBQAAgO8FRABcv369FBQUyPz586WystIEt0mTJkl1dbXH9lVVVTJ58mTTTtvPmzdP8vPzZcOGDa42W7dulbvuukvee+892b59u1xyySWSnZ0thw8f7sd3BgAA0P9CHA6HQ/xcVlaWpKeny4oVK1x1qampkpubK4sWLerWfs6cObJp0ybZvXu3qy4vL0927dplwp4nHR0dpidw6dKlMmPGjDM6r6amJomJiZHGxkaJjo7u03sDAAD9q4nPb//vAWxtbZWKigrTO9eZlsvLyz0eoyGva/ucnBzZsWOHtLW1eTymubnZ7Bs6dOgpz6WlpcX80nTeAAAAAo3fB8D6+nrTOxcfH+9Wr+Xa2lqPx2i9p/bt7e3m9Tx5/PHH5aKLLjL3Ap6K9jZqj59zS0xM7NN7AgAA8CW/D4BOISEhbmUdue5ad7r2nurViy++KMXFxbJx40YzaeRU5s6da4Z7nduhQ4f68E4AAAB8K0z8XFxcnISGhnbr7aurq+vWy+eUkJDgsX1YWJjExsa61b/88suycOFCefvtt+Waa67p8VwiIyPNBgAAEMj8vgcwIiLCLOeyZcsWt3otjxs3zuMxY8eO7da+pKREMjMzJTw83FX30ksvyXPPPSd//OMfzT4AAAAb+H0AVLNmzZLVq1fLmjVrzMzewsJCswSMzux1Ds12nrmr9QcPHjTHaXs9rqioSGbPnu027PvEE0+YfSNHjjQ9hrodP37cJ+8RAACgv/j9ELCaOnWqNDQ0yIIFC6SmpkbS0tJk8+bNkpSUZPZrXec1AXXBaN2vQXHZsmUyYsQIWbx4sUyZMsVtYWmdYfy9733P7Wc9/fTT8swzz/TjuwMAAOhfAbEOoL9iHSEAAAJPE+sABsYQMAAAAM4dAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAlgmIhaABb9l/9Lgc/KpZRsYOluS4wVxoAIAVCICw0rHmVskv3inv7z3qqpt42TBZctdoiRn0/58XDQBAMGIIGFbS8LdtX71bnZYfLa702TkBANBfCICwcthXe/46ujwFUctaX1V/wmfnBgBAfyAAwjp6z19PDjQQAAEAwY0ACOskDR3U436dEAIAQDAjAMI6KcOGmAkfoSEhbvVa1npmAwMAgh0BEFbS2b7jR8W51WlZ6wEACHYsAwMr6VIva2eOMRM+9J4/1gEEANiEAAir6XAvQ74AANswBAwAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlAiYALl++XJKTkyUqKkoyMjKkrKysx/alpaWmnbZPSUmRlStXuu3/9NNPZcqUKTJy5EgJCQmRV155xcvvAAAAwD8ERABcv369FBQUyPz586WyslImTJggkyZNkurqao/tq6qqZPLkyaadtp83b57k5+fLhg0bXG2am5tNMPzZz34mCQkJ/fhuAAAAfCvE4XA4xM9lZWVJenq6rFixwlWXmpoqubm5smjRom7t58yZI5s2bZLdu3e76vLy8mTXrl2yffv2bu21F1ADpm690dTUJDExMdLY2CjR0dG9fl8AAKD/NfH57f89gK2trVJRUSHZ2dlu9VouLy/3eIyGvK7tc3JyZMeOHdLW1tbnc2lpaTG/NJ03AACAQOP3AbC+vl46OjokPj7erV7LtbW1Ho/Rek/t29vbzev1lfY2ao+fc0tMTOzzawWj/UePy3t76qSq/oSvTwUAAPQgTAKETtToTEeuu9adrr2n+t6YO3euzJo1y1XWHkBCoMix5lbJL94p7+896ro2Ey8bJkvuGi0xg8L7fL0BAIClPYBxcXESGhrarbevrq6uWy+fk07q8NQ+LCxMYmNj+3wukZGR5l6/zhvEhL9t+9x7VrX8aHEllwcAAD/k9wEwIiLCLOeyZcsWt3otjxs3zuMxY8eO7da+pKREMjMzJTycHqlzPeyrPX8dXeYSaVnrGQ4GAMD/+H0AVDrsunr1almzZo2Z2VtYWGiWgNGZvc6h2RkzZrjaa/3BgwfNcdpejysqKpLZs2e7TS7ZuXOn2fT7w4cPm+/37dvnk/cYqA5+1dzj/gMN3A8IAIC/CYh7AKdOnSoNDQ2yYMECqampkbS0NNm8ebMkJSWZ/VrXeU1AXTBa92tQXLZsmYwYMUIWL15sFn52OnLkiIwePdpVfvnll812/fXXy9atW/v5HQaupKGDetw/MnZwv50LAAAIonUA/RXrCP2vGUUfmXv+Og8Dh4aEyPhRcbJ25hif/fcBAMCTJtYBDIwhYPg3ne2rYa8zLWs9AADwPwExBAz/pku9aE+fTvjQe/502Dc5jqFfAAD8FQEQ54yGPoIfAAD+jyFgAAAAyxAAAQAALEMABAAAsAwBEAAAwDIEQAAAAMsQAAEAACxDAAQAALAMARAAAMAyBEAAAADLEAABAAAsQwAEAACwDAEQAADAMgRAAAAAyxAAAQAALEMABAAAsAwBEAAAwDIEQAAAAMsQAAEAACxDAAQAALAMARAAAMAyYb4+AXi2/+hxOfhVs4yMHSzJcYO5TAAA4JwhAPqZY82tkl+8U97fe9RVN/GyYbLkrtESMyjcp+cGAACCA0PAfkbD37Z99W51Wn60uNJn5wQAAIILAdDPhn2156/D4XCr17LWV9Wf8Nm5AQCA4EEA9CN6z19PDjQQAAEAwNkjAPqRpKGDetyvE0IAAADOFgHQj6QMG2ImfISGhLjVa1nrmQ0MAADOBQKgn9HZvuNHxbnVaVnrAQAArAqAy5cvl+TkZImKipKMjAwpKyvrsX1paalpp+1TUlJk5cqV3dps2LBBrrrqKomMjDRf33zzTfE1Xepl7cwx8t7sG+RX9/2N+aplloABAABWBcD169dLQUGBzJ8/XyorK2XChAkyadIkqa6u9ti+qqpKJk+ebNpp+3nz5kl+fr4JfE7bt2+XqVOnyvTp02XXrl3m6/e//3358MMPxR/ocO+NV1zIsC8AADjnQhyOLmuO+KGsrCxJT0+XFStWuOpSU1MlNzdXFi1a1K39nDlzZNOmTbJ7925XXV5engl6GvyUhr+mpib5z//8T1ebW265RS644AIpLi4+o/PS42NiYqSxsVGio6PP8l0CAID+0MTnt//3ALa2tkpFRYVkZ2e71Wu5vLzc4zEa8rq2z8nJkR07dkhbW1uPbU71mqqlpcX80nTeAAAAAo3fB8D6+nrp6OiQ+Ph4t3ot19bWejxG6z21b29vN6/XU5tTvabS3kbt8XNuiYmJZ/HOAAAAfMPvA6BTSJelUXTkumvd6dp3re/ta86dO9cM9zq3Q4cO9fp9AAAA+FqY+Lm4uDgJDQ3t1jNXV1fXrQfPKSEhwWP7sLAwiY2N7bHNqV5T6Wxh3QAAAAKZ3/cARkREmOVctmzZ4lav5XHjxnk8ZuzYsd3al5SUSGZmpoSHh/fY5lSvCQAAECz8vgdQzZo1yyzTogFOg9uqVavMEjA6s9c5NHv48GFZu3atKWv90qVLzXEPPPCAmfBRVFTkNrv3sccek4kTJ8oLL7wgd9xxh/z+97+Xt99+Wz744AOfvU8AAID+EBABUJdsaWhokAULFkhNTY2kpaXJ5s2bJSkpyezXus5rAuqC0bq/sLBQli1bJiNGjJDFixfLlClTXG20p2/dunXyxBNPyJNPPimXXnqpWW9Ql5wBAAAIZgGxDqC/Yh0hAAACTxPrAPr/PYAAAACwcAjYXzk7T1kQGgCAwNH0fw9ysHkQlAB4Fr7++mvzlQWhAQAIzM/xmJgYsRH3AJ6FkydPypEjR+S8887rcQHpvv7rRIOlLjbNc4a9h+vcP7jOXOdgwu9z4F9nh8Nhwp9OEh0wwM674egBPAv6S3PxxReLN+kvPQHQ+7jO/YPrzHUOJvw+B/Z1jrG058/JztgLAABgMQIgAACAZQiAfkqfOfz000/z7GGuc1Dg95nrHEz4feY6BwMmgQAAAFiGHkAAAADLEAABAAAsQwAEAACwDAEQAADAMgTAfrJ8+XJJTk6WqKgoycjIkLKysh7bl5aWmnbaPiUlRVauXNmtzYYNG+Sqq64yM9L065tvvim2O9fX+dVXX5UJEybIBRdcYLabbrpJPvroI7GdN36fndatW2eerJObmyu288Z1PnbsmDzyyCMyfPhw0y41NVU2b94stvPGtX7llVfkiiuukIEDB5onWhQWFso333wjNuvNda6pqZEf/OAH5hrqgxcKCgo8tuOzsI8c8Lp169Y5wsPDHa+++qrjs88+czz22GOOwYMHOw4ePOix/f79+x2DBg0y7bS9HqfH/+53v3O1KS8vd4SGhjoWLlzo2L17t/kaFhbm+NOf/mTtf1FvXOcf/OAHjmXLljkqKyvNdb7vvvscMTExji+//NJhK29cZ6cDBw44LrroIseECRMcd9xxh8Nm3rjOLS0tjszMTMfkyZMdH3zwgbneZWVljp07dzps5o1r/dprrzkiIyMdr7/+uqOqqsrx1ltvOYYPH+4oKChw2Kq311mvW35+vuM3v/mN49prrzXtu+KzsO8IgP1gzJgxjry8PLe6K6+80vH44497bP+Tn/zE7O/sH//xHx3f+c53XOXvf//7jltuucWtTU5OjmPatGkOW3njOnfV3t7uOO+888wfJFt56zrrtR0/frxj9erVjh/+8IfWB0BvXOcVK1Y4UlJSHK2trWf4X9sO3rjWjzzyiONv//Zv3drMmjXLcd111zls1dvr3Nn111/vMQDyWdh3DAF7WWtrq1RUVEh2drZbvZbLy8s9HrN9+/Zu7XNycmTHjh3S1tbWY5tTvWaw89Z17qq5udnsGzp0qNjIm9d5wYIFMmzYMJk5c6bYzlvXedOmTTJ27FgzBBwfHy9paWmycOFC6ejoEFt561pfd9115nWdt4zs37/fDLXfeuutYqO+XOczwWdh34WdxbE4A/X19eaPq/6x7UzLtbW1Ho/Rek/t29vbzevpvTunanOq1wx23rrOXT3++ONy0UUXmXsBbeSt67xt2zYpKiqSnTt3evX8bb/OGkLeffddufvuu00Y2bt3rwmD2uapp54SG3nrWk+bNk2OHj1qgqCOtum+hx56yPwNsVFfrvOZ4LOw7wiA/URvau9M/yB0rTtd+671vX1NG3jjOju9+OKLUlxcLFu3bjU3MNvsXF7nr7/+Wu655x4z4SYuLs5LZxyYzvXv88mTJ+XCCy+UVatWSWhoqLkJ/8iRI/LSSy9ZGwC9da3178Tzzz9vJj1kZWXJvn375LHHHjPh8MknnxRbeeNzi8/CviEAepl+oOkf2q7/wqmrq+v2LyGnhIQEj+3DwsIkNja2xzanes1g563r7PTyyy+bobK3335brrnmGrGVN67zp59+KgcOHJDbbrvNtV+DitI2e/bskUsvvVRs4q3fZw0f4eHh5rWddBawHqdDdBEREWIbb11rDXnTp0+X+++/35SvvvpqOXHihDz44IMyf/58M6vVJn25zmeCz8K+s+s30Af0D6r+K3vLli1u9VoeN26cx2P0Hp2u7UtKSiQzM9P88e6pzaleM9h56zor7R157rnn5I9//KPZZzNvXOcrr7xS/vznP5vhX+d2++23y4033mi+1+UzbOOt3+fx48ebnihnwFZffPGFCYY2hj9vXmu9X7hryNMA9H+TL8U2fbnOZ4LPwrNwFhNI0Mup70VFRWbquy4DoFPfdQkGpTOgpk+f3m2JgcLCQtNej+u6xMC2bdvMMjA/+9nPzPIk+pVlYM79dX7hhRccERERpq6mpsa1ff3119b+/nvj97krZgF75zpXV1c7hgwZ4vjRj37k2LNnj+MPf/iD48ILL3T89Kc/ddjMG9f66aefNisGFBcXm/YlJSWOSy+91MxatVVvr7PSJbh0y8jIMMty6feffvqpaz+fhX1HAOwnupZcUlKSCRPp6emO0tJStw87neLe2datWx2jR4827UeOHGmWb+jqt7/9reOKK64w/4fSqfQbNmxw2O5cX2d9Lf13UtdN/7jbzBu/z50RAL13nXXdtKysLLNGnS4J8/zzz5sleGx3rq91W1ub45lnnjGhLyoqypGYmOh4+OGHHf/zP//jsFlvr7Onv796fGd8FvZNiP7P2fQgAgAAILBwDyAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACMBazzzzjFx77bW+Pg0A6HcsBA0gKIWEhPS4/4c//KEsXbpUWlpaJDY2tt/OCwD8AQEQQFCqra11fb9+/Xp56qmnZM+ePa66gQMHSkxMjI/ODgB8iyFgAEEpISHBtWnQ0x7BrnVdh4Dvvfdeyc3NlYULF0p8fLycf/758uyzz0p7e7v8+Mc/lqFDh8rFF18sa9ascftZhw8flqlTp8oFF1xgehPvuOMOOXDggA/eNQCcGQIgAHTy7rvvypEjR+T999+XX/ziFyYkfve73zXh7sMPP5S8vDyzHTp0yLRvbm6WG2+8UYYMGWKO+eCDD8z3t9xyi7S2tnJtAfglAiAAdKK9fIsXL5YrrrhC/uEf/sF81ZA3b948ueyyy2Tu3LkSEREh27ZtM+3XrVsnAwYMkNWrV8vVV18tqamp8qtf/Uqqq6tl69atXFsAfinM1ycAAP7kW9/6lgl0TjoUnJaW5iqHhoaaYd66ujpTrqiokH379sl5553n9jrffPON/Pd//3c/njkAnDkCIAB0Eh4e7nY99N5BT3UnT5403+vXjIwMef3117tdx2HDhnFtAfglAiAAnIX09HQzy/jCCy+U6OhoriWAgMA9gABwFu6++26Ji4szM3/LysqkqqpKSktL5bHHHpMvv/ySawvALxEAAeAsDBo0yMz+veSSS+Tv//7vzSQQnTzy17/+lR5BAH6LhaABAAAsQw8gAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAAAgdvl/0nSYOVp0b7sAAAAASUVORK5CYII=' width=640.0/>\n",
       "            </div>\n",
       "        "
      ],
      "text/plain": [
       "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "A0_5B24.plot(x='Time',y='NADPH',color='red', kind='scatter')\n",
    "A1B24.plot(x='Time',y='NADPH',color='green',  kind='scatter')\n",
    "A2B24.plot(x='Time',y='NADPH',color='blur',kind='scatter')\n",
    "A4B24.plot(x='Time',y='NADPH',kind='scatter')\n",
    "A8B24.plot(x='Time',y='NADPH',kind='scatter')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "4f7ebf50-e3f3-4ee1-b4fb-914f06663aee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8a0fa9d37d8f4c669b8a0bd3d3195cf0",
       "version_major": 2,
       "version_minor": 0
      },
      "image/png": "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B9A7PYDHjx+X888/31WOjIyUgQMHmgsOAACAIJ0E8tZbb5kZsk4nT56Ud955R/7yl7+46m6//XZv/XgAAAD05xDwgAGn71jUhaI7OjokkNGFDABA4GliCNg7PYDa2wcAAADLnwUMAACAIL8HUL377ruyceNGOXDggBnyTU5Olu9973syceJEb/5YAAAA+KIHMC8vzzwBpLi4WBoaGuTo0aPy+uuvy4033iiPPvqot34sAAAAfBEA9Ukgv/rVr2TNmjVSX18v27dvlz/96U8mBL766quyatUq85g4AAAABMksYF3e5Vvf+pYsWrTI4/45c+bI559/Lr///e8lkDGLCACAwNPELGDv9AB+/PHH8nd/93en3D9lyhSpqKjwxo8GAACALwKgDvtedNFFp9yv+/S+QAAAAARJAGxtbZWIiIhT7g8LCzNtemP58uVmFnFUVJRkZGRIWVlZj+1LS0tNO22fkpIiK1euPGXbdevWmVnKubm5vTonAACAQOS1ZWCefPJJGTRokMd9zc3NvXqt9evXS0FBgQmB48ePl1/+8pcyadIk+eyzz+SSSy7p1r6qqkomT54sDzzwgLz22muybds2efjhh2XYsGFm+LmzgwcPyuzZs2XChAm9fIcAgtn+o8fl4FfNMjJ2sCTHDfb16QCA/08CueGGG0yP2um89957Z/R6WVlZkp6eLitWrHDVpaammh47TxNNdJKJzjLevXu327I0u3btMjOSnfRRdNdff73cd999pkfx2LFj8m//9m9ypriJFAg+x5pbJb94p7y/96irbuJlw2TJXaMlZlC4T88NwLnRxCQQ7/QAbt269Zy9lg4V64SRxx9/3K0+OztbysvLPR6jIU/3d5aTkyNFRUXS1tYm4eH/+0d8wYIFpldw5syZpx1SVi0tLWbr/AsEILho+Nu2r96tTsuPFlfK2pljfHZeABDwj4L785//bIZ0z3RCifbUxcfHu9Vruba21uMxWu+pfXt7u3k9pcPCGgh1XcIzpb2NMTExri0xMfGMjwUQGMO+2vPX0WVgRMtaX1V/wmfnBgABGQC1t0zv3RszZox8+9vf7nUvYdchZR257mmY2VN7Z/3XX38t99xzjwl/cXFxZ3wOc+fOlcbGRtd26NChXr0HAP5N7/nryYEGAiCA4ODVZwE7Z+NqT9uGDRvkm2++kR//+Mfyr//6rzJq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",
      "text/html": [
       "\n",
       "            <div style=\"display: inline-block;\">\n",
       "                <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
       "                    Figure\n",
       "                </div>\n",
       "                <img src='data:image/png;base64,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B9A7PYDHjx+X888/31WOjIyUgQMHmgsOAACAIJ0E8tZbb5kZsk4nT56Ud955R/7yl7+46m6//XZv/XgAAAD05xDwgAGn71jUhaI7OjokkNGFDABA4GliCNg7PYDa2wcAAADLnwUMAACAIL8HUL377ruyceNGOXDggBnyTU5Olu9973syceJEb/5YAAAA+KIHMC8vzzwBpLi4WBoaGuTo0aPy+uuvy4033iiPPvqot34sAAAAfBEA9Ukgv/rVr2TNmjVSX18v27dvlz/96U8mBL766quyatUq85g4AAAABMksYF3e5Vvf+pYsWrTI4/45c+bI559/Lr///e8lkDGLCACAwNPELGDv9AB+/PHH8nd/93en3D9lyhSpqKjwxo8GAACALwKgDvtedNFFp9yv+/S+QAAAAARJAGxtbZWIiIhT7g8LCzNtemP58uVmFnFUVJRkZGRIWVlZj+1LS0tNO22fkpIiK1euPGXbdevWmVnKubm5vTonAACAQOS1ZWCefPJJGTRokMd9zc3NvXqt9evXS0FBgQmB48ePl1/+8pcyadIk+eyzz+SSSy7p1r6qqkomT54sDzzwgLz22muybds2efjhh2XYsGFm+LmzgwcPyuzZs2XChAm9fIcAgtn+o8fl4FfNMjJ2sCTHDfb16QCA/08CueGGG0yP2um89957Z/R6WVlZkp6eLitWrHDVpaammh47TxNNdJKJzjLevXu327I0u3btMjOSnfRRdNdff73cd999pkfx2LFj8m//9m9ypriJFAg+x5pbJb94p7y/96irbuJlw2TJXaMlZlC4T88NwLnRxCQQ7/QAbt269Zy9lg4V64SRxx9/3K0+OztbysvLPR6jIU/3d5aTkyNFRUXS1tYm4eH/+0d8wYIFpldw5syZpx1SVi0tLWbr/AsEILho+Nu2r96tTsuPFlfK2pljfHZeABDwj4L785//bIZ0z3RCifbUxcfHu9Vruba21uMxWu+pfXt7u3k9pcPCGgh1XcIzpb2NMTExri0xMfGMjwUQGMO+2vPX0WVgRMtaX1V/wmfnBgABGQC1t0zv3RszZox8+9vf7nUvYdchZR257mmY2VN7Z/3XX38t99xzjwl/cXFxZ3wOc+fOlcbGRtd26NChXr0HAP5N7/nryYEGAiCA4ODVZwE7Z+NqT9uGDRvkm2++kR//+Mfyr//6rzJq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' width=640.0/>\n",
       "            </div>\n",
       "        "
      ],
      "text/plain": [
       "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "A8B1_5.plot(x='Time',y='NADPH',kind='scatter')\n",
    "A8B3.plot(x='Time',y='NADPH',kind='scatter')\n",
    "A8B6.plot(x='Time',y='NADPH',kind='scatter')\n",
    "A8B12.plot(x='Time',y='NADPH',kind='scatter')\n",
    "A8B24.plot(x='Time',y='NADPH',kind='scatter')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eab1e086-daa0-4615-b3db-ebe70057422d",
   "metadata": {},
   "source": [
    "# Question 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "2f0894e4-1398-40a3-8a96-6f70b59efa8c",
   "metadata": {},
   "outputs": [],
   "source": [
    "reg0_5_24 = sp.stats.linregress(A0_5B24.Time, A0_5B24.NADPH)\n",
    "reg0_0 = sp.stats.linregress(A0B0.Time, A0B0.NADPH)\n",
    "reg1_24 = sp.stats.linregress(A1B24.Time, A1B24.NADPH)\n",
    "reg2_24 = sp.stats.linregress(A2B24.Time, A2B24.NADPH)\n",
    "reg4_24 = sp.stats.linregress(A4B24.Time, A4B24.NADPH)\n",
    "reg8_1_5 = sp.stats.linregress(A8B1_5.Time, A8B1_5.NADPH)\n",
    "reg8_3 = sp.stats.linregress(A8B3.Time, A8B3.NADPH)\n",
    "reg8_6 = sp.stats.linregress(A8B6.Time, A8B6.NADPH)\n",
    "reg8_12 = sp.stats.linregress(A8B12.Time, A8B12.NADPH)\n",
    "reg8_24 = sp.stats.linregress(A8B24.Time, A8B24.NADPH)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "161377ee-d5e3-4145-ac79-fba6fde33584",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.24118661159479945\n",
      "0.0049546463416277305\n",
      "0.3526304449083254\n",
      "0.5746500696105542\n",
      "0.7322856639928838\n",
      "0.25422083243133853\n",
      "0.3679535702854622\n",
      "0.5564088293747242\n",
      "0.701203980466376\n",
      "0.8250788434733142\n"
     ]
    }
   ],
   "source": [
    "regressions = [reg0_5_24, reg0_0, reg1_24, reg2_24, reg4_24, reg8_1_5, reg8_3, reg8_6, reg8_12, reg8_24]\n",
    "rates = []\n",
    "for reg in regressions:\n",
    "    print(reg.slope)\n",
    "    rates.append(reg.slope)\n",
    "rates = np.array(rates)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "d9a98ab7-45ae-4eb6-8d0b-c1a0fd370960",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.24118661, 0.00495465, 0.35263044, 0.57465007, 0.73228566,\n",
       "       0.25422083, 0.36795357, 0.55640883, 0.70120398, 0.82507884])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rates"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "176e943b-fafc-4721-8c28-2c1de72f9941",
   "metadata": {},
   "source": [
    "# Question 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "356e8f65-6df0-466b-aca1-633a330ecb1e",
   "metadata": {},
   "outputs": [],
   "source": [
    "a_concs = np.array([0.0, 0.5, 1, 2, 4, 8, 8, 8, 8, 8])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "86250610-dd5f-47e6-86f8-7b08f4f7bd38",
   "metadata": {},
   "outputs": [],
   "source": [
    "b_concs = np.array([0.0, 24, 24, 24, 24, 24, 1.5, 3, 6, 12])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "bbe47d73-5c46-42fe-ab33-c04dbc8ee0ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "dfa_b_rate = pd.DataFrame({'a': a_concs, 'b':b_concs, 'rate':rates})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "a6a2c5b0-d4aa-4ecd-b0db-a5dd99de1427",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.241187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.5</td>\n",
       "      <td>24.0</td>\n",
       "      <td>0.004955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>0.352630</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>0.574650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>0.732286</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>8.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>0.254221</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>8.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.367954</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.556409</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>8.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.701204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>8.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.825079</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     a     b      rate\n",
       "0  0.0   0.0  0.241187\n",
       "1  0.5  24.0  0.004955\n",
       "2  1.0  24.0  0.352630\n",
       "3  2.0  24.0  0.574650\n",
       "4  4.0  24.0  0.732286\n",
       "5  8.0  24.0  0.254221\n",
       "6  8.0   1.5  0.367954\n",
       "7  8.0   3.0  0.556409\n",
       "8  8.0   6.0  0.701204\n",
       "9  8.0  12.0  0.825079"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dfa_b_rate"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70c81acb-1983-4376-8b19-9ed6507dc4db",
   "metadata": {},
   "source": [
    "# Question 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "af5991b7-5c29-4e94-b267-8d29600910f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "def v(a,b,Vf,Ka,Kb):\n",
    "    return ((Vf*a*b)/((Ka+a)*(Kb+b)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "316959d2-465b-4dc9-a38a-3537fa7e47bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "from lmfit import Model\n",
    "mymod=Model(v, independent_vars=['a','b'])\n",
    "mypar=mymod.make_params(Vf=1,Ka=1,Kb=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "269f2393-33d4-4fec-abe9-80b5a872d23c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"jp-toc-ignore\"><caption>Parameters</caption><tr><th style='text-align:left'>name</th><th style='text-align:left'>value</th><th style='text-align:left'>initial value</th><th style='text-align:left'>min</th><th style='text-align:left'>max</th><th style='text-align:right'>vary</th></tr><tr><td style='text-align:left'>Vf</td><td style='text-align:left'> 1.00000000</td><td style='text-align:left'>1.0</td><td style='text-align:left'>       -inf</td><td style='text-align:left'>        inf</td><td style='text-align:right'>True</td></tr><tr><td style='text-align:left'>Ka</td><td style='text-align:left'> 1.00000000</td><td style='text-align:left'>1.0</td><td style='text-align:left'>       -inf</td><td style='text-align:left'>        inf</td><td style='text-align:right'>True</td></tr><tr><td style='text-align:left'>Kb</td><td style='text-align:left'> 1.00000000</td><td style='text-align:left'>1.0</td><td style='text-align:left'>       -inf</td><td style='text-align:left'>        inf</td><td style='text-align:right'>True</td></tr></table>"
      ],
      "text/plain": [
       "Parameters([('Vf', <Parameter 'Vf', value=1.0, bounds=[-inf:inf]>), ('Ka', <Parameter 'Ka', value=1.0, bounds=[-inf:inf]>), ('Kb', <Parameter 'Kb', value=1.0, bounds=[-inf:inf]>)])"
      ]
     },
     "execution_count": 129,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mypar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "2ab063bb-7936-4aa0-8389-1cd7c3121fef",
   "metadata": {},
   "outputs": [],
   "source": [
    "myfit=mymod.fit(dfa_b_rate.rate, mypar, a=dfa_b_rate.a, b=dfa_b_rate.b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "id": "6b0ce203-a4e9-43dc-a0a0-cabf7e29c0a1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h2>Fit Result</h2> <p>Model: Model(v)</p> <table class=\"jp-toc-ignore\"><caption class=\"jp-toc-ignore\">Fit Statistics</caption><tr><td style='text-align:left'>fitting method</td><td style='text-align:right'>leastsq</td></tr><tr><td style='text-align:left'># function evals</td><td style='text-align:right'>25</td></tr><tr><td style='text-align:left'># data points</td><td style='text-align:right'>10</td></tr><tr><td style='text-align:left'># variables</td><td style='text-align:right'>3</td></tr><tr><td style='text-align:left'>chi-square</td><td style='text-align:right'> 0.35256017</td></tr><tr><td style='text-align:left'>reduced chi-square</td><td style='text-align:right'> 0.05036574</td></tr><tr><td style='text-align:left'>Akaike info crit.</td><td style='text-align:right'>-27.4511906</td></tr><tr><td style='text-align:left'>Bayesian info crit.</td><td style='text-align:right'>-26.5434353</td></tr><tr><td style='text-align:left'>R-squared</td><td style='text-align:right'> 0.41756487</td></tr></table><table class=\"jp-toc-ignore\"><caption>Parameters</caption><tr><th style='text-align:left'>name</th><th style='text-align:left'>value</th><th style='text-align:left'>standard error</th><th style='text-align:left'>relative error</th><th style='text-align:left'>initial value</th><th style='text-align:left'>min</th><th style='text-align:left'>max</th><th style='text-align:right'>vary</th></tr><tr><td style='text-align:left'>Vf</td><td style='text-align:left'> 0.78701610</td><td style='text-align:left'> 0.28873971</td><td style='text-align:left'>(36.69%)</td><td style='text-align:left'>1.0</td><td style='text-align:left'>       -inf</td><td style='text-align:left'>        inf</td><td style='text-align:right'>True</td></tr><tr><td style='text-align:left'>Ka</td><td style='text-align:left'> 1.29605180</td><td style='text-align:left'> 1.52699603</td><td style='text-align:left'>(117.82%)</td><td style='text-align:left'>1.0</td><td style='text-align:left'>       -inf</td><td style='text-align:left'>        inf</td><td style='text-align:right'>True</td></tr><tr><td style='text-align:left'>Kb</td><td style='text-align:left'> 0.78609319</td><td style='text-align:left'> 1.30252372</td><td style='text-align:left'>(165.70%)</td><td style='text-align:left'>1.0</td><td style='text-align:left'>       -inf</td><td style='text-align:left'>        inf</td><td style='text-align:right'>True</td></tr></table><table class=\"jp-toc-ignore\"><caption>Correlations (unreported values are < 0.100)</caption><tr><th style='text-align:left'>Parameter1</th><th style='text-align:left'>Parameter 2</th><th style='text-align:right'>Correlation</th></tr><tr><td style='text-align:left'>Vf</td><td style='text-align:left'>Ka</td><td style='text-align:right'>+0.8224</td></tr><tr><td style='text-align:left'>Vf</td><td style='text-align:left'>Kb</td><td style='text-align:right'>+0.6743</td></tr><tr><td style='text-align:left'>Ka</td><td style='text-align:left'>Kb</td><td style='text-align:right'>+0.3565</td></tr></table>"
      ],
      "text/plain": [
       "<lmfit.model.ModelResult at 0x149c2d5a5d0>"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "myfit"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "831477de-a9ee-46cc-9547-206368c6e1f2",
   "metadata": {},
   "source": [
    "# Question 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "id": "ee58713d-594d-4438-8c6d-770cf9d2c875",
   "metadata": {},
   "outputs": [],
   "source": [
    "b=24.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "id": "77a0e385-30ae-4cc6-8f12-d9f84a8ded19",
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "x and y must have same first dimension, but have shapes (101,) and (10,)",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mValueError\u001b[39m                                Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[169]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m      2\u001b[39m fig, ax =plt.subplots()\n\u001b[32m      3\u001b[39m ax.plot(dfa_b_rate.a, dfa_b_rate.rate, \u001b[33m'\u001b[39m\u001b[33mo\u001b[39m\u001b[33m'\u001b[39m, label=\u001b[33m'\u001b[39m\u001b[33mdata\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[43max\u001b[49m\u001b[43m.\u001b[49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mavals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmyfit\u001b[49m\u001b[43m.\u001b[49m\u001b[43meval\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma_conc\u001b[49m\u001b[43m=\u001b[49m\u001b[43mavals\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mfit\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[32m      5\u001b[39m ax.set_xlabel(\u001b[33m'\u001b[39m\u001b[33m[a] (mM)\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m      6\u001b[39m ax.set_ylabel(\u001b[33m'\u001b[39m\u001b[33mrate (mM/s)\u001b[39m\u001b[33m'\u001b[39m)\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\anaconda3\\envs\\minicourse\\Lib\\site-packages\\matplotlib\\axes\\_axes.py:1777\u001b[39m, in \u001b[36mAxes.plot\u001b[39m\u001b[34m(self, scalex, scaley, data, *args, **kwargs)\u001b[39m\n\u001b[32m   1534\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m   1535\u001b[39m \u001b[33;03mPlot y versus x as lines and/or markers.\u001b[39;00m\n\u001b[32m   1536\u001b[39m \n\u001b[32m   (...)\u001b[39m\u001b[32m   1774\u001b[39m \u001b[33;03m(``'green'``) or hex strings (``'#008000'``).\u001b[39;00m\n\u001b[32m   1775\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m   1776\u001b[39m kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)\n\u001b[32m-> \u001b[39m\u001b[32m1777\u001b[39m lines = [*\u001b[38;5;28mself\u001b[39m._get_lines(\u001b[38;5;28mself\u001b[39m, *args, data=data, **kwargs)]\n\u001b[32m   1778\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m lines:\n\u001b[32m   1779\u001b[39m     \u001b[38;5;28mself\u001b[39m.add_line(line)\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\anaconda3\\envs\\minicourse\\Lib\\site-packages\\matplotlib\\axes\\_base.py:297\u001b[39m, in \u001b[36m_process_plot_var_args.__call__\u001b[39m\u001b[34m(self, axes, data, return_kwargs, *args, **kwargs)\u001b[39m\n\u001b[32m    295\u001b[39m     this += args[\u001b[32m0\u001b[39m],\n\u001b[32m    296\u001b[39m     args = args[\u001b[32m1\u001b[39m:]\n\u001b[32m--> \u001b[39m\u001b[32m297\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_plot_args\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m    298\u001b[39m \u001b[43m    \u001b[49m\u001b[43maxes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mthis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mambiguous_fmt_datakey\u001b[49m\u001b[43m=\u001b[49m\u001b[43mambiguous_fmt_datakey\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m    299\u001b[39m \u001b[43m    \u001b[49m\u001b[43mreturn_kwargs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mreturn_kwargs\u001b[49m\n\u001b[32m    300\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\anaconda3\\envs\\minicourse\\Lib\\site-packages\\matplotlib\\axes\\_base.py:494\u001b[39m, in \u001b[36m_process_plot_var_args._plot_args\u001b[39m\u001b[34m(self, axes, tup, kwargs, return_kwargs, ambiguous_fmt_datakey)\u001b[39m\n\u001b[32m    491\u001b[39m     axes.yaxis.update_units(y)\n\u001b[32m    493\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m x.shape[\u001b[32m0\u001b[39m] != y.shape[\u001b[32m0\u001b[39m]:\n\u001b[32m--> \u001b[39m\u001b[32m494\u001b[39m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mx and y must have same first dimension, but \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m    495\u001b[39m                      \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mhave shapes \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00my.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m)\n\u001b[32m    496\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m x.ndim > \u001b[32m2\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m y.ndim > \u001b[32m2\u001b[39m:\n\u001b[32m    497\u001b[39m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mx and y can be no greater than 2D, but have \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m    498\u001b[39m                      \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mshapes \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00my.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m)\n",
      "\u001b[31mValueError\u001b[39m: x and y must have same first dimension, but have shapes (101,) and (10,)"
     ]
    }
   ],
   "source": [
    "avals = np.linspace(0,30,101)\n",
    "fig, ax =plt.subplots()\n",
    "ax.plot(dfa_b_rate.a, dfa_b_rate.rate, 'o', label='data')\n",
    "ax.plot(avals, myfit.eval(a_conc=avals), label='fit')\n",
    "ax.set_xlabel('[a] (mM)')\n",
    "ax.set_ylabel('rate (mM/s)')\n",
    "ax.legend(loc='best')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "1255d87c-de25-4306-81d2-06173690134c",
   "metadata": {},
   "outputs": [],
   "source": [
    "a=8.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "id": "9c91250e-9a4e-407a-a9c5-22902c13d3cf",
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "x and y must have same first dimension, but have shapes (101,) and (10,)",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mValueError\u001b[39m                                Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[171]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m      2\u001b[39m fig, ax =plt.subplots()\n\u001b[32m      3\u001b[39m ax.plot(dfa_b_rate.b, dfa_b_rate.rate, \u001b[33m'\u001b[39m\u001b[33mo\u001b[39m\u001b[33m'\u001b[39m, label=\u001b[33m'\u001b[39m\u001b[33mdata\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[43max\u001b[49m\u001b[43m.\u001b[49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbvals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmyfit\u001b[49m\u001b[43m.\u001b[49m\u001b[43meval\u001b[49m\u001b[43m(\u001b[49m\u001b[43mb_conc\u001b[49m\u001b[43m=\u001b[49m\u001b[43mbvals\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mfit\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[32m      5\u001b[39m ax.set_xlabel(\u001b[33m'\u001b[39m\u001b[33m[b] (mM)\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m      6\u001b[39m ax.set_ylabel(\u001b[33m'\u001b[39m\u001b[33mrate (mM/s)\u001b[39m\u001b[33m'\u001b[39m)\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\anaconda3\\envs\\minicourse\\Lib\\site-packages\\matplotlib\\axes\\_axes.py:1777\u001b[39m, in \u001b[36mAxes.plot\u001b[39m\u001b[34m(self, scalex, scaley, data, *args, **kwargs)\u001b[39m\n\u001b[32m   1534\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m   1535\u001b[39m \u001b[33;03mPlot y versus x as lines and/or markers.\u001b[39;00m\n\u001b[32m   1536\u001b[39m \n\u001b[32m   (...)\u001b[39m\u001b[32m   1774\u001b[39m \u001b[33;03m(``'green'``) or hex strings (``'#008000'``).\u001b[39;00m\n\u001b[32m   1775\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m   1776\u001b[39m kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)\n\u001b[32m-> \u001b[39m\u001b[32m1777\u001b[39m lines = [*\u001b[38;5;28mself\u001b[39m._get_lines(\u001b[38;5;28mself\u001b[39m, *args, data=data, **kwargs)]\n\u001b[32m   1778\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m lines:\n\u001b[32m   1779\u001b[39m     \u001b[38;5;28mself\u001b[39m.add_line(line)\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\anaconda3\\envs\\minicourse\\Lib\\site-packages\\matplotlib\\axes\\_base.py:297\u001b[39m, in \u001b[36m_process_plot_var_args.__call__\u001b[39m\u001b[34m(self, axes, data, return_kwargs, *args, **kwargs)\u001b[39m\n\u001b[32m    295\u001b[39m     this += args[\u001b[32m0\u001b[39m],\n\u001b[32m    296\u001b[39m     args = args[\u001b[32m1\u001b[39m:]\n\u001b[32m--> \u001b[39m\u001b[32m297\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_plot_args\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m    298\u001b[39m \u001b[43m    \u001b[49m\u001b[43maxes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mthis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mambiguous_fmt_datakey\u001b[49m\u001b[43m=\u001b[49m\u001b[43mambiguous_fmt_datakey\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m    299\u001b[39m \u001b[43m    \u001b[49m\u001b[43mreturn_kwargs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mreturn_kwargs\u001b[49m\n\u001b[32m    300\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\anaconda3\\envs\\minicourse\\Lib\\site-packages\\matplotlib\\axes\\_base.py:494\u001b[39m, in \u001b[36m_process_plot_var_args._plot_args\u001b[39m\u001b[34m(self, axes, tup, kwargs, return_kwargs, ambiguous_fmt_datakey)\u001b[39m\n\u001b[32m    491\u001b[39m     axes.yaxis.update_units(y)\n\u001b[32m    493\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m x.shape[\u001b[32m0\u001b[39m] != y.shape[\u001b[32m0\u001b[39m]:\n\u001b[32m--> \u001b[39m\u001b[32m494\u001b[39m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mx and y must have same first dimension, but \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m    495\u001b[39m                      \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mhave shapes \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00my.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m)\n\u001b[32m    496\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m x.ndim > \u001b[32m2\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m y.ndim > \u001b[32m2\u001b[39m:\n\u001b[32m    497\u001b[39m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mx and y can be no greater than 2D, but have \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m    498\u001b[39m                      \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mshapes \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00my.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m)\n",
      "\u001b[31mValueError\u001b[39m: x and y must have same first dimension, but have shapes (101,) and (10,)"
     ]
    }
   ],
   "source": [
    "bvals = np.linspace(0,30,101)\n",
    "fig, ax =plt.subplots()\n",
    "ax.plot(dfa_b_rate.b, dfa_b_rate.rate, 'o', label='data')\n",
    "ax.plot(bvals, myfit.eval(b_conc=bvals), label='fit')\n",
    "ax.set_xlabel('[b] (mM)')\n",
    "ax.set_ylabel('rate (mM/s)')\n",
    "ax.legend(loc='best')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5cbe2909-fb02-4339-adf3-355651c3a5d5",
   "metadata": {},
   "source": [
    "Although the codes to plot are not working, due to the R^2 value in the Fit Result table (R^2=0.417), this model is not going to be a good fit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "991d8652-ae08-4529-a325-1ae11a3abe47",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.13.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
