int i = 0
str striatumcompartment
//create input element tree outside of the cell path
if (!{exists /inputs})
create neutral /inputs
end
create neutral /inputs/striatum
//cycle through each selected compartment and add synapses
openfile {striatumfname} r
striatumcompartment = {readfile {striatumfname}}
while (! {eof {striatumfname}})
i = {i} + 1
float randSeedValue = 20000000 + 123456 * {i}
randseed {randSeedValue}
if (!{exists {cellpath}/{striatumcompartment}/GABA})
//Add GABA synapses
copy /library/GABA {cellpath}/{striatumcompartment}/GABA
addmsg {cellpath}/{striatumcompartment}/GABA {cellpath}/{striatumcompartment} CHANNEL Gk Ek
addmsg {cellpath}/{striatumcompartment} {cellpath}/{striatumcompartment}/GABA VOLTAGE Vm
setfield {cellpath}/{striatumcompartment}/GABA gmax {G_GABA}
end
if ({striatum_rate} > 0)
str temp_name = {strsub {stncompartment} [ _ -all} //to allow for unique identification in genesis
str tempName = {strsub {temp_name} ] _ -all} //to allow for unique identification in genesis
int currNum = 1
str timetableName = "timetable" @ {tempName} @ {currNum}
while ({exists /inputs/striatum/{timetableName}})
currNum = {currNum} + 1
timetableName = "timetable" @ {tempName} @ {currNum}
end
str spikegenName = "spikegen" @ {tempName} @ {currNum}
create timetable /inputs/striatum/{timetableName}
setfield /inputs/striatum/{timetableName} maxtime {rundur} act_val 1.0 method 1 meth_desc1 {1/{striatum_rate}}
call /inputs/striatum/{timetableName} TABFILL
create spikegen /inputs/striatum/{spikegenName}
setfield /inputs/striatum/{spikegenName} output_amp 1 thresh 0.5
//connect timetables to GABA synapses
addmsg /inputs/striatum/{timetableName} /inputs/striatum/{spikegenName} INPUT activation
addmsg /inputs/striatum/{spikegenName} {cellpath}/{striatumcompartment}/GABA SPIKE
end
striatumcompartment = {readfile {striatumfname}}
end
closefile {striatumfname}