/* Section 18.7.3 of the BoG (Utility Functions for Synapses) describes and gives a listing for the synapse_info function. Usage: synapse_info path_to_synchan Example: synapse_info /network/cell[5]/apical1/Ex_channel This is used to return a list of synaptic connections to the channel, their sources, weights, and delays. It uses some of the built-in GENESIS commands: getsyncount [presynaptic-element] [postsynaptic-element] getsynindex <presynptic-element> <postpostsynaptic-element> [-number n] getsynsrc <postsynaptic-element> <index> getsyndest <presynptic-element> <n> [-index] //n is the no of spike message */ function synapse_info(path) str path,src int i float weight,delay, x0, y0, z0, x, y, z, rp, rv floatformat %.3g echo "For synchan path: " {path} for(i=0;i<{getsyncount {path}};i=i+1) src={getsynsrc {path} {i}} weight={getfield {path} synapse[{i}].weight} delay={getfield {path} synapse[{i}].delay } echo synapse[{i}] : rc = {src} weight ={weight} delay ={delay} x0 = {getfield {src} x} y0 = {getfield {src} y} z0 = {getfield {src} z} x = {getfield {path} x} y = {getfield {path} y} z = {getfield {path} z} rp = {sqrt {(x0-x)*(x0-x) + (y0-y)*(y0-y)}} rv = {sqrt {(x0-x)*(x0-x) + (y0-y)*(y0-y) + (z0-z)*(z0-z)}} echo "radial distance = "{rv} " planar distance = "{rp} end end