{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Resources for CMBSGR6300" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Further reading\n", "\n", "* [Network motifs, Shoval and Alon.](https://github.com/anumazam/anumazam.github.io/blob/main/alon_networkmotifs.pdf)\n", "* [AlphaFold Protein Structure Database.](https://alphafold.ebi.ac.uk/)\n", "\n", "\n", "* Engineered transcription factors:\n", " * [Nishikawa et al., 2021](https://www.nature.com/articles/s41467-021-25826-7)\n", " * [Swank et al., 2019](https://www.pnas.org/content/116/13/5892)\n", " * [Tack et al., 2021](https://www.embopress.org/doi/full/10.15252/msb.202010179)\n", " * [Rondon et al., 2019](https://www.nature.com/articles/s41467-019-12706-4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gene input functions\n", "\n", "**Step functions as approximations for the input function of a gene**\n", "\n", "How similar are the dynamics of the accumulation of protein Y in X -> Y when we use:\n", "\n", "1. f(X) = X/(K+X) (Michaelis-Menten)\n", "2. f(X) = X^2/(K^2+X^2) (Hill cooperativity n = 2)\n", "3. a step function\n", "\n", "as the input function for:\n", "\n", "dY/dt = f(X*) - aY" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{admonition} Hey! You can change and run this code yourself.\n", ":class: tip\n", "Hit the rocketship in the corner of the page to select \"Live code\"!\n", "Run the code with these parameters, and then try changing them.\n", "```" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This is what the different input functions f(X) look like.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from scipy.integrate import odeint\n", "import matplotlib.pyplot as plt\n", "import matplotlib.patches as mpatches\n", "\n", "\n", "X = np.linspace(.001,1)\n", "\n", "# define constants\n", "\n", "a = 1 # removal rate\n", "K = 0.33 # dissociation constant\n", "n = 2 # hill coefficient\n", "\n", "# INPUT FUNCTION DEFINITIONS\n", "\n", "# MM input function\n", "def MM_fxn(X):\n", " f_X = X / (K + X)\n", " return f_X\n", "\n", "# hill input function\n", "def hill_fxn(X):\n", " f_X = X**n / (K**n + X**n)\n", " return f_X\n", "\n", "# step input function\n", "def logic_fxn(X):\n", " f_X = []\n", " for value in X:\n", " if value >= K:\n", " f_X.append(1)\n", " if value < K:\n", " f_X.append(0)\n", " return f_X\n", "\n", "# define input function\n", "input1 = MM_fxn(X)\n", "input2 = hill_fxn(X)\n", "input3 = logic_fxn(X)\n", "\n", "# plot input fxns\n", "plt.rcParams.update({'font.size': 18})\n", "\n", "fig1 = plt.figure(figsize=(6,6))\n", "plt.title('input function')\n", "plt.plot(X/K, input1, 'r.')\n", "plt.plot(X/K, input2, 'g')\n", "plt.plot(X/K, input3, 'b--')\n", "plt.xlabel('X/K')\n", "plt.ylabel('f(X)')\n", "\n", "# legend\n", "plt.legend(labels=['MM', 'Hill', 'step'], loc = 'lower right')\n", "print(\"This is what the different input functions f(X) look like.\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "This graph reflects Y accumulation over time \n", "modeled with different gene input functions,\n", "after X* (black line) appears in the cell.\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# function returning dy/dt\n", "def y_activation_1(Y, t):\n", " x_star = (1/a)*(1-np.exp(-a*t))\n", " dy_dt_1 = MM_fxn(x_star) - a*Y\n", " return dy_dt_1\n", "\n", "def y_activation_2(Y, t):\n", " x_star = (1/a)*(1-np.exp(-a*t))\n", " dy_dt_2 = hill_fxn(x_star) - a*Y\n", " return dy_dt_2\n", "\n", "x_star_array = []\n", "def y_activation_3(Y, t):\n", " x_star = (1/a)*(1-np.exp(-a*t))\n", " if x_star >= K:\n", " x_star = 1\n", " if x_star < K:\n", " x_star = 0\n", " dy_dt_3 = x_star - a*Y\n", " return dy_dt_3\n", "\n", "# initial condition\n", "y0 = np.zeros(50)\n", "\n", "# time points\n", "t = np.linspace(0,5, 100)\n", "\n", "# solve ODE\n", "Y1 = odeint(y_activation_1, y0, t)\n", "Y2 = odeint(y_activation_2, y0, t)\n", "Y3 = odeint(y_activation_3, y0, t)\n", "\n", "# plot results\n", "fig2 = plt.figure(figsize = (6,6))\n", "plt.title('Y')\n", "plt.plot(a*t, (1/a)*(1-np.exp(-a*t)), 'k', marker = 'X', label = 'X*')\n", "plt.plot(a*t, Y1 / Y1[-1] , 'r.', label = 'MM')\n", "plt.plot(a*t, Y2 / Y2[-1] , 'g', label = 'Hill')\n", "plt.plot(a*t, Y3 / Y3[-1] , 'b--', label = 'step')\n", "plt.xlabel('a*t')\n", "plt.ylabel('X*, Y')\n", "plt.ylim(-.05, 1.05)\n", "\n", "# legend\n", "X = mpatches.Patch(color = 'k', label = 'X*')\n", "MM = mpatches.Patch(color = 'r', label = 'MM')\n", "Hill = mpatches.Patch(color = 'g', label = 'Hill')\n", "logic = mpatches.Patch(color = 'b', label = 'step')\n", "\n", "plt.legend(handles=[X, MM, Hill, logic], loc = 'lower right')\n", "print('''\n", "This graph reflects Y accumulation over time \n", "modeled with different gene input functions,\n", "after X* (black line) appears in the cell.\n", "''')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Class materials\n", "\n", "* [Lecture notes.](https://github.com/anumazam/anumazam.github.io/blob/master/adv_biochem_lecture_notes.pdf)\n", "* [Additional solution, when f(x) -> beta.](https://github.com/anumazam/anumazam.github.io/blob/master/responsetime_beta.pdf)\n", "* [TF structure slides.](https://github.com/anumazam/anumazam.github.io/blob/master/part2_gene_transcription.pdf)\n", "* [Discussion questions.](https://github.com/anumazam/anumazam.github.io/blob/master/discussion_questions.pdf)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }