// Modified by Zhen Qi // Export node positions 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() }