/*--------------------------------------------------------
Layer 2/3 pyramidal cell from P18 rat somatosensory cortex.

Reconstructed with Neurolucida from a biocytin fill via 
whole-cell recording in a 300 um acute slice.

Tiago Branco (2010)
--------------------------------------------------------*/

proc celldef() {
  topol()
  subsets()
  }

create soma, axon, dend[38], apic[31]

proc topol() { local i   
  connect axon(0), soma(0.5)  
  connect dend(0), soma(0.5)
  for i = 1, 2 connect dend[i](0), dend[i-1](1)
  connect dend[3](0), dend[1](1)
  for i = 4, 5 connect dend[i](0), dend[i-1](1)
  connect dend[6](0), dend[4](1)
  connect dend[7](0), dend[3](1)
  for i = 8, 9 connect dend[i](0), dend[7](1)
  connect dend[10](0), dend(1)
  for i = 11, 12 connect dend[i](0), dend[10](1)
  for i = 13, 14 connect dend[i](0), dend[12](1)
  connect dend[15](0), soma(0.5)
  for i = 16, 17 connect dend[i](0), dend[15](1)
  for i = 18, 19 connect dend[i](0), dend[17](1)
  for i = 20, 21 connect dend[i](0), dend[19](1)
  for i = 22, 24 connect dend[i](0), soma(0.5)
  for i = 25, 26 connect dend[i](0), dend[i-1](1)
  connect dend[27](0), dend[25](1)
  connect dend[28](0), dend[24](1)
  for i = 29, 30 connect dend[i](0), dend[28](1)
  connect dend[31](0), soma(1)
  for i = 32, 33 connect dend[i](0), dend[i-1](1)
  connect dend[34](0), dend[32](1)
  connect dend[35](0), dend[31](1)
  for i = 36, 37 connect dend[i](0), dend[35](1)
  connect apic(0), soma(1)
  for i = 1, 3 connect apic[i](0), apic[i-1](1)
  connect apic[4](0), apic[2](1)
  connect apic[5](0), apic[1](1)
  for i = 6, 9 connect apic[i](0), apic[i-1](1)
  connect apic[10](0), apic[8](1)
  connect apic[11](0), apic[7](1)
  connect apic[12](0), apic[6](1)
  for i = 13, 14 connect apic[i](0), apic[i-1](1)
  connect apic[15](0), apic[13](1)
  connect apic[16](0), apic[12](1)
  for i = 17, 19 connect apic[i](0), apic[i-1](1)
  connect apic[20](0), apic[18](1)
  connect apic[21](0), apic[17](1)
  connect apic[22](0), apic[16](1)
  for i = 23, 24 connect apic[i](0), apic[22](1)
  connect apic[25](0), apic[5](1)
  for i = 26, 27 connect apic[i](0), apic[25](1)
  connect apic[28](0), apic(1)
  for i = 29, 30 connect apic[i](0), apic[28](1)  
  basic_shape()
}

