/*** to connect axon, based on Mainen et al. 1995. Copied from parse.hoc in Vetter et al (2001)'s "Dendritica" (dendritica-1.0/batch_back/back/parse.hoc) Christina Weaver, August 2011 ***/ n_axon_seg = 5 /* # nodes in synthetic axon */ create iseg, hill, myelin[n_axon_seg], node[n_axon_seg] /*************************************************************************/ objref axExcit, axSame proc connect_axon() { local a,i // cmw Aug '11: deleted local var 'n' /* Create axon (similar to Mainen et al (Neuron, 1995) */ create iseg create node[n_axon_seg] create hill create myelin[n_axon_seg] a = 0 soma { for(x) a += area(x) equiv_diam = sqrt(a/(4*PI)) // if (swc) equiv_diam = equivdiam /*DukeSouth*/ } for i=0,n_axon_seg-1 { iseg { L=15 nseg=5 diam=equiv_diam/10 } /*Sloper&Powell 1982,Fig.71*/ myelin[i] { L=100 nseg=5 diam=iseg.diam } node[i] { L=1.0 nseg=1 diam=iseg.diam*.75 } } hill { L=10 nseg=5 diam(0:1)=4*iseg.diam:iseg.diam } soma connect hill(0), 0.5 hill connect iseg(0), 1 iseg connect myelin[0](0), 1 myelin[0] connect node[0](0), 1 for i=0,n_axon_seg-2 { node[i] connect myelin[i+1](0),1 myelin[i+1] connect node[i+1](0),1 } axExcit = new SectionList() axSame = new SectionList() hill axExcit.append() iseg axExcit.append() forsec "myelin" axSame.append() Axon = 1 } proc add_axon() { connect_axon() //origin.sec distance(0,originx) // cmw Aug '11: not needed insert_channels() reset() Axon = 1 define_shape() } /*************************************************************************/ proc remove_axon() { forsec "iseg" delete_section() // take out axon 9.2.99 forsec "hill" delete_section() forsec "myelin" delete_section() //forsec "node" delete_section() not the node - used for calcs //origin.sec distance(0,originx) // cmw Aug '11: not needed Axon = 0 define_shape() } /*************************************************************************/ proc insert_channels() { /* insert channels and set reversal potentials */ forall { insert pas /* generic conductance with reverse potential */ //insert pk /* backpropagaton tools */ insert na insert kv } // Vetter et al allowed the option to include Q, Ca, KCa, KM currents here. // cmw: DELETED Aug '11 forsec "myelin" uninsert kv /* no delayed rectifiers in myelin */ /* set reversal potentials */ forall e_pas = -70 forall if(ismembrane("k_ion")) ek = Ek forall if(ismembrane("na_ion")) ena = Ena forall if(ismembrane("na_ion")) vshift_na = -5 forall if(ismembrane("ca_ion")) { eca = 140 ion_style("ca_ion",0,1,0,0,0) vshift_ca = 0 } } proc insert_passive() { /* insert channels and set reversal potentials */ forall { insert pas /* generic conductance with reverse potential */ } /* set reversal potentials */ forall e_pas = -70 } /*************************************************************************/ proc add_passive_axon() { connect_axon() //origin.sec distance(0,originx) // cmw Aug '11: not needed insert_passive() passive_set() Axon = 1 define_shape() }