{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Transcription with a single activator\n", "\n", "Implement a model of Z, which is activated by X (a parameter) and that degrades. The model function takes as input the time, state variables, and parameters. It should have one state variable, Z, that is activated by a transcription factor X.\n", "\n", "The parameters are\n", "- vmax_z: maximum rate of Z's transcription\n", "- K_xz: the activation threshold for X's activation of Z\n", "- n_xz: the Hill coefficient (exponent) for X's activation of Z\n", "- d_z: the degradation rate constant for Z\n", "- X: the amount of X in the system\n", "\n", "The model's activation function is\n", "\n", "$v_{max} \\frac{x^{n_{xz}}}{K_{xz}^{n_{xz}}+x^{n_{xz}}}$\n", "\n", "and $\\frac{dZ}{dt}$ depends on activation and degradation." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "def single_activator( t, statevars, params ):\n", " z = statevars[0];\n", " vmax_z = params[0];\n", " K_xz = params[1];\n", " n_xz = params[2];\n", " d_z = params[3];\n", " x = params[4]\n", "\n", " dydt = np.zeros( (1,) )\n", " dydt[0] = vmax_z* x**n_xz/(K_xz**n_xz + x**n_xz) - d_z*z;\n", " return dydt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Before simulating the model, first look at the activation function\n", "\n", "Assuming $v_{max}=1$, plot the activation as a function of x (x from 0 to 2 with step of 0.01) for values of $n_{xz}$ ranging from 1 to 10 with a step of 1. Identify on the plot the location of $K_{xz}=0.5$. Also, identify the location on each line where x=1, because we will be using x=1 for activated x in the model simulation." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "vmax_z = 1;\n", "K_xz = 0.5;\n", "n_xz = 5;\n", "\n", "x = np.arange(0,2,0.01)\n", "ns = np.arange(1,10,1)\n", "legs = []\n", "for i in range(ns.size):\n", " n_xz = ns[i]\n", " activation = vmax_z* x**n_xz/(K_xz**n_xz + x**n_xz)\n", " plt.plot( x, activation )\n", " legs.append( \"n =\" + str(n_xz) )\n", "plt.axvline( K_xz );\n", "legs.append( 'K')\n", "plt.legend( legs );\n", "plt.gca().set_prop_cycle(None) # this resets the color cycle\n", "for i in range(ns.size):\n", " n_xz = ns[i]\n", " activation = vmax_z* 1**n_xz/(K_xz**n_xz + 1**n_xz)\n", " plt.plot( 1, activation, '*' )\n", "plt.xlabel( 'Amount of activator X')\n", "plt.ylabel( 'Activation');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulate the model\n", "\n", "Use $v_{max}=1$, $K_{xz}=0.5$, $n_{xz}=5$, and $d_z=2$. X should be 0 until t=0.5, and 1 thereafter. Simulate from t=0 to t=20 with a time steps of 0.01.\n", "\n", "We are going to take extra precautions when we solve this system. We will first simulate the situation before X is on, then start a new simulation with X on. This way, we can guarantee that we have the solution change behaviors at exactly the right time. (The danger is that the solver is so satisfied with the flat solution before X is on, that it takes such big steps that it doesn't notice when X is turned on.)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "import scipy.integrate\n", "\n", "vmax_z = 1;\n", "K_xz = 0.5;\n", "n_xz = 5;\n", "d_z = 2;\n", "\n", "time_x_on = 0.5\n", "params_off = (vmax_z, K_xz, n_xz, d_z,0);\n", "params_on = (vmax_z, K_xz, n_xz, d_z,1);\n", "\n", "mf_off = lambda t,y : single_activator(t,y, params_off)\n", "mf_on = lambda t,y : single_activator(t,y, params_on)\n", "\n", "sol1 = scipy.integrate.solve_ivp( fun=mf_off, t_span=(0,time_x_on), y0=(0,), \n", " t_eval=np.arange(0,time_x_on,.01) )\n", "sol2 = scipy.integrate.solve_ivp( fun=mf_on, t_span=(time_x_on,20), y0=sol1.y[:,-1], \n", " t_eval=np.arange(time_x_on,20,.01) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the simulation\n", "Plot X over time in an upper subplot and Z over time in a lower subplot." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.subplot( 2, 1, 1)\n", "plt.plot( [sol1.t[0],time_x_on,time_x_on,sol2.t[-1]], [0,0,1,1] )\n", "plt.ylabel( \"X\")\n", "plt.subplot( 2, 1, 2 )\n", "plt.plot(sol1.t, sol1.y.T); #Simulation before signal on\n", "plt.gca().set_prop_cycle(None) # this resets the color cycle\n", "plt.plot(sol2.t, sol2.y.T); #Simulation after signal on\n", "plt.xlabel( 'Time')\n", "plt.ylabel( \"Z\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulate and plot the model for varying Hill coefficients\n", "For $n_{xz}$ from 1 to 10 (with step of 1), simulate the model (with all other info as above). Plot all simulation outputs on the same plot, and use a legend to label the value of $n_{xz}$ for each line." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.arange(0,2,0.01)\n", "ns = np.arange(1,10,1)\n", "legs = []\n", "for i in range(ns.size):\n", " n_xz = ns[i]\n", " params_off = (vmax_z, K_xz, n_xz, d_z,0);\n", " params_on = (vmax_z, K_xz, n_xz, d_z,1);\n", "\n", " mf_off = lambda t,y : single_activator(t,y, params_off)\n", " mf_on = lambda t,y : single_activator(t,y, params_on)\n", "\n", " sol1 = scipy.integrate.solve_ivp( fun=mf_off, t_span=(0,time_x_on), y0=(0,), \n", " t_eval=np.arange(0,time_x_on,.01) )\n", " sol2 = scipy.integrate.solve_ivp( fun=mf_on, t_span=(time_x_on,20), y0=sol1.y[:,-1], \n", " t_eval=np.arange(time_x_on,20,.01) ) \n", " plt.plot(sol2.t, sol2.y.T); #Simulation after signal on\n", " legs.append( \"n =\" + str(n_xz) )\n", "plt.legend( legs );" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model a dual activator system with an AND gate\n", "\n", "There are now two factors X and Y. Both are activators and their effects are multiplied. This means the model's activation function is\n", "\n", "$v_{max} \\frac{x^{n_{xz}}}{K_{xz}^{n_{xz}}+x^{n_{xz}}} \\frac{y^{n_{yz}}}{K_{yz}^{n_{yz}}+y^{n_{yz}}}$\n", "\n" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "def dual_activator_and( t, statevars, params ):\n", " z = statevars[0];\n", " vmax_z = params[0];\n", " K_xz = params[1];\n", " n_xz = params[2];\n", " K_yz = params[3];\n", " n_yz = params[4];\n", " d_z = params[5];\n", " x = params[6]\n", " y = params[7]\n", "\n", " dydt = np.zeros( (1,) )\n", " dydt[0] = vmax_z* x**n_xz/(K_xz**n_xz + x**n_xz) * y**n_yz/(K_yz**n_yz + y**n_yz) - d_z*z;\n", " return dydt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulate the model\n", "\n", "Use $v_{max}=1$, $K_{xz}=0.5$, $n_{xz}=5$, $K_{yz}=0.5$, $n_{yz}=5$, and $d_z=2$. X should be 0 until t=0.5, and 1 thereafter. Y should be 0 until t=5, and 1 thereafter. \n", "\n", "Simulate from t=0 to t=20 with a time steps of 0.01." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "vmax_z = 1;\n", "K_xz = 0.5;\n", "n_xz = 5;\n", "K_yz = 0.5;\n", "n_yz = 5;\n", "d_z = 2;\n", "params_off = (vmax_z, K_xz, n_xz, K_yz, n_yz, d_z,0,0);\n", "params_x_on = (vmax_z, K_xz, n_xz, K_yz, n_yz, d_z,1,0);\n", "params_xy_on = (vmax_z, K_xz, n_xz, K_yz, n_yz, d_z,1,1);\n", "time_x_on = 0.5\n", "time_xy_on = 5\n", "\n", "mf_off = lambda t,y : dual_activator_and(t,y, params_off)\n", "mf_x_on = lambda t,y : dual_activator_and(t,y, params_x_on)\n", "mf_xy_on = lambda t,y : dual_activator_and(t,y, params_xy_on)\n", "sol1 = scipy.integrate.solve_ivp( fun=mf_off, t_span=(0,time_x_on), y0=(0,), \n", " t_eval=np.arange(0,time_x_on,.01) )\n", "sol2 = scipy.integrate.solve_ivp( fun=mf_x_on, t_span=(time_x_on,time_xy_on), y0=sol1.y[:,-1], \n", " t_eval=np.arange(time_x_on,time_xy_on,.01) )\n", "sol3 = scipy.integrate.solve_ivp( fun=mf_xy_on, t_span=(time_xy_on,20), y0=sol2.y[:,-1], \n", " t_eval=np.arange(time_xy_on,20,.01) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the simulation\n", "\n", "Plot X over time in an upper subplot, Y over time in a middle subplot, and Z over time in a lower subplot." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjJ0lEQVR4nO3dfZBU9Z3v8feHGfARBDJoRsCMGNYEs5GQWXwotdzVNegaSDYPBdlb0cSs5q5U4tbNzcVyLzHeqrtrcjep7MZNlhjWhzWGxCSKKVw1iVlzc4M6EETABwYWA4gwKAEUEWbme/84Z9y27e4ZpU+f08PnVdXVp8/59ekPv/nN+XIe5rQiAjMzs6IZkXcAMzOzSlygzMyskFygzMyskFygzMyskFygzMyskFygzMyskFqzWrGkxcClwI6IeE+F5QK+AVwC7AMuj4iVg623ra0tOjo66pzWzMzysmLFip0RMaF8fmYFCrgF+CZwW5XlFwNT08cZwLfS55o6Ojro6uqqU0QzM8ubpGcrzc+sQEXEw5I6ajSZA9wWyV8KL5c0VlJ7RGzLKtNQfe+R33HPqq15xzAzK7xpJ47hSx88LZN153kOaiKwueT1lnTeG0i6UlKXpK6enp7Mg92zaivrtu3J/HPMzKy6LA/x1U1ELAIWAXR2djbk3kzT2sew5KqzGvFRZmZWQZ57UFuBySWvJ6XzzMzMci1QS4FPKnEmsLsI55/MzKwYsrzM/E7gfKBN0hbgS8BIgIj4NrCM5BLzbpLLzD+VVRYzM2s+WV7FN2+Q5QFcndXnm5lZc/OdJMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJAyLVCSZkl6WlK3pAUVll8uqUfSqvTxmSzzmJlZ82jNasWSWoCbgD8FtgCPSVoaEevKmi6JiPlZ5TAzs+ZUdQ9K0kk1lp07hHXPBLojYmNEHAC+D8x58xHNzOxwVOsQ3y8lfTHdEwJA0gmS/hX4+hDWPRHYXPJ6Szqv3EckrZZ0l6TJlVYk6UpJXZK6enp6hvDRZmbW7GoVqPcDpwCrJP2JpM8DjwK/Idk7qod7gY6IeC/wIHBrpUYRsSgiOiOic8KECXX6aDMzK7Kq56AiYhdwVVqYfgY8B5wZEVuGuO6tQOke0aR0XulnvFDy8mbgK0Nct5mZDXO1zkGNlfTPwKeAWcBdwH2S/mSI634MmCrpZEmjgLnA0rLPaC95ORt48s2ENzOz4avWVXwrgX8Cro6IXuABSdOBf5L0bETMq7XiiOiVNB+4H2gBFkfEWkk3AF0RsRT4nKTZQC/wInD5If+LzMxsWKhVoM4rP5wXEauAsyX95VBWHhHLgGVl8xaWTF8LXDvktGZmdtioeoiv1rmmiPhONnHMzMwSvtWRmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVkguUmZkVUqYFStIsSU9L6pa0oMLyIyQtSZc/IqkjyzxmZtY8MitQklqAm4CLgWnAPEnTyppdAeyKiHcCXwduzCqPmZk1l9YM1z0T6I6IjQCSvg/MAdaVtJkDXJ9O3wV8U5IiIrIK9eV717LuuT0126zbtodp7WOyimBmZkOQ5SG+icDmktdb0nkV20REL7AbeFv5iiRdKalLUldPT09Gcf/TtPYxzJleHtXMzBopyz2ouomIRcAigM7OzkPau/rSB0+rSyYzM8tWlntQW4HJJa8npfMqtpHUChwHvJBhJjMzaxJZ7kE9BkyVdDJJIZoLfKKszVLgMuA3wEeBXwx2/mnFihU7JT17iNnagJ2HuI5GaZaszll/zZK1WXJC82RtlpxQn6zvqDQzswIVEb2S5gP3Ay3A4ohYK+kGoCsilgLfBW6X1A28SFLEBlvvhEPNJqkrIjoPdT2N0CxZnbP+miVrs+SE5snaLDkh26yZnoOKiGXAsrJ5C0um9wMfyzKDmZk1J99JwszMCulwLVCL8g7wJjRLVuesv2bJ2iw5oXmyNktOyDCrMvybWDMzs7fscN2DMjOzgnOBMjOzQhrWBaoZ7qYuabKkhyStk7RW0ucrtDlf0m5Jq9LHwkrragRJmyQ9keboqrBckv4h7dPVkmbkkPHUkr5aJWmPpGvK2uTWp5IWS9ohaU3JvPGSHpS0Pn0eV+W9l6Vt1ku6LIecX5X0VPqz/YmksVXeW3OcNCjr9ZK2lvyML6ny3prbiQbkXFKScZOkVVXe27A+rbZdavg4jYhh+SD526sNwBRgFPA4MK2szV8B306n5wJLcsjZDsxIp0cDz1TIeT7w07z7NM2yCWirsfwS4D5AwJnAIwUYB88D7yhKnwLnATOANSXzvgIsSKcXADdWeN94YGP6PC6dHtfgnBcBren0jZVyDmWcNCjr9cAXhjA+am4nss5ZtvzvgYV592m17VKjx+lw3oN67W7qEXEAGLibeqk5wK3p9F3ABZLUwIxExLaIWJlO7wWe5I031W0mc4DbIrEcGCupPcc8FwAbIuJQ7z5SNxHxMMkfppcqHYu3Ah+q8NYPAA9GxIsRsQt4EJjVyJwR8UAkN3YGWE5yC7PcVenToRjKdqJuauVMtz0fB+7M6vOHqsZ2qaHjdDgXqLrdTb1R0kOM7wMeqbD4LEmPS7pPUp53vA3gAUkrJF1ZYflQ+r2R5lL9F74ofQpwQkRsS6efB06o0KZofftpkr3lSgYbJ40yPz0cubjK4agi9em5wPaIWF9leS59WrZdaug4Hc4FqqlIOhb4EXBNRJR/YdVKkkNUpwP/CNzd4HilzomIGSRfRHm1pPNyzFKTpFHAbOCHFRYXqU9fJ5LjJIX++w9J1wG9wB1VmhRhnHwLOAWYDmwjOXxWZPOovffU8D6ttV1qxDgdzgWqae6mLmkkySC4IyJ+XL48IvZExEvp9DJgpKS2BsccyLI1fd4B/ITkEEmpofR7o1wMrIyI7eULitSnqe0Dh0LT5x0V2hSibyVdDlwK/EW6kXqDIYyTzEXE9ojoi4h+4DtVMhSlT1uBPweWVGvT6D6tsl1q6DgdzgXqtbupp/+Tnkty9/RSA3dThyHeTb3e0uPO3wWejIivVWnz9oFzY5Jmkvzc8iikx0gaPTBNcsJ8TVmzpcAnlTgT2F1ySKDRqv6PtCh9WqJ0LF4G3FOhzf3ARZLGpYerLkrnNYykWcAXgdkRsa9Km6GMk8yVnfv8cJUMQ9lONMKFwFMRsaXSwkb3aY3tUmPHaSOuCMnrQXJF2TMkV+lcl867geSXC+BIksM/3cCjwJQcMp5Dspu8GliVPi4BPgt8Nm0zH1hLcoXRcuDsnPpzSprh8TTPQJ+WZhVwU9rnTwCdOWU9hqTgHFcyrxB9SlI0twEHSY7PX0Fy7vPnwHrgZ8D4tG0ncHPJez+djtdu4FM55OwmOb8wMFYHroI9EVhWa5zkkPX2dAyuJtmwtpdnTV+/YTvRyJzp/FsGxmZJ29z6tMZ2qaHj1Lc6MjOzQhrOh/jMzKyJuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhuUCZmVkhtWa1YkmLSb4zZkdEvKfCcgHfILlD7j7g8ki/YriWtra26OjoqHNaMzPLy4oVK3ZGxITy+ZkVKJLbx38TuK3K8ouBqenjDJJvvzxjsJV2dHTQ1dVVp4hmZpY3Sc9Wmp9ZgYqIh9Pvsq9mDnBbJN/3sVzSWEntkd+X29lb9L1Hfsc9q/L60lwzy9O0E8fwpQ+elsm68zwHNZHki88GbEnnvYGkKyV1Serq6elpSDgbuntWbWXdtj15xzCzYSbLQ3x1ExGLgEUAnZ2d/obFAprWPoYlV52VdwwzG0by3IPaCkwueT0pnWdmZpZrgVoKfFKJM4HdPv9kZmYDsrzM/E7gfKBN0hbgS8BIgIj4NrCM5BLzbpLLzD+VVRYzM2s+WV7FN2+Q5QFcndXnm5lZc/OdJMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJBcoMzMrJAyLVCSZkl6WlK3pAUVll8uqUfSqvTxmSzzmJlZ86haoCQtk9TxVlcsqQW4CbgYmAbMkzStQtMlETE9fdz8Vj/PzMyGl1p7UP8CPCDpOkkj38K6ZwLdEbExIg4A3wfmvJWQZmZ2+GmttiAifijpPuB/Al2Sbgf6S5Z/bZB1TwQ2l7zeApxRod1HJJ0HPAP8dURsrtDGzMwOM4OdgzoAvAwcAYwue9TDvUBHRLwXeBC4tVIjSVdK6pLU1dPTU6ePNjOzIqu6ByVpFvA1YCkwIyL2vcl1bwUml7yelM57TUS8UPLyZuArlVYUEYuARQCdnZ3xJnOYmVkTqlqggOuAj0XE2re47seAqZJOJilMc4FPlDaQ1B4R29KXs4En3+JnmZnZMFPrHNS5h7LiiOiVNB+4H2gBFkfEWkk3AF0RsRT4nKTZQC/wInD5oXymmZkNH7X2oA5ZRCwDlpXNW1gyfS1wbZYZzMysOflOEmZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkguUGZmVkiZFihJsyQ9Lalb0oIKy4+QtCRd/oikjizzmJlZ88isQElqAW4CLgamAfMkTStrdgWwKyLeCXwduDGrPGZm1lyy3IOaCXRHxMaIOAB8H5hT1mYOcGs6fRdwgSRlmMnMzJpEa4brnghsLnm9BTijWpuI6JW0G3gbsDOrUF++dy3rntuT1eoPS+u27WFa+5i8Y5jZMNMUF0lIulJSl6Sunp6evONYmWntY5gzfWLeMcxsmMlyD2orMLnk9aR0XqU2WyS1AscBL5SvKCIWAYsAOjs741BCfemDpx3K283MrEGyLFCPAVMlnUxSiOYCnyhrsxS4DPgN8FHgFxFRswCtWLFip6RnDzFbGxkeRqyzZsnqnPXXLFmbJSc0T9ZmyQn1yfqOSjMzK1DpOaX5wP1AC7A4ItZKugHoioilwHeB2yV1Ay+SFLHB1jvhULNJ6oqIzkNdTyM0S1bnrL9mydosOaF5sjZLTsg2a5Z7UETEMmBZ2byFJdP7gY9lmcHMzJpTU1wkYWZmh5/DtUAtyjvAm9AsWZ2z/pola7PkhObJ2iw5IcOsGuSaBDMzs1wcrntQZmZWcC5QZmZWSMO6QDXD3dQlTZb0kKR1ktZK+nyFNudL2i1pVfpYWGldjSBpk6Qn0hxdFZZL0j+kfbpa0owcMp5a0lerJO2RdE1Zm9z6VNJiSTskrSmZN17Sg5LWp8/jqrz3srTNekmX5ZDzq5KeSn+2P5E0tsp7a46TBmW9XtLWkp/xJVXeW3M70YCcS0oybpK0qsp7G9an1bZLDR+nETEsHyR/e7UBmAKMAh4HppW1+Svg2+n0XGBJDjnbgRnp9GjgmQo5zwd+mnefplk2AW01ll8C3AcIOBN4pADj4HngHUXpU+A8YAawpmTeV4AF6fQC4MYK7xsPbEyfx6XT4xqc8yKgNZ2+sVLOoYyTBmW9HvjCEMZHze1E1jnLlv89sDDvPq22XWr0OB3Oe1BNcTf1iNgWESvT6b3AkyQ30W1Wc4DbIrEcGCupPcc8FwAbIuJQ7z5SNxHxMMkfppcqHYu3Ah+q8NYPAA9GxIsRsQt4EJjVyJwR8UBE9KYvl5Pcwix3Vfp0KIaynaibWjnTbc/HgTuz+vyhqrFdaug4Hc4FqtLd1Ms3/K+7mzowcDf1XKSHGN8HPFJh8VmSHpd0n6Q8bygYwAOSVki6ssLyofR7I82l+i98UfoU4ISI2JZOPw+cUKFN0fr20yR7y5UMNk4aZX56OHJxlcNRRerTc4HtEbG+yvJc+rRsu9TQcTqcC1RTkXQs8CPgmogo/z6QlSSHqE4H/hG4u8HxSp0TETNIvojyaknn5ZilJkmjgNnADyssLlKfvk4kx0kK/fcfkq4DeoE7qjQpwjj5FnAKMB3YRnL4rMjmUXvvqeF9Wmu71IhxOpwL1Ju5mzqqcTf1rEkaSTII7oiIH5cvj4g9EfFSOr0MGCmprcExB7JsTZ93AD8hOURSaij93igXAysjYnv5giL1aWr7wKHQ9HlHhTaF6FtJlwOXAn+RbqTeYAjjJHMRsT0i+iKiH/hOlQxF6dNW4M+BJdXaNLpPq2yXGjpOh3OBeu1u6un/pOeS3D291MDd1GGId1Ovt/S483eBJyPia1XavH3g3JikmSQ/tzwK6TGSRg9Mk5wwX1PWbCnwSSXOBHaXHBJotKr/Iy1Kn5YoHYuXAfdUaHM/cJGkcenhqovSeQ0jaRbwRWB2ROyr0mYo4yRzZec+P1wlw1C2E41wIfBURGyptLDRfVpju9TYcdqIK0LyepBcUfYMyVU616XzbiD55QI4kuTwTzfwKDAlh4znkOwmrwZWpY9LgM8Cn03bzAfWklxhtBw4O6f+nJJmeDzNM9CnpVkF3JT2+RNAZ05ZjyEpOMeVzCtEn5IUzW3AQZLj81eQnPv8ObAe+BkwPm3bCdxc8t5Pp+O1G/hUDjm7Sc4vDIzVgatgTwSW1RonOWS9PR2Dq0k2rO3lWdPXb9hONDJnOv+WgbFZ0ja3Pq2xXWroOPWtjszMrJCG8yE+MzNrYi5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSC5QZmZWSK15B3iz2traoqOjI+8YZmZWJytWrNgZERPK5zddgero6KCrqyvvGGZmVieSnq00v+kKlNlw09cf7D/Yx/6DfRzo66e3LzjY109ff3CwL+jt7+dgX9DXH/T29XNw4HlgXrq8vz/ojyCA/gj6A0ifI33uT79epz+CCJJlpNP9//neSN8zoPRLeUq/oSdKlrx+fuX25e+pMvn6zx7ieptRZPuN6Q0xZ/pEpk8em8m6XaDM3qK+/mDXvgPsfOlVeva+yq59B9m7/yB79/ey55X0OX29d/9B9h3oSwtRP6/29vHqwX729/ZxsK+4G6nkO4fT6dfNV5X5pe2rvHmI73mzn920mvwfMX3yWBcos0aKCHr2vsrmXfvYsuuV9JFM9+x9lZ0vHeDFl19N9lIqaB0hRh/ZypijRjL6yFZGHzGSt48ZyZEjWzhi5AiOHNnCka3pdGsLR6bzRrWOoHWEGNkygtYW0TpCtI5Ipke2jKBlhBjZ8p/zXls2YgQjRsAIKX0ASl6L9FnJxn1E6TPJ/IHlA+0H2prlyQXKDnt79h/kiS27eer5vazfvpent+9l/faXeOnV3te1azt2FCeOPYpJ445i+uSxTBh9BG3HDjxGMf6YUa8VpKNGtngDb3aIXKDssLP196/w6+6drHx2Fyt/t4v1O1567XzG+GNG8QcnHMtHZkzklOOPZfK4o5k07igmjTuao0a15Bvc7DDjAmXD3sG+fn6z4QUeenoHDz/Tw4aelwE47qiRvO+ksfzZH57I+04ay7QTx9B27BE5pzWzAS5QNiz19QfLN77AT1c/x7+teZ5d+w5yROsIZp48nnkzT+LcqROYevyxjBjhw3BmReUCZcPKzpde5Qddm/neI79jy65XOGZUCxdOO4FL33si505t48iRPkxn1ixcoGxYePaFl/mnhzbw499u4WBfcNaUt7Hg4ndx4btPcFEya1IuUNbUtuzax9cfXM/dq7bSMkLMm3kSnzyrg3cef2ze0czsELlAWVN65UAf3/r3Dfzzv28A4PKzO7jqvCkcP+bInJOZWb24QFnT+dX6Hhb86Am2/v4VPnj6iVx78bs4cexReccyszpzgbKm8fKrvfztfU/yr8t/xykTjuEHV53FzJPH5x3LzDLiAmVNYUPPS1x1+wo29LzEX557Mv/tolN98YPZMOcCZYX3b2ue5ws/fJwjWkdwxxVncPY72/KOZGYN4AJlhbbo4Q3872VPcfrksXz7v8yg/TifazI7XLhAWSH19wd/e9+TfOdX/8Gfvbedr338dI5o9SE9s8OJC5QVTkRw3d1PcOejm7n87A4WXjrNtyQyOwy5QFmhRARfvncddz66mav/+BS+cNGp/toKs8PUiLwDmJX6Pw88zS3/bxNXnHOyi5PZYc4FygpjyWO/46aHNjBv5kn8zZ+928XJ7DDnAmWFsHzjC/zN3Ws4d2ob/2vOaS5OZuYCZfnb+vtX+K//uoKTxh/NNz8xg9YWD0szc4GynPX29fP5O3/Lgd5+br7sjzjuqJF5RzKzgvBVfJarb/x8PV3P7uIbc6dzctsxeccxswLJdA9K0ixJT0vqlrSgwvLLJfVIWpU+PpNlHiuWRza+wDcf6uZj75/EnOkT845jZgWT2R6UpBbgJuBPgS3AY5KWRsS6sqZLImJ+VjmsmPYf7GPBj59g0rijuH72aXnHMbMCynIPaibQHREbI+IA8H1gToafZ03kGz9fz3/sfJm//fB7OeYIH2k2szeqWaAkfaDGso8Nsu6JwOaS11vSeeU+Imm1pLskTa7yWVdK6pLU1dPTM8jHWtGtfW43ix7eyMc7J3HOVN+Z3MwqG2wPapmkhyRVKizX1uHz7wU6IuK9wIPArZUaRcSiiOiMiM4JEybU4WMtLxHBwnvWMu7okVx3ybS845hZgQ1WoFYD3wOWS/po2bLB/pJyK1C6RzQpnfeaiHghIl5NX94MvH+QdVqT++nqbax4dhf//QOnctzRvqTczKobrEBFRHwHuAD4H5L+RdLRA8sGee9jwFRJJ0saBcwFlpY2kNRe8nI28OTQo1uz2X+wj7+77ymmtY/ho++veDTXzOw1Q7pIIiKeAc4CtgO/lXTGEN7TC8wH7icpPD+IiLWSbpA0O232OUlrJT0OfA64/C38G6xJLP71f7D196/wN5e+mxZ/fYaZDWKwy6de24qkBWeBpH8D7gQGPRkUEcuAZWXzFpZMX0t9zmVZwe3Zf5B//veN/Mm7jufsU3xhhJkNbrAC9eXyGRHxS0nvB67KJpINR7f8ehO7XznIX1/4B3lHMbMmUbNARcTdVebvAv4ui0A2/Ox+5SA3/2ojF777BP5w0nF5xzGzJuGbxVrmbvn1Jvbs7+WaC6fmHcXMmogLlGVq/8E+bv3NJi541/G8Z6L3nsxs6FygLFM/XrmVF18+wGfOnZJ3FDNrMi5Qlpn+/uDm/7uR90wcw5lTxucdx8yajAuUZeaXz+xgY8/L/OW5U/wV7mb2prlAWWb+5debePuYI7nkD9sHb2xmVsYFyjKx+cV9/Gr9TubNPImRLR5mZvbmecthmVjy2GZGCD7+R5PyjmJmTcoFyuqut6+fH3Rt5o9PPZ72447KO46ZNSkXKKu7Xzy1gx17X2XezJPyjmJmTcwFyuruB12bOWHMEZx/qr9c0szeOhcoq6tdLx/gl0/38KH3TaTVF0eY2SHwFsTqatmabfT2B3NOn5h3FDNrci5QVlf3/PY5ph5/LO9uH513FDNrci5QVjdbf/8Kj256kTnTT/SdI8zskLlAWd3c+/hzAMz24T0zqwMXKKubn65+jtMnj+Wktx2ddxQzGwZcoKwutv7+FdZs3cPF73l73lHMbJhwgbK6+Nm67QBcNO2EnJOY2XDhAmV18cC653nn8ccyZcKxeUcxs2Ei0wIlaZakpyV1S1pQYfkRkpakyx+R1JFlHsvG7n0HWb7xRe89mVldZVagJLUANwEXA9OAeZKmlTW7AtgVEe8Evg7cmFUey84vnt5OX3/wpy5QZlZHrRmueybQHREbASR9H5gDrCtpMwe4Pp2+C/imJEVEZBXqy/euZd1ze2q22bv/IKOPHJlVhGHnme17OWpkC6dPGpt3FDMbRrI8xDcR2Fzyeks6r2KbiOgFdgNvK1+RpCsldUnq6unpySiuvVVHj2rhXe2jGTHCf5xrZvWT5R5U3UTEImARQGdn5yHtXX3pg6fVJZOZmWUryz2orcDkkteT0nkV20hqBY4DXsgwk5mZNYks96AeA6ZKOpmkEM0FPlHWZilwGfAb4KPALwY7/7RixYqdkp49xGxtwM5DXEejNEtW56y/ZsnaLDmhebI2S06oT9Z3VJqZWYGKiF5J84H7gRZgcUSslXQD0BURS4HvArdL6gZeJClig633kL8FT1JXRHQe6noaoVmyOmf9NUvWZskJzZO1WXJCtlkzPQcVEcuAZWXzFpZM7wc+lmUGMzNrTr6ThJmZFdLhWqAW5R3gTWiWrM5Zf82StVlyQvNkbZackGFWZfg3sWZmZm/Z4boHZWZmBecCZWZmhTSsC1Qz3E1d0mRJD0laJ2mtpM9XaHO+pN2SVqWPhZXW1QiSNkl6Is3RVWG5JP1D2qerJc3IIeOpJX21StIeSdeUtcmtTyUtlrRD0pqSeeMlPShpffo8rsp7L0vbrJd0WQ45vyrpqfRn+xNJY6u8t+Y4aVDW6yVtLfkZX1LlvTW3Ew3IuaQk4yZJq6q8t2F9Wm271PBxGhHD8kHyt1cbgCnAKOBxYFpZm78Cvp1OzwWW5JCzHZiRTo8GnqmQ83zgp3n3aZplE9BWY/klwH2AgDOBRwowDp4H3lGUPgXOA2YAa0rmfQVYkE4vAG6s8L7xwMb0eVw6Pa7BOS8CWtPpGyvlHMo4aVDW64EvDGF81NxOZJ2zbPnfAwvz7tNq26VGj9PhvAf12t3UI+IAMHA39VJzgFvT6buACyQ19I6nEbEtIlam03uBJ3njTXWbyRzgtkgsB8ZKas8xzwXAhog41LuP1E1EPEzyh+mlSsfircCHKrz1A8CDEfFiROwCHgRmNTJnRDwQyY2dAZaT3MIsd1X6dCiGsp2om1o5023Px4E7s/r8oaqxXWroOB3OBapud1NvlPQQ4/uARyosPkvS45Luk5TnHW8DeEDSCklXVlg+lH5vpLlU/4UvSp8CnBAR29Lp54FKX65VtL79NMneciWDjZNGmZ8ejlxc5XBUkfr0XGB7RKyvsjyXPi3bLjV0nA7nAtVUJB0L/Ai4JiLKv7BqJckhqtOBfwTubnC8UudExAySL6K8WtJ5OWapSdIoYDbwwwqLi9SnrxPJcZJC//2HpOuAXuCOKk2KME6+BZwCTAe2kRw+K7J51N57anif1touNWKcDucC1TR3U5c0kmQQ3BERPy5fHhF7IuKldHoZMFJSW4NjDmTZmj7vAH5Ccoik1FD6vVEuBlZGxPbyBUXq09T2gUOh6fOOCm0K0beSLgcuBf4i3Ui9wRDGSeYiYntE9EVEP/CdKhmK0qetwJ8DS6q1aXSfVtkuNXScDucC9drd1NP/Sc8luXt6qYG7qcMQ76Zeb+lx5+8CT0bE16q0efvAuTFJM0l+bnkU0mMkjR6YJjlhvqas2VLgk0qcCewuOSTQaFX/R1qUPi1ROhYvA+6p0OZ+4CJJ49LDVRel8xpG0izgi8DsiNhXpc1Qxknmys59frhKhqFsJxrhQuCpiNhSaWGj+7TGdqmx47QRV4Tk9SC5ouwZkqt0rkvn3UDyywVwJMnhn27gUWBKDhnPIdlNXg2sSh+XAJ8FPpu2mQ+sJbnCaDlwdk79OSXN8HiaZ6BPS7MKuCnt8yeAzpyyHkNScI4rmVeIPiUpmtuAgyTH568gOff5c2A98DNgfNq2E7i55L2fTsdrN/CpHHJ2k5xfGBirA1fBnggsqzVOcsh6ezoGV5NsWNvLs6av37CdaGTOdP4tA2OzpG1ufVpju9TQcepbHZmZWSEN50N8ZmbWxFygzMyskFygzMyskFygzMyskFygzMyskFygzMyskFygzMyskP4/PeA/of6ClJAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.subplot( 3, 1, 1)\n", "plt.plot( [sol1.t[0],time_x_on,time_x_on,sol3.t[-1]], [0,0,1,1] )\n", "plt.ylabel( 'X')\n", "\n", "plt.subplot( 3, 1, 2)\n", "plt.plot( [sol1.t[0],time_xy_on,time_xy_on,sol3.t[-1]], [0,0,1,1] )\n", "plt.ylabel( 'Y')\n", "\n", "plt.subplot( 3, 1, 3 )\n", "plt.plot(sol1.t, sol1.y.T); #Simulation before x on\n", "plt.gca().set_prop_cycle(None) # this resets the color cycle\n", "plt.plot(sol2.t, sol2.y.T); #Simulation after x on\n", "plt.gca().set_prop_cycle(None) # this resets the color cycle\n", "plt.plot(sol3.t, sol3.y.T); #Simulation after x and y on\n", "plt.ylabel( 'Z')\n", "plt.tight_layout()" ] } ], "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.5" } }, "nbformat": 4, "nbformat_minor": 4 }