Pyramidal neuron conductances state and STDP (Delgado et al. 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144482
Neocortical neurons in vivo process each of their individual inputs in the context of ongoing synaptic background activity, produced by the thousands of presynaptic partners a typical neuron has. That background activity affects multiple aspects of neuronal and network function. However, its effect on the induction of spike-timing dependent plasticity (STDP) is not clear. Using the present biophysically-detailed computational model, it is not only able to replicate the conductance-dependent shunting of dendritic potentials (Delgado et al,2010), but show that synaptic background can truncate calcium dynamics within dendritic spines, in a way that affects potentiation more strongly than depression. This program uses a simplified layer 2/3 pyramidal neuron constructed in NEURON. It was similar to the model of Traub et al., J Neurophysiol. (2003), and consisted of a soma, an apical shaft, distal dendrites, five basal dendrites, an axon, and a single spine. The spine’s location was variable along the apical shaft (initial 50 μm) and apical. The axon contained an axon hillock region, an initial segment, segments with myelin, and nodes of Ranvier, in order to have realistic action potential generation. For more information about the model see supplemental material, Delgado et al 2010.
Reference:
1 . Delgado JY, Gómez-González JF, Desai NS (2010) Pyramidal neuron conductance state gates spike-timing-dependent plasticity. J Neurosci 30:15713-25 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Auditory cortex;
Cell Type(s): Neocortex L2/3 pyramidal GLU cell;
Channel(s): I Na,p; I Sodium; I Calcium; I Potassium; I_AHP;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potentials; STDP; Calcium dynamics; Conductance distributions; Audition;
Implementer(s): Gomez-Gonzalez, JF [jfcgomez at ull.edu.es]; Delgado JY, [jyamir at ucla.edu];
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; AMPA; NMDA; I Na,p; I Sodium; I Calcium; I Potassium; I_AHP;
//=================================================
// Save data (2009)
//  by José Gómez , jfcgomez@ull.es, jfcgomez@gmail.com
//  and by Jary Delgado 
//=================================================

objref fileref
objref vsoma, vspine, vdend0, vdend1, vdend2, vdend3, vdend4, vdend5
objref cai0, cai1, cai2, cai3, cai4, cai5, cai6, cai7, cai8
objref vltp, vmaxltp, vltd, vmaxltd, vltpint, vltdint  

// --------- Voltage ---------------------------------
vsoma=new Vector(tstop/dt)  // record voltage at soma and store in a vector vsoma  
vsoma.record(&soma.v(0.5))

vspine=new Vector(tstop/dt)			
vspine.record(&spine.v(0.5))

vdend0=new Vector(tstop/dt)			
vdend0.record(&dendrite[0].v(0.5))

vdend1=new Vector(tstop/dt)			
vdend1.record(&dendrite[1].v(0.5))

vdend2=new Vector(tstop/dt)			
vdend2.record(&dendrite[2].v(0.5))

vdend3=new Vector(tstop/dt)			
vdend3.record(&dendrite[3].v(0.5))

vdend4=new Vector(tstop/dt)			
vdend4.record(&dendrite[4].v(0.5))

vdend5=new Vector(tstop/dt)			
vdend5.record(&dendrite[5].v(0.5))

// --------- Calcium ---------------------------------
cai0=new Vector(tstop/dt)          // record cai in dendite and store in a vector 
cai0.record(&dendrite[0].cai(0.5))

cai1=new Vector(tstop/dt)          
cai1.record(&dendrite[1].cai(0.5))

cai2=new Vector(tstop/dt)                    
cai2.record(&dendrite[2].cai(0.5))

cai3=new Vector(tstop/dt)                    
cai3.record(&dendrite[3].cai(0.5))

cai4=new Vector(tstop/dt)
cai4.record(&dendrite[4].cai(0.5))

cai5=new Vector(tstop/dt)   
cai5.record(&dendrite[5].cai(0.5))

cai6=new Vector(tstop/dt)  
cai6.record(&spine.cai(0.5))

cai7=new Vector(tstop/dt)       
cai7.record(&neck.cai(0.5))

cai8=new Vector(tstop/dt)   
cai8.record(&soma.cai(0.5))

//----------- LTP and LTD ------------------------------
vltp=new Vector(tstop/dt)		// record ltp and store in a vector 
vltp.record(&ltp)

vmaxltp=new Vector(tstop/dt)	// record max ltp and store in a vector 
vmaxltp.record(&maxltp)

vltd=new Vector(tstop/dt)		// record ltd and store in a vector 
vltd.record(&ltd)

vmaxltd=new Vector(tstop/dt)	// record max ltd and store in a vector 
vmaxltd.record(&maxltd)

vltpint=new Vector(tstop/dt)		// record integral ltp and store in a vector 
vltpint.record(&ltpint)

vltdint=new Vector(tstop/dt)		// record integral ltp and store in a vector 
vltdint.record(&ltdint)

//--------------------------------------------------------





//**********************************************************
//************ saveall_data(folder_number_tag) *************
//**********************************************************
proc saveall_data(){  //$1= is the number tag of the folder
	// -------  save voltage
	saverecord("data","vsoma",vsoma,$1)
	saverecord("data","vspine",vspine,$1)
	saverecord("data","vdend0",vdend0,$1)
	saverecord("data","vdend1",vdend1,$1)
	saverecord("data","vdend2",vdend2,$1)
	saverecord("data","vdend3",vdend3,$1)
	saverecord("data","vdend4",vdend4,$1)
	saverecord("data","vdend5",vdend5,$1)
	// -------  save calcium
	saverecord("data","caidendrite[0]",cai0,$1)
	saverecord("data","caidendrite[1]",cai1,$1)
	saverecord("data","caidendrite[2]",cai2,$1)
	saverecord("data","caidendrite[3]",cai3,$1)
	saverecord("data","caidendrite[4]",cai4,$1)
	saverecord("data","caidendrite[5]",cai5,$1)
	saverecord("data","caispine",cai6,$1)
	saverecord("data","caisoma",cai8,$1)
	// -------  save LTP and LTD parameters	
	saverecord("data","ltp",vltp,$1)
	saverecord("data","maxltp",vmaxltp,$1)
	saverecord("data","ltd",vltd,$1)
	saverecord("data","maxltd",vmaxltd,$1)	
}

//***************************************************************************
//*** saverecord("folder name","file name",data_vector,folder_number_tag) ***
//***************************************************************************
proc saverecord(){ 
	strdef tmp_str
	sprint(tmp_str, "mkdir -p %s_%g", $s1,$4)  // make the data directory
	system(tmp_str)
	sprint(tmp_str, "%s_%g", $s1,$4)
	fileref=new File()			// Save the SOMA record
	sprint(tmp_str, "%s/%s.txt",tmp_str,$s2)
	fileref.wopen(tmp_str)
	$o3.printf(fileref, "%f\n")
	fileref.close()   
}

Loading data, please wait...