str element
str shortelement
str mysource
str mydest
str outfile
// By synapse target:
// List source, dest coordinates and weight
//foreach element ({el /#net/#[]/#/Inh_ch#,/#net/#[]/#/Ex_ch#})
// int syncount = {getsyncount {element}}
// outfile = {"./data-latest/connections/" @ {myzeropadnode} @ {strsub {element} / _ -all} @ ".txt"}
// for (i=0; i<=syncount-1; i=i+1)
// mysource = {getsynsrc {element} {i}}
// //if ({mysource} != "/post")
// echo {getsynsrc {element} {i}} {getfield {getsynsrc {element} {i}} x} {getfield {getsynsrc {element} {i}} y} {getfield {getsynsrc {element} {i}} z} {element} {getfield {element} x} {getfield {element} y} {getfield {element} z} {getfield {element} synapse[{i}].weight} >> {outfile}
// //end
// end
//end
//// By spike generator (soma):
//// List source, dest coordinates using rshowmsg
//// Using rshowmsg for efficiency (instead of personally iterating over each destination element)
int thisnode
for (thisnode=0; {thisnode < {Nnodes}}; thisnode={{thisnode}+1})
if ({thisnode} == {mynode})
barrierall
// Synaptic connections to other neurons
echo Listing connections for node {mynode}
foreach element ({el /#net/#[]/soma/spk#})
outfile = {"./data-latest/connections/" @ {myzeropadnode} @ {strsub {element} / _ -all} @ ".txt"}
echo {mynode} {element} {getfield {element} x} {getfield {element} y} {getfield {element} z} {getfield {element}/../.. rotation} >> {outfile}
rshowmsg {element} >> {outfile}
//echo {thisnode} {element} {getfield {element} x} {getfield {element} y} {getfield {element} z} {getfield {element}/../.. rotation} > /dev/null
//async rshowmsg {element} > /dev/null
end
// Get random spike connections too
echo Listing random connections for node {mynode}
foreach element ({el /randomspike#})
outfile = {"./data-latest/connections/" @ {myzeropadnode} @ {strsub {strsub {element} randomspike randomspike_ -all} / _ -all} @ ".txt"}
echo {getsyndest {element} 0} {getfield {getsyndest {element} 0}/../.. x} {getfield {getsyndest {element} 0}/../.. y} {getfield {getsyndest {element} 0}/../.. z} {element} {getfield {getsyndest {element} 0} synapse[0].weight} >> {outfile}
rshowmsg {element} >> {outfile}
//echo {thisnode} {element} {getfield {element} x} {getfield {element} y} {getfield {element} z} {getfield {element}/../.. rotation} > /dev/null
//async rshowmsg {element} > /dev/null
end
end
barrierall
end
// It's not currently possible to get the synaptic weight for remote
// connections, e.g.:
// echo {getfield@1 /C23FSnet/C23FS/distdendSmidb/Ex_ch15P23RSAMPA synapse[7].weight}
// This is because they're all routed through the /post object.
|