Efficient Method for Computing Synaptic Conductance (Destexhe et al 1994)

 Download zip file 
Help downloading and running models
Accession:18197
A simple model of transmitter release is used to solve first order kinetic equations of neurotransmiter/receptor binding. This method is applied to a glutamate and gabaa receptor. See reference for more details. The method is extended to more complex kinetic schemes in a seperate paper (Destexhe et al J Comp Neuro 1:195-231, 1994). Application to AMPA, NMDA, GABAA, and GABAB receptors is given in a book chapter (Destexhe et al In: The Neurobiology of Computation, Edited by Bower, J., Kluwer Academic Press, Norwell MA, 1995, pp. 9-14.) More information and papers at http://cns.iaf.cnrs-gif.fr/Main.html and through email: Destexhe@iaf.cnrs-gif.fr
Reference:
1 . Destexhe A, Mainen Z, Sejnowski TJ (1994) An efficient method for computing synaptic conductances based on a kinetic model of receptor binding Neural Comput 6:14-18
Model Information (Click on a link to find other models with that property)
Model Type: Synapse;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s): GabaA; Glutamate; Gaba;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics;
Implementer(s): Destexhe, Alain [Destexhe at iaf.cnrs-gif.fr]; Mainen, Zach [Mainen at cshl.edu];
Search NeuronDB for information about:  GabaA; Glutamate; Gaba; Gaba; Glutamate;
/*----------------------------------------------------------------------------

	demo file for first order kinetic synapse mechanism
	---------------------------------------------------

	GABA-A postsynaptic currents; idem Fig.1 of neural
	Computation paper.


Reference:

Destexhe, A., Mainen, Z. and Sejnowski, T.J.  An efficient method for 
computing synaptic conductances based on a kinetic model of receptor binding.
Neural Computation, 6: 14-18, 1994.

----------------------------------------------------------------------------*/



//----------------------------------------------------------------------------
//  load and define general graphical procedures
//----------------------------------------------------------------------------

// xopen("$(NEURONHOME)/lib/hoc/stdrun.hoc")

load_file("nrngui.hoc")		//lets file run if clicked on in windows explorer

objectvar g[20]			// max 20 graphs
ngraph = 0

proc addgraph() { local ii	// define subroutine to add a new graph
				// addgraph("variable", minvalue, maxvalue)
	ngraph = ngraph+1
	ii = ngraph-1
	g[ii] = new Graph()
	g[ii].size(0,tstop,$2,$3)
	g[ii].xaxis()
	g[ii].yaxis()
	g[ii].addvar($s1,1,0)
	g[ii].save_name("graphList[0].")
	graphList[0].append(g[ii])
}

// nrnmainmenu()			// create main menu
nrncontrolmenu()		// create control menu



//----------------------------------------------------------------------------
//  general parameters
//----------------------------------------------------------------------------

dt=0.025
tstop = 25		// 15 for single psp, 25 for train
runStopAt = tstop
steps_per_ms = 1/dt
celsius = 36
v_init = -70



//----------------------------------------------------------------------------
//  create compartments and insert passive properties
//----------------------------------------------------------------------------

create PRE,POST
forall {
  diam=10
  L=10
  insert pas
  g_pas=1/5000
  e_pas=v_init
}



//----------------------------------------------------------------------------
//  insert presynaptic mechanisms
//----------------------------------------------------------------------------

access PRE		// insert Hodgk-Hux. Na+ and K+ currents for spikes
insert hh2
ek = -90
gnabar_hh2 = 0.1
gkbar_hh2 = 0.03

objectvar stim		// insert current injection
PRE stim = new IClamp(.5)	  // command for version nrn3a8 or newer
// PRE stim = new PulseStim(.5)	  // command for older NEURON versions
stim.del = 0
stim.dur = 10		// 2 ms for single psp, 10 ms for train of psps
stim.amp = 0.1




//----------------------------------------------------------------------------
//  insert postsynaptic mechansisms
//----------------------------------------------------------------------------

objectvar c
c = new GABA()			// create synapse
POST c.loc(0.5)			// assign postsynaptic compartment
setpointer c.pre, PRE.v(0.5)	// assign presynaptic compartment

Cmax_GABA	= 1	//	(mM)	 max transmitter concentration
Cdur_GABA	= 1	//	(ms)	 transmitter duration (rising phase)
Alpha_GABA	= 0.5	//	(/ms mM)	 forward (binding) rate
Beta_GABA	= 0.1	//	(/ms)		 backward (unbinding) rate
Erev_GABA	= -80	//	(mV)		 reversal potential
Prethresh_GABA	= 0 	//	(mV)		 voltage level nec for release
Deadtime_GABA	= 1	//	(ms)	 mimimum time between release events
c.gmax		= 0.001	//	(umho)		 maximum conductance



//----------------------------------------------------------------------------
//  add graphs
//----------------------------------------------------------------------------

addgraph("POST.v(0.5)",v_init-5,v_init)
addgraph("c.C",0,1)
g[1].addvar("c.R",1,0)
addgraph("c.i",-0.00001,0.01)
addgraph("PRE.v(0.5)",-90,40)



Loading data, please wait...