L5 PFC pyramidal neurons (Papoutsi et al. 2017)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:230811
" ... Here, we use a modeling approach to investigate whether and how the morphology of the basal tree mediates the functional output of neurons. We implemented 57 basal tree morphologies of layer 5 prefrontal pyramidal neurons of the rat and identified morphological types which were characterized by different response features, forming distinct functional types. These types were robust to a wide range of manipulations (distribution of active ionic mechanisms, NMDA conductance, somatic and apical tree morphology or the number of activated synapses) and supported different temporal coding schemes at both the single neuron and the microcircuit level. We predict that the basal tree morphological diversity among neurons of the same class mediates their segregation into distinct functional pathways. ..."
Reference:
1 . Papoutsi A, Kastellakis G, Poirazi P (2017) Basal tree complexity shapes functional pathways in the prefrontal cortex. J Neurophysiol 118:1970-1983 [PubMed]
Citations  Citation Browser
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: Prefrontal cortex (PFC);
Cell Type(s): Neocortex L5/6 pyramidal GLU cell;
Channel(s): I A; I h; I L high threshold; I T low threshold; I N; I R; I K,Ca; I_AHP; I_Ks; I Na,p; I Na,t; I K;
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA; GabaB;
Gene(s):
Transmitter(s): Glutamate; Gaba;
Simulation Environment: NEURON;
Model Concept(s): Active Dendrites; Detailed Neuronal Models;
Implementer(s): Papoutsi, Athanasia [athpapoutsi at gmail.com];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; GabaA; GabaB; AMPA; NMDA; I Na,p; I Na,t; I L high threshold; I N; I T low threshold; I A; I K; I h; I K,Ca; I_Ks; I R; I_AHP; Gaba; Glutamate;
// Connect neurons to a microciruit

//-----Define objects and strings used.
init_of_objects=1000
//Stimualtion 
objref ns
objref ampaa[nPcells][init_of_objects][init_of_objects], nmdaa[nPcells][init_of_objects][init_of_objects], conampaa[nPcells][init_of_objects][init_of_objects], connmdaa[nPcells][init_of_objects][init_of_objects]
//Circuit connections 
objref ampab[nPcells][nPcells][init_of_objects], nmdab[nPcells][nPcells][init_of_objects], conampab[nPcells][nPcells][init_of_objects]
objref connmdab[nPcells][nPcells][init_of_objects]
// Connect neurons
objref num_of_syn_dend[nPcells], basal_count[nPcells], delstim, delpyrin, delinpyr
objref ampain[nPcells][nINcells][init_of_objects], nmdain[nPcells][nINcells][init_of_objects], conampapin[nPcells][nINcells][init_of_objects], connmdapin[nPcells][nINcells][init_of_objects], locpi
objref gabaa[nINcells][nPcells][init_of_objects], gabab[nINcells][nPcells][init_of_objects], congaip[nINcells][nPcells][init_of_objects], congbip[nINcells][nPcells][init_of_objects]
objref ref_basal_choose[nPcells], r, pick_dend

proc connect_pyrb() {		
	delstim= new Random($1+3)		
	TIDp=delstim.normal(1.7,0.9)		//According to Thomson(2007)
	pick_dend=new Random($1/6)	
	r=new Random()
	r.uniform(0,1)	

	for cn=0, nPcells-1 {
		ref_basal_choose[cn]=new List()
		//For all basal dendrites
		forsec Pcells[cn].basal{ 
			ref_basal_choose[cn].append(new SectionRef())
		}
	}

	//Randomly allocate connections between pyramidal neurons.
	for sn=0, nPcells-1 {
		for tn=0, nPcells-1 {
			if (tn!=sn ){
				for syn=0, syn_basal_con-1 {
					num=pick_dend.discunif(0, ref_basal_choose[tn].count()-1)
					PID=r.repick()
					TIDp=delstim.repick()
					if (TIDp<0) TIDp=TIDp*(-1)

					access ref_basal_choose[tn].o(num).sec
					ampab[tn][sn][syn]=new GLU(PID)
					nmdab[tn][sn][syn]=new nmda_spikes(PID)
					
					Pcells[sn].soma {conampab[tn][sn][syn] = new NetCon(&v(1), ampab[tn][sn][syn], -20, TIDp, ampaweight)}
					Pcells[sn].soma {connmdab[tn][sn][syn] = new NetCon(&v(1), nmdab[tn][sn][syn], -20, TIDp, nmdaweight)}
				}
			}
		}
	}
}
proc connect_pyrin () {
	locpi=new Random($1*3)
	locpi.uniform(0,1)
	
	delpyrin=new Random($1)
	delpyrin.normal(0.6, 0.2)		//latency from Pc-In, according to Thomson(2007), also Angulo,Audinat(1999)
	
	for sn=0, nPcells-1 {
		for tn=0, nINcells-1 {
			for syn=0, maxsynpi-1 {
				PID = locpi.repick ()

				INcells[tn].soma ampain[sn][tn][syn] = new GLUIN(PID)
				INcells[tn].soma nmdain[sn][tn][syn] = new NMDA(PID)
			
				TIDpi=delpyrin.repick()
				if (TIDpi<0) TIDpi=TIDpi*(-1)

				Pcells[sn].soma conampapin[sn][tn][syn] = new NetCon(&v(1), ampain[sn][tn][syn], -20, TIDpi, ampaweightin)
				Pcells[sn].soma connmdapin[sn][tn][syn] = new NetCon(&v(1), nmdain[sn][tn][syn], -20, TIDpi, nmdaweightin)   
			}
		}
	}

	delinpyr= new Random($1*8)
	delinpyr.normal(1.8, 0.8)	//latency from IN-Pc, according to Thomson(2007)

	for sn=0, nINcells-1 {
		for tn=0, nPcells-1 {
			for syn=0, maxsynip-1 {
				PID = locpi.repick ()

				Pcells[tn].soma gabaa[sn][tn][syn] = new GABAa(PID)
				Pcells[tn].soma gabab[sn][tn][syn] = new GABAb(PID)
			
				TIDip=delpyrin.repick()
				if (TIDip<0) TIDip=TIDip*(-1)

				INcells[sn].soma congaip[sn][tn][syn] = new NetCon(&v(1), gabaa[sn][tn][syn], -20, TIDip, gabaaweight)
				INcells[sn].soma congbip[sn][tn][syn] = new NetCon(&v(1), gabab[sn][tn][syn], -20, TIDip, gababweight)   
			}
		}
	}
}