/*
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