Changes of ionic concentrations during seizure transitions (Gentiletti et al. 2016)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:222321
"... In order to investigate the respective roles of synaptic interactions and nonsynaptic mechanisms in seizure transitions, we developed a computational model of hippocampal cells, involving the extracellular space, realistic dynamics of Na+, K+, Ca2+ and Cl - ions, glial uptake and extracellular diffusion mechanisms. We show that the network behavior with fixed ionic concentrations may be quite different from the neurons’ behavior when more detailed modeling of ionic dynamics is included. In particular, we show that in the extended model strong discharge of inhibitory interneurons may result in long lasting accumulation of extracellular K+, which sustains the depolarization of the principal cells and causes their pathological discharges. ..."
Reference:
1 . Gentiletti D, Suffczynski P, Gnatkovsky V, de Curtis M (2017) Changes of Ionic Concentrations During Seizure Transitions - A Modeling Study. Int J Neural Syst 27:1750004 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Synapse; Extracellular; Realistic Network;
Brain Region(s)/Organism: Entorhinal cortex;
Cell Type(s):
Channel(s): Na/K pump; KCC2; I Na, leak; I K,leak; I Na,t; I Na,p; I K; I L high threshold; I_AHP; I M; I K,Ca;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Ions;
Simulation Environment: NEURON;
Model Concept(s): Epilepsy; Reaction-diffusion; Synchronization; Simplified Models;
Implementer(s): Gentiletti, Damiano [gentiletti.damiano at gmail.com];
Search NeuronDB for information about:  I Na,p; I Na,t; I L high threshold; I K; I K,leak; I M; I K,Ca; Na/K pump; I_AHP; I Na, leak; KCC2; Ions;
/
GentilettiEtAl2016
readme.html
accum.mod
cal.mod
getconc.mod
ikdrd.mod
ikdrs.mod
inad.mod
inas.mod
is.mod
kahp.mod
kc.mod
kcc2.mod
km.mod
leak.mod
LinClamp.mod
nakpump.mod
nap.mod
pkdrd.mod
pkdrs.mod
pnad.mod
pnas.mod
init.hoc
mosinit.hoc *
MySession.ses
screenshot.png
                            
load_file("nrngui.hoc")


//Compartments definition
create soma, psoma
create dendrite1, pdendrite1
create dendrite2, pdendrite2
//Cells creation
objectvar inter, pyram
inter = new SectionList()
pyram = new SectionList()
forall inter.append()
forsec "p" pyram.append()
forsec "p" inter.remove()
//Segments connection
connect dendrite1(1), soma(0)
connect soma(1), dendrite2(0)
connect pdendrite1(1), psoma(0)
connect psoma(1), pdendrite2(0)


//Membrane mechanisms
forall {
     insert nakpump {km_k_nakpump=2
		     km_na_nakpump=10}
     Ra=100 				
     cm=1   				
}
forsec inter {
     insert leak
     insert accum {setvolout_accum=0.15
		   setvolpyram_accum=1}
}
forsec pyram {
     insert kcc2
     insert leak
     insert getconc
     insert cal     {gcal_cal=0.00015}
     insert kahp    {gkahp_kahp=0.0001}
     insert kc      {gkc_kc=0.196}     
}
soma {
     nseg=1
     L=20				
     diam=15				
     insert inas  {gna_inas=0.025}      
     insert ikdrs {gkdr_ikdrs=0.05}     
}
dendrite1 {
     nseg=1
     L=300				
     diam=1.9			
     insert inad   {gna_inad=0.0095}
     insert ikdrd  {gkdr_ikdrd=0.012}
}
dendrite2 {
     nseg=1
     L=400
     diam=1.9
     insert inad   {gna_inad=0.0095} 
     insert ikdrd  {gkdr_ikdrd=0.012}
}   
psoma {
     nseg=1
     L=20				
     diam=15				
     insert pnas  {gna_pnas=0.025}      
     insert pkdrs {gkdr_pkdrs=0.05}     
     insert nap   {gna_nap=0.0002}      
     insert km    {gkm_km=0.0035}       
}
pdendrite1 {
     nseg=1
     L=300				
     diam=1.9				
     insert pnad  {gna_pnad=0.0045}     
     insert pkdrd {gkdr_pkdrd=0.00185}  
}
pdendrite2 {				
     nseg=1
     L=150				
     diam=6.2				
     insert pnad  {gna_pnad=0.0045}     
     insert pkdrd {gkdr_pkdrd=0.00185}  
}


