Long time windows from theta modulated inhib. in entorhinal–hippo. loop (Cutsuridis & Poirazi 2015)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:181967
"A recent experimental study (Mizuseki et al., 2009) has shown that the temporal delays between population activities in successive entorhinal and hippocampal anatomical stages are longer (about 70–80 ms) than expected from axon conduction velocities and passive synaptic integration of feed-forward excitatory inputs. We investigate via computer simulations the mechanisms that give rise to such long temporal delays in the hippocampus structures. ... The model shows that the experimentally reported long temporal delays in the DG, CA3 and CA1 hippocampal regions are due to theta modulated somatic and axonic inhibition..."
Reference:
1 . Cutsuridis V, Poirazi P (2015) A computational study on how theta modulated inhibition can account for the long temporal windows in the entorhinal-hippocampal loop. Neurobiol Learn Mem 120:69-83 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Dentate gyrus granule cell; Hippocampus CA1 pyramidal cell; Hippocampus CA3 pyramidal cell; Hippocampus CA3 interneuron basket cell; Dentate gyrus mossy cell; Dentate gyrus basket cell; Dentate gyrus hilar cell; Hippocampus CA1 basket cell; Hippocampus CA3 stratum oriens lacunosum-moleculare interneuron; Hippocampus CA1 bistratified cell; Hippocampus CA1 axo-axonic cell; Hippocampus CA3 axo-axonic cells;
Channel(s): I Na,t; I L high threshold; I N; I T low threshold; I A; I K; I M; I h; I K,Ca; I_AHP;
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Pattern Recognition; Temporal Pattern Generation; Spatio-temporal Activity Patterns; Brain Rhythms; Storage/recall;
Implementer(s): Cutsuridis, Vassilis [vcutsuridis at gmail.com];
Search NeuronDB for information about:  Dentate gyrus granule cell; Hippocampus CA1 pyramidal cell; Hippocampus CA3 pyramidal cell; Hippocampus CA3 interneuron basket cell; GabaA; AMPA; NMDA; I Na,t; I L high threshold; I N; I T low threshold; I A; I K; I M; I h; I K,Ca; I_AHP;
/
CutsuridisPoirazi2015
Results
Weights
readme.html
ANsyn.mod *
bgka.mod *
borgkm.mod *
burststim.mod
cacumm.mod *
cad.mod
cadiv.mod *
cagk.mod
cagk2.mod
cagk3.mod
cal.mod *
cal1.mod
cal2.mod
calH.mod *
can2.mod *
can3.mod
car.mod *
cat.mod *
cat2.mod
cat3.mod
ccanl.mod *
distr.mod *
gskch.mod *
h.mod *
h2.mod
hha_old.mod *
hha2.mod *
hNa.mod *
hyperde3.mod *
IA.mod *
ichan2.mod *
Ih.mod *
kad.mod *
kahp.mod *
KahpM95.mod *
kap.mod *
kaprox.mod
Kaxon.mod *
kca.mod *
kd.mod *
Kdend.mod *
kdr.mod *
kdrca1.mod *
km.mod *
km2.mod
Ksoma.mod *
LcaMig.mod *
my_exp2syn.mod *
na3n.mod *
Naaxon.mod *
Nadend.mod *
nahh.mod *
Nasoma.mod *
naxn.mod *
nca.mod *
nmda.mod *
regn_stim.mod *
somacar.mod *
BasketCell.hoc
burst_cell.hoc
CA1AAC.hoc
CA1BC.hoc
CA1BSC.hoc
CA1OLM.hoc
CA1PC.hoc
CA3AAC.hoc
CA3BC.hoc
CA3BSC.hoc
CA3OLM.hoc
CA3PC.hoc
GC.hoc
gui.ses
HC.hoc
MC.hoc
mosinit.hoc
network.hoc
OLM.hoc
ranstream.hoc *
rig.hoc
screenshot.png
stim_cell.hoc
                            
// Artificial cells no longer need a default section.
//Network cell templates
//   AACell
// Simplified version (BPG 27-9-08)
//  - geometry and channels from Santhakumar et al 2005
//  - geometry modified to preserve VCUs different dendrites

begintemplate CA3AACell
public is_art
public init, topol, basic_shape, subsets, geom, biophys
public pre_list, connect2target

public soma, radT2, radM2, radt2, lmM2, lmt2, radT1
public radM1, radt1, lmM1, lmt1, oriT1, oriM1, orit1
public oriT2, oriM2, orit2
public all

