Gamma genesis in the basolateral amygdala (Feng et al 2019)

 Download zip file 
Help downloading and running models
Accession:247968
Using in vitro and in vivo data we develop the first large-scale biophysically and anatomically realistic model of the basolateral amygdala nucleus (BL), which reproduces the dynamics of the in vivo local field potential (LFP). Significantly, it predicts that BL intrinsically generates the transient gamma oscillations observed in vivo. The model permitted exploration of the poorly understood synaptic mechanisms underlying gamma genesis in BL, and the model's ability to compute LFPs at arbitrary numbers of recording sites provided insights into the characteristics of the spatial properties of gamma bursts. Furthermore, we show how gamma synchronizes principal cells to overcome their low firing rates while simultaneously promoting competition, potentially impacting their afferent selectivity and efferent drive, and thus emotional behavior.
Reference:
1 . Feng F, Headley DB , Amir A, Kanta V, Chen Z, Pare D, Nair S (2019) Gamma oscillations in the basolateral amygdala: biophysical mechanisms and computational consequences eNeuro
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Extracellular; Synapse; Dendrite; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Amygdala;
Cell Type(s): 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; I h; I Na,p; I K;
Gap Junctions: Gap junctions;
Receptor(s): AMPA; NMDA; Gaba; Dopaminergic Receptor;
Gene(s):
Transmitter(s): Dopamine; Norephinephrine;
Simulation Environment: NEURON;
Model Concept(s): Oscillations; Gamma oscillations; Short-term Synaptic Plasticity;
Implementer(s): Feng, Feng [ffvxb at mail.missouri.edu];
Search NeuronDB for information about:  AMPA; NMDA; Gaba; Dopaminergic Receptor; I Na,p; I Na,t; I L high threshold; I A; I K; I M; I h; I Sodium; I Calcium; I Potassium; I_AHP; Ca pump; Dopamine; Norephinephrine;
/
FengEtAl2019
input
readme.txt
bg2pyr.mod
ca.mod *
cadyn.mod *
cal2.mod *
capool.mod
function_TMonitor.mod *
gap.mod *
Gfluct_new_exc.mod
Gfluct_new_inh.mod
h.mod *
halfgap.mod
im.mod *
interD2interD_STFD_new.mod
interD2pyrD_STFD_new.mod
kadist.mod
kaprox.mod *
kdrca1.mod *
kdrca1DA.mod *
kdrinter.mod *
leak.mod *
leakDA.mod *
leakinter.mod *
na3.mod *
na3DA.mod *
nainter.mod *
nap.mod *
nat.mod *
pyrD2interD_STFD.mod
pyrD2pyrD_STFD_new.mod
sahp.mod *
sahpNE.mod *
vecevent.mod
xtra.mod
xtra_imemrec.mod
BL_main.hoc
BLcells_template_LFP_segconsider_all_Iinject_recordingimembrane.hoc
function_calcconduc.hoc
function_ConnectInputs_invivo_op.hoc
function_ConnectInternal_gj_simplify.hoc
function_ConnectInternal_simplify_online_op.hoc
function_ConnectTwoCells.hoc
function_LoadMatrix.hoc
function_NetStimOR.hoc *
function_TimeMonitor.hoc *
interneuron_template_gj_LFP_Iinject_recordingimembrane.hoc
                            
: $Id: xtra.mod,v 1.4 2014/08/18 23:15:25 ted Exp ted $

COMMENT
This mechanism is intended to be used in conjunction 
with the extracellular mechanism.  Pointers specified 
at the hoc level must be used to connect the 
extracellular mechanism's e_extracellular and i_membrane 
to this mechanism's ex and im, respectively.

xtra does three useful things:

