CA1 pyramidal neuron synaptic integration (Li and Ascoli 2006, 2008)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:71312
The model shows how different input patterns (irregular & asynchronous, irregular & synchronous, regular & asynchronous, regular & synchronous) affect the neuron's output rate when 1000 synapses are distributed in the proximal apical dendritic tree of a hippocampus CA1 pyramidal neuron.
References:
1 . Li X, Ascoli GA (2006) Computational simulation of the input-output relationship in hippocampal pyramidal cells J of Comput Neurosci 21(2):191-209 [PubMed]
2 . Li X, Ascoli GA (2008) Effects of synaptic synchrony on the neuronal input-output relationship. Neural Comput 20:1717-31 [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:
Cell Type(s): Hippocampus CA1 pyramidal cell;
Channel(s): I Na,t; I A; I K; I h;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Detailed Neuronal Models; Synaptic Integration;
Implementer(s): Li, Xiaoshen [xsli2 at yahoo.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal cell; AMPA; NMDA; I Na,t; I A; I K; I h;
/
xiaoshenli
readme.txt
distr.mod *
h.mod *
kadist.mod *
kaprox.mod *
kdrca1.mod *
na3n.mod *
naxn.mod *
c20466.hoc
createNewSyn.hoc
createNewSyn2.hoc
exec.hoc
fig4A.hoc
fixnseg.hoc *
ModelTypeC.hoc
ModelTypeI.hoc
mosinit.hoc
NregNsyn.hoc
Nregsyn.hoc
regNsyn.hoc *
                            
/******************************************************************************
Create totSyn number(here is 1000) synapses on either proximal apical dendrite,
distal apical dendrite or basal dendrite (based on the flag "choice"). Also sets
the synaptic weight following Type I or Type C model based on the value of MODELTYPE.
MODELTYPE is inherited.
Here all the synapses is connected to the same NetStim cell
******************************************************************************/
//1 for apical dendrite(both main trunk & obl. branches) < TWO_THIRD_APIDEND
//2 for apical dendrite(both main trunk & obl. branches) > TWO_THIRD_APIDEND
//3 for basal dendrite
choice = 1

if (choice == 1 || choice == 2) {
    BEGINSECTION= BASDENDMAX + 1
    ENDSECTION= TOTALDEND - 1
} else {
    BEGINSECTION= 0
    ENDSECTION= BASDENDMAX
}

objref rc, rd
rc = new Random()
rc.MCellRan4(highindex+2250)
rc.uniform(BEGINSECTION, ENDSECTION)
rd = new Random()
totSyn = 1000

objref Ens
Ens = new NetStim(0.5)
Ens.interval=200
Ens.number = 1000000000000000000000000000000
Ens.start=0
Ens.noise=0

objref syn[totSyn], nc[totSyn]
double  synWt[totSyn]

access soma
soma distance()

for (i=0; i <= totSyn-1; i +=1) {
    count = 1
    /*---------generate a syn at random section and random segment--*/
	flag=0
	while (flag==0) {
		comp=int(rc.repick()+0.5)
		dend[comp].sec {  //for now limiting syn loc 2/3 to soma
		    rd.MCellRan4(highindex+i*15+2000)
		    rd.uniform(1, nseg+1)
		    count = 0
		    while (count <= nseg && flag==0) {
			tmpnseg = int( rd.repick())
			count += 1
			tmp = (2*tmpnseg - 1)/(2*nseg)

                        if (choice == 1) { // shorter than 2/3 max. apical length
                            if (distance(tmp) < TWO_THIRD_APIDIST ) {flag=1} else {flag=0} //total length is up to 800uM
                        } else if (choice == 2) { // longer than 2/3 max. apical length
                            if (distance(tmp) > TWO_THIRD_APIDIST ) {flag=1} else {flag=0} //total length is up to 800uM
                        } else { //basal dendrite
                            flag = 1
                        }
		    }
		}
	}//now right section, right segment has been found
    
    dend[comp].sec {
	dist = distance(tmp)

        syn[i] = new Exp2Syn(tmp)
        syn[i].e=0
        syn[i].tau1 = TAU1
        syn[i].tau2 = TAU2
        nc[i] = new NetCon(Ens, syn[i])

	/*--------------------Setting dist value based on Type I or Type C Model--------------*/
	if ( MODELTYPE == 1 ) {  //Type C Model

		if (choice == 1) {  //within 2/3 proximal apical dendrite
		    if (issection("apical_dendrite.*")) { //synapse on oblique branch
			index = comp - BASDENDMAX - 1
			user5[aplist.x[index]] dist = distance(1)
		    } else { //synapse on main trunk user5
			dist = distance(tmp)
		    }

		} else if (choice == 2) {  //on distal apical dendrite
		    dist = TWO_THIRD_APIDIST
		} else { //choice == 3
		    dist = 0
		}

	} else {  //Type I Model or Passive Model
		dist = distance(tmp) 
	}


        nc[i].weight = (A*dist*dist+B)/1e+06   //A, B have diff. values dep. on Type I or C model

    } 
}


Loading data, please wait...