objref pre_list

proc init() {
  	topol()
  	subsets()
  	geom()
  	biophys()
  	geom_nseg()
  	pre_list = new List()
  	synapses()
}

create soma, radT2, radM2, radt2, lmM2, lmt2, radT1
create radM1, radt1, lmM1, lmt1, oriT1, oriM1, orit1
create oriT2, oriM2, orit2

proc topol() { local i
  	connect radT2(0), soma(1)
  	connect radM2(0), radT2(1)
  	connect radt2(0), radM2(1)
  	connect lmM2(0), radt2(1)
  	connect lmt2(0), lmM2(1)
  	connect radT1(0), soma(0)
  	connect radM1(0), radT1(1)
  	connect radt1(0), radM1(1)
  	connect lmM1(0), radt1(1)
  	connect lmt1(0), lmM1(1)
  	connect oriT1(0), soma(0)
  	connect oriM1(0), oriT1(1)
  	connect orit1(0), oriM1(1)
  	connect oriT2(0), soma(1)
  	connect oriM2(0), oriT2(1)
  	connect orit2(0), oriM2(1)
  	//basic_shape()
}

proc basic_shape() {
  	soma {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(15, 0, 0, 1)}
  	radT2 {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(45, 30, 0, 1)}
  	radM2 {pt3dclear() pt3dadd(45, 30, 0, 1) pt3dadd(75, 60, 0, 1)}
  	radt2 {pt3dclear() pt3dadd(75, 60, 0, 1) pt3dadd(90, 75, 0, 1)}
  	lmM2 {pt3dclear() pt3dadd(90, 75, 0, 1) pt3dadd(105, 90, 0, 1)}
  	lmt2 {pt3dclear() pt3dadd(105, 90, 0, 1) pt3dadd(120, 105, 0, 1)}
  	radT1 {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-14, 15, 0, 1)}
  	radM1 {pt3dclear() pt3dadd(-14, 15, 0, 1) pt3dadd(-29, 30, 0, 1)}
  	radt1 {pt3dclear() pt3dadd(-29, 30, 0, 1) pt3dadd(-44, 45, 0, 1)}
  	lmM1 {pt3dclear() pt3dadd(-44, 45, 0, 1) pt3dadd(-59, 60, 0, 1)}
  	lmt1 {pt3dclear() pt3dadd(-59, 60, 0, 1) pt3dadd(-89, 90, 0, 1)}
  	oriT1 {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-29, -29, 0, 1)}
  	oriM1 {pt3dclear() pt3dadd(-29, -29, 0, 1) pt3dadd(-59, -59, 0, 1)}
  	orit1 {pt3dclear() pt3dadd(-59, -59, 0, 1) pt3dadd(-89, -89, 0, 1)}
  	oriT2 {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(45, -29, 0, 1)}
  	oriM2 {pt3dclear() pt3dadd(45, -29, 0, 1) pt3dadd(75, -59, 0, 1)}
  	orit2 {pt3dclear() pt3dadd(75, -59, 0, 1) pt3dadd(105, -89, 0, 1)}
}

objref all
proc subsets() { local i
  	objref all
  	all = new SectionList()
    	soma all.append()
    	radT2 all.append()
    	radM2 all.append()
    	radt2 all.append()
    	lmM2 all.append()
    	lmt2 all.append()
    	radT1 all.append()
    	radM1 all.append()
    	radt1 all.append()
    	lmM1 all.append()
    	lmt1 all.append()
    	oriT1 all.append()
    	oriM1 all.append()
    	orit1 all.append()
    	oriT2 all.append()
    	oriM2 all.append()
    	orit2 all.append()

}

proc geom() {
  	forsec all {  }
  	soma {  L = 20  diam = 10  }
  	radT2 {  L = 100  diam = 4  }
  	radM2 {  L = 100  diam = 3  }
  	radt2 {  L = 200  diam = 2  }
  	lmM2 {  L = 100  diam = 1.5  }
  	lmt2 {  L = 100  diam = 1  }
  	radT1 {  L = 100  diam = 4  }
  	radM1 {  L = 100  diam = 3  }
  	radt1 {  L = 200  diam = 2  }
  	lmM1 {  L = 100  diam = 1.5  }
  	lmt1 {  L = 100  diam = 1  }
  	oriT1 {  L = 100  diam = 2  }
  	oriM1 {  L = 100  diam = 1.5  }
  	orit1 {  L = 100  diam = 1  }
  	oriT2 {  L = 100  diam = 2  }
  	oriM2 {  L = 100  diam = 1.5  }
  	orit2 {  L = 100  diam = 1  }
}