proc shape3d_1() {
  soma {pt3dclear()
	pt3dadd(-1.51761, -13.3786, 6.00592, 1.17494)
	pt3dadd(-1.41135, -12.661, 6.00636, 5.6454)
	pt3dadd(-1.30509, -11.9434, 6.00679, 10.58631)
	pt3dadd(-1.19883, -11.2258, 6.00723, 13.52722)
	pt3dadd(-1.09257, -10.5082, 6.00767, 14.46814)
	pt3dadd(-0.986315, -9.79063, 6.00811, 15.02019)
	pt3dadd(-0.880057, -9.07305, 6.00855, 15.17495)
	pt3dadd(-0.773799, -8.35547, 6.00899, 15.32971)
	pt3dadd(-0.667541, -7.63788, 6.00943, 15.48447)
	pt3dadd(-0.561283, -6.9203, 6.00987, 15.63923)
	pt3dadd(-0.455025, -6.20272, 6.01031, 15.794)
	pt3dadd(-0.348767, -5.48513, 6.01075, 15.88301)
	pt3dadd(-0.242508, -4.76755, 6.01119, 15.7757)
	pt3dadd(-0.13625, -4.04997, 6.01163, 15.66822)
	pt3dadd(-0.0299922, -3.33238, 6.01207, 15.56074)
	pt3dadd(0.0762659, -2.6148, 6.01251, 15.45326)
	pt3dadd(0.182524, -1.89722, 6.01294, 15.34578)
	pt3dadd(0.288782, -1.17963, 6.01338, 14.74971)
	pt3dadd(0.39504, -0.462049, 6.01382, 13.22775)
	pt3dadd(0.501298, 0.255535, 6.01426, 1.70578)
	pt3dadd(0.607557, 0.973118, 6.0147, 0.944799)
  }
  axon {pt3dclear()
      pt3dstyle(1, -4.84011, -5.6814, 5.12253)
      pt3dadd(0.32, 0.63, -26.69, 0.54)
      pt3dadd(5.71, 21.77, -34.59, 0.54)
      pt3dadd(7.33, 32.07, -32.97, 0.54)
      pt3dadd(11.1, 40.74, -33.16, 0.54)
      pt3dadd(17.03, 54.29, -33.22, 0.54)
      pt3dadd(19.73, 64.05, -34.86, 0.54)
      pt3dadd(25.12, 71.09, -34.91, 0.54)
      pt3dadd(28.36, 78.14, -26.63, 0.54)
      pt3dadd(28.36, 88.44, -31.74, 0.54)
      pt3dadd(31.59, 101.99, -31.94, 0.54)
      pt3dadd(35.9, 106.87, -31.94, 0.54)
      pt3dadd(40.22, 119.88, -28.72, 0.54)
      pt3dadd(43.45, 126.92, -29.75, 0.54)
      pt3dadd(46.69, 137.22, -29.66, 0.54)
      pt3dadd(49.38, 147.52, -29.66, 0.54)
      pt3dadd(52.14, 158.72, -27.01, 0.54)
      pt3dadd(54.3, 169.56, -27.01, 0.54)
      pt3dadd(58.07, 180.4, -27.01, 0.54)
      pt3dadd(64, 191.78, -28.01, 0.54)
      pt3dadd(67.24, 200.45, -28.07, 0.54)
      pt3dadd(72.63, 211.29, -24.03, 0.54)
      pt3dadd(76.94, 222.68, -24.03, 0.54)
      pt3dadd(78.56, 230.81, -24.03, 0.54)
      pt3dadd(79.64, 238.94, -24.03, 0.54)
      pt3dadd(80.72, 248.15, -24.03, 0.54)
      pt3dadd(86.92, 264.1, -25.04, 0.54)
      pt3dadd(91.23, 285.24, -23.72, 0.54)
      pt3dadd(96.62, 306.37, -26.69, 0.54)
      pt3dadd(100.93, 318.3, -26.69, 0.54)
      pt3dadd(105.79, 331.85, -32.6, 0.54)
      pt3dadd(110.1, 338.9, -32.59, 0.54)
      pt3dadd(116.57, 350.28, -32.57, 0.54)
      pt3dadd(126.49, 365.75, -27.35, 0.54)
      pt3dadd(128.65, 374.97, -27.39, 0.54)
      pt3dadd(138.89, 400.44, -29.24, 0.54)
      pt3dadd(142.12, 406.95, -29.25, 0.54)
      pt3dadd(149.67, 419.96, -32.12, 0.54)
      pt3dadd(159.38, 438.93, -32.28, 0.54)
      pt3dadd(162.07, 447.6, -34.56, 0.54)
      pt3dadd(165.52, 456.65, -35.72, 0.54)
      pt3dadd(165.52, 462.07, -36.04, 0.54)
      pt3dadd(170.91, 476.7, -37.1, 0.54)
      pt3dadd(176.84, 490.8, -37.19, 0.54)
      pt3dadd(183.85, 500.55, -37.22, 0.54)
      pt3dadd(189.78, 516.27, -34.88, 0.54)
      pt3dadd(189.24, 524.4, -34.89, 0.54)
      pt3dadd(196.25, 539.04, -34.95, 0.54)
      pt3dadd(200.56, 548.25, -34.24, 0.54)
      pt3dadd(204.46, 555.62, -41.44, 0.54)
  }
  dend {pt3dclear()
	pt3dstyle(1, -4.84011, -5.6814, 5.12253)
	pt3dadd(1.4, -5.66, -25.42, 1.62)
	pt3dadd(5.71, -5.66, -25.42, 1.62)
	pt3dadd(8.95, -4.57, -25.42, 1.62)
	pt3dadd(10.56, -4.03, -15.53, 1.62)
  }
  dend[1] {pt3dclear()
	pt3dadd(10.56, -4.03, -15.53, 1.62)
	pt3dadd(15.95, -8.37, -8.29, 1.62)
  }
  dend[2] {pt3dclear()
	pt3dadd(15.95, -8.37, -8.29, 1.08)
	pt3dadd(16.49, -19.21, -14.09, 1.08)
	pt3dadd(19.19, -26.25, -11.27, 1.08)
	pt3dadd(20.27, -32.22, -9.91, 1.08)
	pt3dadd(21.89, -39.26, -6.26, 1.08)
	pt3dadd(24.04, -46.31, -12.91, 1.08)
	pt3dadd(26.2, -52.27, -0.73, 1.08)
	pt3dadd(28.89, -61.48, -0.03, 1.08)
	pt3dadd(32.67, -64.19, -0.02, 1.08)
	pt3dadd(33.21, -73.41, 4.42, 1.08)
	pt3dadd(36.98, -79.91, 5.53, 1.08)
  }
  dend[3] {pt3dclear()
	pt3dadd(15.95, -8.37, -8.29, 1.08)
	pt3dadd(23.5, -11.08, -17.35, 1.08)
  }
  dend[4] {pt3dclear()
	pt3dadd(23.5, -11.08, -17.35, 1.08)
	pt3dadd(29.43, -18.66, -22.59, 1.08)
	pt3dadd(35.36, -21.38, -24.86, 1.08)
	pt3dadd(42.37, -24.63, -24.86, 1.08)
  }
  dend[5] {pt3dclear()
	pt3dadd(42.37, -24.63, -24.86, 0.54)
	pt3dadd(47.76, -33.84, -23.56, 0.54)
	pt3dadd(53.15, -38.18, -22.12, 0.54)
	pt3dadd(63.4, -47.39, -26.24, 0.54)
	pt3dadd(68.25, -52.27, -23.59, 0.54)
	pt3dadd(72.02, -58.23, -23.59, 0.54)
	pt3dadd(75.26, -71.24, -23.59, 0.54)
  }
  dend[6] {pt3dclear()
	pt3dadd(42.37, -24.63, -24.86, 0.54)
	pt3dadd(51, -23, -23.44, 0.54)
	pt3dadd(55.85, -21.38, -23.21, 0.54)
	pt3dadd(61.24, -22.46, -23.15, 0.54)
	pt3dadd(63.4, -23.54, -23.15, 0.54)
	pt3dadd(76.33, -20.83, -28.57, 0.54)
	pt3dadd(85.5, -23.54, -25.5, 0.54)
	pt3dadd(96.82, -28.42, -23.18, 0.54)
	pt3dadd(99.52, -31.67, -28.25, 0.54)
  }
  dend[7] {pt3dclear()
	pt3dadd(23.5, -11.08, -17.35, 1.08)
	pt3dadd(28.35, -13.79, -3.23, 1.08)
  }
  dend[8] {pt3dclear()
	pt3dadd(28.35, -13.79, -3.23, 1.08)
	pt3dadd(33.21, -15.95, -6.47, 1.08)
	pt3dadd(39.14, -20.29, -6.47, 1.08)
  }
  dend[9] {pt3dclear()
	pt3dadd(28.35, -13.79, -3.23, 1.08)
	pt3dadd(35.36, -11.62, -1.82, 1.08)
	pt3dadd(41.29, -12.16, -1.82, 1.08)
	pt3dadd(46.68, -8.91, -1.92, 1.08)
	pt3dadd(52.07, -11.08, -1.92, 1.08)
	pt3dadd(55.85, -7.82, -1.92, 1.08)
  }
  dend[10] {pt3dclear()
	pt3dadd(10.56, -4.03, -15.53, 1.62)
	pt3dadd(12.72, -1.32, -15.95, 1.62)
  }
  dend[11] {pt3dclear()
	pt3dadd(12.72, -1.32, -15.95, 1.08)
	pt3dadd(18.11, -2.95, -15.82, 1.08)
	pt3dadd(24.04, 0.31, -16.2, 0.54)
	pt3dadd(26.74, 6.81, -28.21, 0.54)
	pt3dadd(28.89, 11.69, -28.19, 0.54)
	pt3dadd(36.98, 17.65, -20.65, 0.54)
	pt3dadd(48.84, 25.78, -19.89, 0.54)
	pt3dadd(53.69, 30.12, -19.92, 0.54)
  }
  dend[12] {pt3dclear()
	pt3dadd(12.72, -1.32, -15.95, 1.08)
	pt3dadd(17.03, 4.64, -7.41, 1.08)
  }
  dend[13] {pt3dclear()
	pt3dadd(17.03, 4.64, -7.41, 1.08)
	pt3dadd(23.5, 4.1, -11.09, 0.54)
	pt3dadd(31.05, 7.35, -6.17, 0.54)
	pt3dadd(41.83, 17.11, -8.57, 0.54)
	pt3dadd(49.92, 23.61, -7.7, 0.54)   
	pt3dadd(60.16, 29.57, -7.7, 0.54)     
	pt3dadd(67.17, 36.08, -7.86, 0.54)  
	pt3dadd(85.2, 37.12, -8.2, 0.54) 
	pt3dadd(102.5, 38.2, -7.5, 0.54)

  }
  dend[14] {pt3dclear()
	pt3dadd(17.03, 4.64, -7.41, 1.08)
	pt3dadd(22.96, 11.69, -7.57, 1.08)
	pt3dadd(24.04, 20.36, -7.59, 1.08)
	pt3dadd(27.28, 32.29, -7.61, 1.08)
	pt3dadd(29.43, 35.54, -7.62, 1.08)
	pt3dadd(32.67, 43.67, -7.62, 1.08)
	pt3dadd(34.4, 49.8, 0.39, 1.08)
	pt3dadd(37.64, 54.68, 0.39, 1.08)
	pt3dadd(44.65, 59.01, 0.39, 1.08)
	pt3dadd(47.34, 64.97, 0.39, 1.08)
  }
  dend[15] {pt3dclear()
	pt3dstyle(1, -4.84011, -5.6814, 5.12253)
	pt3dadd(-4.95, 1.56, -28.91, 1.08)
	pt3dadd(-3.33, 4.81, -28.91, 1.08)
	pt3dadd(-4.41, 8.6, -38.81, 1.08)
  }
  dend[16] {pt3dclear()
	pt3dadd(-4.41, 8.6, -38.81, 0.54)
	pt3dadd(-12.5, 10.23, -45.25, 0.54)
	pt3dadd(-22.2, 12.94, -39.77, 0.54)
	pt3dadd(-27.05, 14.02, -40.54, 0.54)
	pt3dadd(-33.52, 14.57, -46.43, 0.54)
	pt3dadd(-38.37, 15.65, -42.39, 0.54)
	pt3dadd(-45.38, 18.36, -45.57, 0.54)
	pt3dadd(-49.16, 18.9, -40.92, 0.54)
	pt3dadd(-56.7, 15.11, -38.98, 0.54)
	pt3dadd(-62.63, 12.94, -35.09, 0.54)
	pt3dadd(-71.8, 11.31, -37.89, 0.54)
  }
  dend[17] {pt3dclear()
	pt3dadd(-4.41, 8.6, -38.81, 1.08)
	pt3dadd(-3.87, 10.77, -44.16, 1.08)
  }
  dend[18] {pt3dclear()
	pt3dadd(-3.87, 10.77, -44.16, 0.54)
	pt3dadd(-6.03, 16.73, -38.53, 0.54)
	pt3dadd(-9.26, 23.78, -38.57, 0.54)
	pt3dadd(-9.26, 31.37, -38.59, 0.54)
	pt3dadd(-9.8, 42.75, -42.01, 0.54)
	pt3dadd(-10.88, 49.26, -36.81, 0.54)
	pt3dadd(-12.5, 54.13, -37.91, 0.54)
	pt3dadd(-11.96, 58.47, -32.51, 0.54)
	pt3dadd(-11.96, 75.81, -42.53, 0.54)
	pt3dadd(-10.34, 92.08, -54.01, 0.54)
	pt3dadd(-7.65, 96.41, -54.04, 0.54)
  }
  dend[19] {pt3dclear()
	pt3dadd(-3.87, 10.77, -44.16, 0.54)
	pt3dadd(-2.79, 29.2, -41.3, 0.54)
	pt3dadd(-2.79, 40.04, -47.81, 0.54)
	pt3dadd(-0.1, 47.09, -46.1, 0.54)
	pt3dadd(0.44, 50.88, -42.94, 0.54)
	pt3dadd(1.52, 58.47, -45.89, 0.54)
	pt3dadd(-0.1, 66.06, -44.74, 0.54)
	pt3dadd(-1.72, 75.81, -49.84, 0.54)
	pt3dadd(-2.79, 85.03, -48.46, 0.54)
	pt3dadd(-0.64, 91.53, -50.09, 0.54)
	pt3dadd(0.44, 96.41, -52.78, 0.54)
  }
}

