neurenv/hoc/exportLocs_seg.hoc
2026-07-11 18:20:01 -04:00

54 lines
2.3 KiB
Plaintext

strdef s
proc exportLocs_seg(){ localobj savLocs, savDiam, sref
// all segment locs
neuron_section_size = 0
savLocs = new File()
sprint(s,"locs_all_seg.txt")
savLocs.wopen(s)
forall{ // loop over all sections
sref = new SectionRef()
if (!sref.has_parent) { // check if root section
for (x,0) { // loop over all segments in that section
if (x == 1/(2*nseg)) { // the first segment of the root section
savLocs.printf("%.4f %.4f %.4f nan nan nan\n", x_xtra(x), y_xtra(x), z_xtra(x))
} else {
savLocs.printf("%.4f %.4f %.4f %.4f %.4f %.4f\n", x_xtra(x), y_xtra(x), z_xtra(x), x_xtra(x-1/nseg), y_xtra(x-1/nseg), z_xtra(x-1/nseg))
}
}
} else if (sref.has_trueparent) {
for (x,0) { // loop over all segments in that section
if (x == 1/(2*nseg)) { // if the first segment, the parent segment is the last segment of the parent section
savLocs.printf("%.4f %.4f %.4f ", x_xtra(x), y_xtra(x), z_xtra(x))
sref.parent { savLocs.printf("%.4f %.4f %.4f \n", x_xtra(1-1/(2*nseg)), y_xtra(1-1/(2*nseg)), z_xtra(1-1/(2*nseg))) }
} else {
savLocs.printf("%.4f %.4f %.4f %.4f %.4f %.4f\n", x_xtra(x), y_xtra(x), z_xtra(x), x_xtra(x-1/nseg), y_xtra(x-1/nseg), z_xtra(x-1/nseg))
}
}
} else {
for (x,0) { // loop over all segments in that section
if (x == 1/(2*nseg)) { // if the first segment, the parent segment is the last segment of the parent section
savLocs.printf("%.4f %.4f %.4f ", x_xtra(x), y_xtra(x), z_xtra(x))
sref.parent { savLocs.printf("%.4f %.4f %.4f \n", x_xtra(1/(2*nseg)), y_xtra(1/(2*nseg)), z_xtra(1/(2*nseg))) }
} else {
savLocs.printf("%.4f %.4f %.4f %.4f %.4f %.4f\n", x_xtra(x), y_xtra(x), z_xtra(x), x_xtra(x-1/nseg), y_xtra(x-1/nseg), z_xtra(x-1/nseg))
}
}
}
neuron_section_size += 1
}
savLocs.close()
savDiam = new File()
sprint(s,"diam_all.txt")
savDiam.wopen(s)
forall{
sref = new SectionRef()
savDiam.printf("%.4f\n", diam3d(n3d()/2-0.5))
}
savDiam.close()
}