{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "8fdec0b3-1b62-4887-8e12-06ec36432e29",
   "metadata": {},
   "source": [
    "# Assignment 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b4894320-967c-4df3-89a9-d1e35c428967",
   "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.2.5) with SciPy (1.17.0)\n",
      "RateChar is available\n",
      "Parallel scanner is available\n",
      "\n",
      "PySCeS environment\n",
      "******************\n",
      "pysces.model_dir = C:\\Users\\leahr\\Pysces\\psc\n",
      "pysces.output_dir = C:\\Users\\leahr\\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": [
    "import numpy as np\n",
    "import scipy as sp\n",
    "import scipy.optimize\n",
    "import scipy.stats\n",
    "import pandas as pd\n",
    "from matplotlib import pyplot as plt\n",
    "import pysces\n",
    "import os\n",
    "import copy\n",
    "from lmfit import Model\n",
    "from numdifftools import Derivative\n",
    "backupdir = os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f35b220e-beef-4ade-8bcc-5d3fb5469538",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95c53803-5a52-4f72-b87b-856761b4b96d",
   "metadata": {},
   "source": [
    "## Question 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "133e04bf-feac-4785-915d-54110f297738",
   "metadata": {},
   "outputs": [],
   "source": [
    "A05B24 = pd.read_csv('A0.5B24.csv', sep=',', names=['Time', 'NADH'])\n",
    "A0B0 = pd.read_csv('A0B0.csv', sep=',', names=['Time', 'NADH'])\n",
    "A1B24 = pd.read_csv('A1B24.csv', sep=',', names=['Time', 'NADH'])\n",
    "A2B24 = pd.read_csv('A2B24.csv', sep=',', names=['Time', 'NADH'])\n",
    "A4B24 = pd.read_csv('A4B24.csv', sep=',', names=['Time', 'NADH'])\n",
    "A8B15 = pd.read_csv('A8B1.5.csv', sep=',', names=['Time', 'NADH'])\n",
    "A8B3 = pd.read_csv('A8B3.csv', sep=',', names=['Time', 'NADH'])\n",
    "A8B6 = pd.read_csv('A8B6.csv', sep=',', names=['Time', 'NADH'])\n",
    "A8B12 = pd.read_csv('A8B12.csv', sep=',', names=['Time', 'NADH'])\n",
    "A8B24 = pd.read_csv('A8B24.csv', sep=',', names=['Time', 'NADH'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f0ca368-d5c3-4a21-a946-74b1b6c503a7",
   "metadata": {},
   "source": [
    "*Plot of A varied and B constant*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "67f26242-d6c2-4473-a740-475bfe2d3f54",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x25bc535cb90>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots()\n",
    "ax.scatter(A05B24.Time, A05B24.NADH, label='A05B24')\n",
    "ax.scatter(A1B24.Time, A1B24.NADH, label='A1B24')\n",
    "ax.scatter(A2B24.Time, A2B24.NADH, label='A2B24')\n",
    "ax.scatter(A4B24.Time, A4B24.NADH, label='A4B24')\n",
    "ax.scatter(A8B24.Time, A8B24.NADH, label='A8B24')\n",
    "ax.set_xlabel('Time (s)')\n",
    "ax.set_ylabel('NADH')\n",
    "ax.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aaba6cdf-16d9-4679-bff8-de314aef6b2c",
   "metadata": {},
   "source": [
    "*Plot of B varied and A constant*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "578a5c73-f1dd-43d6-a78b-0522f4eb5a42",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x25bc38c6d50>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots()\n",
    "ax.scatter(A8B15.Time, A8B15.NADH, label='A8B15')\n",
    "ax.scatter(A8B3.Time, A8B3.NADH, label='A8B3')\n",
    "ax.scatter(A8B6.Time, A8B6.NADH, label='A8B6')\n",
    "ax.scatter(A8B12.Time, A8B12.NADH, label='A8B12')\n",
    "ax.scatter(A8B24.Time, A8B24.NADH, label='A8B24')\n",
    "ax.set_xlabel('Time (s)')\n",
    "ax.set_ylabel('NADH')\n",
    "ax.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f81134b5-486f-4f98-8aed-943cc7c79c9c",
   "metadata": {},
   "source": [
    "## Question 2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c21a97c3-8f80-4bee-a53c-cb69b2e1be7e",
   "metadata": {},
   "source": [
    "*Perform linear regressions on each of the datasets to calculate the initial rate.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b005dc90-6a4f-4fdb-a17e-c41a2975b9eb",
   "metadata": {},
   "outputs": [],
   "source": [
    "regA05B24 = sp.stats.linregress(A05B24.Time, A05B24.NADH)\n",
    "regA0B0 = sp.stats.linregress(A0B0.Time, A0B0.NADH)\n",
    "regA1B24 = sp.stats.linregress(A1B24.Time, A1B24.NADH)\n",
    "regA2B24 = sp.stats.linregress(A2B24.Time, A2B24.NADH)\n",
    "regA4B24 = sp.stats.linregress(A4B24.Time, A4B24.NADH)\n",
    "regA8B15 = sp.stats.linregress(A8B15.Time, A8B15.NADH)\n",
    "regA8B3 = sp.stats.linregress(A8B3.Time, A8B3.NADH)\n",
    "regA8B6 = sp.stats.linregress(A8B6.Time, A8B6.NADH)\n",
    "regA8B12 = sp.stats.linregress(A8B12.Time, A8B12.NADH)\n",
    "regA8B24 = sp.stats.linregress(A8B24.Time, A8B24.NADH)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2ad8ef18-25c8-4681-80e8-d8fa1becd664",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinregressResult(slope=np.float64(0.5746500696105541), intercept=np.float64(-0.0007863780472679716), rvalue=np.float64(0.9944750514607805), pvalue=np.float64(4.022096156729624e-10), stderr=np.float64(0.02021932901287978), intercept_stderr=np.float64(0.0011961916360093757))"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regA2B24"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "66f35a9f-81ee-4a2b-bc2e-d02a6c2ae5d5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.24118661159479945\n",
      "0.004954646341627726\n",
      "0.3526304449083254\n",
      "0.5746500696105541\n",
      "0.7322856639928835\n",
      "0.25422083243133853\n",
      "0.3679535702854621\n",
      "0.556408829374724\n",
      "0.7012039804663761\n",
      "0.8250788434733143\n"
     ]
    }
   ],
   "source": [
    "regressions = [regA05B24, regA0B0, regA1B24, regA2B24, regA4B24, regA8B15, regA8B3, regA8B6, regA8B12, regA8B24]\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": 13,
   "id": "4a3bb048-d443-453e-b21c-5894318ec17b",
   "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": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rates"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d62290c8-d62f-4404-a6c2-96d79d39dbce",
   "metadata": {},
   "source": [
    "## Question 3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "127d9293-b8d7-4f4c-941a-198ccfdbe6ed",
   "metadata": {},
   "source": [
    "*Create a new pandasdataframe that combines the data. The columns of the dataframe\n",
    "should be [a, b, rate].*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "f9ee0db1-a341-483f-a666-70bdba0acd95",
   "metadata": {},
   "outputs": [],
   "source": [
    "concsA = np.array([0.0, 0.5, 1, 2, 4, 8, 8, 8, 8, 8])\n",
    "concsB = np.array([0.0, 24, 24, 24, 24, 24, 1.5, 3, 6, 12])\n",
    "\n",
    "AB_and_v = pd.DataFrame({'ConcsA': concsA, 'ConcsB': concsB, 'rate': rates})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "09303f7f-4ac5-4ffb-ae47-1602a9a7e1f3",
   "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>ConcsA</th>\n",
       "      <th>ConcsB</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": [
       "   ConcsA  ConcsB      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": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "AB_and_v"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e571f836-9b2d-4b6a-b835-94b3054d6055",
   "metadata": {},
   "source": [
    "## Question 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "5b0b9455-6f61-4c95-9f90-7c7b1dab92ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "def vf(a, b, ka, kb):\n",
    "    return (vf*ab)/((ka+a)*(kb+b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "557fb278-bbf8-4858-86dc-dd53066a89a0",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'ConcsA' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[96]\u001b[39m\u001b[32m, line 3\u001b[39m\n\u001b[32m      1\u001b[39m mymod = Model(vf)\n\u001b[32m      2\u001b[39m mypar = mymod.make_params(vf=\u001b[32m1\u001b[39m,ka=\u001b[32m1\u001b[39m, kb=\u001b[32m1\u001b[39m)\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m myfit = mymod.fit(rates, mypar, a=\u001b[43mConcsA\u001b[49m, b=ConscB,ab=ConcsA*ConscB)\n\u001b[32m      4\u001b[39m myfit\n",
      "\u001b[31mNameError\u001b[39m: name 'ConcsA' is not defined"
     ]
    }
   ],
   "source": [
    "mymod = Model(vf)\n",
    "mypar = mymod.make_params(vf=1,ka=1, kb=1)\n",
    "myfit = mymod.fit(rates, mypar, a=ConcsA, b=ConscB,ab=ConcsA*ConscB)\n",
    "myfit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "a4889095-b728-441d-8fe7-ab26e2910c57",
   "metadata": {},
   "outputs": [],
   "source": [
    "from lmfit import Model\n",
    "mymod = Model(vf, independent_vars=['a', 'b'])\n",
    "mypar  = mymod.make_params(kf=1, ka=1, kb=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "812a2842-bda5-47f7-866f-df8b48603efb",
   "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'>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([('ka', <Parameter 'ka', value=1.0, bounds=[-inf:inf]>), ('kb', <Parameter 'kb', value=1.0, bounds=[-inf:inf]>)])"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mypar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "416e56a7-8038-4b7e-a9a1-ea4014117c27",
   "metadata": {},
   "outputs": [],
   "source": [
    "myfit = mymod.fit(df3.rate, mypar, A=df3.A, B=df3.B, C=df3.C)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "675bbb87-d568-42b0-98ce-e7c1b7d85104",
   "metadata": {},
   "outputs": [],
   "source": [
    "myfit"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "38c02d8b-4230-4b2f-8087-4be14f7a8aec",
   "metadata": {},
   "source": [
    "## Question 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aeedd260-0d11-47cd-bf9f-762e2a2448c2",
   "metadata": {},
   "outputs": [],
   "source": [
    "svals = np.linspace(0,25,101)\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(AB_and_v.consA, AB_and_V.rate, 'o', label='data')\n",
    "ax.plot(svals, myfit.eval(s=svals), label='fit')\n",
    "ax.set_xlabel('[A] (mM)')\n",
    "ax.set_ylabel('rate (mM/s)')\n",
    "ax.legend(loc='best')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "175bf5ed-0504-4942-9985-ace01f8d5928",
   "metadata": {},
   "outputs": [],
   "source": [
    "svals = np.linspace(0,25,101)\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(AB_and_v.consB, AB_and_V.rate, 'o', label='data')\n",
    "ax.plot(svals, myfit.eval(s=svals), label='fit')\n",
    "ax.set_xlabel('[B] (mM)')\n",
    "ax.set_ylabel('rate (mM/s)')\n",
    "ax.legend(loc='best')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0f87d4b3-c35b-4c41-bf0b-2e200951be0f",
   "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.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