proc shape3d_2(){
  dend[20] {pt3dclear()
	pt3dadd(0.44, 96.41, -52.78, 0.54)
	pt3dadd(2.6, 105.08, -51.75, 0.54)
        pt3dadd(-3.33, 114.84, -52.28, 0.54)
	pt3dadd(-7.11, 115.38, -51.15, 0.54)
  }
  dend[21] {pt3dclear()
	pt3dadd(0.44, 96.41, -52.78, 0.54)
	pt3dadd(-1.18, 106.17, -54.02, 0.54)
	pt3dadd(3.14, 121.89, -53.1, 0.54)
  }
  dend[22] {pt3dclear()
	pt3dadd(-11.96, -4.95, -13.32, 1.08)
	pt3dadd(-16.81, -2.24, -13.38, 1.62)
	pt3dadd(-18.97, 1.56, -13.48, 1.62)
	pt3dadd(-20.58, 4.81, -13.5, 1.62)
	pt3dadd(-21.12, 10.77, -13.53, 1.08)
	pt3dadd(-21.12, 18.9, -13.53, 1.08)
	pt3dadd(-21.12, 26.49, -8.06, 1.08)
	pt3dadd(-19.51, 32.45, -8.56, 1.08)
	pt3dadd(-17.89, 37.87, -8.53, 1.08)
	pt3dadd(-15.73, 43.84, -8.53, 0.54)
	pt3dadd(-15.19, 48.71, -8.53, 0.54)
	pt3dadd(-14.65, 57.39, -8.53, 0.54)
	pt3dadd(-14.65, 66.06, -8.54, 0.54)
	pt3dadd(-13.58, 71.48, -8.14, 0.54)
	pt3dadd(-10.88, 75.81, -8.14, 0.54)
	pt3dadd(-8.72, 83.4, -9.76, 0.54)
  }
  dend[23] {pt3dclear()
	pt3dstyle(1, -4.84011, -5.6814, 5.12253)
	pt3dadd(-11.42, -4.4, -13.95, 2.16)
	pt3dadd(-15.19, 4.27, -14.86, 1.62)
	pt3dadd(-16.27, 5.89, -14.86, 1.62)
	pt3dadd(-14.11, 9.15, -14.86, 1.08)
	pt3dadd(-13.04, 14.02, 2.2, 1.08)
	pt3dadd(-11.96, 15.65, 2.2, 1.08)
	pt3dadd(-10.88, 21.07, 2.2, 1.08)
  }
  dend[24] {pt3dclear()
	pt3dadd(-11.96, -4.95, -13.32, 1.08)
	pt3dadd(-12.5, -4.4, -17.66, 1.08)
	pt3dadd(-15.73, -4.4, -18.01, 1.62)
  }
  dend[25] {pt3dclear()
	pt3dadd(-15.73, -4.4, -18.01, 1.08)
	pt3dadd(-23.82, -3.32, -12.86, 1.08)
	pt3dadd(-29.21, -4.4, -6.47, 1.08)
  }
  dend[26] {pt3dclear()
	pt3dadd(-29.21, -4.4, -6.47, 1.62)
	pt3dadd(-33.52, -0.61, -10.79, 1.62)
	pt3dadd(-39.99, 5.35, -5.26, 1.62)
  }
  dend[27] {pt3dclear()
	pt3dadd(-29.21, -4.4, -6.47, 1.08)
	pt3dadd(-32.98, -11.45, -8.3, 1.08)
	pt3dadd(-38.37, -19.04, -8.33, 1.08)
	pt3dadd(-42.15, -22.83, -8.33, 1.08)
	pt3dadd(-49.16, -31.51, -4.48, 1.08)
	pt3dadd(-57.24, -36.38, -4.18, 1.08)
	pt3dadd(-67.49, -43.43, -1.82, 1.08)
	pt3dadd(-75.57, -48.85, -1.88, 1.08)
	pt3dadd(-80.13, -59.88, -1.88, 0.54)
	pt3dadd(-82.83, -70.73, -1.88, 0.54)
  }
  dend[28] {pt3dclear()
	pt3dadd(-15.73, -4.4, -18.01, 1.08)
	pt3dadd(-18.68, -8.93, -39, 1.08)
  }
  dend[29] {pt3dclear()
	pt3dadd(-18.68, -8.93, -39, 0.54)
	pt3dadd(-24.07, -10.56, -39.78, 0.54)
	pt3dadd(-31.08, -14.9, -39.5, 0.54)
	pt3dadd(-45.63, -23.03, -31.21, 0.54)
	pt3dadd(-59.11, -30.62, -31.38, 0.54)
	pt3dadd(-67.74, -34.95, -31.41, 0.54)
	pt3dadd(-77.98, -36.04, -31.41, 0.54)
	pt3dadd(-82.83, -34.41, -31.41, 0.54)
	pt3dadd(-91.99, -40.37, -31.41, 0.54)
  }
  dend[30] {pt3dclear()
	pt3dadd(-18.68, -8.93, -39, 0.54)
	pt3dadd(-20.83, -13.81, -39.63, 0.54)
	pt3dadd(-24.07, -12.19, -45.28, 0.54)
	pt3dadd(-26.22, -8.93, -51.07, 0.54)
	pt3dadd(-28.92, 0.82, -41.21, 0.54)
  }
  dend[31] {pt3dclear()
	pt3dadd(-11.86, -5.42, 4.71, 1.62)
	pt3dadd(-12.75, -5.68, -27.24, 1.62)
	pt3dadd(-19.76, -10.02, -24.79, 1.62)
	pt3dadd(-26.76, -7.31, -25.09, 1.08)
	pt3dadd(-35.93, -1.89, -26.48, 1.08)
  }
  dend[32] {pt3dclear()
	pt3dadd(-35.93, -1.89, -26.48, 1.08)
	pt3dadd(-47.25, -1.89, -21.68, 1.08)
	pt3dadd(-56.95, 1.91, -22.35, 1.08)
	pt3dadd(-67.2, 3.53, -11.98, 1.08)
	pt3dadd(-79.6, 8.41, -12.06, 1.08)
	pt3dadd(-86.06, 5.7, -12.09, 0.54)
	pt3dadd(-94.69, 9.49, -12.09, 0.54)
	pt3dadd(-99.54, 5.16, -12.09, 0.54)
  }
  dend[33] {pt3dclear()
	pt3dadd(-99.54, 5.16, -12.09, 0.54)
	pt3dadd(-108.71, 15.46, -10.85, 0.54)
  }
  dend[34] {pt3dclear()
	pt3dadd(-99.54, 5.16, -12.09, 0.54)
	pt3dadd(-112.48, 1.36, -12.09, 0.54)
	pt3dadd(-116.79, -2.97, -12.09, 0.54)
	pt3dadd(-117.87, -12.73, -9.67, 0.54)
	pt3dadd(-118.95, -19.23, -9.95, 0.54)
	pt3dadd(-121.11, -23.03, -9.95, 0.54)
	pt3dadd(-129.73, -23.57, -9.95, 0.54)
	pt3dadd(-130.81, -31.16, -10.04, 0.54)
  }
  dend[35] {pt3dclear()
	pt3dadd(-35.93, -1.89, -26.48, 1.08)
	pt3dadd(-37.55, 4.62, -30.12, 1.08)
  }
  dend[36] {pt3dclear()
	pt3dadd(-37.55, 4.62, -30.12, 1.08)
	pt3dadd(-41.86, 9.49, -29.18, 1.08)
	pt3dadd(-44.55, 14.91, -29.18, 1.08)
	pt3dadd(-49.41, 22.5, -20.71, 1.08)
	pt3dadd(-51.02, 30.63, -20.83, 1.08)
	pt3dadd(-58.03, 35.51, -20.83, 1.08)
	pt3dadd(-61.27, 39.31, -20.85, 1.08)
	pt3dadd(-62.34, 44.73, -20.85, 1.08)
	pt3dadd(-67.06, 55.38, -20.85, 1.08)
	pt3dadd(-72.46, 61.88, -20.85, 1.08)
  }
  dend[37] {pt3dclear()
	pt3dadd(-37.55, 4.62, -30.12, 0.54)
	pt3dadd(-37.41, 12.56, -30.21, 0.54)
	pt3dadd(-36.34, 21.23, -30.32, 0.54)
	pt3dadd(-35.8, 29.9, -24.32, 0.54)
	pt3dadd(-33.64, 35.86, -24.53, 0.54)
	pt3dadd(-31.48, 48.87, -23.19, 0.54)
	pt3dadd(-30.41, 61.34, -28.8, 0.54)
	pt3dadd(-29.87, 66.76, -24.21, 0.54)
	pt3dadd(-26.63, 75.43, -32.07, 0.54)
	pt3dadd(-25.55, 87.9, -28.03, 0.54)
	pt3dadd(-24.48, 98.74, -32.92, 0.54)
  }
  apic {pt3dclear()
	pt3dadd(-4.85, -13.01, 4.71, 3.23)
	pt3dadd(-5.39, -13.55, 3.03, 3.23)
	pt3dadd(-6.47, -20.05, 3.03, 2.16)
	pt3dadd(-7.55, -27.1, 1.24, 2.16)
	pt3dadd(-8.63, -31.98, -3.11, 2.16)
	pt3dadd(-9.16, -35.77, -3.11, 2.16)
  }
  apic[1] {pt3dclear()
	pt3dadd(-9.16, -35.77, -3.11, 1.62)
	pt3dadd(-11.32, -42.28, -0.86, 1.62)
	pt3dadd(-12.4, -48.24, -0.65, 1.62)
	pt3dadd(-14.56, -52.03, -0.65, 1.62)
  }
  apic[2] {pt3dclear()
	pt3dadd(-14.56, -52.03, -0.65, 1.08)
	pt3dadd(-9.16, -56.37, -0.95, 1.08)
	pt3dadd(-6.47, -61.25, 2.27, 1.08)
	pt3dadd(-4.85, -65.58, 4.89, 0.54)
	pt3dadd(-2.7, -68.29, 4.86, 1.08)
  }
  apic[3] {pt3dclear()
	pt3dadd(-2.7, -68.29, 4.86, 1.08)
	pt3dadd(0.54, -74.26, 7.95, 1.08)
	pt3dadd(2.16, -79.68, 9.89, 1.08)
	pt3dadd(5.39, -84.01, 10.77, 1.08)
	pt3dadd(9.16, -87.81, 15.12, 1.08)
	pt3dadd(11.32, -92.69, 17.92, 1.08)
	pt3dadd(12.94, -95.94, 22.32, 1.08)
	pt3dadd(17.25, -99.19, 21.51, 1.08)
	pt3dadd(19.95, -102.98, 23.98, 1.08)
	pt3dadd(22.64, -104.61, 25.36, 1.08)
  }
  apic[4] {pt3dclear()
	pt3dadd(-2.7, -68.29, 4.86, 0.54)
	pt3dadd(-1.62, -73.17, 1.08, 0.54)
	pt3dadd(0.54, -78.59, 1.98, 0.54)
	pt3dadd(2.7, -84.01, 1.38, 0.54)
	pt3dadd(4.31, -89.43, -1.27, 0.54)
	pt3dadd(3.77, -95.94, -1.18, 0.54)
	pt3dadd(3.23, -104.61, -0.64, 0.54)
	pt3dadd(2.16, -110.57, 1.2, 0.54)
	pt3dadd(2.7, -120.33, 0.45, 0.54)
	pt3dadd(3.77, -126.83, -0.52, 0.54)
	pt3dadd(4.85, -129.54, -0.15, 0.54)
  }
  apic[5] {pt3dclear()
	pt3dadd(-14.56, -52.03, -0.65, 1.08)
	pt3dadd(-16.17, -55.83, -7.36, 1.08)
  }
  apic[6] {pt3dclear()
	pt3dadd(-16.17, -55.83, -7.36, 1.62)
	pt3dadd(-18.33, -61.25, -6.94, 1.62)
	pt3dadd(-21.02, -67.21, -7.01, 1.62)
	pt3dadd(-25.34, -77.51, -7.03, 1.62)
	pt3dadd(-25.88, -79.68, -13.06, 1.62)
  }
  apic[7] {pt3dclear()
	pt3dadd(-25.88, -79.68, -13.06, 1.08)
	pt3dadd(-32.89, -86.18, -8.71, 1.08)
	pt3dadd(-35.58, -86.72, -8.71, 1.08)
  }
  apic[8] {pt3dclear()
	pt3dadd(-35.58, -86.72, -8.71, 1.08)
	pt3dadd(-38.28, -91.06, 2.62, 1.08)
	pt3dadd(-40.97, -93.77, 2.62, 1.08)
	pt3dadd(-42.59, -97.02, 2.62, 1.08)
	pt3dadd(-45.28, -100.27, 10.23, 1.08)
	pt3dadd(-47.44, -105.15, 10.21, 1.08)
	pt3dadd(-49.6, -109.49, 6.83, 1.08)
  }
  apic[9] {pt3dclear()
	pt3dadd(-49.6, -109.49, 6.83, 1.08)
	pt3dadd(-53.91, -118.16, 8.53, 1.08)
	pt3dadd(-58.22, -122.5, 8.64, 1.08)
	pt3dadd(-63.07, -130.63, 17.18, 1.08)
	pt3dadd(-66.31, -134.42, 17.1, 1.08)
  }
  apic[10] {pt3dclear()
	pt3dadd(-49.6, -109.49, 6.83, 1.08)
	pt3dadd(-52.83, -114.91, 5.61, 1.08)
	pt3dadd(-55.53, -117.08, 5.61, 0.54)
	pt3dadd(-58.22, -120.33, 5.61, 0.54)
	pt3dadd(-60.92, -122.5, 5.61, 0.54)
	pt3dadd(-65.23, -126.29, 5.61, 0.54)
	pt3dadd(-67.39, -127.92, 5.61, 0.54)
  }
  apic[11] {pt3dclear()
	pt3dadd(-35.58, -86.72, -8.71, 0.54)
	pt3dadd(-46.9, -96.48, -6.11, 0.54)
	pt3dadd(-52.29, -99.19, -6.01, 0.54)
	pt3dadd(-55.53, -102.98, -6.01, 0.54)
	pt3dadd(-60.92, -105.15, -6, 0.54)
	pt3dadd(-62.54, -107.32, -6, 0.54)
	pt3dadd(-66.85, -108.4, -6, 0.54)
	pt3dadd(-69.54, -107.32, -5.98, 0.54)
	pt3dadd(-72.24, -110.57, -5.98, 0.54)
	pt3dadd(-76.55, -113.28, -5.97, 0.54)
	pt3dadd(-85.18, -117.62, -8.77, 0.54)
	pt3dadd(-88.95, -120.33, -8.97, 0.54)
	pt3dadd(-95.96, -121.95, -9.89, 0.54)
	pt3dadd(-102.97, -123.58, -14.44, 0.54)
	pt3dadd(-108.9, -124.66, -14.45, 0.54)
	pt3dadd(-113.21, -129, -14.54, 0.54)
	pt3dadd(-116.98, -131.71, -14.54, 0.54)
  }
  apic[12] {pt3dclear()
	pt3dadd(-25.88, -79.68, -13.06, 2.16)
	pt3dadd(-26.4, -84.37, -10.83, 2.16)
  }
  apic[13] {pt3dclear()
	pt3dadd(-26.4, -84.37, -10.83, 1.62)
	pt3dadd(-29.09, -91.95, -7.88, 1.62)
  }
}