1. Serves as a target for Vector.play() to facilitate 
extracellular stimulation.  Assumes that one has initialized 
a Vector to hold the time sequence of the stimulus current.
This Vector is to be played into the GLOBAL variable is 
(GLOBAL so only one Vector.play() needs to be executed), 
which is multiplied by the RANGE variable rx ("transfer 
resistance between the stimulus electrode and the local 
node").  This product, called ex in this mechanism, is the 
extracellular potential at the local node, i.e. is used to 
drive local e_extracellular.

2. Reports the contribution of local i_membrane to the 
total signal that would be picked up by an extracellular 
recording electrode.  This is computed as the product of rx, 
i_membrane (called im in this mechanism), and the surface area 
of the local segment, and is reported as er.  The total 
extracellularly recorded potential is the sum of all er_xtra 
over all segments in all sections, and is to be computed at 
the hoc level, e.g. with code like

func fieldrec() { local sum
  sum = 0
  forall {
    if (ismembrane("xtra")) {
      for (x,0) sum += er_xtra(x)
    }
  }
  return sum
}

Bipolar recording, i.e. recording the difference in potential 
between two extracellular electrodes, can be achieved with no 
change to either this NMODL code or fieldrec(); the values of 
rx will reflect the difference between the potentials at the 
recording electrodes caused by the local membrane current, so 
some rx will be negative and others positive.  The same rx 
can be used for bipolar stimulation.

Multiple monopolar or bipolar extracellular recording and 
stimulation can be accommodated by changing this mod file to 
include additional rx, er, and is, and changing fieldrec() 
to a proc.

3. Allows local storage of xyz coordinates interpolated from 
the pt3d data.  These coordinates are used by hoc code that 
computes the transfer resistance that couples the membrane 
to extracellular stimulating and recording electrodes.


Prior to NEURON 5.5, the SOLVE statement in the BREAKPOINT block 
used METHOD cvode_t so that the adaptive integrators wouldn't miss 
the stimulus.  Otherwise, the BREAKPOINT block would have been called 
_after_ the integration step, rather than from within cvodes/ida, 
causing this mechanism to fail to deliver a stimulus current 
when the adaptive integrator is used.

With NEURON 5.5 and later, this mechanism abandons the BREAKPOINT 
block and uses the two new blocks BEFORE BREAKPOINT and  
AFTER SOLVE, like this--

BEFORE BREAKPOINT { : before each cy' = f(y,t) setup
  ex = is*rx*(1e6)
}
AFTER SOLVE { : after each solution step
  er = (10)*rx*im*area
}

This ensures that the stimulus potential is computed prior to the 
solution step, and that the recorded potential is computed after.
ENDCOMMENT

NEURON {
	SUFFIX xtraimemrec
	RANGE rx, er
	RANGE x, y, z,LFPtemp
	GLOBAL is,LFP
	POINTER im, ex:
}

PARAMETER {
	: default transfer resistance between stim electrodes and axon
	rx = 1 (megohm) : mV/nA
	x = 0 (1) : spatial coords
	y = 0 (1)
	z = 0 (1)
}

ASSIGNED {
	v (millivolts)
	is (milliamp)
	ex (millivolts)
	im (milliamp/cm2)
	er (microvolts)
	area (micron2)
	LFP (millivolts)
   LFPtemp(millivolts)
}

INITIAL {
	ex = is*rx*(1e6)
	er = (10)*0.1*im*area
	LFP = LFP + er
	LFPtemp=LFP
: this demonstrates that area is known
: UNITSOFF
: printf("area = %f\n", area)
: UNITSON
}

: Use BREAKPOINT for NEURON 5.4 and earlier
: BREAKPOINT {
:	SOLVE f METHOD cvode_t
: }
:
: PROCEDURE f() {
:	: 1 mA * 1 megohm is 1000 volts
:	: but ex is in mV
:	ex = is*rx*(1e6)
:	er = (10)*rx*im*area
: }

: With NEURON 5.5 and later, abandon the BREAKPOINT block and PROCEDURE f(),
: and instead use BEFORE BREAKPOINT and AFTER SOLVE

BEFORE BREAKPOINT { : before each cy' = f(y,t) setup
  ex = is*rx*(1e6)
  LFP = 0
  LFPtemp=LFP
  :print LFPtemp
}
AFTER SOLVE { : after each solution step
  er = (10)*0.1*im*area
  LFP = LFP + er
  LFPtemp=LFP
  :print LFPtemp
}


Loading data, please wait...