/* ---------------------------------------------------------------- Define the Axon Geometry Layer 5 cortical pyramidal cell has a long unmyelinated axon! Similar to Mainen et al (Neuron, 1995) ------------------------------------------------------------------*/ n_myelin = 14 // number of myelins and nodes create ais[2],hill,nakeaxon,myelin[2],node[2] // forward declaration proc create_axon() { create ais[10],hill,nakeaxon,myelin[n_myelin],node[n_myelin] // Acquire the equivalent diameter of soma soma { equiv_diam = sqrt(area(0.5)*nseg/(4*PI)) } // "*nseg" is needed !! if (numarg()) equiv_diam = $1 // Set axonal diameters diamAis=equiv_diam/10 diamNakeAxon=equiv_diam/12 diamMyelin=diamAis*1. diamNode=diamAis*0.75 // nodes are thinner than axon // Initial segment hill { L = 10 nseg = 10 diam( 0 : 0.25 ) = 6 : 3.8 diam( 0.25 : 0.5 ) = 3.8 : 2.8 diam( 0.5 : 0.75 ) = 2.8 : 1.7 diam( 0.75 : 1 ) = 1.7 : 1.3 } for i=0,9 ais[i] { L = 5 nseg = 10 diam = 1.22 } ais[0] { diam( 0 : 1 ) = 1.7 : 1.5 } ais[1] { diam( 0 : 1 ) = 1.5 : 1.22 } // Unmylined axon nakeaxon { L = 400 nseg = 100 diam = diamNakeAxon } // Myelinated axon with nodes of Ranvier for i=0,n_myelin-1 { myelin[i] { // myelin element nseg = 5 L = 100 diam = diamMyelin } node[i] { // nodes of Ranvier nseg = 1 L = 1 diam = diamNode } } // Connecting soma connect hill(0), axonOnSoma // dend11 -> soma(0) -> soma(1) -> hill hill connect ais[0] (0), 1 // hill -> ais[0] for i=0,8 ais[i] { // ais[0] -> ... -> ais[9] connect ais[i+1] (0), 1 } ais[9] connect nakeaxon(0), 1 // ais[9] -> nakeaxon nakeaxon connect myelin[0] (0), 1 // nakeaxon -> myelin[0] myelin[0] connect node[0](0), 1 // myelin[0] -> node[0] for i=1,n_myelin-1 { // (myelin[0] node[0]) -> ... -> (myelin[n_myelin] node[n_myelin]) node[i-1] connect myelin[i](0), 1 myelin[i] connect node[i](0), 1 } }