A 1000 cell network model for Lateral Amygdala (Kim et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:150288
1000 Cell Lateral Amygdala model for investigation of plasticity and memory storage during Pavlovian Conditioning.
Reference:
1 . Kim D, Paré D, Nair SS (2013) Mechanisms contributing to the induction and storage of Pavlovian fear memories in the lateral amygdala. Learn Mem 20:421-30 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell; Synapse; Dendrite;
Brain Region(s)/Organism: Amygdala;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hippocampus CA3 pyramidal GLU cell; Hodgkin-Huxley neuron;
Channel(s): I Na,t; I L high threshold; I A; I M; I Sodium; I Calcium; I Potassium; I_AHP; Ca pump;
Gap Junctions:
Receptor(s): AMPA; NMDA; Gaba; Dopaminergic Receptor;
Gene(s):
Transmitter(s): Dopamine; Norephinephrine;
Simulation Environment: NEURON;
Model Concept(s): Synaptic Plasticity; Short-term Synaptic Plasticity; Long-term Synaptic Plasticity; Learning; Neuromodulation;
Implementer(s): Kim, Dongbeom [dk258 at mail.missouri.edu];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; Hippocampus CA3 pyramidal GLU cell; AMPA; NMDA; Gaba; Dopaminergic Receptor; I Na,t; I L high threshold; I A; I M; I Sodium; I Calcium; I Potassium; I_AHP; Ca pump; Dopamine; Norephinephrine;
/
KimEtAl2013
README.txt
bg2inter.mod
bg2pyr.mod
ca.mod *
cadyn.mod
cal2.mod *
capool.mod *
function_TMonitor.mod *
h.mod *
im.mod
interD2pyrD_STFD.mod
interD2pyrDDA_STFD.mod
interD2pyrDDANE_STFD.mod
interD2pyrDNE_STFD.mod
interD2pyrV_STFD.mod
interD2pyrVDA_STFD.mod
interV2pyrD_STFD.mod
interV2pyrDDA_STFD.mod
interV2pyrDDANE_STFD.mod
interV2pyrDNE_STFD.mod
interV2pyrV_STFD.mod
interV2pyrVDA_STFD.mod
kadist.mod *
kaprox.mod
kdrca1.mod
kdrca1DA.mod
kdrinter.mod *
leak.mod *
leakDA.mod *
leakinter.mod *
na3.mod
na3DA.mod
nainter.mod *
pyrD2interD_STFD.mod
pyrD2interV_STFD.mod
pyrD2pyrD_STFD.mod
pyrD2pyrDDA_STFD.mod
pyrD2pyrV_STFD.mod
pyrD2pyrVDA_STFD.mod
pyrV2interD_STFD.mod
pyrV2interV_STFD.mod
pyrV2pyrD_STFD.mod
pyrV2pyrDDA_STFD.mod
pyrV2pyrV_STFD.mod
pyrV2pyrVDA_STFD.mod
sahp.mod
sahpNE.mod
shock2interD.mod
shock2interV.mod
shock2pyrD.mod
shock2pyrV.mod
tone2interD.mod
tone2interDNE.mod
tone2interV.mod
tone2interVNE.mod
tone2pyrD.mod
tone2pyrD_LAdv.mod
tone2pyrDNE.mod
tone2pyrDNE_LAdv.mod
tone2pyrV.mod
tone2pyrV_LAdd.mod
tone2pyrVNE.mod
tone2pyrVNE_LAdd.mod
BgGen.hoc
Cell_list.txt
Cell_type.txt
function_ConnectInternal.hoc
function_ConnectTwoCells.hoc
function_NetStimOR.hoc *
function_TimeMonitor.hoc *
function_ToneGen.hoc
function_ToneSignalGen_Ctx.hoc
function_ToneSignalGen_Th.hoc
interneuron_template.hoc
LA_model_main_file.hoc
LAcells_template.hoc
NM.txt
shock2Idd.txt
shock2Idv.txt
shock2LAdd.txt
shock2LAdv.txt
shockcondi.hoc
Syn_Matrix.txt
tone2Idd.txt
tone2Idd2.txt
tone2Idv.txt
tone2Idv2.txt
tone2LAdd.txt
tone2LAdd2.txt
tone2LAdv.txt
tone2LAdv2.txt
                            
:Tone to Interneuron Cells AMPA+NMDA with local Ca2+ pool

NEURON {
	POINT_PROCESS tone2interD
	USEION ca READ eca	
	NONSPECIFIC_CURRENT inmda, iampa
	RANGE initW
	RANGE Cdur_nmda, AlphaTmax_nmda, Beta_nmda, Erev_nmda, gbar_nmda, W_nmda, on_nmda, g_nmda
	RANGE Cdur_ampa, AlphaTmax_ampa, Beta_ampa, Erev_ampa, gbar_ampa, W, on_ampa, g_ampa
	RANGE eca, ICan, P0n, fCan, tauCa, Icatotal
	RANGE ICaa, P0a, fCaa
	RANGE Cainf, pooldiam, z
	RANGE lambda1, lambda2, threshold1, threshold2
	RANGE fmax, fmin, Wmax, Wmin, maxChange, normW, scaleW, srcid, destid
	RANGE pregid,postgid
}

UNITS {
	(mV) = (millivolt)
        (nA) = (nanoamp)
	(uS) = (microsiemens)
	FARADAY = 96485 (coul)
	pi = 3.141592 (1)
}

PARAMETER {

	srcid = -1 (1)
	destid = -1 (1)

	Cdur_nmda = 16.7650 (ms)
	AlphaTmax_nmda = .2659 (/ms)
	Beta_nmda = 0.008 (/ms)
	Erev_nmda = 0 (mV)
	gbar_nmda = .5e-3 (uS)

	Cdur_ampa = 0.713 (ms)
	AlphaTmax_ampa = 10.1571 (/ms)
	Beta_ampa = 0.4167 (/ms)
	Erev_ampa = 0 (mV)
	gbar_ampa = 1e-3 (uS)

	eca = 120

	Cainf = 50e-6 (mM)
	pooldiam =  1.8172 (micrometer)
	z = 2

	tauCa = 50 (ms)
	P0n = .015
	fCan = .024
	
	P0a = .0015 : .001
	fCaa = .024
	
	lambda1 = 3 : 4 : 3 : 4 : 5 : 7 : 10 
	lambda2 = 0.01 
	threshold1 = 0.45 : 0.5 : 0.55 : .4 : 0.35
	threshold2 = 0.50 : 0.55 : 0.6 : 0.45 : 0.4
	
	initW = 4.5 : 6 : 8 : 7.5 : 6 : 5 : 4 : 5 : 4 : 3 : 4	
	fmax = 4.3 : 3.8 : 4 : 3
	fmin = .8		
	
	GAPstart1 = 96000
	GAPstop1 = 196000		
	
}

ASSIGNED {
	v (mV)

	inmda (nA)
	g_nmda (uS)
	on_nmda
	W_nmda

	iampa (nA)
	g_ampa (uS)
	on_ampa
	W

	t0 (ms)

	ICan (mA)
	ICaa (mA)
	Afactor	(mM/ms/nA)
	Icatotal (mA)

	dW_ampa
	Wmax
	Wmin
	maxChange
	normW
	scaleW
	
	pregid
	postgid
}

STATE { r_nmda r_ampa capoolcon }

INITIAL {
	on_nmda = 0
	r_nmda = 0
	W_nmda = initW

	on_ampa = 0
	r_ampa = 0
	W = initW

	t0 = -1

	Wmax = fmax*initW
	Wmin = fmin*initW
	maxChange = (Wmax-Wmin)/10
	dW_ampa = 0

	capoolcon = Cainf
	Afactor	= 1/(z*FARADAY*4/3*pi*(pooldiam/2)^3)*(1e6)
}

BREAKPOINT {
	SOLVE release METHOD cnexp
}

DERIVATIVE release {
	if (t0>0) {
		if (t-t0 < Cdur_nmda) {
			on_nmda = 1
		} else {
			on_nmda = 0
		}
		if (t-t0 < Cdur_ampa) {
			on_ampa = 1
		} else {
			on_ampa = 0
		}
	}
	r_nmda' = AlphaTmax_nmda*on_nmda*(1-r_nmda)-Beta_nmda*r_nmda
	r_ampa' = AlphaTmax_ampa*on_ampa*(1-r_ampa)-Beta_ampa*r_ampa

	dW_ampa = eta(capoolcon)*(lambda1*omega(capoolcon, threshold1, threshold2)-lambda2*GAP1(GAPstart1, GAPstop1)*W)*dt

	: Limit for extreme large weight changes
	if (fabs(dW_ampa) > maxChange) {
		if (dW_ampa < 0) {
			dW_ampa = -1*maxChange
		} else {
			dW_ampa = maxChange
		}
	}

	:Normalize the weight change
	normW = (W-Wmin)/(Wmax-Wmin)
	if (dW_ampa < 0) {
		scaleW = sqrt(fabs(normW))
	} else {
		scaleW = sqrt(fabs(1.0-normW))
	}

	W = W + dW_ampa*scaleW
	
	:Weight value limits
	if (W > Wmax) { 
		W = Wmax
	} else if (W < Wmin) {
 		W = Wmin
	}

	g_nmda = gbar_nmda*r_nmda
	inmda = W_nmda*g_nmda*(v - Erev_nmda)*sfunc(v)

	g_ampa = gbar_ampa*r_ampa
	iampa = W*g_ampa*(v - Erev_ampa)

	ICan = P0n*g_nmda*(v - eca)*sfunc(v)
	ICaa = P0a*W*g_ampa*(v-eca)/initW	
	Icatotal = ICan + ICaa
	capoolcon'= -fCan*Afactor*Icatotal + (Cainf-capoolcon)/tauCa
}

NET_RECEIVE(dummy_weight) {
	t0 = t
}

:::::::::::: FUNCTIONs and PROCEDUREs ::::::::::::

FUNCTION sfunc (v (mV)) {
	UNITSOFF
	sfunc = 1/(1+0.33*exp(-0.06*v))
	UNITSON
}

FUNCTION eta(Cani (mM)) {
	LOCAL taulearn, P1, P2, P4, Cacon
	P1 = 0.1
	P2 = P1*1e-4
	P4 = 1
	Cacon = Cani*1e3
	taulearn = P1/(P2+Cacon*Cacon*Cacon)+P4
	eta = 1/taulearn*0.001
}

FUNCTION omega(Cani (mM), threshold1 (uM), threshold2 (uM)) {
	LOCAL r, mid, Cacon
	Cacon = Cani*1e3
	r = (threshold2-threshold1)/2
	mid = (threshold1+threshold2)/2
	if (Cacon <= threshold1) { omega = 0}
	else if (Cacon >= threshold2) {	omega = 1/(1+50*exp(-50*(Cacon-threshold2)))}
	else {omega = -sqrt(r*r-(Cacon-mid)*(Cacon-mid))}
}
FUNCTION GAP1(GAPstart1 (ms), GAPstop1 (ms)) {
	LOCAL s
	if (t <= GAPstart1) { GAP1 = 1}
	else if (t >= GAPstart1 && t <= GAPstop1) {GAP1 = 1}					: During the Gap, apply lamda2*2
	else  {	GAP1 = 1}
}

Loading data, please wait...