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

A fast model of voltage-dependent NMDA Receptors (Moradi et al. 2013)

 Download zip file 
Help downloading and running models
Accession:145836
These are two or triple-exponential models of the voltage-dependent NMDA receptors. Conductance of these receptors increase voltage-dependently with a "Hodgkin and Huxley-type" gating style that is also depending on glutamate-binding. Time course of the gating of these receptors in response to glutamate are also changing voltage-dependently. Temperature sensitivity and desensitization of these receptor are also taken into account. Three previous kinetic models that are able to simulate the voltage-dependence of the NMDARs are also imported to the NMODL. These models are not temperature sensitive. These models are compatible with the "event delivery system" of NEURON. Parameters that are reported in our paper are applicable to CA1 pyramidal cell dendrites.
Reference:
1 . Moradi K, Moradi K, Ganjkhani M, Hajihasani M, Gharibzadeh S, Kaka G (2013) A fast model of voltage-dependent NMDA receptors. J Comput Neurosci 34:521-31 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Synapse;
Brain Region(s)/Organism: Neocortex; Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s):
Gap Junctions:
Receptor(s): NMDA; Glutamate;
Gene(s): NR2B GRIN2B;
Transmitter(s): Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics; Simplified Models; Long-term Synaptic Plasticity; Methods;
Implementer(s): Moradi, Keivan [k.moradi at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; NMDA; Glutamate; Glutamate;
/* In this experiment we want to fit our model to recorded NMDA current
during oscilating patterns of membrane voltage which include some action potentials
*/
load_file("nrngui.hoc")
load_file("params.hoc")

//fully activates cache efficiency
cvode.cache_efficient(1)  

tstop = 20.8379
dt = .025
celsius = 18	//room temperature in Clarke08 experiment = ?
v_init = -65

// ------------------
create soma
access soma

// load data
//------------Action Potential Clamp---------------------------	
objref vc, vRec, tRec, vFile, tFile

vRec = new Vector(570)
tRec = new Vector(570)
vFile = new File()
tFile = new File()

vFile.ropen("./Data/Exp10-Clarke08-Fig10/vNaSpike.dat")
tFile.ropen("./Data/Exp10-Clarke08-Fig10/tNaSpike.dat")
vRec.scanf(vFile)
tRec.scanf(tFile)

// vRec.printf()

vc = new VClamp(.5)
	vc.dur[0] = tstop
	vRec.play(&vc.amp[0],tRec)
	
//---------------------------------------------------
Tau1 = 2.1343
Wtau2 = 0.65
Tau2_0 = 33.129
A2 = 2.9907
B2 = 0.0243
Tau3_0 = 217.69
A3 = 34.69
B3 = 0.01
k0 = 6.9172
DELTA = 0.99128

objref sNMDA, stim, nc
stim = new NetStim(.5)
	stim.interval = 1		//ms (mean) time between spikes
	stim.number = 1			//(average) number of spikes
	stim.start 	= 1.534 - 1	//ms (most likely) start time of first spike
	stim.noise 	= 0			//---- range 0 to 1. Fractional randomness.
	//0 deterministic, 1 intervals have negexp distribution.

{sNMDA = new Exp5NMDA(.5) SynWeight = 0.54609 } // Our Model 2012
//{sNMDA = new Exp5NMDA4(.5) SynWeight = 0.57262 } // Our Model - modifed to have voltage dependent gFAST, 2012


nc = new NetCon(stim, sNMDA)

proc init_NMDA() {
	nc.weight = SynWeight
	nc.delay = 1
	
	sNMDA.tau1 = Tau1
	sNMDA.tau2_0 = Tau2_0
	sNMDA.a2 = A2
	sNMDA.b2 = B2
	sNMDA.wtau2 = Wtau2
	sNMDA.tau3_0 = Tau3_0
	sNMDA.a3 = A3
	sNMDA.b3 = B3
	sNMDA.K0 = k0
	sNMDA.delta = DELTA
}
objref FinNMDA
FinNMDA = new FInitializeHandler(3,"init_NMDA()")
	
//-------Graph----------------------	
objref iNMDA, vSoma
iNMDA = new Graph()
iNMDA.size(0,tstop,-5.5,25)
iNMDA.addvar("sNMDA.i",3,0)
iNMDA.save_name("graphList[0].")
graphList[0].append(iNMDA)

vSoma = new Graph()
vSoma.size(0,tstop,-100,50)
vSoma.addvar("soma.v(.5)",3,0)
vSoma.save_name("graphList[0].")
graphList[0].append(vSoma)

//------Save Simulated NMDA Current
objref iNMDA, iFile, time, tFile
iNMDA = new Vector()
iNMDA.record(&sNMDA.i)
iFile = new File("iFile.dat")
iFile.wopen("iFile.dat")

time = new Vector()
time.record(&t)
tFile = new File("tFile.dat")
tFile.wopen("tFile.dat")

init()
run()

iNMDA.printf(iFile)
iFile.close()

time.printf(tFile)
tFile.close()

Loading data, please wait...