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
                            
// $Id: decvec.hoc,v 1.63 2001/06/14 21:13:40 billl Exp $

proc decvec() {}

//* Declarations
objref ind, vec, vec0, vec1, tmpvec, vrtmp, veclist
objref tmpobj, XO, YO, rdm
load_file("declist.hoc")  // declare list iterators
print "Loading decvec"

{ MSONUM=100 MSOSIZ=100 msomax=0 msoptr=0 objref mso[MSONUM] }
double x[4],y[4]
xx=0 // declare a scalar 
ind = new Vector(100)
vec = new Vector(100)
vec0 = new Vector()
vec1 = new Vector()
vrtmp = new Vector()
veclist = new List()
rdm = new Random()

if (! xwindows) {
  objref graphItem
  strdef temp_string_, temp_string2_
}
strdef xtmp
if (wopen("xtmp")) xtmp = "xtmp" else xtmp="/tmp/xtmp"  // scratch file to save system output to

//* stuff that doesn't belong here
objref dir
dir = new List()
//** dired(list,file) - put together list of files matching 'file', calls 'ls -1 file'
//   dired(list,file,1) file name to read for list of files
proc dired () {
  if (numarg()==0) { print "dired(list,filename) adds the filename to list (use wildcards)"
    return }
  if (numarg()==3) { 
    tmpfile.ropen($s2)
  } else {
    sprint(temp_string_,"ls -1R %s > %s",$s2,xtmp) // list in order of creation time
    system(temp_string_)
    tmpfile.ropen(xtmp)
  }
  while (tmpfile.scanstr(temp_string_) != -1) {
    tmpobj=new String()
    tmpobj.s=temp_string_
    $o1.append(tmpobj)
    tmpfile.gets(temp_string_)  // get rid of the rest of the line
  }
}

//** lbrw(list,name,action) is used to put up a browser
// note action given without '()'
proc lbrw () {
  $o1.browser($s2,"s")
  sprint($s2,"%s()",$s2)
  $o1.accept_action($s2)
}

//* vector iterator vtr
// usage 'for vtr(&x, vec) { print x }'
iterator vtr() { local i
  if (numarg()==3) {$&3=0} else {i1 = 0}
  for i = 0, $o2.size() - 1 {
    $&1 = $o2.x[i]
    iterator_statement
    if (numarg()==3) { $&3+=1 } else { i1+=1 }
  }
}

//* vector iterator vtr2, treat two vectors as pairs
// usage 'for vtr2(&x, &y, vec1, vec2) { print x,y }'
iterator vtr2() { local i
  if ($o3.size != $o4.size) { print "vtr2 ERROR: sizes differ." return }
  if (numarg()==5) {$&5=0} else {i1 = 0}
  for i = 0, $o3.size() - 1 {
    $&1 = $o3.x[i]
    $&2 = $o4.x[i]
    iterator_statement
    if (numarg()==5) { $&5+=1 } else { i1+=1 }
  }
}

//* iterator lvtr, step through a list and a vector together
// usage 'for lvtr(XO, &x, list, vec) { print XO,x }'
iterator lvtr() { local i
  if ($o3.count <  $o4.size) { print "lvtr ERROR: vecsize>listsize." return }
  if ($o3.count != $o4.size) { print "lvtr WARNING: sizes differ." }
  if (numarg()==5) {$&5=0} else {i1 = 0}
  for i = 0, $o4.size()-1 {
    $o1 = $o3.object(i)
    $&2 = $o4.x[i]
    iterator_statement
    if (numarg()==5) { $&5+=1 } else { i1+=1 }
  }
}

//* other iterators: case, scase, ocase
iterator case() { local i
  i1 = 0
  for i = 2, numarg() {
    $&1 = $i
    iterator_statement
    i1+=1
  }
}

iterator scase() { local i
  i1 = 0
  for i = 1, numarg() {
    temp_string_ = $si
    iterator_statement
    i1+=1
  }
}

// eg for scase2("a","b","c","d","e","f") print temp_string_,temp_string2_
iterator scase2() { local i
  i1 = 0
  if (numarg()%2==1) {print "ERROR: scase2 needs even number of args" return }
  for i = 1, numarg() {
    tmpobj=new String2()
    tmpobj.s=$si i+=1  tmpobj.t=$si
    iterator_statement
    i1+=1
  }
}

