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

 Download zip file   Auto-launch 
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]
Citations  Citation Browser
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: queue.inc,v 1.5 1995/01/17 13:38:39 billl Exp $

COMMENT

Handle a synaptic queue used to store spike arrival times for
subsequent activation of a synapse after a delay.  Actually the time
that is stored is (arrival + delay).  

This is necessary because several spikes may arrive during the course
of synaptic activation.  These times must be kept track of if they are
to influence subsequent events.  A queue uses FIFO (first in, first
out; cf stack -> FILO) which allows times that are stored to be picked
up in the order that they are stored.

This is NOT a general use queue.  In particular the function of this
queue depends on the use of 1e20 as a default 'never' time that is
used by both 'popq' and 'pushq' to determine if the queue is
exhausted.  

USAGE:

initq()       : clears the queue and initializes head and tail pointers
pushq(val)    : adds val to the end (the tail) of the queue
val = popq()  : removes a val from the front (the head) of the queue

NOTES:

QLEN is the length of the queue.
If this is changed it must also be changed in the queue[] declaration
in the assigned block.

ENDCOMMENT

NEURON {
  RANGE head, tail, queu, delay :
  GLOBAL QLEN                   :
}

PARAMETER {
  delay = 0 (ms)                : delay till starting synapse
  QLEN = 10        : WARNING: if # is changed, then MUST change queu[] below
}

ASSIGNED {
  queu[10]			: QLEN is length of queue
  head                          :
  tail                          :
}

PROCEDURE initq() { 
  head = 0                 
  tail = 0                 
  FROM i = 0 TO (QLEN-1) { 
    queu[i] = 1.0e20       
  }                        
}

PROCEDURE pushq(val) { 
  if (queu[tail] == 1e20) {
    queu[tail] = val
    tail = tail + 1
    if (tail == QLEN) { tail = 0 }
  } else {
    VERBATIM
    hoc_execerror("Error: queue full.\n",0);
    ENDVERBATIM
  }
}

FUNCTION popq() { 
  popq = queu[head]
  if (popq == 1e20) {
    VERBATIM
    hoc_execerror("Error: queue exhausted.\n",0);
    ENDVERBATIM
  } else {
    queu[head] = 1.e20
    head = head + 1
    if (head == QLEN) { head = 0 }
  }
}