{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#The response of an I1-FFL"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here, we make the plot of the response of an incoherent fead-forward loop (I1-FFL). The IPython notebook may be downloaded [here](i1-ffl.ipynb).\n",
"\n",
"First thing's first. Let's import the necessary modules to do the computation."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Import necessary modules\n",
"import numpy as np\n",
"from scipy.integrate import odeint\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"sns.set_style('ticks')\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The incoherent feed-forward loop is shown below.\n",
"\n",
"
\n",
"\n",
"The input, X, activates Y and Z, and Y represses Z. A dimensionless set of differential equations describing an I1-FFL network motif is\n",
"\n",
"\\begin{align}\n",
"\\dot{y}&=F-y,\\\\[1em]\n",
"\\dot{z} &= \\frac{1}{r}\\left(\\frac{F}{y}-z\\right),\n",
"\\end{align}\n",
"\n",
"where $F$ is the fold change in the input X and $r$ is the ratio of the degradation rates of species Y and Z. The variables $y$ and $z$ represent the dimensionless concentrations of species Y and Z.\n",
"\n",
"Assume that for $t < 0$, we have $F = 2$. For $t \\ge 0$, we have $F = 4$. Assuming steady state for $t < 0$, we have $y_\\mathrm{ss} = 2$ and $z_\\mathrm{ss} = 1$. We can solve the first ODE analytically for $y(t)$, but we can easily solve these coupled equations using `odeint`, which we will do for illustrative purposes."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def rhs(yz, t, F, r):\n",
" \"\"\"\n",
" Right hand side of system of ODEs describing I1-FFL.\n",
" \"\"\"\n",
" y, z = yz\n",
" return np.array([F - y, (F / y - z) / r])\n",
"\n",
"# Time points we want for the solution\n",
"t = np.linspace(0, 4, 1000)\n",
"\n",
"# Initial condition\n",
"yz_0 = np.array([2.0, 1.0])\n",
"\n",
"# Parameters\n",
"F = 4.0\n",
"r = 0.1\n",
"\n",
"# Integrate ODES\n",
"yz = odeint(rhs, yz_0, t, args=(F, r))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the results in hand, we can generate our plots."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"AElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Pluck out y and z\n",
"y, z = yz.transpose()\n",
"\n",
"# Append the pre-fold change steady state\n",
"t = np.insert(t, 0, -1.0)\n",
"y = np.insert(y, 0, 2.0)\n",
"z = np.insert(z, 0, 1.0)\n",
"\n",
"# Generate x\n",
"x = 2.0 + 2.0 * (t > 0.0).astype(np.float)\n",
"\n",
"# Plot the results\n",
"fig, ax = plt.subplots(1, 1)\n",
"ax.plot(t, x, '-')\n",
"ax.plot(t, y, '-')\n",
"ax.plot(t, z, '-')\n",
"ax.set_xticks([])\n",
"ax.set_yticks([])\n",
"ax.margins(0.02)\n",
"ax.set_xlabel('time', x=1, fontsize=14)\n",
"ax.set_ylabel('level', rotation=0, fontsize=14)\n",
"ax.yaxis.set_label_coords(-0.05, 0.95) \n",
"sns.despine(offset=0.1)\n",
"plt.savefig('fig.pdf', bbox_inches='tight', transparent=True)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}