proc shape3d_3(){
  apic[14] {pt3dclear()
	pt3dadd(-29.09, -91.95, -7.88, 0.54)
	pt3dadd(-33.94, -97.92, -4.09, 0.54)
	pt3dadd(-40.41, -103.34, 2.03, 0.54)
	pt3dadd(-42.03, -110.92, 2.86, 0.54)
        pt3dadd(-44.19, -116.89, 7.45, 0.54)
	pt3dadd(-48.5, -124.47, 12.5, 0.54)
	pt3dadd(-52.27, -129.9, 11.23, 0.54)
	pt3dadd(-53.89, -133.69, 11.47, 0.54)
  }
  apic[15] {pt3dclear()
	pt3dadd(-29.09, -91.95, -7.88, 1.08)
	pt3dadd(-28.01, -98.46, 0.23, 1.08)
	pt3dadd(-30.17, -107.67, 0.21, 1.08)
	pt3dadd(-31.79, -114.18, 10.45, 1.08)
	pt3dadd(-31.79, -119.6, 10.3, 1.08)
	pt3dadd(-33.94, -128.81, 14.88, 1.08)
	pt3dadd(-35.02, -135.86, 14.88, 1.08)
	pt3dadd(-37.18, -140.19, 18.29, 1.08)
  }
  apic[16] {pt3dclear()
	pt3dadd(-26.4, -84.37, -10.83, 1.62)
	pt3dadd(-26.4, -94.66, -15.01, 1.62)
	pt3dadd(-26.93, -101.17, -14.98, 1.62)
	pt3dadd(-24.78, -109.3, -14.94, 1.08)
	pt3dadd(-24.78, -115.8, -14.94, 1.08)
  }
  apic[17] {pt3dclear()
	pt3dadd(-24.78, -115.8, -14.94, 1.08)
	pt3dadd(-22.62, -122.31, -20.38, 1.08)
	pt3dadd(-23.16, -128.81, -20.38, 1.08)
	pt3dadd(-24.24, -140.19, -20.32, 1.08)
  }
  apic[18] {pt3dclear()
	pt3dadd(-24.24, -140.19, -20.32, 1.08)
	pt3dadd(-29.09, -146.16, -32.53, 1.08)
	pt3dadd(-31.25, -152.66, -32.47, 1.08)
	pt3dadd(-38.79, -157, -32.45, 1.08)
	pt3dadd(-38.31, -164.89, -41.37, 1.08)
	pt3dadd(-41.55, -167.6, -41.39, 1.08)
	pt3dadd(-43.7, -170.86, -41.39, 1.08)
	pt3dadd(-49.09, -170.86, -41.39, 1.08)
	pt3dadd(-52.33, -177.9, -51.27, 0.54)
	pt3dadd(-55.56, -183.87, -53.09, 0.54)
	pt3dadd(-58.26, -188.2, -52.16, 0.54)
	pt3dadd(-59.34, -193.08, -48.33, 0.54)
	pt3dadd(-61.49, -200.67, -61.04, 0.54)
	pt3dadd(-64.19, -202.29, -61.04, 0.54)
	pt3dadd(-65.81, -206.09, -61.12, 0.54)
	pt3dadd(-69.58, -210.42, -68.3, 0.54)
	pt3dadd(-76.59, -223.97, -68.49, 0.54)
	pt3dadd(-85.21, -233.19, -68.52, 0.54)
	pt3dadd(-96.54, -249.99, -75.05, 0.54)
	pt3dadd(-103.54, -258.66, -74.43, 0.54)
	pt3dadd(-110.26, -270.29, -75.73, 0.54)
	pt3dadd(-114.03, -277.88, -75.75, 0.54)
  }
  apic[19] {pt3dclear()
	pt3dadd(-114.03, -277.88, -75.75, 0.54)
	pt3dadd(-125.35, -284.38, -79.84, 0.54)
	pt3dadd(-135.06, -287.63, -79.8, 0.54)
	pt3dadd(-143.68, -288.72, -79.81, 0.54)
	pt3dadd(-149.61, -290.89, -79.99, 0.54)
	pt3dadd(-157.7, -290.89, -80.86, 0.54)
	pt3dadd(-160.4, -287.09, -80.86, 0.54)
	pt3dadd(-164.17, -279.5, -80.93, 0.54)
	pt3dadd(-174.41, -276.25, -83.17, 0.54)
	pt3dadd(-183.58, -274.08, -84.67, 0.54)
	pt3dadd(-189.51, -268.12, -84.04, 0.54)
	pt3dadd(-197.59, -267.58, -83.95, 0.54)
	pt3dadd(-205.14, -263.78, -83.95, 0.54)
	pt3dadd(-212.15, -262.7, -84.82, 0.54)
	pt3dadd(-219.16, -262.7, -85.2, 0.54)
	pt3dadd(-222.93, -259.99, -94.48, 0.54)
	pt3dadd(-227.78, -256.74, -88.19, 0.54)
	pt3dadd(-235.33, -256.2, -88.25, 0.54)
	pt3dadd(-239.64, -254.03, -91.34, 0.54)
  }
  apic[20] {pt3dclear()
	pt3dadd(-114.03, -277.88, -75.75, 0.54)
	pt3dadd(-116.19, -288.72, -81.69, 0.54)
	pt3dadd(-119.96, -295.76, -81.81, 0.54)
	pt3dadd(-118.89, -303.35, -83.49, 0.54)
	pt3dadd(-108.1, -307.15, -65.42, 0.54)
  }
  apic[21] {pt3dclear()
	pt3dadd(-24.24, -140.19, -20.32, 1.08)
	pt3dadd(-18.76, -157.71, -29.68, 1.08)
	pt3dadd(-14.99, -166.92, -29.69, 1.08)
	pt3dadd(-14.45, -175.6, -29.69, 1.08)
	pt3dadd(-16.07, -180.47, -29.69, 1.08)
	pt3dadd(-16.07, -186.98, -38.97, 1.08)
	pt3dadd(-16.6, -194.57, -39.03, 1.08)
	pt3dadd(-14.45, -203.24, -39.07, 1.08)
	pt3dadd(-14.99, -210.83, -39.09, 1.08)
	pt3dadd(-17.14, -219.5, -39.1, 1.08)
	pt3dadd(-14.99, -228.17, -39.13, 1.08)
	pt3dadd(-15.53, -234.68, -39.16, 1.08)
	pt3dadd(-14.45, -241.72, -39.18, 0.54)
	pt3dadd(-13.67, -248.61, -39.21, 0.54)
	pt3dadd(-14.75, -256.2, -39.21, 0.54)
	pt3dadd(-12.6, -262.16, -39.21, 0.54)
	pt3dadd(-8.28, -277.34, -39.21, 0.54)
	pt3dadd(-8.28, -283.3, -42.37, 0.54)
	pt3dadd(-5.59, -288.18, -42.71, 0.54)
	pt3dadd(-5.59, -294.68, -43, 0.54)
	pt3dadd(-4.51, -296.85, -43.13, 0.54)
	pt3dadd(-2.35, -297.39, -43.22, 0.54)
	pt3dadd(-1.81, -300.64, -43.25, 0.54)
	pt3dadd(-0.2, -304.44, -43.27, 0.54)
	pt3dadd(1.42, -308.77, -43.28, 0.54)
	pt3dadd(1.96, -315.82, -43.36, 0.54)
	pt3dadd(4.66, -320.7, -43.36, 0.54)
	pt3dadd(3.58, -326.12, -43.37, 0.54)
	pt3dadd(3.04, -332.08, -35.01, 0.54)
	pt3dadd(4.66, -336.42, -35.13, 0.54)
	pt3dadd(6.27, -339.13, -35.19, 0.54)
	pt3dadd(7.35, -342.92, -35.21, 0.54)
	pt3dadd(5.97, -348.73, -35.41, 0.54)
	pt3dadd(8.67, -354.69, -35.41, 0.54)
	pt3dadd(7.05, -360.11, -35.42, 0.54)
	pt3dadd(8.13, -364.45, -35.42, 0.54)
	pt3dadd(9.74, -367.7, -36.38, 0.54)
	pt3dadd(10.28, -378, -28.92, 0.54)
	pt3dadd(14.06, -388.84, -29.78, 0.54)
	pt3dadd(19.45, -393.71, -29.78, 0.54)
	pt3dadd(22.14, -396.97, -29.75, 0.54)
	pt3dadd(29.69, -410.52, -32.69, 0.54)
  }
  apic[22] {pt3dclear()
	pt3dadd(-24.78, -115.8, -14.94, 1.08)
	pt3dadd(-27.65, -123.01, -17.44, 1.08)
	pt3dadd(-29.8, -130.6, -7.54, 1.08)
	pt3dadd(-31.96, -139.27, -8.06, 1.08)
	pt3dadd(-33.04, -150.65, -4.53, 1.08)
	pt3dadd(-34.12, -156.62, 1.58, 1.62)
  }
  apic[23] {pt3dclear()
	pt3dadd(-34.12, -156.62, 1.58, 1.08)
	pt3dadd(-36.81, -170.71, -0.41, 1.08)
	pt3dadd(-40.05, -175.59, -3.76, 1.08)
	pt3dadd(-40.59, -181.55, 10.74, 1.08)
	pt3dadd(-43.28, -185.34, 10.74, 1.08)
	pt3dadd(-43.28, -189.14, 10.74, 1.08)
	pt3dadd(-47.05, -195.1, 10.74, 1.08)
  }
  apic[24] {pt3dclear()
	pt3dadd(-34.12, -156.62, 1.58, 1.62)
	pt3dadd(-30.88, -164.2, 0.92, 1.62)
	pt3dadd(-28.73, -168, 0.92, 1.62)
	pt3dadd(-23.33, -172.33, 0.92, 1.62)
	pt3dadd(-20.1, -178.3, 0.92, 1.62)
	pt3dadd(-18.48, -186.43, 0.92, 1.62)
	pt3dadd(-15.25, -196.73, 7.54, 1.62)
	pt3dadd(-13.09, -212.44, 7.54, 1.08)
	pt3dadd(-12.55, -220.57, 7.54, 1.08)
	pt3dadd(-9.66, -230.76, 7.54, 1.08)
	pt3dadd(-7.5, -242.15, 7.54, 1.08)
	pt3dadd(-6.42, -249.19, 11.47, 1.08)
  }
  apic[25] {pt3dclear()
	pt3dadd(-16.17, -55.83, -7.36, 0.54)
	pt3dadd(-29.33, -56.61, -13.32, 0.54)
  }
  apic[26] {pt3dclear()
	pt3dadd(-29.33, -56.61, -13.32, 0.54)
	pt3dadd(-34.72, -57.15, -21.68, 0.54)
	pt3dadd(-40.11, -58.77, -21.77, 0.54)
	pt3dadd(-45.5, -64.19, -21.79, 0.54)
	pt3dadd(-50.35, -69.61, -18.85, 0.54)
	pt3dadd(-53.59, -73.95, -21, 0.54)
	pt3dadd(-58.44, -77.2, -21.5, 0.54)
	pt3dadd(-61.68, -77.75, -29.25, 0.54)
	pt3dadd(-65.99, -80.46, -29.27, 0.54)
	pt3dadd(-76.77, -79.37, -29.12, 0.54)
	pt3dadd(-82.16, -76.66, -30.82, 0.54)
	pt3dadd(-88.09, -74.49, -26.68, 0.54)
	pt3dadd(-91.33, -73.95, -31.77, 0.54)
	pt3dadd(-95.64, -72.87, -29.78, 0.54)
	pt3dadd(-101.57, -75.58, -34.65, 0.54)
	pt3dadd(-109.66, -78.83, -33.16, 0.54)
  }
  apic[27] {pt3dclear()
	pt3dadd(-29.33, -56.61, -13.32, 0.54)
	pt3dadd(-34.18, -58.77, -6.36, 0.54)
	pt3dadd(-39.03, -59.32, -6.36, 0.54)
	pt3dadd(-43.35, -56.61, -6.36, 0.54)
	pt3dadd(-49.28, -56.61, -6.38, 0.54)
	pt3dadd(-58.98, -59.86, -6.38, 0.54)
	pt3dadd(-60.06, -62.57, 3.76, 0.54)
	pt3dadd(-61.68, -65.82, 3.76, 0.54)
	pt3dadd(-67.07, -67.45, 3.76, 0.54)
	pt3dadd(-68.68, -68.53, 3.76, 0.54)
	pt3dadd(-72.46, -70.7, 3.76, 0.54)
	pt3dadd(-81.08, -78.83, 3.7, 0.54)
  }
  apic[28] {pt3dclear()
	pt3dadd(-9.16, -35.77, -3.11, 1.08)
	pt3dadd(-6.15, -36.55, -26.8, 1.08)
  }
  apic[29] {pt3dclear()
	pt3dadd(-6.15, -36.55, -26.8, 0.54)
	pt3dadd(0.32, -38.18, -33.97, 0.54)
	pt3dadd(4.09, -36.55, -34.03, 0.54)
	pt3dadd(10.02, -39.8, -27.69, 0.54)
	pt3dadd(14.34, -40.35, -31.97, 0.54)
	pt3dadd(18.11, -40.89, -31.89, 0.54)
	pt3dadd(20.81, -45.22, -33.81, 0.54)
  }
  apic[30] {pt3dclear()
	pt3dadd(-6.15, -36.55, -26.8, 0.54)
	pt3dadd(-2.91, -44.14, -27.63, 0.54)
	pt3dadd(1.4, -45.22, -34.31, 0.54)
	pt3dadd(6.25, -49.02, -34.86, 0.54)
	pt3dadd(12.18, -53.9, -35.53, 0.54)
	pt3dadd(15.42, -56.06, -37.15, 0.54)
	pt3dadd(22.42, -65.28, -34.31, 0.54)
  }
}

proc basic_shape(){
    shape3d_1()
    shape3d_2()
    shape3d_3()
}

objref all, somatic, axonal, basal, apical
proc subsets() { local i
  objref all, somatic, axonal, basal, apical
  all = new SectionList()
    soma all.append()
    axon all.append()
    for i=0, 37 dend[i] all.append()
    for i=0, 30 apic[i] all.append()

  somatic = new SectionList()
    soma somatic.append()

  axonal = new SectionList()
    axon axonal.append()

  basal = new SectionList()
    for i=0, 37 dend[i] basal.append()

  apical = new SectionList()
    for i=0, 30 apic[i] apical.append()
}

access soma

celldef()

soma area(0.5)
forall {nseg = int((L/(0.1*lambda_f(100))+0.9)/2)*2+1}
forall {nseg*=3}

forsec basal {cm=2}
forsec apical {cm=2}