from neuron import h
import math
import numpy as np
from SC_param import SC_param
from Synapses import Synapses
class Stellate:
def __init__(self,record_all = 1):
h.load_file('stdlib.hoc')
h.load_file('import3d.hoc')
cell = h.Import3d_Neurolucida3()
cell.input('morphology/stellate.ASC')
i3d = h.Import3d_GUI(cell, 0)
i3d.instantiate(self)
self.soma[0].nseg = 1 + (2*int(self.soma[0].L/40))
self.soma[0].Ra = SC_param['Ra']
self.soma[0].cm = 1
self.soma[0].insert('Leak')
self.soma[0].gmax_Leak = SC_param['leak_soma']
self.soma[0].e_Leak = SC_param['Eleak']
self.soma[0].insert('Nav1_1')
self.soma[0].gbar_Nav1_1 = SC_param['Nav1.1_soma']
self.soma[0].ena = SC_param['ena']
self.soma[0].insert('Cav3_2')
self.soma[0].gcabar_Cav3_2 = SC_param['Cav3.2_soma']
self.soma[0].insert('Cav3_3')
self.soma[0].pcabar_Cav3_3 = SC_param['Cav3.3_soma']
self.soma[0].insert('Kir2_3')
self.soma[0].gkbar_Kir2_3 = SC_param['Kir2.3_soma']
self.soma[0].ek = -84
self.soma[0].insert('Kv1_1')
self.soma[0].gbar_Kv1_1= SC_param['Kv1.1_soma']
self.soma[0].insert('Kv3_4')
self.soma[0].gkbar_Kv3_4 = SC_param['Kv3.4_soma']
self.soma[0].insert('Kv4_3')
self.soma[0].gkbar_Kv4_3 = SC_param['Kv4.3_soma']
self.soma[0].insert('Kca1_1')
self.soma[0].gbar_Kca1_1 = SC_param['Kca1.1_soma']
self.soma[0].insert('Kca2_2')
self.soma[0].gkbar_Kca2_2 = SC_param['Kca2.2_soma']
self.soma[0].insert('Cav2_1')
self.soma[0].pcabar_Cav2_1 = SC_param['Cav2.1_soma']
self.soma[0].insert('HCN1_PC')
self.soma[0].gbar_HCN1_PC = SC_param['HCN1_soma']
self.soma[0].eh = -34
self.soma[0].insert('cdp5StCmod')
self.soma[0].TotalPump_cdp5StCmod = 1e-8
self.soma[0].push()
self.soma[0].eca = 137.5
h.pop_section()
self.whatami = "sc"
self.dendprox = []
self.denddist = []
for i in self.dend:
if i.diam >=0.6:
self.dendprox.append(i)
else:
self.denddist.append(i)
for i in self.dendprox:
i.nseg = 1 + 2*int(i.L/40)
i.Ra = SC_param['Ra']
i.cm = 1.5
i.insert('Cav2_1')
i.pcabar_Cav2_1 = SC_param['Cav2.1_dendprox']
i.insert('Cav3_2')
i.gcabar_Cav3_2 = SC_param['Cav3.2_dendprox']
i.insert('Cav3_3')
i.pcabar_Cav3_3 = SC_param['Cav3.3_dendprox']
i.insert('Kca1_1')
i.gbar_Kca1_1 = SC_param['Kca1.1_dendprox']
i.ek = -84
i.insert('Kca2_2')
i.gkbar_Kca2_2 = SC_param['Kca2.2_dendprox']
i.insert('Kv4_3')
i.gkbar_Kv4_3 = SC_param['Kv4.3_dendprox']
i.insert('Kv1_1')
i.gbar_Kv1_1= SC_param['Kv1.1_dendprox']
i.insert('Leak')
i.gmax_Leak = SC_param['leak_dendprox']
i.e_Leak = SC_param['Eleak']
i.insert('cdp5StCmod')
i.TotalPump_cdp5StCmod = 1e-9
i.push()
i.eca = 137.5
h.pop_section()
for i in self.denddist:
i.nseg = 1 + 2*int(i.L/40)
i.Ra = SC_param['Ra']
i.cm = 1.5 #0.5
i.insert('Cav2_1')
i.pcabar_Cav2_1 = SC_param['Cav2.1_denddist']
i.insert('Kca1_1')
i.gbar_Kca1_1 = SC_param['Kca1.1_denddist']
i.ek = -84
i.insert('Kca2_2')
i.gkbar_Kca2_2 = SC_param['Kca2.2_denddist']
i.insert('Kv1_1')
i.gbar_Kv1_1= SC_param['Kv1.1_denddist']
i.insert('Leak')
i.gmax_Leak = SC_param['leak_denddist']
i.e_Leak = SC_param['Eleak']
i.insert('cdp5StCmod')
i.TotalPump_cdp5StCmod = 1e-9
i.push()
i.eca = 137.5
h.pop_section()
self.axon[0].nseg = 1 + 2*int(self.axon[0].L/40)
self.axon[0].Ra = SC_param['Ra']
self.axon[0].cm = 1
self.axon[0].insert('Nav1_6')
self.axon[0].gbar_Nav1_6 = SC_param['Nav1.6_ais']
self.axon[0].ena = SC_param['ena']
self.axon[0].insert('Kv3_4')
self.axon[0].gkbar_Kv3_4 = SC_param['Kv3.4_ais']
self.axon[0].ek = -88
self.axon[0].insert('Kv1_1')
self.axon[0].gbar_Kv1_1= SC_param['Kv1.1_ais']
self.axon[0].insert('HCN1_PC')
self.axon[0].gbar_HCN1_PC = SC_param['HCN1_ais']
self.axon[0].eh = -34
self.axon[0].insert('Leak')
self.axon[0].gmax_Leak = SC_param['leak_ais']
self.axon[0].e_Leak = SC_param['Eleak']
self.axon[0].insert('GRC_KM')
self.axon[0].gkbar_GRC_KM = 0.00007960307413
self.axon[0].insert('cdp5StCmod')
for i,d in enumerate(self.axon):
if i == 0:
pass
else:
self.axon[i].nseg = 1 + 2*int(self.axon[i].L/40)
self.axon[i].cm = 1
self.axon[i].Ra = SC_param['Ra']
self.axon[i].insert('Leak')
self.axon[i].e_Leak = SC_param['Eleak']
self.axon[i].gmax_Leak = SC_param['leak_axon']
self.axon[i].insert('Nav1_6')
self.axon[i].gbar_Nav1_6 = SC_param['Nav1.6_axon']
self.axon[i].ena = 60
self.axon[i].insert('Kv3_4')
self.axon[i].gkbar_Kv3_4 = SC_param['Kv3.4_axon']
self.axon[i].ek = -88
self.axon[i].insert('Kv1_1')
self.axon[i].gbar_Kv1_1= SC_param['Kv1.1_axon']
self.axon[i].insert('HCN1_PC')
self.axon[i].gbar_HCN1_PC = SC_param['HCN1_axon']
self.axon[i].eh = -34
self.axon[i].insert('cdp5StCmod')
self.voltage = h.Vector()
self.voltage.record(self.soma[0](0.5)._ref_v)
self.time = h.Vector()
self.time.record(h._ref_t)
def createsyn(self):
##Synapsess
self.pf_sc = []
self.pf_scnmda = []
self.sc_sc = []
self.pf_sc_burst = []
self.pf_scnmda_burst = []
self.dendresearch = [8, 12, 14, 21, 22, 23, 26, 27, 28, 32, 43, 90, 100] #13 #more syn are needed... 3 are to low to do something
self.dendinhib = [8, 12, 14, 21, 22, 23, 26, 27, 28, 31, 32, 34, 35, 43, 50, 57, 58, 66, 67, 68, 71, 73, 81, 82, 84, 86, 89, 90, 98, 100, 40, 69] #32syn
self.pfsc = []
self.pf_scnmda = []
for e in self.dendresearch:
self.pfsc.append(Synapses('pf_sc',self,self.dend[e]))
self.pf_scnmda.append(Synapses('pfnmda',self,self.dend[e]))
for e in self.dendinhib:
self.sc_sc.append(Synapses('sc',self,self.dend[e]))