Dentate Gyrus Feed-forward inhibition (Ferrante et al. 2009)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:124291
In this paper, the model was used to show how that FFI can change a steeply sigmoidal input-output (I/O) curve into a double-sigmoid typical of buffer systems.
Reference:
1 . Ferrante M, Migliore M, Ascoli GA (2009) Feed-forward inhibition as a buffer of the neuronal input-output relation. Proc Natl Acad Sci U S A 106:18004-9 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Dentate gyrus;
Cell Type(s): Dentate gyrus granule GLU cell; Dentate gyrus MOPP cell;
Channel(s): I Na,t; I A; I K;
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Activity Patterns; Ion Channel Kinetics; Synchronization; Spatio-temporal Activity Patterns; Action Potentials; Noise Sensitivity;
Implementer(s): Migliore, Michele [Michele.Migliore at Yale.edu]; Ferrante, Michele [mferr133 at bu.edu]; Ascoli, Giorgio A [ascoli at gmu.edu];
Search NeuronDB for information about:  Dentate gyrus granule GLU cell; GabaA; AMPA; NMDA; I Na,t; I A; I K; Gaba; Glutamate;
/
FFI
MOPP_Fig_1B_left
ichan2.mod *
kaprox.mod
kdrca1.mod
na3n.mod
Fig_1B_left.hoc
fixnseg.hoc *
mosinit.hoc
n257-noaxon.hoc
                            
load_file("nrngui.hoc")
cvode_active(0)

Vrest = -55

dt = 0.1
gna = 0.08
gkdr = 0.01
gka = 0.02
celsius = 35.0  //temperature change not implemented

Rm = 15000
Cm    = 1

RaAll= 150
RaAx = 50

numaxon=104
numsoma=6
numdend=44


xopen("n257-noaxon.hoc")
xopen("fixnseg.hoc")           

nfreq=512

objref stim,apc,b,g,tempo,nil,apct

apc = new APCount(0.5)
apc.thresh=-20





forsec "axon" {insert pas e_pas=Vrest g_pas = 1/Rm Ra=RaAx cm=Cm}
forsec "soma" {insert pas e_pas=Vrest g_pas = 1/Rm Ra=RaAll cm=Cm}
forsec "dend" {insert pas e_pas=Vrest g_pas = 1/Rm Ra=RaAll cm=Cm}




geom_nseg()
tot=0
forall {tot=tot+nseg}
distance()

maxdist=0
forsec "dend" for(x) {if (distance(x)>maxdist) {maxdist=distance(x)}}





access soma[1]

stim = new IClamp(0.5)
stim.del=10
stim.dur=200

tstop=200

access soma[1]
distance()

apc = new APCount(0.5)
apc.thresh=-20

tempo = new Vector()

soma {
apct = new NetCon(&v(0.5),nil,0,0,0)
apct.record(tempo)
}






forall {              
 insert na3 gbar_na3=gna
              insert kdr gkdrbar_kdr=gkdr
              insert kap gkabar_kap = gka
              insert pas e_pas=Vrest 
}
forsec "dend" {              
              gbar_na3=gna*0.2
              gkdrbar_kdr=gkdr*0.2
              gkabar_kap = gka*0.2
   }



b = new VBox()
b.intercept(1)
g = new Graph()
g.size(0,tstop,-80,20)
g.xaxis(1)
g.exec_menu("10% Zoom out")
g.addexpr("MOPP v_soma","soma.v(0.5)",1,1, 0.2,0.9,2)
xpanel("",1)
xbutton("init & run", "runa()")
xvalue("stim.amp")
xpanel()
b.intercept(0)
b.map()


//cvode.re_init()

proc advance() {
	fadvance()
	g.plot(t)
	g.flush()
	doNotify()
}


proc init() {
t=0



forall {ena=50 ek=-90 v=Vrest}
	finitialize(Vrest)
        fcurrent()
        forall {e_pas=Vrest+(ina+ik)/g_pas}
	cvode.re_init()
}

proc runa() {
run()
print "stim.amp ", stim.amp, "nA ==> ", (tempo.size-1)*(1000/(tempo.x[tempo.size-1]-tempo.x[0])), "Hz "
g.begin()
init()
}