//Connecting pointers definition
proc connectpointers() {
forsec pyram {
   for (x) if (x!=0||x!=1) {
	setpointer soma.ikp_accum(x),     psoma.ik(x)
	setpointer soma.inap_accum(x),    psoma.ina(x)
	setpointer soma.icap_accum(x),    psoma.ica(x)
	setpointer soma.iclp_accum(x),    psoma.icl(x)
	setpointer soma.diamp_accum(x),   psoma.diam(x)
	setpointer psoma.kop_getconc(x),  soma.ko(x)
	setpointer psoma.naop_getconc(x), soma.nao(x)
	setpointer psoma.caop_getconc(x), soma.cao(x)
	setpointer psoma.clop_getconc(x), soma.clo(x)
	setpointer psoma.kip_getconc(x),  soma.kp_accum(x)
	setpointer psoma.naip_getconc(x), soma.nap_accum(x)
	setpointer psoma.caip_getconc(x), soma.cap_accum(x)
	setpointer psoma.clip_getconc(x), soma.clp_accum(x)

	setpointer dendrite1.ikp_accum(x),     pdendrite1.ik(x)
	setpointer dendrite1.inap_accum(x),    pdendrite1.ina(x)
	setpointer dendrite1.icap_accum(x),    pdendrite1.ica(x)
	setpointer dendrite1.iclp_accum(x),    pdendrite1.icl(x)
	setpointer dendrite1.diamp_accum(x),   pdendrite1.diam(x)
	setpointer pdendrite1.kop_getconc(x),  dendrite1.ko(x)
	setpointer pdendrite1.naop_getconc(x), dendrite1.nao(x)
	setpointer pdendrite1.caop_getconc(x), dendrite1.cao(x)
	setpointer pdendrite1.clop_getconc(x), dendrite1.clo(x)
	setpointer pdendrite1.kip_getconc(x),  dendrite1.kp_accum(x)
	setpointer pdendrite1.naip_getconc(x), dendrite1.nap_accum(x)
	setpointer pdendrite1.caip_getconc(x), dendrite1.cap_accum(x)
	setpointer pdendrite1.clip_getconc(x), dendrite1.clp_accum(x)
	
	setpointer dendrite2.ikp_accum(x),     pdendrite2.ik(x)
	setpointer dendrite2.inap_accum(x),    pdendrite2.ina(x)
	setpointer dendrite2.icap_accum(x),    pdendrite2.ica(x)
	setpointer dendrite2.iclp_accum(x),    pdendrite2.icl(x)
	setpointer dendrite2.diamp_accum(x),   pdendrite2.diam(x)
	setpointer pdendrite2.kop_getconc(x),  dendrite2.ko(x)
	setpointer pdendrite2.naop_getconc(x), dendrite2.nao(x)
	setpointer pdendrite2.caop_getconc(x), dendrite2.cao(x)
	setpointer pdendrite2.clop_getconc(x), dendrite2.clo(x)
	setpointer pdendrite2.kip_getconc(x),  dendrite2.kp_accum(x)
	setpointer pdendrite2.naip_getconc(x), dendrite2.nap_accum(x)
	setpointer pdendrite2.caip_getconc(x), dendrite2.cap_accum(x)
	setpointer pdendrite2.clip_getconc(x), dendrite2.clp_accum(x)
  }
 }
}
connectpointers()


//Temperature, initial voltage
celsius = 32        
v_init = -70        


//Ion concentrations
//Extracellular concentrations
ko0_k_ion = 3.5      
nao0_na_ion = 140    
cao0_ca_ion = 2      
clo0_cl_ion = 135    
//Concentrations in inter
ki0_k_ion = 135     
nai0_na_ion = 10    
cai0_ca_ion = 5e-5  
cli0_cl_ion = 3.5   
//Concentrations in pyram
setkp_accum  = 135  
setnap_accum = 10   
setcap_accum = 5e-5 
setclp_accum = 3.5  


//Stability with no stimulation - pyram
proc pyramstab() {
	access psoma
	rm=$1
	init()
	vrest = -70
	dr_na = vrest-ena
	dr_k = vrest-ek

	eqinit()
	depvar gna, gk
	eqn gk:: gk = 1/rm - gna
	eqn gna:: gna = (-dr_k*(3/2)*gk)/dr_na
	solve()
	forall gk_leak=gk
	forall gna_leak=gna

	p_k=(1+km_k_nakpump/ko)^(-2)
	p_na=(1+km_na_nakpump/nai)^(-3)
	p_tot=p_k*p_na
	forall imax_nakpump = (-gna_leak*dr_na)/(3*p_tot)
}
//Stability with no stimulation - inter
proc interstab() {
	access soma
	rm=$1
	init()
	vrest = -70
	dr_na = vrest-ena
	dr_k = vrest-ek

	eqinit()
	depvar gna, gk
	eqn gk:: gk = 1/rm - gna
	eqn gna:: gna = (-dr_k*(3/2)*gk)/dr_na
	solve()
	forall gk_leak=gk
	forall gna_leak=gna

	p_k=(1+km_k_nakpump/ko)^(-2)
	p_na=(1+km_na_nakpump/nai)^(-3)
	p_tot=p_k*p_na
	forall imax_nakpump = (-gna_leak*dr_na)/(3*p_tot)
}


//Initialization procedure
proc init() {
	finitialize()
	//Init inter
	forsec inter {
		v=v_init
	}
	//Init pyram
	forsec pyram {
		v=v_init
		ki=setkp_accum
		nai=setnap_accum
		cai=setcap_accum
		cli=setclp_accum
	}
	fcurrent()
}


//Synapses

//Pyram

//Synapse trigger
objref pp
pp = new NetStim()
pp.number = 1000000
pp.interval = 5
pp.noise = 1	
pp.start = 0	

//Inhibitory synapse (GABA_A)
objref ncl
ncl = new List()
objref syn
psoma syn = new is(0.5)
setpointer syn.e, psoma.ecl(0.5)
syn.tau2 = 6
syn.tau1 = 2
soma ncl.append(new NetCon(&v(1),syn,-10,0,0.003))

//Excitatory synapse
objref syn1
psoma syn1 = new Exp2Syn(0.5)
syn1.e = 0			
syn1.tau2 = 6
syn1.tau1 = 2					   
objref pinput
pinput = new NetCon(pp,syn1,0,0,0.002) 

//Inter

//Excitatory feedback of the pyramidal cell to the interneuron
objref ncl2
ncl2 = new List()
objref syn2
soma syn2 = new Exp2Syn(0.5)
syn2.e = 0			
syn2.tau2 = 6					   
syn2.tau1 = 2
psoma ncl2.append(new NetCon(&v(1),syn2,0,0,0.001))


//Times
tstart = 0
tstop = 60000


//Call to the main procedures
interstab(5e3)
pyramstab(5e3)


//Control and graphics
xopen("MySession.ses")