str spiketypeGrad = "spke18" //18: high=*50, med=*3, low=*1, gaba=*7 //19: high=*40, med=*5, low=*2, gaba=*7 //****start local subroutines function makeinputpreGrad(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}*1} 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 makeinputpostGrad(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 stopinputGrad (path) str path deletemsg {path} 1 -incoming end function stopinput2Grad (path) str path deletemsg {path} 1 -incoming end function deletespikesGrad (path) str path delete {path}/randomspikehigh delete {path}/randomspikemed delete {path}/randomspikelow delete {path}/randomspike2 end //***end local subroutines //***start main functions function makeALLpreGrad (Hz) float Hz int i=1 str path9 for(i=1;i<5;i=i+1) foreach path9({el {cellpath}/primdend{i}}) makeinputpreGrad {Hz} {path9} end reset end str path int i=1 for(i=11;i<13;i=i+1) foreach path({el {cellpath}/secdend{i}}) makeinputpreGrad {Hz} {path} end reset end for(i=21;i<23;i=i+1) foreach path({el {cellpath}/secdend{i}}) makeinputpreGrad {Hz} {path} end reset end for(i=31;i<33;i=i+1) foreach path({el {cellpath}/secdend{i}}) makeinputpreGrad {Hz} {path} end reset end for(i=41;i<43;i=i+1) foreach path({el {cellpath}/secdend{i}}) makeinputpreGrad {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}}) makeinputpreGrad {Hz} {path4} end end end reset reset // twice? end function deleteALLspikesGrad int i=1 str path9 for(i=1;i<5;i=i+1) foreach path9({el {cellpath}/primdend{i}}) deletespikesGrad {path9} end reset end str path int i=1 for(i=11;i<13;i=i+1) foreach path({el {cellpath}/secdend{i}}) deletespikesGrad {path} end reset end for(i=21;i<23;i=i+1) foreach path({el {cellpath}/secdend{i}}) deletespikesGrad {path} end reset end for(i=31;i<33;i=i+1) foreach path({el {cellpath}/secdend{i}}) deletespikesGrad {path} end reset end for(i=41;i<43;i=i+1) foreach path({el {cellpath}/secdend{i}}) deletespikesGrad {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}}) deletespikesGrad {path4} end end end reset reset // twice? end function makeALLpostGrad (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}}) makeinputpostGrad {cellpath}/primdend{i}/randomspike{freq} {path8}/AMPA makeinputpostGrad {cellpath}/primdend{i}/randomspike{freq} {path8}/{subunit} makeinputpostGrad {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}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} makeinputpostGrad {cellpath}/secdend{i}/randomspike2 {path1}/GABA end end for(i=21;i<23;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} makeinputpostGrad {cellpath}/secdend{i}/randomspike2 {path1}/GABA end end for(i=31;i<33;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} makeinputpostGrad {cellpath}/secdend{i}/randomspike2 {path1}/GABA end end for(i=41;i<43;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} makeinputpostGrad {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}}) makeinputpostGrad {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/AMPA makeinputpostGrad {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/{subunit} makeinputpostGrad {cellpath}/tertdend{j}_{k}/randomspike2 {path2}/GABA end end end end function makeGLUpostGrad (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}}) makeinputpostGrad {cellpath}/primdend{i}/randomspike{freq} {path8}/AMPA makeinputpostGrad {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}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} end end for(i=21;i<23;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} end end for(i=31;i<33;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/{subunit} end end for(i=41;i<43;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike{freq} {path1}/AMPA makeinputpostGrad {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}}) makeinputpostGrad {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/AMPA makeinputpostGrad {cellpath}/tertdend{j}_{k}/randomspike{freq} {path2}/{subunit} end end end end function makeGABApostGrad (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}}) makeinputpostGrad {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}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike2 {path1}/GABA end end for(i=21;i<23;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike2 {path1}/GABA end end for(i=31;i<33;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {cellpath}/secdend{i}/randomspike2 {path1}/GABA end end for(i=41;i<43;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) makeinputpostGrad {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}}) makeinputpostGrad {cellpath}/tertdend{j}_{k}/randomspike2 {path2}/GABA end end end end function stopGluGrad int i str path1 str path2 str path9 for(i=1;i<5;i=i+1) foreach path9 ({el {cellpath}/primdend{i}}) stopinputGrad {path9}/AMPA stopinputGrad {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}}) stopinputGrad {path1}/AMPA stopinputGrad {path1}/{subunit} end end for(i=21;i<23;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinputGrad {path1}/AMPA stopinputGrad {path1}/{subunit} end end for(i=31;i<33;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinputGrad {path1}/AMPA stopinputGrad {path1}/{subunit} end end for(i=41;i<43;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinputGrad {path1}/AMPA stopinputGrad {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}}) stopinputGrad {path2}/AMPA stopinputGrad {path2}/{subunit} end end end end function stopGABAGrad int i str path1 str path2 str path9 for(i=1;i<5;i=i+1) foreach path9 ({el {cellpath}/primdend{i}}) stopinput2Grad {path9}/GABA end end int x=1 // sec spines for(i=11;i<13;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinput2Grad {path1}/GABA end end for(i=21;i<23;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinput2Grad {path1}/GABA end end for(i=31;i<33;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinput2Grad {path1}/GABA end end for(i=41;i<43;i=i+1) foreach path1 ({el {cellpath}/secdend{i}}) stopinput2Grad {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}}) stopinput2Grad {path2}/GABA end end end end