//randomize2-2.g //both AMPA and GABA synaptic inputs to fs cell function rannum_unique (tablename) str tablename int i int last={getfield inputs X_A->xmax} int index={trunc {rand 0 {n{channelType}}} } int filenum={getfield {tablename} X_A->table[{index}]} setfield {tablename} X_A->table[{index}] {getfield {tablename} X_A->table[{last}]} setfield {tablename} X_A->xmax {last-1} return {filenum} end /*This function is used when there are fewer input files than synapses. All synapses get inputs, but some are duplicates, introducing correlation. */ function randomize2 (fileroot, GABAtert, GABAsec, GABAprim, Gluprim, Glusec, Glutert, type, corr) str fileroot, type int GABAtert, GABAsec, GABAprim int Gluprim, Glusec, Glutert float corr int loop1, loop2 int rannum, i, last, j, k int numfiles // initialize total number of inputs and files int totalinputs totalinputs=(Gluprim+GABAprim)*7+(Glusec+GABAsec)*24+(Glutert+GABAtert)*96 numfiles=totalinputs*(1-corr) +corr int loops=totalinputs/numfiles echo "totalinputs=" {totalinputs} "corr=" {corr} "numfiles=" {numfiles} "loops=" {loops} //create table to store filenumbers if ({exists inputs}) delete inputs end create tabchannel inputs disable inputs call inputs TABCREATE X {totalinputs-1} 0 {totalinputs-1} j=0 for (k=0; k<loops; k=k+1) for (i=0; i<numfiles; i=i+1) setfield inputs X_A->table[{j}] {i} j=j+1 end end int remaining=totalinputs-j echo "j=" {j} "remaining=" {remaining} if (remaining>0) int startfile={round {rand -0.499 {numfiles-remaining}} } for (i=startfile; i<(startfile+remaining); i=i+1) setfield inputs X_A->table[{j}] {i} j=j+1 end echo "startfile=" {startfile} "endfile=" {i-1} "last j" {j-1} end //Choose input files randomly for each compartment 2 if ({Gluprim} == 1) rannum={rannum_unique inputs } make_input /fs/soma/AMPA_channel soma_ampa_{type} {fileroot}{rannum} end for (j=1; j<={GABAprim}; j=j+1) rannum = {rannum_unique inputs } make_input /fs/soma/GABA_channel soma_gaba{j}_{type} {fileroot}{rannum} end //making synaptic inputs to primary dendrites for (loop1=1; loop1 < 4 ; loop1 = loop1+1) if ({Gluprim} == 1) rannum={rannum_unique inputs } make_input /fs/primdend{loop1}/AMPA_channel primdend{loop1}_ampa_{type} {fileroot}{rannum} rannum={rannum_unique inputs } make_input /fs/primdend{loop1}/prim_dend2/AMPA_channel primdend{loop1}s2_ampa_{type} {fileroot}{rannum} end for (j=1; j<={GABAprim}; j=j+1) rannum={rannum_unique inputs } make_input /fs/primdend{loop1}/GABA_channel primdend{loop1}_gaba{j}_{type} {fileroot}{rannum} rannum={rannum_unique inputs } make_input /fs/primdend{loop1}/prim_dend2/GABA_channel primdend{loop1}s2_gaba{j}_{type} {fileroot}{rannum} end end //making inputs to secondary dendrites. for (loop1 = 1; loop1 < 7; loop1= loop1+1) for (j=1; j<={Glusec}; j=j+1) rannum={rannum_unique inputs } make_input /fs/secdend{loop1}/AMPA_channel secdend{loop1}_ampa{j}_{type} {fileroot}{rannum} end for (j=1; j<={GABAsec}; j=j+1) rannum={rannum_unique inputs } make_input /fs/secdend{loop1}/GABA_channel secdend{loop1}_gaba{j}_{type} {fileroot}{rannum} end for (loop2 = 2; loop2 < 5; loop2 = loop2+1) for (j=1; j<={Glusec}; j=j+1) rannum={rannum_unique inputs } make_input /fs/secdend{loop1}/sec_dend{loop2}/AMPA_channel secdend{loop1}s{loop2}_ampa{j}_{type} {fileroot}{rannum} end for (j=1; j<={GABAsec}; j=j+1) rannum={rannum_unique inputs } make_input /fs/secdend{loop1}/sec_dend{loop2}/GABA_channel secdend{loop1}s{loop2}_gaba{j}_{type} {fileroot}{rannum} end end end //making synaptic inputs to tertiary dendrites for (loop1 = 1; loop1 < 13; loop1= loop1+1) for (j=1; j<={Glutert}; j=j+1) rannum={rannum_unique inputs } make_input /fs/tertdend{loop1}/AMPA_channel tertdend{loop1}_ampa{j}_{type} {fileroot}{rannum} end if ({GABAtert} == 1) rannum={rannum_unique inputs } make_input /fs/tertdend{loop1}/GABA_channel tertdend{loop1}_gaba_{type} {fileroot}{rannum} end for (loop2 = 2; loop2 < 9; loop2 = loop2+1) for (j=1; j<={Glutert}; j=j+1) rannum={rannum_unique inputs } make_input /fs/tertdend{loop1}/tert_dend{loop2}/AMPA_channel tertdend{loop1}s{loop2}_ampa{j}_{type} {fileroot}{rannum} end if ({GABAtert} == 1) rannum={rannum_unique inputs } make_input /fs/tertdend{loop1}/tert_dend{loop2}/GABA_channel tertdend{loop1}s{loop2}_gaba_{type} {fileroot}{rannum} end end end echo "last=" {getfield inputs X_A->xmax} end