ModelDB is moving. Check out our new site at https://modeldb.science. The corresponding page is https://modeldb.science/12631.

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: pregen.mod,v 1.13 1996/04/07 16:18:19 billl Exp $
: comments at end

INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON	{ 
  POINT_PROCESS gen
  GLOBAL seed
  RANGE x, spk, lastspk
  RANGE fast_invl, slow_invl, burst_len, start, end
  RANGE noise
}

PARAMETER {
	fast_invl	= 1		: time between spikes in a burst (msec)
	slow_invl	= 50		: burst period (msec)
	burst_len	= 10		: burst length (# spikes)
	start		= 50		: location for first burst
	end		= 1e10		: time to stop bursting
	noise		= 0		: amount of randomness (0.0 - 1.0)
	seed            = 53892         : seed for random num generator
}

ASSIGNED {
	scntr
	lcntr
	bcntr
	burst
	x
        spk
        lastspk
	dt
}

INCLUDE "presyn.inc"

INITIAL {
	burst   = 0
	scntr	= fast_invl
	bcntr	= burst_len
	if (noise != 0) {
	  set_seed(seed)
	  scntr	= noise * fpoisrand(fast_invl) + (1 - noise) * fast_invl
	  bcntr	= noise * fpoisrand(burst_len) + (1 - noise) * burst_len
	}
	lcntr	= start
	x = -90
	spk = -90
}	

BREAKPOINT {
  SOLVE generate
}

PROCEDURE generate() {	

  if (t < end) {

    : leave spk up for 1 msec spike duration
    if (t > lastspk+1) { spk = -90 }
    x = -90
    scntr = scntr - dt
    lcntr = lcntr - dt	

    if (burst) {
      :  in a burst

      if (scntr <= dt) {
	: a spike
	
	if (bcntr <= 1) {	
	  : last spike in burst ?

	  burst = 0
	  if (noise==0) {
	    lcntr = slow_invl
	  } else {
	    lcntr = noise * fpoisrand(slow_invl) + (1 - noise) * slow_invl
	  }
	}

	x = 50		
        spk = 50
        lastspk = t
	newspike()

	bcntr = bcntr - 1
	if (noise==0) {
	  scntr = fast_invl
	} else {
	  scntr = noise * fpoisrand(fast_invl) + (1 - noise) * fast_invl
	}
      } 	

    } else {
      :  between bursts

      if (lcntr <= dt) {
	
	if (noise==0) {
	  bcntr = burst_len
	} else {
	  bcntr = noise * fpoisrand(burst_len) + (1 - noise) * burst_len
	}
	burst = 1
	
      }

    }	

    VERBATIM
    return 0;
    ENDVERBATIM
  }
}	

FUNCTION fgauss(x,mean,std_dev) {
	fgauss = gauss(x,mean,std_dev)
}

FUNCTION fpoisrand(mean) {
  if (mean > 700) {
    fpoisrand = 4. * poisrand(mean/4.)  
  } else {
    fpoisrand = poisrand(mean)
  }
}

COMMENT
Presynaptic spike generator
---------------------------

This mechanism has been written to be able to use synapses in a single
neuron receiving various types of presynaptic trains.  This is a "fake"
presynaptic compartment containing a fast spike generator.  The trains
of spikes can be either periodic or noisy (Poisson-distributed), and 
either tonic or bursting.

Parameters;
   noise: 	between 0 (no noise-periodic) and 1 (fully noisy)
   fast_invl: 	fast interval, mean time between spikes (ms)
   slow_invl:	slow interval, mean burst silent period (ms), 0=tonic train
   burst_len: 	mean burst length (nb. spikes)

Written by Z. Mainen, modified by A. Destexhe, The Salk Institute

ENDCOMMENT


Loading data, please wait...