str spiketype = "spke18"
//1: high=*50, med =*1, low =/1.5, gaba = *2
//2: high=*40, med =*1, low =/1.5, gaba = *2
//3: high=*40, med =*1, low =/1.5, gaba = *3
//4: high=*40, med =*1, low =/1.5, gaba = *4
//4r: high=*40, med =*5, low =/1, gaba = *7
//4ra: high=*30, med =*4, low =/1, gaba = *7
//4rb: high=*30, med =*3, low =/1, gaba = *7
//5: high=*60, med =/2, low =/5, gaba = *4
//6: high=*30, med =*1, low =/1.5, gaba = *4
//7r: high=*50, med=*5, low =*1, GABA = *7 gaba delay
//8r: high=*70, med=*5, low =*1, GABA = *10
//9r: high=*90, med=*5, low =*1, GABA = *10
//10r: high=*120, med=*1, low =*1, GABA = *10
//11r: high=*200, med=/2, low =/2, GABA = *40
//12y: high=*50, med=*1, low=/2, gaba = *8
//13y: high=*30, med=*5, low=/1.5, gaba=*5
//14y: high=*45, med=*1, low=*1, gaba=*5
//15y: high=*45, med=*10, low=*1, gaba=*5
//16y: high=*40, med=*5, low=*1, gaba=*10
//17y: high=*40, med=*5, low=*1, gaba=*7
//18: high=*50, med=*3, low=*1, gaba=*7
//****start local subroutines
function makeinputpre(rate, path)
str rate
str path
create randomspike {path}/randomspikehigh
setfield ^ min_amp 1.0 max_amp 1.0 rate {{rate}*50} reset 1 reset_value 0
create randomspike {path}/randomspikemed
setfield ^ min_amp 1.0 max_amp 1.0 rate {{rate}*3} reset 1 reset_value 0
create randomspike {path}/randomspikelow
setfield ^ min_amp 1.0 max_amp 1.0 rate {{rate}} reset 1 reset_value 0
create randomspike {path}/randomspike2
setfield ^ min_amp 1.0 max_amp 1.0 rate {{rate}*7} reset 1 reset_value 0
end
function makeinputpost(pathspike, path)
str path
int msgnum
addmsg {pathspike} {path} SPIKE
msgnum = {getfield {path} nsynapses} - 1
setfield {path} \
synapse[{msgnum}].weight 1 synapse[{msgnum}].delay 0
end
function stopinput (path)
str path
deletemsg {path} 2 -incoming
end
function stopinput2 (path)
str path
deletemsg {path} 1 -incoming
end
function deletespikes (path)
str path
delete {path}/randomspikehigh
delete {path}/randomspikemed
delete {path}/randomspikelow
delete {path}/randomspike2
end
//***end local subroutines
//***start main functions
function makeALLpre (Hz)
float Hz
int i=1
str path9
for(i=1;i<5;i=i+1)
foreach path9({el {cellpath}/primdend{i}})
makeinputpre {Hz} {path9}
end
reset
end
str path
int i=1
for(i=11;i<13;i=i+1)
foreach path({el {cellpath}/secdend{i}})
makeinputpre {Hz} {path}
end
reset
end
for(i=21;i<23;i=i+1)
foreach path({el {cellpath}/secdend{i}})
makeinputpre {Hz} {path}
end
reset
end
for(i=31;i<33;i=i+1)
foreach path({el {cellpath}/secdend{i}})
makeinputpre {Hz} {path}
end
reset
end
for(i=41;i<43;i=i+1)
foreach path({el {cellpath}/secdend{i}})
makeinputpre {Hz} {path}
end
reset
end
int j=1
int s=1
str path4
str path3
for(j=1;j<17;j=j+1)
for(s=1;s<12;s=s+1)
foreach path4({el {cellpath}/tertdend{j}_{s}})
makeinputpre {Hz} {path4}
end
end
end
reset
reset // twice?
end
function deleteALLspikes
int i=1
str path9
for(i=1;i<5;i=i+1)
foreach path9({el {cellpath}/primdend{i}})
deletespikes {path9}
end
reset
end
str path
int i=1
for(i=11;i<13;i=i+1)
foreach path({el {cellpath}/secdend{i}})
deletespikes {path}
end
reset
end
for(i=21;i<23;i=i+1)
foreach path({el {cellpath}/secdend{i}})
deletespikes {path}
end
reset
end
for(i=31;i<33;i=i+1)
foreach path({el {cellpath}/secdend{i}})
deletespikes {path}
end
reset
end
for(i=41;i<43;i=i+1)
foreach path({el {cellpath}/secdend{i}})
deletespikes {path}
end
reset
end
int j=1
int s=1
str path4
str path3
for(j=1;j<17;j=j+1)
for(s=1;s<12;s=s+1)
foreach path4({el {cellpath}/tertdend{j}_{s}})
deletespikes {path4}
end
end
end
reset
reset // twice?
end
function makeALLpost (freq)
str freq
str path1
str path2
str path5
str path8
int i=1
int x=1
for(i=1;i<5;i=i+1)
foreach path8 ({el {cellpath}/primdend{i}})
makeinputpost {cellpath}/primdend{i}/randomspike{freq} {path8}/AMPA
makeinputpost {cellpath}/primdend{i}/randomspike{freq} {path8}/{subunit}
makeinputpost {cellpath}/primdend{i}/randomspike2 {path8}/GABA
end
end
int i=1
// sec
for(i=11;i<13;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
for(i=21;i<23;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
for(i=31;i<33;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
for(i=41;i<43;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
int j=1
int k=1
// tert spines
for(j=1;j<17;j=j+1)
for(k=1;k<12;k=k+1)
foreach path2 ({el {cellpath}/tertdend{j}_{k}})
makeinputpost {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/AMPA
makeinputpost {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/{subunit}
makeinputpost {cellpath}/tertdend{j}_{k}/randomspike2 {path2}/GABA
end
end
end
end
function makeGLUpost (freq)
str freq
str path1
str path2
str path5
str path8
int i=1
int x=1
for(i=1;i<5;i=i+1)
foreach path8 ({el {cellpath}/primdend{i}})
makeinputpost {cellpath}/primdend{i}/randomspike{freq} {path8}/AMPA
makeinputpost {cellpath}/primdend{i}/randomspike{freq} {path8}/{subunit}
end
end
int i=1
// sec
for(i=11;i<13;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
end
end
for(i=21;i<23;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
end
end
for(i=31;i<33;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
end
end
for(i=41;i<43;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA
makeinputpost {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit}
end
end
int j=1
int k=1
// tert spines
for(j=1;j<17;j=j+1)
for(k=1;k<12;k=k+1)
foreach path2 ({el {cellpath}/tertdend{j}_{k}})
makeinputpost {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/AMPA
makeinputpost {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/{subunit}
end
end
end
end
function makeGABApost (freq)
str freq
str path1
str path2
str path5
str path8
int i=1
int x=1
for(i=1;i<5;i=i+1)
foreach path8 ({el {cellpath}/primdend{i}})
makeinputpost {cellpath}/primdend{i}/randomspike2 {path8}/GABA
end
end
int i=1
// sec
for(i=11;i<13;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
for(i=21;i<23;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
for(i=31;i<33;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
for(i=41;i<43;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
makeinputpost {cellpath}/secdend{i}/randomspike2 {path1}/GABA
end
end
int j=1
int k=1
// tert spines
for(j=1;j<17;j=j+1)
for(k=1;k<12;k=k+1)
foreach path2 ({el {cellpath}/tertdend{j}_{k}})
makeinputpost {cellpath}/tertdend{j}_{k}/randomspike2 {path2}/GABA
end
end
end
end
function stopGlu
int i
str path1
str path2
str path9
for(i=1;i<5;i=i+1)
foreach path9 ({el {cellpath}/primdend{i}})
stopinput {path9}/AMPA
stopinput {path9}/{subunit}
end
end
int i=1
int x=1
// sec spines
for(i=11;i<13;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput {path1}/AMPA
stopinput {path1}/{subunit}
end
end
for(i=21;i<23;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput {path1}/AMPA
stopinput {path1}/{subunit}
end
end
for(i=31;i<33;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput {path1}/AMPA
stopinput {path1}/{subunit}
end
end
for(i=41;i<43;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput {path1}/AMPA
stopinput {path1}/{subunit}
end
end
int j=1
int k=1
// tert spines
for(j=1;j<17;j=j+1)
for(k=1;k<12;k=k+1)
foreach path2 ({el {cellpath}/tertdend{j}_{k}})
stopinput {path2}/AMPA
stopinput {path2}/{subunit}
end
end
end
end
function stopGABA
int i
str path1
str path2
str path9
for(i=1;i<5;i=i+1)
foreach path9 ({el {cellpath}/primdend{i}})
stopinput2 {path9}/GABA
end
end
int x=1
// sec spines
for(i=11;i<13;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput2 {path1}/GABA
end
end
for(i=21;i<23;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput2 {path1}/GABA
end
end
for(i=31;i<33;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput2 {path1}/GABA
end
end
for(i=41;i<43;i=i+1)
foreach path1 ({el {cellpath}/secdend{i}})
stopinput2 {path1}/GABA
end
end
int j=1
int k=1
// tert spines
for(j=1;j<17;j=j+1)
for(k=1;k<12;k=k+1)
foreach path2 ({el {cellpath}/tertdend{j}_{k}})
stopinput2 {path2}/GABA
end
end
end
end