external lambda_f
proc geom_nseg() {
  	forsec all { nseg = int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1  }
}

proc biophys() {

	gna = 0.15

	soma {
		insert ichan2  		
		gnatbar_ichan2 = gna  		// 0.12 //original 0.030 to .055 
		gkfbar_ichan2 = 0.013  		//original 0.015
		gl_ichan2 = 0.00018
		cm=1.4
	} 

	lmt1 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.5  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	lmt2 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.5  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	lmM1 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.45  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	lmM2 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.45  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		
	
	radt1 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.4  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	radt2 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.4  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	radM1 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.3  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	radM2 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.3  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	radT1 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.2  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	radT2 {
		insert ichan2
		gnatbar_ichan2 = gna		//0.2  	//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}			

	oriT1 {
		insert ichan2
		gnatbar_ichan2 = gna  		//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	oriT2 {
		insert ichan2
		gnatbar_ichan2 = gna  		//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	oriM1 {
		insert ichan2
		gnatbar_ichan2 = gna  		//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		

	oriM2 {
		insert ichan2
		gnatbar_ichan2 = gna  		//original 0.015
		gkfbar_ichan2 = 0.013
		gl_ichan2 = 0.00018
		cm=1.4
	}		
	
	orit1 {
		insert ichan2
		gnatbar_ichan2 = gna  		// Sodium conductance (original 0.015)
		gkfbar_ichan2 = 0.013		// Delayed K+ rectifier (fast)
		gl_ichan2 = 0.00018		// Leak conductance
		cm=1.4
	}		

	orit2 {
		insert ichan2
		gnatbar_ichan2 = gna  		// Sodium conductance (original 0.015)
		gkfbar_ichan2 = 0.013		// Delayed K+ rectifier (fast)
		gl_ichan2 = 0.00018		// Leak conductance
		cm=1.4
	}		

	forsec all {
		insert ccanl
		catau_ccanl = 10		// Time constant for decay of intracellular Ca2+
		caiinf_ccanl = 5.e-6		// Steady-state intracellular Ca2+ concentration
		
		insert borgka
		gkabar_borgka = 0.00015		// A-type K+ conductance
		
		insert nca  			// N-type Ca2+ conductance
		gncabar_nca = 0.0008   		// check to modify- original 0.004
		
		insert lca 
		glcabar_lca = 0.005		// L-type Ca2+ conductance
		
		insert gskch
		gskbar_gskch = 0.000002		// Ca2+-dependent K (SK) conductance
		
		insert cagk2
		gkbar_cagk2 = 0.0002			// Ca2+ and Voltage-dependent K+ (BK) conductance

		Ra = 100			
		enat = 55
		ekf = -90
		ek = -90
		elca = 130
		esk = -90
		el_ichan2 = -60			//-60.06
		cao_ccanl = 2
	
	} 					// make catau slower70e-3 	cao=2 cai=50.e-6

}

obfunc connect2target() { localobj nc //$o1 target point process, optional $o2 returned NetCon
  	soma nc = new NetCon(&v(1), $o1)
  	nc.threshold = -10
  	if (numarg() == 2) { $o2 = nc } // for backward compatibility
  	return nc
}

objref syn_
proc synapses() {
  	/* E0 */   lmM1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		EC
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E1 */   lmM2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		EC
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E2 */   radM1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		CA3 Shaffer collateral
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E3 */   radM2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		CA3 Shaffer collateral
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E4 */   radT1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		CA3 Shaffer collateral
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E5 */   radT2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		CA3 Shaffer collateral
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E6 */   oriT1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		PC
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E7 */   oriT2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		PC
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* I8 */   soma syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	Neighboring basket cell
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I9 */   soma syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-A	Bistratified cell
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I10 */   oriT1 syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-A	Septum
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I11 */   oriT2 syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-A	Septum
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I12 */   oriT1 syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-B	Septum
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I13 */   oriT2 syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-B	Septum
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* E14 */   radt1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		DG granule cell
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E15 */   radt2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		DG granule cell
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
}

func is_art() { return 0 }

endtemplate CA3AACell