iterator ocase() { local i
  i1 = 0
  for i = 1, numarg() {
    XO = $oi
    iterator_statement
  }
  i1+=1
}

//* nind(targ,data,ind) fill the target vector with data NOT index by ind (opposite of v.index)
proc nind () { 
  if (! eqobj($o1,$o2)) $o1.copy($o2)
  $o1.indset($o3,-1e20)
  $o1.where($o1,">",-1e20)
}

//* vlk(vec)
// vlk(vec,max)
// vlk(vec,min,max)
// prints out a segment of a vector
vlk_width=20
proc vlk () { local i,j,min,max,dual,wdh,nonl
  j=dual=0 nl=1 wdh=vlk_width
  if (numarg()==1) { min=0 max=$o1.size-1 }
  if (numarg()==2) if ($2==0) { nl=min=0 max=$o1.size-1 // vlk(vec,0) flag to suppress new lines
      } else if ($2>0) { min=0 max=$2-1 } else { min=$o1.size+$2 max=$o1.size-1 }
  if (numarg()==3) if ($3>-1) { min=$2 max=$3 } else { min=0 max=$o1.size-1 dual=1 }
  if (numarg()==4) { min=$3 max=$4 dual=1 }
  if (min<0) min=0
  if (max>$o1.size-1) max=$o1.size-1
  if (dual) if (max>$o2.size-1) max=$o2.size-1
  for i=min,max { 
    if (dual) printf("%g:%g ",$o1.x[i],$o2.x[i]) else printf("%g ",$o1.x[i]) 
    if ((j=j+1)%vlk_width==0 && nl) { print "" }
  }
  if (nl) print ""
}

//* vprf() prints 1,2 or 3 vectors in parallel to output file
proc vprf () { local x2
  if (! tmpfile.isopen()) {
    print "Writing to temp file 'temp'"
    tmpfile.wopen("temp")
  }
  if (numarg()==1) { 
    for vtr(&x,$o1) { tmpfile.printf("%g\n",x) }
  } else if (numarg()==2) { 
    for vtr2(&x,&y,$o1,$o2) { tmpfile.printf("%g %g\n",x,y) }
  } else if (numarg()==3) { 
    for vtr2(&x,&y,$o1,$o2,&ii) { x2=$o3.x[ii] tmpfile.printf("%g %g %g\n",x,y,x2) }
  }
  tmpfile.close
}

//* vpr() prints 1,2 or 3 vectors in parallel to STDOUT
proc vpr () { local x2
  if (numarg()==1) { 
    for vtr(&x,$o1) { printf("%g ",x) }
  } else if (numarg()==2) { 
    for vtr2(&x,&y,$o1,$o2) { printf("%g:%g ",x,y) }
  } else if (numarg()==3) { 
    for vtr2(&x,&y,$o1,$o2,&ii) { x2=$o3.x[ii] printf("%g:%g:%g ",x,y,x2) }
  }
  print ""
}

//* readvec(vec) read from line
proc readvec () { 
  $o1.resize(0)
  while (read(xx)) $o1.append(xx)
  vlk($o1)
}
  
//* popvec(), savenums, readnums, vecsprint, savevec
proc pushvec () { local i // same as .append, retained for compatability
  for i=2, numarg() $o1.append($i)
}

proc revec () { local i // clear vector then append
  $o1.resize(0)
  for i=2, numarg() $o1.append($i)
}

// savenums(x[,y,...]) save numbers to tmpfile via a vector
proc savenums () { local vv,i
  vv=allocvecs(1)
  for i=1, numarg() mso[vv].append($i)
  mso[vv].vwrite(tmpfile)
  dealloc(vv)
}

// readnums(&x[,&y...]) recover nums from tmpfile via a vector
proc readnums () { local vv,i
  vv=allocvecs(1)
  mso[vv].vread(tmpfile)
  if (numarg()!=mso[vv].size) { print "Error: size in readnums" return }
  for i=1,numarg() $&i = mso[vv].x[i-1]
  dealloc(vv)
}

//* remove last entry
func popvec () { local sz, ret
  sz = $o1.size-1
  ret = $o1.x[sz]
  $o1.resize[sz]
  return ret
}

//* chkvec (look at last entry)
func chkvec () { if ($o1.size>0) return $o1.x[$o1.size-1] else return -1e10 }

// vecsprint(strdef,vec)
proc vecsprint () { local ii
  if ($o2.size>100) { return }
  for ii=0,$o2.size-1 { sprint($s1,"%s %g ",$s1,$o2.x[ii]) }
}

// savevec([list,]vec1[,vec2,...]) add vector onto veclist or other list if given as 1st arg
proc savevec () { local i,flag,beg
  if (isobj($o1,"List")) beg=2 else beg=1
  for i=beg, numarg() { 
    tmpvec = new Vector($oi.size)
    tmpvec.copy($oi)
    if (beg==2) $o1.append(tmpvec) else veclist.append(tmpvec)
    tmpvec = nil
  }
}

// tvecl() -- transpose veclist
proc tvecl () { local cnt,sz,err,ii,p
  err = 0
  cnt = veclist.count
  sz = veclist.object(0).size
  for ltr(XO,veclist) if (XO.size!=sz) err=i1
  if (err) { print "Wrong size vector is #",i1 return }
  p = allocvecs(1,cnt)  mso[p].resize(cnt)
  for ii=0,sz-1 {
    for jj=0,cnt-1 {
      XO=veclist.object(jj)
      mso[p].x[jj] = XO.x[ii]
    }
    savevec(mso[p])
  }
  for (jj=cnt-1;jj>=0;jj-=1) veclist.remove(jj)
}  
  

//* vinsect(v1,v2,v3) -- v1 gets intersection (common members) of v2,v3
//  replaced by v.insct() in vecst.mod
proc vinsect () {
  $o1.resize(0)
  for vtr(&x,$o2) for vtr(&y,$o3) if (x==y) $o1.append(x)
}

//* vecsplit(vec,vec1,vec2[,vec3,...])
// splits vec into other vecs given
proc vecsplit () { local num,ii,i
  num = numarg()-1 // how many
  for i=2,numarg() $oi.resize(0)
  for (ii=0;ii<$o1.size;ii+=num) {
    for i=2,numarg() if (ii+i-2<$o1.size) $oi.append($o1.x[ii+i-2])
  }
}

//* vecsort(vec,vec1,vec2[,vec3,...])
// sorts n vecs including first vec by first one
proc vecsort () { local i,inv,scr,narg
  narg=numarg()
  if (narg<2 || narg>10) {print "Wrong #args in decvec.hoc:vecsort" return}
  scr=inv=allocvecs(2) scr+=1
  $o1.sortindex(mso[inv])
  mso[scr].resize(mso[inv].size)
  sprint(temp_string_,"%s.fewind(%s,%s,%s",mso[scr],mso[inv],$o1,$o2)
  for i=3,narg sprint(temp_string_,"%s,%s",temp_string_,$oi)
  sprint(temp_string_,"%s)",temp_string_)
  execute(temp_string_)
  dealloc(inv)
}

//* vdelind()  -- delete a single index
proc vdelind () { local i,iin
  iin = $2
  if (iin<0) iin=$o1.size+iin
  if (iin>$o1.size-1 || iin<0) {
    printf("vdelind Error: index %d doesn't exist.\n",iin) return }
  if (iin<$o1.size-1) $o1.copy($o1,iin,iin+1,$o1.size-1)
  $o1.resize($o1.size-1)
}

//* mkveclist(num[,sz]) recreate veclist to have NUM vecs each of size SZ (or MSOSIZ)
proc mkveclist () { local ii,num,sz,diff
  num=$1 
  diff = num-veclist.count
  if (numarg()==2) { sz=$2 } else { sz = MSOSIZ }
  if (diff>0) {
    for ii=0,diff-1 {
    tmpvec = new Vector(sz)
    veclist.append(tmpvec)
    }
  } else if (diff<0) {
    for (ii=veclist.count-1;ii>=num;ii=ii-1) { veclist.remove(ii) }
  }
  for ltr(XO,veclist) { XO.resize(sz) }
}

//* allocvecs
// create temp set of vectors on mso
// returns starting point on mso 
// eg p = allocvecs(3)
// access these vectors by mso[p+0] ... [p+2]
func allocvecs () { local ii, llen, sz, newv
  if (numarg()==0) { print "p=allocvecs(#), access with mso[p], mso[p+1]..." return 0}
  newv = $1
  if (numarg()==2) { sz=$2 } else { sz=MSOSIZ }
  llen = msoptr
  for ii=msomax,msoptr+newv-1 { // may need new vectors
    if (ii>=MSONUM) { print "alloc ERROR: MSONUM exceeded." return 0 }
    mso[ii] = new Vector(sz)
  }
  for ii=0,newv-1 {
    mso[msoptr].resize(0)
    msoptr = msoptr+1
  }
  if (msomax<msoptr) msomax = msoptr
  return llen
}

//** dealloc(start)
// remove temp set of vectors from mso
proc dealloc () { local ii,min
  if (numarg()==0) { min = 0 } else { min = $1 }
  msomax = msoptr
  msoptr = min
}

//* vecconcat(vec1,vec2,...)
// destructive: concatenates all vecs onto vec1
proc vecconcat () { local i
  if (numarg()<2) { print "vecconcat(v1,v2,...) puts all into v1" return }
  for i=2,numarg() {
    $o1.copy($oi,$o1.size)
  }
}
  
//** vecelim(v1,v2)  eliminates items in v1 given by index vec v2
proc vecelim () {
  for vtr(&x,$o2) { $o1.x[x]= -1e20 }
  $o1.where($o1,"!=",-1e20)
}

//** veceq()  like vec.eq but don't have to be same size and shows discrepency
func veceq () { local sz1,sz2,eq,beg,ii,jj,kk
  sz1=$o1.size sz2=$o2.size
  if (numarg()==3) beg=$3 else beg=0
  if (sz1!=sz2) printf("%s %d; %s %d\n",$o1,sz1,$o2,sz2)
  ii=0 jj=beg
  while (ii<sz1 && jj<sz2) {
    if ($o1.x[ii]!=$o2.x[jj]) { 
      eq=0
      printf("Differ at %d %d\n",ii,jj) 
      for kk=-10,10 if ((ii+kk)>=0 && (ii+kk)<sz1 && (jj+kk)>=0 && (jj+kk)<sz2) {
        printf("(%d)%g:(%d)%g ",(ii+kk),$o1.x[ii+kk],(jj+kk),$o2.x[jj+kk])  }
      print ""
      break 
    } else eq=1
    ii+=1 jj=ii+beg
  }
  return eq
}

//* isstring() determine if object $o1 is of type string, if so return the string in $s2
func isstring () {
  sprint($s2,"%s",$o1)
  if (sfunc.substr($s2,"String")==0) {
    sprint($s2,"%s",$o1.s)
    return 1
  } else {
    sprint($s2,"%s",$o1)
    return 0
  }
}

//** isassigned() checks whether an object is Null
func isassigned () {
  sprint(temp_string_,"%s",$o1)
  if (sfunc.substr(temp_string_,"NULLobject")==0) {
    return 0
  } else {
    return 1
  }
}

//** eqobj(o1,o2) checks whether 2 objects are the same
func eqobj () {	return object_id($o1) == object_id($o2) }

//** isobj(o1,s2) checks whether object $o1 is of type $s2
func isobj () {
  sprint(temp_string_,"%s",$o1)
  if (sfunc.substr(temp_string_,$s2)==0) {
    return 1
  } else {
    return 0
  }
}

// destructive of $s1
func str2num () { local ii
  sscanf($s1,"%d",&x)
  return x
}

// like perl chop -- removes the last character
proc chop () { sfunc.left($s1,sfunc.len($s1)-1) }

// newlst() puts a newline in the middle of a string
proc newlst () { local l
  if (numarg()>1) l=$2 else l=int(sfunc.len($s1)/2)
  temp_string_=$s1
  temp_string2_=$s1
  sfunc.left(temp_string_,l)
  sfunc.right(temp_string2_,l)
  sprint($s1,"%s\n%s",temp_string_,temp_string2_)
}

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]

References and models cited by this paper

References and models that cite this paper

Avanzini G, de Curtis M, Panzica F, Spreafico R (1989) Intrinsic properties of nucleus reticularis thalami neurones of the rat studied in vitro. J Physiol 416:111-22 [PubMed]

Bal T, McCormick DA (1993) Mechanisms of oscillatory activity in guinea-pig nucleus reticularis thalami in vitro: a mammalian pacemaker. J Physiol 468:669-91 [PubMed]

Contreras D, Steriade M (1996) Spindle oscillation in cats: the role of corticothalamic feedback in a thalamically generated rhythm. J Physiol 490 ( Pt 1):159-79 [PubMed]

Coulter DA, Huguenard JR, Prince DA (1989) Calcium currents in rat thalamocortical relay neurones: kinetic properties of the transient, low-threshold current. J Physiol 414:587-604 [PubMed]

Crunelli V, Lightowler S, Pollard CE (1989) A T-type Ca2+ current underlies low-threshold Ca2+ potentials in cells of the cat and rat lateral geniculate nucleus. J Physiol 413:543-61 [PubMed]

Davies CH, Davies SN, Collingridge GL (1990)

Deschaenes M, Madariaga-Domich A, Steriade M (1985) Dendrodendritic synapses in the cat reticularis thalami nucleus: a structural basis for thalamic spindle synchronization. Brain Res 334:165-8 [PubMed]

Destexhe A, Babloyantz A, Sejnowski TJ (1993) Ionic mechanisms for intrinsic slow oscillations in thalamic relay neurons. Biophys J 65:1538-52 [PubMed]

Destexhe A, Bal T, McCormick DA, Sejnowski TJ (1996) Ionic mechanisms underlying synchronized oscillations and propagating waves in a model of ferret thalamic slices. J Neurophysiol 76:2049-70 [Journal] [PubMed]

   Thalamocortical and Thalamic Reticular Network (Destexhe et al 1996) [Model]

Destexhe A, Contreras D, Sejnowski TJ, Steriade M (1994) Modeling the control of reticular thalamic oscillations by neuromodulators. Neuroreport 5:2217-20 [PubMed]

Destexhe A, Contreras D, Sejnowski TJ, Steriade M (1994) A model of spindle rhythmicity in the isolated thalamic reticular nucleus. J Neurophysiol 72:803-18 [Journal] [PubMed]

   Thalamic Reticular Network (Destexhe et al 1994) [Model]

Destexhe A, Contreras D, Steriade M, Sejnowski TJ, Huguenard JR (1996) In vivo, in vitro, and computational analysis of dendritic calcium currents in thalamic reticular neurons. J Neurosci 16:169-85 [Journal] [PubMed]

   [1 reconstructed morphology on NeuroMorpho.Org]
   Thalamic reticular neurons: the role of Ca currents (Destexhe et al 1996) [Model]

Destexhe A, Mainen ZF, Sejnowski TJ (1994) Synthesis of models for excitable membranes, synaptic transmission and neuromodulation using a common kinetic formalism. J Comput Neurosci 1:195-230 [Journal] [PubMed]

   Application of a common kinetic formalism for synaptic models (Destexhe et al 1994) [Model]
   Kinetic synaptic models applicable to building networks (Destexhe et al 1998) [Model]

Destexhe A, McCormick DA, Sejnowski TJ (1993) A model for 8-10 Hz spindling in interconnected thalamic relay and reticularis neurons. Biophys J 65:2473-7 [Journal] [PubMed]

Destexhe A, Sejnowski TJ (1995) G protein activation kinetics and spillover of gamma-aminobutyric acid may account for differences between inhibitory responses in the hippocampus and thalamus. Proc Natl Acad Sci U S A 92:9515-9 [PubMed]

Dichter M, Spencer WA (1969)

Dutar P, Nicoll RA (1988)

Fisher RS, Prince DA (1977)

Gloor P (1979)

Golomb D, Wang XJ, Rinzel J (1994) Synchronization properties of spindle oscillations in a thalamic reticular nucleus model. J Neurophysiol 72:1109-26 [Journal] [PubMed]

Golomb D, Wang XJ, Rinzel J (1996) Propagation of spindle waves in a thalamic slice model. J Neurophysiol 75:750-69 [Journal] [PubMed]

Hernandez-Cruz A, Pape HC (1989) Identification of two calcium currents in acutely dissociated neurons from the rat lateral geniculate nucleus. J Neurophysiol 61:1270-83 [Journal] [PubMed]

Hirsch MW, Baird B (1995)

Huguenard JR, Prince DA (1992) A novel T-type current underlies prolonged Ca(2+)-dependent burst firing in GABAergic neurons of rat thalamic reticular nucleus. J Neurosci 12:3804-17 [PubMed]

Huguenard JR, Prince DA (1994) Clonazepam suppresses GABAB-mediated inhibition in thalamic relay neurons through effects in nucleus reticularis. J Neurophysiol 71:2576-81 [Journal] [PubMed]

Jahnsen H, Llinas R (1984) Ionic basis for the electro-responsiveness and oscillatory properties of guinea-pig thalamic neurones in vitro. J Physiol 349:227-47 [PubMed]

Jahnsen H, Llinas R (1984) Electrophysiological properties of guinea-pig thalamic neurones: an in vitro study. J Physiol 349:205-26 [PubMed]

Kim U, Bal T, McCormick DA (1995)

LeMasson G, Marder E, Abbott LF (1993)

Leresche N, Lightowler S, Soltesz I, Jassik-Gerschenfeld D, Crunelli V (1991) Low-frequency oscillatory activities intrinsic to rat and cat thalamocortical cells. J Physiol 441:155-74 [PubMed]

Lytton WW (1996) Optimizing synaptic conductance calculation for network simulations. Neural Comput 8:501-9 [PubMed]

Lytton WW, Destexhe A, Sejnowski TJ (1996) Control of slow oscillations in the thalamocortical neuron: a computer model. Neuroscience 70:673-84 [PubMed]

Lytton WW, Sejnowski TJ (1991) Simulations of cortical pyramidal neurons synchronized by inhibitory interneurons. J Neurophysiol 66:1059-79 [Journal] [PubMed]

McCormick DA, Pape HC (1990) Properties of a hyperpolarization-activated cation current and its role in rhythmic oscillation in thalamic relay neurones. J Physiol 431:291-318 [PubMed]

   Thalamic Relay Neuron: I-h (McCormick, Pape 1990) [Model]

Mody I, De Koninck Y, Otis TS, Soltesz I (1994)

Rush ME, Rinzel J (1994)

Shosaku A (1986)

Soltesz I, Crunelli V (1992) A role for low-frequency, rhythmic synaptic potentials in the synchronization of cat thalamocortical cells. J Physiol 457:257-76 [PubMed]

Steriade M, Amzica F (1994) Dynamic coupling among neocortical neurons during evoked and spontaneous spike-wave seizure activity. J Neurophysiol 72:2051-69 [Journal] [PubMed]

Steriade M, Contreras D (1995) Relations between cortical and thalamic cellular events during transition from sleep patterns to paroxysmal activity. J Neurosci 15:623-42 [PubMed]

Steriade M, Deschaenes M, Domich L, Mulle C (1985) Abolition of spindle oscillations in thalamic neurons disconnected from nucleus reticularis thalami. J Neurophysiol 54:1473-97 [Journal] [PubMed]

Steriade M, Domich L, Oakson G (1986) Reticularis thalami neurons revisited: activity changes during shifts in states of vigilance. J Neurosci 6:68-81 [PubMed]

Steriade M, Domich L, Oakson G, Deschaenes M (1987) The deafferented reticular thalamic nucleus generates spindle rhythmicity. J Neurophysiol 57:260-73 [Journal] [PubMed]

Steriade M, McCormick DA, Sejnowski TJ (1993) Thalamocortical oscillations in the sleeping and aroused brain. Science 262:679-85 [PubMed]

Suzuki S, Rogawski MA (1989)

Traub RD, Miles R, Wong RK (1987) Models of synchronized hippocampal bursts in the presence of inhibition. I. Single population events. J Neurophysiol 58:739-51 [Journal] [PubMed]

Traub RD, Miles R, Wong RK, Schulman LS, Schneiderman JH (1987) Models of synchronized hippocampal bursts in the presence of inhibition. II. Ongoing spontaneous population events. J Neurophysiol 58:752-64 [Journal] [PubMed]

Ulrich D, Huguenard JR (1996)

von Krosigk M, Bal T, McCormick DA (1993) Cellular mechanisms of a synchronized oscillation in the thalamus. Science 261:361-4 [PubMed]

Wallenstein GV (1994)

Wang XJ, Golomb D, Rinzel J (1995) Emergent spindle oscillations and intermittent burst firing in a thalamic model: specific neuronal mechanisms. Proc Natl Acad Sci U S A 92:5577-81 [PubMed]

Yen CT, Conley M, Hendry SH, Jones EG (1985) The morphology of physiologically identified GABAergic neurons in the somatic sensory part of the thalamic reticular nucleus in the cat. J Neurosci 5:2254-68 [PubMed]

Destexhe A (1998) Spike-and-wave oscillations based on the properties of GABAB receptors. J Neurosci 18:9099-111 [PubMed]

Destexhe A, Contreras D, Steriade M (2001) LTS cells in cerebral cortex and their role in generating spike-and-wave oscillations. Neurocomputing 38:555-563 [Journal]

   Pyramidal Neuron: Deep, Thalamic Relay and Reticular, Interneuron (Destexhe et al 1998, 2001) [Model]

Destexhe A, Sejnowski TJ (2003) Interactions between membrane conductances underlying thalamocortical slow-wave oscillations. Physiol Rev 83:1401-53 [PubMed]

Hines ML, Carnevale NT (2003) Personal Communication of NEURON bibliography

Huertas MA, Groff JR, Smith GD (2005) Feedback Inhibition and Throughput Properties of an Integrate-and-Fire-or-Burst Network Model of Retinogeniculate Transmission J Comp Neurosci 19:147-180 [Journal]

Kager H, Wadman WJ, Somjen GG (2007) Seizure-like afterdischarges simulated in a model neuron. J Comput Neurosci 22:105-128 [Journal] [PubMed]

Le Franc Y, Le Masson G (2010) Multiple firing patterns in deep Dorsal Horn Neurons of the spinal cord: computational analysis of mechanisms and functional implications. J Neurophysiol [Journal] [PubMed]

Lytton WW (1997) Computer model of clonazepam's effect in thalamic slice. Neuroreport 8:3339-43 [Journal] [PubMed]

   Computer model of clonazepam`s effect in thalamic slice (Lytton 1997) [Model]

Lytton WW, Hellman KM, Sutula TP (1998) Computer models of hippocampal circuit changes of the kindling model of epilepsy. Artif Intell Med 13:81-97 [PubMed]

Lytton WW, Seidenstein AH, Dura-Bernal S, McDougal RA, Schurmann F, Hines ML (2016) Simulation Neurotechnologies for Advancing Brain Research: Parallelizing Large Networks in NEURON. Neural Comput :1-28 [Journal] [PubMed]

   Parallelizing large networks in NEURON (Lytton et al. 2016) [Model]

Suffczynski P, Kalitzin S, Lopes Da Silva FH (2004) Dynamics of non-convulsive epileptic phenomena modeled by a bistable neuronal network. Neuroscience 126:467-84 [Journal] [PubMed]

   Thalamocortical model of spike and wave seizures (Suffczynski et al. 2004) [Model]

Thomas E, Lytton WW (1998) Computer model of antiepileptic effects mediated by alterations in GABA(A)-mediated inhibition. Neuroreport 9:691-6 [PubMed]

van Drongelen W, Lee HC, Stevens RL, Hereld M (2007) propagation of seizure-like activity in a model of neocortex. J Clin Neurophysiol 24:182-8 [PubMed]

Zhao X, Robinson PA (2015) Generalized seizures in a neural field model with bursting dynamics. J Comput Neurosci [Journal] [PubMed]

   Neural-field model of generalized seizures (Zhao et al., 2015) [Model]

(66 refs)