You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.6 KiB
81 lines
1.6 KiB
#!/usr/bin/python |
|
""" |
|
test and plot hcno stuff |
|
|
|
""" |
|
import numpy as np |
|
import matplotlib.pyplot as plt |
|
|
|
# Parameters# |
|
gbar = 0.0005 # (mho/cm2) |
|
|
|
vhalf1 = -50 # (mV) # v 1/2 for forward |
|
vhalf2 = -84 # (mV) # v 1/2 for backward |
|
gm1 = 0.3 ## (mV) # slope for forward |
|
gm2 = 0.6 # # (mV) # slope for backward |
|
zeta1 = 3 # (/ms) |
|
# zeta2 = 3 # (/ms) |
|
a01 = 0.008 # (/ms) |
|
a02 = 0.0029 # (/ms) |
|
frac = 0.0 |
|
c0 = 273.16 # (degC) |
|
thinf = -66 # (mV) # inact inf slope |
|
qinf = 7 # (mV) # inact inf slope |
|
q10tau = 4.5 # from Magee (1998) |
|
# v # (mV) |
|
q10g = 4.5 # Cao and Oertel |
|
celsius = 35.0 |
|
|
|
F = 9.648e4 |
|
R = 8.314 |
|
|
|
ct = 1e-3 * zeta1 * F / (R * (c0 + celsius)) |
|
|
|
q10 = q10tau ** ( |
|
(celsius - 33.0) / 10.0 |
|
) # (degC)) : if you don't like room temp, it can be changed! |
|
|
|
|
|
def rates(v): # (mV)) { |
|
tau1 = bet1(v) / (q10 * a01 * (1.0 + alp1(v))) |
|
tau2 = bet2(v) / (q10 * a02 * (1.0 + alp2(v))) |
|
hinf = 1.0 / (1.0 + np.exp((v - thinf) / qinf)) |
|
return tau1, tau2, hinf |
|
|
|
|
|
def alp1(v): # (mV)) { |
|
alp1 = np.exp((v - vhalf1) * ct) |
|
return alp1 |
|
|
|
|
|
def bet1(v): # (mV)) { |
|
bet1 = np.exp(gm1 * (v - vhalf1) * ct) |
|
return bet1 |
|
|
|
|
|
def alp2(v): # (mV)) { |
|
alp2 = np.exp((v - vhalf2) * ct) |
|
return alp2 |
|
|
|
|
|
def bet2(v): # (mV)) { |
|
bet2 = np.exp(gm2 * (v - vhalf2) * ct) |
|
return bet2 |
|
|
|
|
|
def plots(): |
|
v = np.linspace(-120.0, 0.0, 120) |
|
|
|
t1, t2, hi = rates(v) |
|
# print(v) |
|
plt.figure(1) |
|
plt.plot(v, t1) |
|
plt.plot(v, t2) |
|
plt.figure(2) |
|
plt.plot(v, hi) |
|
plt.show() |
|
|
|
|
|
# prevent sphinx from running this script at first build |
|
if __name__ == "__main__": |
|
plots()
|
|
|