# -*- coding: utf-8 -*-
"""
Created on Sat Oct 16 21:07:44 2021
@author: bensr
"""
import numpy as np
import vm_plotter
from neuron import h
h.load_file("runModel.hoc")
def init_settings(nav12=1,
nav16=1,
dend_nav12=1,
soma_nav12=1,
ais_nav12=1,
dend_nav16=1,
soma_nav16=1,
ais_nav16=1,
axon_Kp=1,
axon_Kt =1,
axon_K=1,
soma_K=1,
dend_K=1,
gpas_all=1):
h.dend_na12 = 0.026145/2
h.dend_na16 = h.dend_na12
h.dend_k = 0.004226 * soma_K
h.soma_na12 = 0.983955/10
h.soma_na16 = h.soma_na12
h.soma_K = 0.303472 * soma_K
h.ais_na16 = 4
h.ais_na12 = 4
h.ais_ca = 0.000990
h.ais_KCa = 0.007104
h.node_na = 2
h.axon_KP = 0.973538 * axon_Kp
h.axon_KT = 0.089259 * axon_Kt
h.axon_K = 1.021945 * axon_K
h.cell.axon[0].gCa_LVAstbar_Ca_LVAst = 0.001376286159287454
#h.soma_na12 = h.soma_na12/2
h.naked_axon_na = h.soma_na16/5
h.navshift = -10
h.myelin_na = h.naked_axon_na
h.myelin_K = 0.303472
h.myelin_scale = 10
h.gpas_all = 3e-5 * gpas_all
h.cm_all = 1
h.dend_na12 = h.dend_na12 * nav12 * dend_nav12
h.soma_na12 = h.soma_na12 * nav12 * soma_nav12
h.ais_na12 = h.ais_na12 * nav12 * ais_nav12
h.dend_na16 = h.dend_na16 * nav16 * dend_nav16
h.soma_na16 = h.soma_na16 * nav16 * soma_nav16
h.ais_na16 = h.ais_na16 * nav16 * ais_nav16
h.working()
def init_stim(sweep_len = 800, stim_start = 100, stim_dur = 500, amp = 0.5, dt = 0.01):
# updates the stimulation params used by the model
# time values are in ms
# amp values are in nA
h("st.del = " + str(stim_start))
h("st.dur = " + str(stim_dur))
h("st.amp = " + str(amp))
h.tstop = sweep_len
h.dt = dt
def run_model(start_Vm = -72):
h.finitialize(start_Vm)
timesteps = int(h.tstop/h.dt)
Vm = np.zeros(timesteps)
I = {}
I['Na'] = np.zeros(timesteps)
I['Ca'] = np.zeros(timesteps)
I['K'] = np.zeros(timesteps)
t = np.zeros(timesteps)
for i in range(timesteps):
Vm[i] = h.cell.soma[0].v
I['Na'][i] = h.cell.soma[0](0.5).ina
I['Ca'][i] = h.cell.soma[0](0.5).ica
I['K'][i] = h.cell.soma[0](0.5).ik
t[i] = i*h.dt / 1000
h.fadvance()
return Vm, I, t