Amyloid-beta effects on release probability and integration at CA3-CA1 synapses (Romani et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:147757
The role of amyloid beta (Aß) in brain function and in the pathogenesis of Alzheimer’s disease remains elusive. Recent publications reported that an increase in Aß concentration perturbs presynaptic release in hippocampal neurons, in particular by increasing release probability of CA3-CA1 synapses. The model predics how this alteration can affect synaptic plasticity and signal integration. The results suggest that the perturbation of release probability induced by increased Aß can significantly alter the spike probability of CA1 pyramidal neurons and thus contribute to abnormal hippocampal function during Alzheimer’s disease.
Reference:
1 . Romani A, Marchetti C, Bianchi D, Leinekugel X, Poirazi P, Migliore M, Marie H (2013) Computational modeling of the effects of amyloid-beta on release probability at hippocampal synapses. Front Comput Neurosci 7:1 [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; Synapse;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Na,t; I A; I K; I M; I h; I Calcium; I_AHP;
Gap Junctions:
Receptor(s): AMPA;
Gene(s):
Transmitter(s): Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Synaptic Plasticity; Short-term Synaptic Plasticity; Facilitation; Depression; Synaptic Integration; Aging/Alzheimer`s;
Implementer(s): Bianchi, Daniela [danielabianchi12 -at- gmail.com]; Romani, Armando [romani.armando -at- gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; AMPA; I Na,t; I A; I K; I M; I h; I Calcium; I_AHP; Glutamate;
/
RomaniEtAl2013
experiment
cad.mod *
cagk.mod *
cal.mod *
calH.mod *
car.mod *
cat.mod *
d3.mod *
h.mod *
kadist.mod *
kaprox.mod *
kca.mod *
kdr.mod *
km.mod *
na3.mod *
na3dend.mod *
na3notrunk.mod *
nap.mod *
nax.mod *
netstimmm.mod *
somacar.mod *
tmgsyn.mod
vecevent.mod
cell-setup.hoc
createNewSyn4.hoc
loadBasicModel.hoc
mosinit.hoc
session.ses
simulation.hoc
                            
//parameters
/*****************************************************************************/
probrel=0.15  //set 0.15 to simulate ctrl condition, 0.36 Abeta condition
nSyn = 10       //number of synapses. Each 'synapse' represents a population of synapses

nStim=5         //number of stimuli
t0=500          //(ms) stimulation start

ISI=10  // (ms) initialize inter-stimulus interval

VCLAMP = 1    //set 1 to simulate voltage clamp, 0 otherwise
PRINTRATIO = 1    //set 1 to calculate and print relative peaks,
                  //0 absolute peaks  


//random number to make the simulation asynchronous
objref randelay
randelay = new Random()
maxDelay = 0    //(ms) set maximum delay
randelay.uniform(0,maxDelay)

/*****************************************************************************/

//load basic model

xopen("./loadBasicModel.hoc")


//place synapses
/*****************************************************************************/


objref dend[200], nstim[nSyn], syn[nSyn], netcon[nSyn]

index = 0

//forsec apical_non_trunk_list {
forsec apical_trunk_list {
	dend[index] = new SectionRef()
	index += 1
}

nSec = index	//number of objects in the list

min_distance = 100	//um
max_distance = 400	//um

//random number used for locating synapses
objref ransec, ranseg
ransec = new Random()
ransec.uniform(0,nSec-1)	//generate distribution for selecting sections
ranseg = new Random()

//random number used for synaptic weights
objref ranwei
ranwei = new Random()
ranwei.lognormal(1.6,1)
//x0=5, mu=1.6, sigma=1 -> fitting data by Ito & Schuman


//allocate synapses randomly on different apical dendrites (no repetitions) and connect them with presynaptic mechanism
for i = 0, nSyn-1 {
	nstim[i] = new NetStim(0.5)
}



/*****************************************************************************/


//set experimental condition
dt=0.1
steps_per_ms=10
setdt()


//procedures for stimulation
/*****************************************************************************/

//Insert a voltage clamp electrode
objref vclamp
soma vclamp = new VClamp(0.5)
vclamp.dur[0] = 0
vclamp.amp[0] = -70

proc setVClamp() {
	VCLAMP = 1
	vclamp.dur[0] = $1
}


//check peaks
/*****************************************************************************/



//create vector and file
objref vec
vec = new Vector()


double start[nStim], end[nStim], baseline[nStim], maxvalue[nStim], peak[nStim], ratio[nStim]


//procedure to measure peaks
proc calculateRatios() {

	//calculate the first start and end
	start[0] = t0/0.1										//index = time(ms)/dt
	end[0] = start[0] + ISI/0.1

	//calculate the ratios
	for (j = 0; j <= nStim-1; j += 1) {

		//calculate the n-th peak (where n = j+1 = nStim)
		start[j] = start[0] + j*ISI/0.1		//(startpoint + stimulusNumber*ISI)/0.1
		
    if (j == nStim-1) {
			end[j] = tstop/0.1
		} else {
			end[j] = start[j] + ISI/0.1
		}

    if (VCLAMP == 1) {  //for vclamp.i use vec.max; for soma.v use vec.min
      baseline[j] = vec.max(int(start[j]-ISI/0.2),int(start[j]+ISI/0.2))
    } else {
      baseline[j] = vec.min(int(start[j]-ISI/0.2),int(start[j]+ISI/0.2))
    }				

    if (VCLAMP == 1) {  //for vclamp.i use vec.min; for soma.v use vec.max
		  maxvalue[j] = vec.min(int(start[j]),int(end[j]))			
    } else {
      maxvalue[j] = vec.max(int(start[j]),int(end[j]))
    }
    
		peak[j] = maxvalue[j] - baseline[j]

		//calculate the n-th ratio
		ratio[j] = peak[j]/peak[0]
	}
}

//Stimulate with n stimuli, having a certain inter-stimulus interval (ISI)
proc stimulation() { //ISI, nStim

	for i=0, nSyn-1 {
		nstim[i].number = nStim
		nstim[i].interval = ISI
		nstim[i].start = t0 + randelay.repick()
		nstim[i].noise = 0
	}

}


 


/****************************************************************************************/

//stimulation frequency between 5 to 200 Hz
objref nfreq
nfreq = new Vector(7)

nfreq.x[0] = 5
nfreq.x[1] = 10
nfreq.x[2] = 40
nfreq.x[3] = 80
nfreq.x[4] = 100
nfreq.x[5] = 150
nfreq.x[6] = 200


//main procedure

load_file("session.ses")


proc synup(){
 for i = 0, nSyn-1 {
         syn[i].U=$1
}
}

xpanel(" ")
xvalue("U","probrel")
xvalue("t","t", 2 )
xbutton("Stop","stoprun=1")
xbutton("Run","plasticity()")
xpanel()

  
proc plasticity(){
       m=4
  	ISI=1000/nfreq.x[m]
  	tstop = t0 + (nStim-1)*ISI + 150	
      setVClamp(tstop)
      xopen("./createNewSyn4.hoc")
      synup(probrel)      
      stimulation()
      vec.record(&vclamp.i)
      run() 
	 calculateRatios()
}