if(theSim<2.1){
// incorporate AMPA-only synapses
scaleSyn=8.2
weightAmpa = 0.00013*scaleSyn
weightNmda = 0
}else{
// incorporate AMPA and NMDA synapses
scaleSyn=6
weightAmpa = 0.00012*scaleSyn
weightNmda = 0.00012*scaleSyn
}
// allows access to parent X values. Used multiple times as helper.
func getParentX(){
neck[$1]{
tempVal = parent_connection()
}
pop_section()
return tempVal
}
// ADD TWO SYNAPSES AND INVESTIGATE CLUSTERED VS. DISTRIBUTED INPUTS
// ACROSS STRETCH OF DENDRITE.
nSyn=nSpine
objref nsAmpa[nSyn],ncAmpa[nSyn],synAmpa[nSyn]
objref nsNmda[nSyn],ncNmda[nSyn],synNmda[nSyn]
synStart = 100 // time to start synapses
proc initSynapses(){
for ii=0,nSyn-1{
shaftInput = shaftInputs.x[ii]
if(abs(shaftInput)<0.1){
head[ii]{
synAmpa[ii] = new Exp2Syn(0.5)
synNmda[ii] = new Exp2SynNMDA(0.5)
}
}else{
theXVal = getParentX(ii)
dendTar.sec{
synAmpa[ii] = new Exp2Syn(theXVal)
synNmda[ii] = new Exp2SynNMDA(theXVal)
}
}
nsAmpa[ii] = new NetStim(0.5)
nsNmda[ii] = new NetStim(0.5)
ncAmpa[ii] = new NetCon(nsAmpa[ii],synAmpa[ii])
ncNmda[ii] = new NetCon(nsNmda[ii],synNmda[ii])
synAmpa[ii].tau1 = 0.2 // harnett et al., 2012
synAmpa[ii].tau2 = 2 // harnett et al., 2012
synAmpa[ii].e = 0
synNmda[ii].tau1 = 1 // harnett et al., 2012
synNmda[ii].tau2 = 75 // harnett et al., 2012
synNmda[ii].e = 0
nsAmpa[ii].interval = 0
nsAmpa[ii].number = 1
nsAmpa[ii].noise = 0
nsNmda[ii].interval = 0
nsNmda[ii].number = 1
nsNmda[ii].noise = 0
ncAmpa[ii].delay = 0
ncNmda[ii].delay = 0
ncAmpa[ii].weight = weightAmpa
ncNmda[ii].weight = weightNmda
}
}
// Change weights of synapses.
proc initSynapticWeight(){
ncAmpa[0].weight = $1
ncAmpa[1].weight = $2
ncNmda[0].weight = $3
ncNmda[1].weight = $4
}
// Change start times of synapses.
proc initSynapticTime(){
nsAmpa[0].start = $1
nsNmda[0].start = $1
nsAmpa[1].start = $2
nsNmda[1].start = $2
}
// move two spines to new locations, as specified by user.
// $1: x location for spine 1
// $2: x location for spine 2
proc moveSpines(){
dendTar.sec{
connect neck[0](0),$1
connect neck[1](0),$2
}
}