Thalamic quiescence of spike and wave seizures (Lytton et al 1997)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:9889
A phase plane analysis of a two cell interaction between a thalamocortical neuron (TC) and a thalamic reticularis neuron (RE).
Reference:
1 . Lytton WW, Contreras D, Destexhe A, Steriade M (1997) Dynamic interactions determine partial thalamic quiescence in a computer network model of spike-and-wave seizures. J Neurophysiol 77:1679-96 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Thalamus;
Cell Type(s): Thalamus geniculate nucleus (lateral) principal neuron; Thalamus reticular nucleus cell;
Channel(s): I T low threshold;
Gap Junctions:
Receptor(s): GabaA; Glutamate;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Temporal Pattern Generation; Oscillations; Calcium dynamics;
Implementer(s): Lytton, William [billl at neurosim.downstate.edu]; Destexhe, Alain [Destexhe at iaf.cnrs-gif.fr];
Search NeuronDB for information about:  Thalamus geniculate nucleus (lateral) principal neuron; Thalamus reticular nucleus cell; GabaA; Glutamate; I T low threshold; Gaba; Glutamate;
/
lytton97
README
AMPA.mod
calciumpump_destexhe.mod *
GABAB1.mod
GABALOW.mod
gen.mod
HH_traub.mod *
IAHP_destexhe.mod
ICAN_destexhe.mod
Ih_old.mod *
IT_wang.mod
IT2_huguenard.mod
nmda.mod
passiv.mod
presyn.mod *
pulse.mod *
rand.mod
boxes.hoc *
declist.hoc *
decvec.hoc *
default.hoc *
directory
fig7.gif
geom.hoc
grvec.hoc
init.hoc
jnphys77_1679.pdf
local.hoc *
mosinit.hoc
network.hoc
nrnoc.hoc *
params.hoc
presyn.inc *
queue.inc *
run.hoc
simctrl.hoc *
snshead.inc *
synq.inc *
xtmp
                            
//  $Header: /usr/site/nrniv/simctrl/hoc/RCS/local.hoc,v 1.11 2001/09/21 21:01:50 billl Exp $
//
//  This file contains local modifications to nrnoc.hoc and default.hoc
//
//  Users should not edit nrnoc.hoc or default.hoc.  Any local 
//  changes to these files should be made in this file.

// ------------------------------------------------------------
//* MODIFICATIONS TO NRNOC.HOC
// The procedures declared here will overwrite any duplicate
// procedures in nrnoc.hoc.
// ------------------------------------------------------------

//** proc initMech: initialization of mechanism variables
proc initMech() { // Initialization of mechanism variables 
     // NOTE: if any changes are made to the NEURON block of any local mod
     //       file, the user must add the necessary inits to initMisc1() 

   // Range variables 

    forall {
      if (ismembrane("na_ion")) { 
        nai = na_init
        nai0_na_ion = na_init
      }
      
      if (ismembrane("k_ion")) {
        ki = k_init
        ki0_k_ion = k_init
      }
      
      if (ismembrane("ca_ion")) { 
        cai = ca_init
        cai0_ca_ion = ca_init
      }

    }
}

//** proc setMemb
proc setMemb() { local isum, aca, prevwarn
  prevwarn = 1e10 // flag for previous warning given

  forall {
    isum = 0.0
    if (ismembrane("Pass")) {
      if (ismembrane("na_ion"))   { isum = isum + ina   }
      if (ismembrane("k_ion"))    { isum = isum + ik    }
      if (ismembrane("ca_ion"))   { isum = isum + ica   }
      if (ismembrane("other_ion")){ isum = isum + iother}
      
      if (isum == 0) { /* passive cmp so set erev = vrest */
        erev_Pass = v
      } else {
        /* assume that g has been set and determine erev */
        if (g_Pass > 0) {
          erev_Pass = v + isum/g_Pass 
        } else {
          if (erev_Pass != v) { 
            g_Pass = isum/(erev_Pass - v) 
          }
        }
      }
      
      /* pick out the screw ups */
      if (g_Pass <= 0) {
        sectionname(section)
        printf("ERROR: bad g (%g) in segment %s.\n",g_Pass, section)  }
        if ((erev_Pass < -100 || erev_Pass > -50) && erev_Pass!=prevwarn) {
          sectionname(section)
          printf("WARNING: erev (%g) out of bounds in segment %s.\n",erev_Pass, section) 
          prevwarn = erev_Pass }
    }
    /* Alain's M-M pump */
    if (ismembrane("cad")) {
      kd_cad = cai*(-(cai * depth_cad *FARADAY) + cainf_cad * depth_cad * FARADAY - \
                    5000*ica*taur_cad - depth_cad * FARADAY*kt_cad * taur_cad)
      kd_cad = kd_cad/(cai*depth_cad*FARADAY - cainf_cad * depth_cad * FARADAY + \
                       5000*ica*taur_cad)
    }
    /* handle ca using cadecay */
    if (ismembrane("cadecay")) {
      k0_cadecay = ica
    }
    if (ismembrane("cadxp")) { 
      /* steady state : aca=pumpca/pump */
      icaex_cadxp = 0.0 /* temporary to compare with old neuron */
      aca = (k4_cadxp*cao + k1_cadxp*cai)/(k2_cadxp + k3_cadxp)
      /* set pump density to allow it to compensate incoming currents */
      pump_cadxp = -(ica+icaex_cadxp)/((1e3)*2*FARADAY*(k3_cadxp*aca - k4_cadxp*cao))
      pumpca_cadxp = aca*pump_cadxp
      printf("CA pump init: %g %g %g %g %g\n",aca,pump_cadxp,pumpca_cadxp,ica,icaex_cadxp)
    }
  }
}

//------------------------------------------------------------
//*MODIFICATIONS TO DEFAULT.HOC
//
// Vars added here may not be handled properly within nrnoc.hoc
//------------------------------------------------------------

//** String defaults

//** Simulation defaults

long_dt     = .001      // msec 

objref sfunc,tmpfile
sfunc = new StringFunctions()   // needed to use is_name()
tmpfile = new File()  // check for existence before opening a user's local.hoc file

proc write_comment () {
  tmpfile.aopen("index")
  tmpfile.printf("%s\n",$s1)
  tmpfile.close()  
}

func asin () { return atan($1/sqrt(1-$1*$1)) }
func acos () { return atan(sqrt(1-$1*$1)/$1) }

condor_run = 0  // define for compatability

Loading data, please wait...