proc celldef() { topol() subsets() geom() biophys() geom_nseg() } create soma[9], dend2[6], dend4[22], dend3[2], dend1[20], dend7[10], dend8[11] create dend6[3], dend5, axon[2] proc topol() { local i connect soma[1](0), soma(0) for i = 2, 8 connect soma[i](0), soma[i-2](1) connect dend2(0), soma(0) for i = 1, 2 connect dend2[i](0), dend2[i-1](1) connect dend2[3](0), dend2[1](1) for i = 4, 5 connect dend2[i](0), dend2[3](1) connect dend4(0), soma(1) for i = 1, 2 connect dend4[i](0), dend4(1) for i = 3, 4 connect dend4[i](0), dend4[1](1) for i = 5, 6 connect dend4[i](0), dend4[2](1) for i = 7, 8 connect dend4[i](0), dend4[3](1) for i = 9, 10 connect dend4[i](0), dend4[4](1) for i = 11, 12 connect dend4[i](0), dend4[6](1) for i = 13, 14 connect dend4[i](0), dend4[7](1) for i = 15, 16 connect dend4[i](0), dend4[10](1) for i = 17, 18 connect dend4[i](0), dend4[11](1) for i = 19, 20 connect dend4[i](0), dend4[12](1) connect dend4[21](0), dend4[15](1) connect dend3(0), dend2(1) connect dend3[1](0), dend3(1) connect dend1(0), soma[1](1) for i = 1, 2 connect dend1[i](0), dend1(1) for i = 3, 4 connect dend1[i](0), dend1[i-2](1) for i = 5, 8 connect dend1[i](0), dend1[i-3](1) for i = 9, 10 connect dend1[i](0), dend1[i-4](1) for i = 11, 12 connect dend1[i](0), dend1[i-1](1) for i = 13, 14 connect dend1[i](0), dend1[i-2](1) for i = 15, 16 connect dend1[i](0), dend1[i-3](1) connect dend1[17](0), dend1[13](1) for i = 18, 19 connect dend1[i](0), dend1[15](1) connect dend7(0), soma[3](1) for i = 1, 2 connect dend7[i](0), dend7[i-1](1) for i = 3, 4 connect dend7[i](0), dend7[i-2](1) for i = 5, 7 connect dend7[i](0), dend7[2](1) for i = 8, 9 connect dend7[i](0), dend7[i-5](1) connect dend8(0), soma[8](1) for i = 1, 4 connect dend8[i](0), dend8(1) connect dend8[5](0), dend8[1](1) for i = 6, 7 connect dend8[i](0), dend8[5](1) connect dend8[8](0), dend8[6](1) for i = 9, 10 connect dend8[i](0), dend8[8](1) connect dend6(0), soma[8](1) for i = 1, 2 connect dend6[i](0), dend6(1) connect dend5(0), soma[8](1) connect axon(0), dend4(1) connect axon[1](0), axon(1) basic_shape() } proc shape3d_1() { soma {pt3dclear() pt3dadd(-14, -164, 0, 9.22) pt3dadd(-11.08, -164, 0, 9.22) } dend2 {pt3dclear() pt3dadd(-14, -164, 0, 1.07) pt3dadd(-16.7235, -158.553, 0, 1.07) } soma[1] {pt3dclear() pt3dadd(-14, -164, 0, 8.03) pt3dadd(-16.92, -164, 0, 8.03) } dend4 {pt3dclear() pt3dadd(-11.08, -164, 0, 1.38) pt3dadd(-11.08, -126.28, 0, 1.38) } soma[2] {pt3dclear() pt3dadd(-11.08, -164, 0, 9.82) pt3dadd(-8.16, -164, 0, 9.82) } dend3 {pt3dclear() pt3dadd(-16.7235, -158.553, 0, 0.68) pt3dadd(-100.264, -158.553, 0, 0.68) } dend2[1] {pt3dclear() pt3dadd(-16.7235, -158.553, 0, 0.89) pt3dadd(-93.3491, -120.24, 0, 0.89) } dend1 {pt3dclear() pt3dadd(-16.92, -164, 0, 1.29) pt3dadd(-112.958, -144.792, 0, 1.29) } soma[3] {pt3dclear() pt3dadd(-16.92, -164, 0, 6.78) pt3dadd(-19.84, -164, 0, 6.78) } dend4[1] {pt3dclear() pt3dadd(-11.08, -126.28, 0, 1.15) pt3dadd(0.279225, -103.562, 0, 1.15) } dend4[2] {pt3dclear() pt3dadd(-11.08, -126.28, 0, 1.07) pt3dadd(-11.08, -105.28, 0, 1.07) } soma[4] {pt3dclear() pt3dadd(-8.16, -164, 0, 7.6) pt3dadd(-5.24, -164, 0, 7.6) } dend3[1] {pt3dclear() pt3dadd(-100.264, -158.553, 0, 0.64) pt3dadd(-161.81, -220.1, 0, 0.64) } dend2[2] {pt3dclear() pt3dadd(-93.3491, -120.24, 0, 0.68) pt3dadd(-164.19, -63.5678, 0, 0.68) } dend2[3] {pt3dclear() pt3dadd(-93.3491, -120.24, 0, 0.68) pt3dadd(-111.359, -120.24, 0, 0.68) } dend1[1] {pt3dclear() pt3dadd(-112.958, -144.792, 0, 0.86) pt3dadd(-120.757, -152.592, 0, 0.86) } dend1[2] {pt3dclear() pt3dadd(-112.958, -144.792, 0, 1.07) pt3dadd(-164.51, -127.609, 0, 1.07) } dend7 {pt3dclear() pt3dadd(-19.84, -164, 0, 0.91) pt3dadd(-15.0414, -173.597, 0, 0.91) } soma[5] {pt3dclear() pt3dadd(-19.84, -164, 0, 5.87) pt3dadd(-22.76, -164, 0, 5.87) } dend4[3] {pt3dclear() pt3dadd(0.279225, -103.562, 0, 0.91) pt3dadd(13.3091, -84.0167, 0, 0.91) } dend4[4] {pt3dclear() pt3dadd(0.279225, -103.562, 0, 0.86) pt3dadd(0.279225, -71.1015, 0, 0.86) } dend4[5] {pt3dclear() pt3dadd(-11.08, -105.28, 0, 0.86) pt3dadd(-24.3204, 7.26383, 0, 0.86) } dend4[6] {pt3dclear() pt3dadd(-11.08, -105.28, 0, 1.07) pt3dadd(-75.3074, -23.635, 0, 1.07) } soma[6] {pt3dclear() pt3dadd(-5.24, -164, 0, 4.92) pt3dadd(-2.32, -164, 0, 4.92) } dend2[4] {pt3dclear() pt3dadd(-111.359, -120.24, 0, 0.61) pt3dadd(-220.009, -120.24, 0, 0.61) } dend2[5] {pt3dclear() pt3dadd(-111.359, -120.24, 0, 0.64) pt3dadd(-126.781, -135.662, 0, 0.64) } dend1[3] {pt3dclear() pt3dadd(-120.757, -152.592, 0, 0.86) pt3dadd(-131.724, -148.936, 0, 0.86) } dend1[4] {pt3dclear() pt3dadd(-164.51, -127.609, 0, 0.86) pt3dadd(-298.417, -144.347, 0, 0.86) } dend1[5] {pt3dclear() pt3dadd(-164.51, -127.609, 0, 0.86) pt3dadd(-170.422, -126.426, 0, 0.86) } dend7[1] {pt3dclear() pt3dadd(-15.0414, -173.597, 0, 0.91) pt3dadd(-25.6834, -184.239, 0, 0.91) } soma[7] {pt3dclear() pt3dadd(-22.76, -164, 0, 4.15) pt3dadd(-25.68, -164, 0, 4.15) } dend4[7] {pt3dclear() pt3dadd(13.3091, -84.0167, 0, 0.88) pt3dadd(48.0887, -75.3218, 0, 0.88) } dend4[8] {pt3dclear() pt3dadd(13.3091, -84.0167, 0, 0.86) pt3dadd(47.674, -16.0505, 0, 0.86) } dend4[9] {pt3dclear() pt3dadd(0.279225, -71.1015, 0, 0.91) pt3dadd(-16.4101, 61.3008, 0, 0.91) } dend4[10] {pt3dclear() pt3dadd(0.279225, -71.1015, 0, 0.86) pt3dadd(-7.78179, -63.0405, 0, 0.86) } dend4[11] {pt3dclear() pt3dadd(-75.3074, -23.635, 0, 0.91) pt3dadd(-100.596, 13.4543, 0, 0.91) } dend4[12] {pt3dclear() pt3dadd(-75.3074, -23.635, 0, 0.96) pt3dadd(-111.346, -6.81688, 0, 0.96) } soma[8] {pt3dclear() pt3dadd(-2.32, -164, 0, 3.24) pt3dadd(0.599997, -164, 0, 3.24) } dend1[6] {pt3dclear() pt3dadd(-131.724, -148.936, 0, 0.86) pt3dadd(-184.884, -148.936, 0, 0.86) } dend1[7] {pt3dclear() pt3dadd(-298.417, -144.347, 0, 0.86) pt3dadd(-298.417, -155.307, 0, 0.86) } dend1[8] {pt3dclear() pt3dadd(-170.422, -126.426, 0, 0.86) pt3dadd(-312.032, -126.426, 0, 0.86) } dend1[9] {pt3dclear() pt3dadd(-170.422, -126.426, 0, 0.86) pt3dadd(-214.192, -82.6561, 0, 0.86) } dend7[2] {pt3dclear() pt3dadd(-25.6834, -184.239, 0, 0.86) pt3dadd(-25.6834, -195.629, 0, 0.86) } dend7[3] {pt3dclear() pt3dadd(-25.6834, -184.239, 0, 0.86) pt3dadd(-70.3394, -217.731, 0, 0.86) } dend4[13] {pt3dclear() pt3dadd(48.0887, -75.3218, 0, 0.86) pt3dadd(106.58, -63.6235, 0, 0.86) } dend4[14] {pt3dclear() pt3dadd(48.0887, -75.3218, 0, 0.64) pt3dadd(67.784, -85.1694, 0, 0.64) } dend4[15] {pt3dclear() pt3dadd(-7.78179, -63.0405, 0, 0.77) pt3dadd(-7.78179, -49.2205, 0, 0.77) } dend4[16] {pt3dclear() pt3dadd(-7.78179, -63.0405, 0, 0.77) pt3dadd(-31.5911, -51.3376, 0, 0.77) } dend4[17] {pt3dclear() pt3dadd(-100.596, 13.4543, 0, 0.88) pt3dadd(-85.3362, 28.7137, 0, 0.88) } dend4[18] {pt3dclear() pt3dadd(-100.596, 13.4543, 0, 0.91) pt3dadd(-129.552, 42.4103, 0, 0.91) } dend4[19] {pt3dclear() pt3dadd(-111.346, -6.81688, 0, 0.86) pt3dadd(-146.56, 10.7899, 0, 0.86) } dend4[20] {pt3dclear() pt3dadd(-111.346, -6.81688, 0, 0.88) pt3dadd(-187.2, 5.8254, 0, 0.88) } dend8 {pt3dclear() pt3dadd(0.599997, -164, 0, 0.91) pt3dadd(4.86194, -172.524, 0, 0.91) } dend6 {pt3dclear() pt3dadd(0.599997, -164, 0, 1.09) pt3dadd(65.07, -164, 0, 1.09) } dend5 {pt3dclear() pt3dadd(0.599997, -164, 0, 0.91) pt3dadd(61.9352, -139.466, 0, 0.91) } dend1[10] {pt3dclear() pt3dadd(-184.884, -148.936, 0, 0.86) pt3dadd(-180.154, -153.667, 0, 0.86) } dend7[4] {pt3dclear() pt3dadd(-25.6834, -195.629, 0, 0.86) pt3dadd(-12.4872, -200.028, 0, 0.86) } dend7[5] {pt3dclear() pt3dadd(-25.6834, -195.629, 0, 0.77) pt3dadd(-53.3343, -278.582, 0, 0.77) } dend7[6] {pt3dclear() pt3dadd(-25.6834, -195.629, 0, 0.86) pt3dadd(-25.6834, -218.559, 0, 0.86) } dend7[7] {pt3dclear() pt3dadd(-25.6834, -195.629, 0, 0.86) pt3dadd(-38.6013, -234.383, 0, 0.86) } dend7[8] {pt3dclear() pt3dadd(-70.3394, -217.731, 0, 0.77) pt3dadd(-173.073, -286.22, 0, 0.77) } dend4[21] {pt3dclear() pt3dadd(-7.78179, -49.2205, 0, 0.77) pt3dadd(14.7874, -41.6975, 0, 0.77) } dend8[1] {pt3dclear() pt3dadd(4.86194, -172.524, 0, 0.86) pt3dadd(9.89213, -192.645, 0, 0.86) } dend8[2] {pt3dclear() pt3dadd(4.86194, -172.524, 0, 0.77) pt3dadd(-83.4101, -238.728, 0, 0.77) } dend8[3] {pt3dclear() pt3dadd(4.86194, -172.524, 0, 0.86) pt3dadd(-18.9301, -190.368, 0, 0.86) } dend8[4] {pt3dclear() pt3dadd(4.86194, -172.524, 0, 0.86) pt3dadd(31.3759, -179.152, 0, 0.86) } dend6[1] {pt3dclear() pt3dadd(65.07, -164, 0, 0.86) pt3dadd(96.8907, -171.955, 0, 0.86) } dend6[2] {pt3dclear() pt3dadd(65.07, -164, 0, 0.86) pt3dadd(178.38, -164, 0, 0.86) } dend1[11] {pt3dclear() pt3dadd(-180.154, -153.667, 0, 0.86) pt3dadd(-188.108, -158.97, 0, 0.86) } dend7[9] {pt3dclear() pt3dadd(-12.4872, -200.028, 0, 0.86) pt3dadd(33.3249, -269.323, 0, 0.86) } dend8[5] {pt3dclear() pt3dadd(9.89213, -192.645, 0, 0.86) pt3dadd(20.2865, -223.828, 0, 0.86) } dend1[12] {pt3dclear() pt3dadd(-188.108, -158.97, 0, 0.77) pt3dadd(-194.128, -171.009, 0, 0.77) } dend1[13] {pt3dclear() pt3dadd(-188.108, -158.97, 0, 0.77) pt3dadd(-291.35, -173.719, 0, 0.77) } dend8[6] {pt3dclear() pt3dadd(20.2865, -223.828, 0, 0.86) pt3dadd(49.4123, -252.954, 0, 0.86) } dend8[7] {pt3dclear() pt3dadd(20.2865, -223.828, 0, 0.86) pt3dadd(-15.6345, -259.749, 0, 0.86) } dend1[14] {pt3dclear() pt3dadd(-194.128, -171.009, 0, 0.77) pt3dadd(-164.947, -188.517, 0, 0.77) } dend1[15] {pt3dclear() pt3dadd(-194.128, -171.009, 0, 0.77) pt3dadd(-204.051, -174.316, 0, 0.77) } dend1[16] {pt3dclear() pt3dadd(-291.35, -173.719, 0, 0.77) pt3dadd(-305.428, -180.758, 0, 0.77) } dend1[17] {pt3dclear() pt3dadd(-291.35, -173.719, 0, 0.64) pt3dadd(-319.27, -164.412, 0, 0.64) } dend8[8] {pt3dclear() pt3dadd(49.4123, -252.954, 0, 0.64) pt3dadd(49.4123, -316.314, 0, 0.64) } dend1[18] {pt3dclear() pt3dadd(-204.051, -174.316, 0, 0.77) pt3dadd(-212.119, -190.452, 0, 0.77) } dend1[19] {pt3dclear() pt3dadd(-204.051, -174.316, 0, 0.77) pt3dadd(-305.796, -194.665, 0, 0.77) } dend8[9] {pt3dclear() pt3dadd(49.4123, -316.314, 0, 0.64) pt3dadd(61.0866, -327.988, 0, 0.64) } dend8[10] {pt3dclear() pt3dadd(49.4123, -316.314, 0, 0.64) pt3dadd(24.6724, -328.684, 0, 0.64) } } proc basic_shape() { shape3d_1() axon {pt3dclear() pt3dadd(-10, -125, 0, 1) pt3dadd(0, -119, 0, 1)} axon[1] {pt3dclear() pt3dadd(0, -119, 0, 1) pt3dadd(15, -119, 0, 1)} } objref all, Soma, Dendrites, Proximal, Distal, Axon proc subsets() { local i objref all, Soma, Dendrites, Proximal, Distal, Axon all = new SectionList() for i=0, 8 soma[i] all.append() for i=0, 5 dend2[i] all.append() for i=0, 21 dend4[i] all.append() for i=0, 1 dend3[i] all.append() for i=0, 19 dend1[i] all.append() for i=0, 9 dend7[i] all.append() for i=0, 10 dend8[i] all.append() for i=0, 2 dend6[i] all.append() dend5 all.append() for i=0, 1 axon[i] all.append() Soma = new SectionList() for i=0, 8 soma[i] Soma.append() Dendrites = new SectionList() for i=0, 5 dend2[i] Dendrites.append() for i=0, 21 dend4[i] Dendrites.append() for i=0, 1 dend3[i] Dendrites.append() for i=0, 19 dend1[i] Dendrites.append() for i=0, 9 dend7[i] Dendrites.append() for i=0, 10 dend8[i] Dendrites.append() for i=0, 2 dend6[i] Dendrites.append() dend5 Dendrites.append() Proximal = new SectionList() for i=0, 1 dend2[i] Proximal.append() for i=0, 4 dend4[i] Proximal.append() dend3 Proximal.append() dend1 Proximal.append() for i=0, 3 dend7[i] Proximal.append() dend7[6] Proximal.append() for i=0, 5 dend8[i] Proximal.append() dend6 Proximal.append() dend5 Proximal.append() Distal = new SectionList() for i=2, 5 dend2[i] Distal.append() for i=5, 21 dend4[i] Distal.append() dend3[1] Distal.append() for i=1, 19 dend1[i] Distal.append() for i=4, 5 dend7[i] Distal.append() for i=7, 9 dend7[i] Distal.append() for i=6, 10 dend8[i] Distal.append() for i=1, 2 dend6[i] Distal.append() Axon = new SectionList() for i=0, 1 axon[i] Axon.append() } proc geom() { axon { L = 75 diam = 2 } axon[1] { L = 75 diam = 1 } } proc geom_nseg() { soma area(.5) // make sure diam reflects 3d points } proc biophys() { forsec all { Ra = 150 cm = 1.3 } forsec Soma { insert IA gkAbar_IA = 0.0165 insert Ih gkhbar_Ih = 0.001385 insert Ksoma gksoma_Ksoma = 0.0319 insert Nasoma gnasoma_Nasoma = 0.0107 gl_Nasoma = 5e-05 el_Nasoma = -70 } forsec Dendrites { insert Kdend gkdend_Kdend = 0.023 insert Nadend gnadend_Nadend = 0.0117 gl_Nadend = 5e-05 el_Nadend = -70 } forsec Proximal { insert IA1 gkAbar_IA1 = 0.013 } forsec Axon { insert Kaxon gkaxon_Kaxon = 0.05104 insert Naaxon gnaaxon_Naaxon = 0.01712 gl_Naaxon = 5e-05 el_Naaxon = -70 } } forall{ celsius = 24 insert na_ion ena = 90 insert k_ion ek = -100 insert h_ion eh = -32.9 } access soma celldef() forall{ nseg=L/10+1}