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.