Ketamine disrupts theta modulation of gamma in a computer model of hippocampus (Neymotin et al 2011)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:139421
"Abnormalities in oscillations have been suggested to play a role in schizophrenia. We studied theta-modulated gamma oscillations in a computer model of hippocampal CA3 in vivo with and without simulated application of ketamine, an NMDA receptor antagonist and psychotomimetic. Networks of 1200 multi-compartment neurons (pyramidal, basket and oriens-lacunosum moleculare, OLM, cells) generated theta and gamma oscillations from intrinsic network dynamics: basket cells primarily generated gamma and amplified theta, while OLM cells strongly contributed to theta. ..."
Reference:
1 . Neymotin SA, Lazarewicz MT, Sherif M, Contreras D, Finkel LH, Lytton WW (2011) Ketamine Disrupts Theta Modulation of Gamma in a Computer Model of Hippocampus J Neurosci . [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: Hippocampus;
Cell Type(s): Hippocampus CA3 pyramidal GLU cell; Hippocampus CA3 interneuron basket GABA cell; Hippocampus CA3 stratum oriens lacunosum-moleculare interneuron;
Channel(s): I L high threshold; I A; I K; I K,Ca;
Gap Junctions:
Receptor(s): GabaA; NMDA; Glutamate;
Gene(s): HCN1; HCN2;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Oscillations; Synchronization; Therapeutics; Pathophysiology; Schizophrenia; Information transfer; Brain Rhythms;
Implementer(s): Lazarewicz, Maciej [mlazarew at gmu.edu]; Neymotin, Sam [Samuel.Neymotin at nki.rfmh.org];
Search NeuronDB for information about:  Hippocampus CA3 pyramidal GLU cell; Hippocampus CA3 interneuron basket GABA cell; GabaA; NMDA; Glutamate; I L high threshold; I A; I K; I K,Ca; Gaba; Glutamate;
/
hpcdemo
readme.html
CA1ih.mod *
CA1ika.mod *
CA1ikdr.mod *
CA1ina.mod *
caolmw.mod *
capr.mod *
icaolmw.mod *
icapr.mod *
iholmkop.mod *
iholmw.mod *
ihpyrkop.mod *
kahppr.mod *
kaolmkop.mod *
kapyrkop.mod *
kcaolmw.mod *
kcpr.mod *
kdrbwb.mod *
kdrolmkop.mod *
kdrpr.mod *
kdrpyrkop.mod *
misc.mod *
MyExp2Syn.mod *
MyExp2SynAlpha.mod *
MyExp2SynBB.mod *
MyExp2SynNMDA.mod *
MyExp2SynNMDABB.mod *
nafbwb.mod *
nafolmkop.mod *
nafpr.mod *
nafpyrkop.mod *
stats.mod
vecst.mod *
wrap.mod *
aux_fun.inc *
declist.hoc *
decmat.hoc *
decnqs.hoc *
decvec.hoc *
default.hoc *
drline.hoc *
geom.hoc *
geom.py *
grvec.hoc *
init.hoc *
labels.hoc *
local.hoc *
misc.h *
mosinit.py
network.py *
nqs.hoc *
nqs_utils.hoc *
nrnoc.hoc *
params.py
pyinit.py *
run.py
screenshot.png
simctrl.hoc *
stats.hoc *
syncode.hoc *
xgetargs.hoc *
                            
: $Id: MyExp2SynNMDABB.mod,v 1.4 2010/12/13 21:28:02 samn Exp $ 
NEURON {
:  THREADSAFE
  POINT_PROCESS MyExp2SynNMDABB
  RANGE tau1, tau2, e, i, iNMDA, s, sNMDA, r, tau1NMDA, tau2NMDA, Vwt, smax, sNMDAmax
  NONSPECIFIC_CURRENT i, iNMDA
}

UNITS {
  (nA) = (nanoamp)
  (mV) = (millivolt)
  (uS) = (microsiemens)
}

PARAMETER {
  tau1     =   0.1 (ms) <1e-9,1e9>
  tau2     =  10 (ms) <1e-9,1e9>	
  tau1NMDA = 15  (ms)
  tau2NMDA = 150 (ms)
  e        = 0	(mV)
  mg       = 1
  r        = 1
  smax     = 1e9 (1)
  sNMDAmax = 1e9 (1)
  
  Vwt   = 0 : weight for inputs coming in from vector
}

ASSIGNED {
  v       (mV)
  i       (nA)
  iNMDA   (nA)
  s       (1)
  sNMDA   (1)
  mgblock (1)
  factor  (1)
  factor2 (1)
	
  etime (ms)
}

STATE {
  A  (1)
  B  (1)
  A2 (1)
  B2 (1)
}

INITIAL {

  LOCAL tp
  
  Vwt = 0 : testing

  if (tau1/tau2 > .9999) {
    tau1 = .9999*tau2
  }
  A = 0
  B = 0	
  tp = (tau1*tau2)/(tau2 - tau1) * log(tau2/tau1)
  factor = -exp(-tp/tau1) + exp(-tp/tau2)
  factor = 1/factor
  
  if (tau1NMDA/tau2NMDA > .9999) {
    tau1NMDA = .9999*tau2NMDA
  }
  A2 = 0
  B2 = 0	
  tp = (tau1NMDA*tau2NMDA)/(tau2NMDA - tau1NMDA) * log(tau2NMDA/tau1NMDA)
  factor2 = -exp(-tp/tau1NMDA) + exp(-tp/tau2NMDA)
  factor2 = 1/factor2  
}

BREAKPOINT {
  SOLVE state METHOD cnexp
  : Jahr Stevens 1990 J. Neurosci
  mgblock = 1.0 / (1.0 + 0.28 * exp(-0.062(/mV) * v) )
  s     = B  - A
  sNMDA = B2 - A2
  if (s    >smax)     {s    =smax    }: saturation
  if (sNMDA>sNMDAmax) {sNMDA=sNMDAmax}: saturation
  i     = s     * (v - e) 
  iNMDA = sNMDA * (v - e) * mgblock
}

DERIVATIVE state {
  A'  = -A/tau1
  B'  = -B/tau2	
  A2' = -A2/tau1NMDA
  B2' = -B2/tau2NMDA
}

NET_RECEIVE(w (uS)) {LOCAL ww
  ww=w
  :printf("NMDA Spike: %g\n", t)
  if(r>=0){ : if r>=0, g = AMPA + NMDA*r
    A  = A  + factor *ww
    B  = B  + factor *ww
    A2 = A2 + factor2*ww*r
    B2 = B2 + factor2*ww*r
  }else{
    if(r>-1000){ : if r>-1, g = NMDA*r  
      A2 = A2 - factor2*ww*r
      B2 = B2 - factor2*ww*r
    }
    : if r<0 and r<>-1, g = 0
  }
}