// CHOOSE FILE NAME strdef cellToLoad { cellToLoad = "twinApical.swc" } // This code is based on the implementation of // http://www.neuron.yale.edu/phpbb/viewtopic.php?f=13&t=2272; extended for // use with an ASCII file emerging from Neurolucida. { load_file("import3d.hoc") } // This is a dummy template that gets overwritten when the new cell is // loaded. This is included strictly to facilitate the import process. begintemplate Cell public soma, axon, dend, apic create soma[1],axon[1],dend[1],apic[1] public all,somatic,axonal,basal,apical objref all,somatic,axonal,basal,apical proc init() { all = new SectionList() somatic = new SectionList() axonal = new SectionList() basal = new SectionList() apical = new SectionList() } endtemplate Cell // Load the cell. // $s1 is the morphology name // On exit, the return object is a Cell instance with the // morphology specified by the $s1 file obfunc mkcell() { localobj import,morph,cell cell = new Cell() morph = new Import3d_SWC_read() morph.input($s1) import = new Import3d_GUI(morph,0) execute("forall delete_section()",cell) import.instantiate(cell) return cell } objref cell { cell = mkcell(cellToLoad) }