Skip to content

Instantly share code, notes, and snippets.

@abrazhe
Created February 6, 2018 10:03
Show Gist options
  • Save abrazhe/d828bb2020622102cc9fcc8dd42650c3 to your computer and use it in GitHub Desktop.
Save abrazhe/d828bb2020622102cc9fcc8dd42650c3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ullah's model of astrocytic Ca$^{2+}$\n",
"\n",
"See (Ullah et al 2006).\n",
"\n",
"\n",
"Let's do a first pass on Ullah's model of astrocytic Ca\n",
"\n",
"\\begin{equation}\n",
"\\frac{d[Ca]}{dt} = J_{channel} + J_{leak} + J_{in} - J_{pump} - J_{out}\n",
"\\end{equation}\n",
"\n",
"\n",
"\\begin{equation}\n",
"J_{channel} = c_1 v_1 m_\\infty^3 n_\\infty^3 h^3 ([Ca_{ER}] - [Ca_{c}])\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
"J_{leak} = c_1 v_2 ([Ca_{ER}] - [Ca_{c}])\n",
"\\end{equation}\n",
"\n",
"\n",
"\\begin{eqnarray}\n",
"m_\\infty &= & \\frac{[IP_3]}{[IP_3] + d_1},\\\\\n",
"n_\\infty &= & \\frac{[Ca_c]}{[Ca_c] + d_5}\n",
"\\end{eqnarray}\n",
"\n",
"\\begin{equation}\n",
"J_{pump} = \\frac{v_3 [Ca_c]^2}{[Ca_c]^2 + k_3^2}\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
"J_{out} = k_1 [Ca_c]\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
"J_{in} = v_5 + \\frac{v_6 [IP_3]^2}{[IP_3]^2 + k_2^2}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"style.use('ggplot')\n",
"style.use('seaborn-muted')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import scipy\n",
"from scipy import integrate"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class Struct(object):\n",
" def __init__(self, adict):\n",
" self.__dict__.update(adict)\n",
"\n",
" \n",
"\n",
"\n",
"ullah_p = dict(c0 = 2.0, # uM, Total [Ca2+] in terms of cytosol vol\n",
" c1 = 0.185, # __, (ER vol)/(cytosolic vol)\n",
" v1 = 6.0, # 1/s, max Ca2+ channel flux\n",
" v2 = 0.11, # 1/s, Ca$^{2+}$ leak constant\n",
" v3 = 2.2, # uM/s, Max Ca2+ uptake\n",
" v5 = 0.025, # uM/s, Rate of Ca leak across the plasma membrane\n",
" v6 = 0.2, # uM/s, Maximal rate of activation dependent Ca influx\n",
" k1 = 0.5, # 1/s, Rate constant of Ca extrusion\n",
" k2 = 1.0, # uM, Half-saturation constant for agonist-dependent\n",
" # Ca entry\n",
" k3 = 0.1, # uM, Activation constant for Ca2+-pump\n",
" a2 = 0.14, # 1/(uM*s), Ca2+ inhibition constant\n",
" d1 = 0.13, # uM, Dissociation constant for IP3\n",
" d2 = 1.049, # uM, Dissociation constant for Ca2+ inhibition\n",
" d3 = 943.4, # nM, Receptor dissociation constant for IP3\n",
" d5 = 82.0, # nM, Ca2+ activation constant\n",
" alpha = 0.8,\n",
" v4 = 0.45, # uM/s, [0.3,2] Max rate of IP3 production\n",
" tau_r = 1/0.14, # s Rate constant for loss of IP3\n",
" IP3_star = 0.16, # uM, steady-state [IP3]\n",
" k4 = 1.1, # uM, Dissociation constant for Ca stimulation of IP3 production\n",
" k5 = 0.05, # 1/s, deux ex machine Ca equilibration in ER rate\n",
" Ca_ER_star = 2, # uM equilibrated Ca in ER\n",
" v_g = 0.062, # uM/s, rate of IP3 production through Glu\n",
" k_g = 0.78, # Dissociation constant for glutamate stimulation of IP3 production\n",
" kappa = 0.01, # 1/s, [0.01,1.0] Coupling coefficient for IP3\n",
" kappa_Ca = 0.01, # Coupling coefficient for Cal. Note: must be multiplied by kappa\n",
" hill_glu = 0.3, # Hill coefficient for Glu action\n",
" glu_base = 0.0, # uM, baseline Glu concentration\n",
" glu_p = Struct({'amp':0, 'start':40, 'end':75,'T':0.5, 'w':0.075}), # s\n",
" glu_ramp = Struct({'start':100.0, 'width':35.0,'amp':0.0}))\n",
"ullah_ps = Struct(ullah_p)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def adams_bashforth(rhs, init_state, dt=0.25, tstart=0, tstop=500, fnkwargs=None):\n",
" \"\"\"Simple function to integrate a set of ODEs\n",
" Inputs:\n",
" rhs : callable, calculates right-hand sides of ODEs\n",
" init_state: initial state as a 1D vector\n",
" dt : fixed time step\n",
" tstart: time at start of integration\n",
" tsopt: integrate until this time\n",
" fnkwargs: dictionary with optional parameters for the rhs function\n",
" \"\"\"\n",
" if fnkwargs is None:\n",
" fnkwargs = {}\n",
" \n",
" ndim = len(init_state)\n",
" tv = arange(tstart,tstop,dt)\n",
" xout = zeros((len(tv), ndim))\n",
" xout[0] = init_state\n",
" fprev = array(rhs(xout[0], tv[0], **fnkwargs))\n",
" xnew = xout[0] + dt*fprev\n",
" xout[1] = xnew\n",
" for k,t in enumerate(tv[1:-1]):\n",
" xprev,xcurr = xout[k:k+2]\n",
" fnew = array(rhs(xcurr, t,**fnkwargs))\n",
" xnew = xcurr + dt*(3*fnew/2.0 - fprev/2.0)\n",
" fprev = fnew\n",
" xout[k+2] = xnew\n",
" return tv, xout"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def ullah1(v,t,p):\n",
" Ca_c, IP3, h = v # map state vector to variable names\n",
" \n",
" \n",
" ## Ca fluxes\n",
" m_inf = IP3/(IP3 + p.d1)\n",
" n_inf = Ca_c/(Ca_c + p.d5*1e-3) # multiply by 1e-3 because d5 is in nM\n",
" Ca_ER = (p.c0 - Ca_c)/p.c1 # [Ca] stored in ER \n",
" \n",
" J_ch = p.c1*p.v1*(Ca_ER - Ca_c)*(m_inf*n_inf*h)**3 # Flux through channel\n",
" J_leak = p.c1*p.v2 * (Ca_ER - Ca_c)\n",
" J_pump = p.v3 / (1 + (p.k3/Ca_c)**2)\n",
" J_out = p.k1 * Ca_c\n",
" J_in = p.v5 + p.v6/(1 + (p.k2/IP3)**2)\n",
" \n",
" ## finally,\n",
" dCa_c = J_ch + J_leak + J_in - (J_pump + J_out)\n",
"\n",
" ## cytosolic IP3\n",
" J_delta = p.v4*(Ca_c + (1-p.alpha)*p.k4)/(Ca_c + p.k4)\n",
" C_glu = p.glu_base + p.glu_ramp.amp*rpulse((t-p.glu_ramp.start), p.glu_ramp.width)\n",
" J_glu = p.v_g*(C_glu**p.hill_glu) / (p.k_g**p.hill_glu + C_glu**p.hill_glu)\n",
" dIP3 = J_delta + J_glu - (IP3-p.IP3_star)/p.tau_r\n",
" \n",
" \n",
" ##h-gate\n",
" Q2 = p.d2*((IP3+p.d1)/(IP3+p.d3*1e-3)) # multiply by 1e-3 because d3 is in nM\n",
" h_inf = Q2/(Q2 + Ca_c)\n",
" tau_h = 1.0/(p.a2*(Q2+Ca_c))\n",
" dh = (h_inf - h)/tau_h\n",
" \n",
" return np.array([dCa_c, dIP3, dh])\n",
" \n",
"def rpulse(t, width, steep=100):\n",
" return 0.5*(1 + tanh(steep*(t)) * tanh(steep*(-t+width)))\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 43.4 ms, sys: 3.68 ms, total: 47.1 ms\n",
"Wall time: 46.5 ms\n",
"CPU times: user 46.9 ms, sys: 11.9 ms, total: 58.8 ms\n",
"Wall time: 48 ms\n"
]
}
],
"source": [
"tv = arange(0, 250, 0.05)\n",
"state0 = np.array([0.1, 0.16, 0.86])\n",
"\n",
"ullah_ps.v4 = 0.5 # baseline glutamate\n",
"ullah_ps.glu_ramp.amp = 0.0\n",
"\n",
"%time out = integrate.odeint(ullah1, state0, tv, (ullah_ps,), full_output=0)\n",
"state = copy(out[-1]) \n",
"\n",
"%time tv2,out2 = adams_bashforth(ullah1, state0, dt=0.1, tstop=250, fnkwargs=dict(p=ullah_ps))\n",
"\n",
"ramp = ullah_ps.glu_ramp\n",
"glu = ramp.amp*rpulse((tv-ramp.start), ramp.width)\n",
"del ramp"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,0,'time, s')"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nzAEAAAAT+B92eioOwc6yGQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7674d14a58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"figure(figsize=(12,3))\n",
"subplot(211); plot(tv, out[:,0], 'k-'); ylabel(\"[Ca]i\");\n",
"plot(tv2,out2[:,0], 'b-'); ylabel(\"[Ca]i\")\n",
"\n",
"subplot(212); plot(tv, glu, 'r'); ylabel(\"Glu\", color='r');\n",
"xlabel(\"time, s\")\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7674d14b00>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"v4 = arange(0.4,0.7, 0.1)\n",
"fh, axs = subplots(len(v4),1,sharex=True,sharey=True)\n",
"for v,a in zip(v4,axs):\n",
" ullah_ps.v4 = v\n",
" out = integrate.odeint(ullah1, state0, tv, (ullah_ps,), full_output=0)\n",
" a.plot(tv, out[:,0], 'k-', lw=0.75)\n",
"draw()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 55.8 ms, sys: 0 ns, total: 55.8 ms\n",
"Wall time: 56 ms\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f7671763c50>]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ntDVjxgyff5+hottwV/qpNocOHcJrr72G/Px8jwWZoqOjkZycjJiYGJjNZkRFRcn/d692fX0d6Peh\n+loyZcoUrxcfo6Ki5KApLS3F3LlzccUVV2D27NldtpW4nyBPnjwpV9ELFizw2cY91BobGzF9+nQk\nJCTg+eef99pf93YulwsdHR14+OGHUVdXh40bN8pLAPjqn8vlgiiKWLhwIb766iusX78effv29dtG\nCs9169bJy+dedtllAcfU0dGB/Px8rF69GnfffbfH7Zze9iO1+eqrr7BgwQKMGzcOM2bMULSfiooK\nPPTQQ7j44ot9fvbw/fffj0ceeQTz58/3un/peQpcePyl/0wmE0wmk/y1+//96fz4+XsuBvpei6io\nqIj7lKpbb72V4d6Z0mmZkpISLFq0CPv27UNiYiJ+/OMfY/z48Rg5ciSGDh2K+Pj4kDwxw8Vut3td\nUMpisaClpQV1dXWYNm0aYmJi8Morr/isVoFvK3epku7o6MCrr74qX9Tz16alpQWPPfYYysvLsX37\ndvlDLPy1a21txZIlS1BQUICVK1cGfFJbrVa0tbVh7dq12Lp1K5544gncdNNNfttIr2B27dqF3//+\n97j11lu9ngw7twGAL7/8EtnZ2bjqqqvw7LPPBuwbcGEN+gULFsBms2HdunVy6Hsj/a6xsREzZsyA\nw+HA3/72N3k5iM5uueUWFBcXw+l0wmq1Ijo6GlarFVarVVfPWaV8PbeNLBxj1l24B5qW6ejowIoV\nK7B27Vr06dMHixcvxt133+3zD0nvLBYL6urqcM899+D06dN44403PN6w5I10R8a9994Li8WCTZs2\nebxz05vU1FQAF+bzASAnJ0deQybQvjZs2AAAmDlzZpd7zX21+eijj/Dxxx/jJz/5CX77298GbGOx\nWHDmzBnMnDkTI0eOxMqVKwMGofRcuuOOO2C32/HKK6/4fUXh3mbatGlITEzEm2++KR9PX6R/c/bs\n2TCbzVi/fr28prwvSUlJSEpK8rsNkT+6DXdvL+NOnz6NRx99FAcOHMCdd96JhQsX+pw7NYq4uDic\nOHECVqsV69evl1d+9EdaLhgAXnzxRa93eHRmtVqRkJCA5uZmzJs3D/fdd5+i/vXr1w/l5eW46667\nfE5DdCZ9UtKECROwdu3agNMKAOQ3Qg0YMABbt27tck+7N0OGDAFwoVDYtm2bx3EJ1Aa4cEFZWt7Y\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f768ef96ac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ullah_ps.v4 = 0.385\n",
"ullah_ps.glu_ramp.amp = 1.1\n",
"ullah_ps.glu_ramp.width = 200\n",
"\n",
"\n",
"tv = arange(0, 500, 0.05)\n",
"\n",
"\n",
"%time out = integrate.odeint(ullah1, state0, tv, (ullah_ps,), full_output=0)\n",
"\n",
"ramp = ullah_ps.glu_ramp\n",
"glu = ramp.amp*rpulse((tv-ramp.start), ramp.width)\n",
"\n",
"\n",
"f,(ax1,ax2) = subplots(2,1,sharex=True)\n",
"\n",
"ax1.plot(tv, out[:,0],'k')\n",
"ax2.plot(tv, glu, 'r')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# make С_ER a variable\n",
"def ullah2(v,t,p):\n",
" Ca_c, Ca_ER, IP3, h = v # map state vector to variable names\n",
" \n",
" \n",
" ## Ca fluxes\n",
" m_inf = IP3/(IP3 + p.d1)\n",
" n_inf = Ca_c/(Ca_c + p.d5*1e-3) # multiply by 1e-3 because d5 is in nM\n",
" #Ca_ERx = (p.c0 - Ca_c)/p.c1 # [Ca] stored in ER \n",
" \n",
" J_ch = p.c1*p.v1*(Ca_ER - Ca_c)*(m_inf*n_inf*h)**3 # Flux through channel\n",
" J_leak = p.c1*p.v2 * (Ca_ER - Ca_c)\n",
" J_pump = p.v3 / (1 + (p.k3/Ca_c)**2)\n",
" J_out = p.k1 * Ca_c\n",
" J_in1 = p.v5 \n",
" J_in2 = p.v6/(1 + (p.k2/IP3)**2) # Ullah, following DuPont considers this as flux through PM \n",
" J_in = J_in1 + J_in2\n",
" er_exchange = J_ch + J_leak - J_pump \n",
" \n",
" ## finally,\n",
" #dCa_c = J_ch + J_leak + J_in - (J_pump + J_out)\n",
" dCa_c = er_exchange + (J_in-J_out)\n",
" #dCa_ER = -dCa_c/p.c1\n",
" dCa_ER = -er_exchange/p.c1 + p.k5*(p.Ca_ER_star-Ca_ER)\n",
"\n",
" ## cytosolic IP3\n",
" J_delta = p.v4*(Ca_c + (1-p.alpha)*p.k4)/(Ca_c + p.k4)\n",
" C_glu = p.glu_base + p.glu_ramp.amp*rpulse((t-p.glu_ramp.start), p.glu_ramp.width)\n",
" J_glu = p.v_g*(C_glu**p.hill_glu) / (p.k_g**p.hill_glu + C_glu**p.hill_glu)\n",
" dIP3 = J_delta + J_glu - (IP3-p.IP3_star)/p.tau_r\n",
" \n",
" \n",
" ##h-gate\n",
" Q2 = p.d2*((IP3+p.d1)/(IP3+p.d3*1e-3)) # multiply by 1e-3 because d3 is in nM\n",
" h_inf = Q2/(Q2 + Ca_c)\n",
" tau_h = 1.0/(p.a2*(Q2+Ca_c))\n",
" dh = (h_inf - h)/tau_h\n",
" \n",
" return np.array([dCa_c,dCa_ER, dIP3, dh])"
]
}
],
"metadata": {
"anaconda-cloud": {},
"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.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment