Computer model of clonazepam's effect in thalamic slice (Lytton 1997)

 Download zip file 
Help downloading and running models
Accession:12631
Demonstration of the effect of a minor pharmacological synaptic change at the network level. Clonazepam, a benzodiazepine, enhances inhibition but is paradoxically useful for certain types of seizures. This simulation shows how inhibition of inhibitory cells (the RE cells) produces this counter-intuitive effect.
Reference:
1 . Lytton WW (1997) Computer model of clonazepam's effect in thalamic slice. Neuroreport 8:3339-43 [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 GLU cell; Thalamus reticular nucleus GABA cell;
Channel(s): I Na,t; I T low threshold; I K; I CAN;
Gap Junctions:
Receptor(s): GabaA; Gaba;
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: NEURON;
Model Concept(s): Activity Patterns; Bursting; Therapeutics; Epilepsy; Calcium dynamics;
Implementer(s): Lytton, William [bill.lytton at downstate.edu];
Search NeuronDB for information about:  Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; GabaA; Gaba; I Na,t; I T low threshold; I K; I CAN; Gaba;
/
lytton97b
README
AMPA.mod
calciumpump_destexhe.mod *
GABAA.mod
GABAB1.mod
GABALOW.mod
HH_traub.mod *
IAHP_destexhe.mod
ICAN_destexhe.mod
ICAN_voltdep.mod
Ih_old.mod *
IT_wang.mod
IT2_huguenard.mod
NMDA.mod
passiv.mod *
pregen.mod *
presyn.mod *
pulse.mod
rand.mod
bg.inc *
boxes.hoc
ctl.dat
ctlnew.dat
czp.dat
czpnew.dat
declist.hoc *
decvec.hoc *
default.hoc *
disp.hoc
Fig3.gif
Fig4.gif
geom.hoc
grvec.hoc
init.hoc
labels.hoc
local.hoc
mod_func.c
mosinit.hoc
network.hoc
neurrep8
nrnoc.hoc
params.hoc
presyn.inc *
queue.inc *
run.hoc
show.hoc
simctrl.hoc *
sns.inc *
snsarr.inc
snscode.hoc
snsgr.hoc
snshead.inc *
synq.inc *
xtmp
                            
// $Id: network.hoc,v 1.58 1995/11/21 01:40:00 billl Exp $

//* Create cells

cols = 9
objectvar col[cols]
colre = 2  // num re cells in a column
coltc = 5  // num tc cells in a column

create nullseg
nullseg v= -1000

pre0 = 0
prelist.remove_all  // clear the fixed lists if reloading
for ii=0,cols-1 {
  col[ii] = new COL(ii,colre,coltc,pre0)
  pre0 = pre0 + colre + coltc
}

//** stimulation
objectvar pg[2]
nullseg pg[0] = new gen(0.5,-12)
nullseg pg[1] = new gen(0.5,-13)

//* Connectivity matrix
dist = 3
double pmat[2][2][2*dist+1]
fseed(2312951)

// tc -> re
pmat[ftc()][fre()][dist] = 1
pmat[ftc()][fre()][dist+1] = 0.67
pmat[ftc()][fre()][dist-1] = 0.67
pmat[ftc()][fre()][dist+2] = 0.34
pmat[ftc()][fre()][dist-2] = 0.34
pmat[ftc()][fre()][dist+3] = 0.15
pmat[ftc()][fre()][dist-3] = 0.15
// re -> tc
pmat[fre()][ftc()][dist] = 1
pmat[fre()][ftc()][dist+1] = 0.67
pmat[fre()][ftc()][dist-1] = 0.67
pmat[fre()][ftc()][dist+2] = 0.34
pmat[fre()][ftc()][dist-2] = 0.34
pmat[fre()][ftc()][dist+2] = 0.15
pmat[fre()][ftc()][dist-2] = 0.15
// re -> re
pmat[fre()][fre()][dist] = 1.0
pmat[fre()][fre()][dist+1] = 1.0
pmat[fre()][fre()][dist-1] = 1.0
pmat[fre()][fre()][dist+2] = 1.0
pmat[fre()][fre()][dist-2] = 1.0
pmat[fre()][fre()][dist+3] = 1.0
pmat[fre()][fre()][dist-3] = 1.0

func pmatsum () { local sum,i
  sum = 0
  for (i=0;i<2*dist+1;i=i+1) {
    sum = sum + pmat[$1][$2][i]
  }
  return sum
}

//* set synapses
// proc callback () { printf("%s %d %d %d\n",$o1,$2,$3,prelist.object($3).check) }
CHAINLEN_GABAB1 = 5 // must be defined before doing init_arrays
clearsyns()

//** init arrays for all synapses
for ii=0,cols-1 { // go through the columns
//*** go through re cells
  for jj=0,colre-1 {       
    // total convergence
    conv = int(2 + pmatsum(fre(),ftc())*coltc) // leave room for connects from tcs
    col[ii].re[jj].excit.init_arrays(conv + 1) // and room for a stim as well
    conv = int(1 + pmatsum(fre(),fre())*colre) // leave room for connects from res
    col[ii].re[jj].inhib.init_arrays(conv + 1) // and room for a stim as well    
  }
//*** go through tc cells
  for jj=0,coltc-1 {
    // total convergence
    conv = int(2 + pmatsum(ftc(),fre())*colre)
    col[ii].tc[jj].inhib.init_arrays(conv+1)   // room for stim
  }
}

//** Assigns synapses to re cells
for ii=0,cols-1 { // go through the columns
  lt = (ii - dist) % cols  // lt-most to connect
  rt = (ii + dist) % cols  // rt-most to connect
  for jj=0,colre-1 {       
    mm = -1  // extra counter needed for cols since kk goes lt to rt
    // loop starts on lt side and runs across to rt side
    // WARNING: won't work with cols <= 2*dist + 1
    for (kk=lt;kk != (rt+1)%cols;kk = (kk+1)%cols) {
      mm = mm + 1
//*** columnar convergence from tc
      tmplist.remove_all 
      col[kk].tcprelist(tmplist)  // list of tc's in the column
      conv = int(pmat[fre()][ftc()][mm]*tmplist.count)  // how many to hook up
      col[ii].re[jj].excit.conn(tmplist,conv,4)  // 4 hardwired !!
//*** columnar convergence from neighboring re's
      tmplist.remove_all 
      col[kk].reprelist(tmplist) 
      conv = int(pmat[fre()][fre()][mm]*tmplist.count)
      col[ii].re[jj].inhib.conn(tmplist,conv,-1) // -1 maxdiv means ignore maxdiv
    }
//*** stimulation to re cells
    col[ii].re[jj].ampa.setlink(pg[0].link)
    col[ii].re[jj].gabaa.setlink(pg[0].link)
    col[ii].re[jj].inj.setlink(pg[0].link)
  }
}

//** Assigns synapses to tc cells
for ii=0,cols-1 { // go through the columns
  lt = (ii - dist) % cols  // lt-most to connect
  rt = (ii + dist) % cols  // rt-most to connect
  for jj=0,coltc-1 {
    mm = -1
    for (kk=lt;kk != (rt+1)%cols;kk = (kk+1)%cols) {
      mm = mm + 1
//** columnar convergence from re
      tmplist.remove_all 
      col[kk].reprelist(tmplist) 
      conv = ranverge(pmat[ftc()][fre()][mm],tmplist.count,0) 
      col[ii].tc[jj].inhib.conn(tmplist,conv,-1)
    }
  }
}


Loading data, please wait...