CA1 network model: interneuron contributions to epileptic deficits (Shuman et al 2020)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:256311
Temporal lobe epilepsy causes significant cognitive deficits in both humans and rodents, yet the specific circuit mechanisms underlying these deficits remain unknown. There are profound and selective interneuron death and axonal reorganization within the hippocampus of both humans and animal models of temporal lobe epilepsy. To assess the specific contribution of these mechanisms on spatial coding, we developed a biophysically constrained network model of the CA1 region that consists of different subtypes of interneurons. More specifically, our network consists of 150 cells, 130 excitatory pyramidal cells and 20 interneurons (Fig. 1A). To simulate place cell formation in the network model, we generated grid cell and place cell inputs from the Entorhinal Cortex (ECLIII) and CA3 regions, respectively, activated in a realistic manner as observed when an animal transverses a linear track. Realistic place fields emerged in a subpopulation of pyramidal cells (40-50%), in which similar EC and CA3 grid cell inputs converged onto distal/proximal apical and basal dendrites. The tuning properties of these cells are very similar to the ones observed experimentally in awake, behaving animals To examine the role of interneuron death and axonal reorganization in the formation and/or tuning properties of place fields we selectively varied the contribution of each interneuron type and desynchronized the two excitatory inputs. We found that desynchronized inputs were critical in reproducing the experimental data, namely the profound reduction in place cell numbers, stability and information content. These results demonstrate that the desynchronized firing of hippocampal neuronal populations contributes to poor spatial processing in epileptic mice, during behavior. Given the lack of experimental data on the selective contributions of interneuron death and axonal reorganization in spatial memory, our model findings predict the mechanistic effects of these alterations at the cellular and network levels.
Reference:
1 . Shuman T, Aharoni D, Cai DJ, Lee CR, Chavlis S, Page-Harley L, Vetere LM, Feng Y, Yang CY, Mollinedo-Gajate I, Chen L, Pennington ZT, Taxidis J, Flores SE, Cheng K, Javaherian M, Kaba CC, Rao N, La-Vu M, Pandi I, Shtrahman M, Bakhurin KI, Masmanidis SC, Khakh BS, Poirazi P, Silva AJ, Golshani P (2020) Breakdown of spatial coding and interneuron synchronization in epileptic mice. Nat Neurosci 23:229-238 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hippocampal CA1 CR/VIP cell; Hippocampus CA1 axo-axonic cell; Hippocampus CA1 basket cell; Hippocampus CA1 basket cell - CCK/VIP; Hippocampus CA1 stratum oriens lacunosum-moleculare interneuron ; Hippocampus CA1 bistratified cell;
Channel(s): I A; I h; I K,Ca; I K; I CAN; I M; I Sodium; I_AHP; I Calcium;
Gap Junctions:
Receptor(s): AMPA; GabaA; GabaB; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; Brian;
Model Concept(s): Spatial Navigation;
Implementer(s): Chavlis, Spyridon [schavlis at imbb.forth.gr]; Pandi, Ioanna ; Poirazi, Panayiota [poirazi at imbb.forth.gr];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; GabaB; AMPA; NMDA; I A; I K; I M; I h; I K,Ca; I CAN; I Sodium; I Calcium; I_AHP;
/
Shuman_et_al_2020
cells
axoaxonic_cell17S.hoc
basket_cell17S.hoc *
bistratified_cell13S.hoc *
burst_cell.hoc *
olm_cell2.hoc *
pyramidal_cell_14VbTest.hoc
ranstream.hoc *
stim_cell.hoc
stim_cell_ca3.hoc *
stim_cell_ec.hoc *
stim_cell_noise.hoc *
vipcck_cell17S.hoc *
vipcr_cell17S.hoc *
                            
// Network cell template
// PyramidalCell
// Geometry: 14 sections + axon
// Active properties: from Poirazi et al, Neuron 2003
// Adjusted to get more decrementing BPAP
// BPG & VCU, 2-1-09

begintemplate PyramidalCell
public is_art
public init, topol, basic_shape, subsets, geom, biophys
public pre_list, connect2target

public soma, radTprox, radTmed, radTdist                // apical trunk
public lm_thick1, lm_medium1, lm_thin1a, lm_thin1b      // slm 1
public lm_thick2, lm_medium2, lm_thin2a, lm_thin2b      // slm 2
public rad_thick1, rad_medium1, rad_thin1a, rad_thin1b  // rad 1
public rad_thick2, rad_medium2, rad_thin2a, rad_thin2b  // rad 2
public oriprox1, oridist1a, oridist1b, oriprox2, oridist2a, oridist2b           // basal dends
public axon
public all

objref pre_list

proc init() {
  topol()
  subsets()
  geom()
  biophys()
  geom_nseg()
  pre_list = new List()
  synapses()
}

create soma, radTprox, radTmed, radTdist                           // apical trunk
create lm_thick1, lm_medium1, lm_thin1a, lm_thin1b                 // slm 1
create lm_thick2, lm_medium2, lm_thin2a, lm_thin2b                 // slm 2
create rad_thick1, rad_medium1, rad_thin1a, rad_thin1b             // rad 1
create rad_thick2, rad_medium2, rad_thin2a, rad_thin2b             // rad 2
create oriprox1, oridist1a, oridist1b, oriprox2, oridist2a, oridist2b    // basal dends
create axon

proc topol() { local i
  connect radTprox(0),    soma(1)
  connect radTmed(0),     radTprox(1)
  connect radTdist(0),    radTmed(1)
  connect lm_thick2(0),   radTdist(1)
  connect lm_medium2(0),  lm_thick2(1)
  connect lm_thin2a(0),   lm_medium2(1)
  connect lm_thin2b(0),   lm_medium2(1)
  connect lm_thick1(0),   radTdist(1)
  connect lm_medium1(0),  lm_thick1(1)
  connect lm_thin1a(0),   lm_medium1(1)
  connect lm_thin1b(0),   lm_medium1(1)
  connect rad_thick2(0),  radTprox(1)
  connect rad_medium2(0), rad_thick2(1)
  connect rad_thin2a(0),  rad_medium2(1)
  connect rad_thin2b(0),  rad_medium2(1)
  connect rad_thick1(0),  radTprox(1)
  connect rad_medium1(0), rad_thick1(1)
  connect rad_thin1a(0),  rad_medium1(1)
  connect rad_thin1b(0),  rad_medium1(1)
  connect oriprox1(0),    soma(0)
  connect oridist1a(0),   oriprox1(1)
  connect oridist1b(0),   oriprox1(1)
  connect oriprox2(0),    soma(0)
  connect oridist2a(0),   oriprox2(1)
  connect oridist2b(0),   oriprox2(1)
  connect axon(0),        soma(0)
  //basic_shape()
}

proc basic_shape() {
  soma        { pt3dclear() pt3dadd(-7, 0, 0, 10)     pt3dadd(8, 0, 0, 10)      }
  radTprox    { pt3dclear() pt3dadd(0, 0, 0, 4)       pt3dadd(0, 100, 0, 4)     }
  radTmed     { pt3dclear() pt3dadd(0, 100, 0, 3)     pt3dadd(0, 200, 0, 3)     }
  radTdist    { pt3dclear() pt3dadd(0, 200, 0, 2)     pt3dadd(0, 400, 0, 2)     }
  rad_thick1  { pt3dclear() pt3dadd(15, 0, 0, 2)      pt3dadd(60, 45, 0, 2)     }
  rad_medium1 { pt3dclear() pt3dadd(60, 45, 0, 1.5)   pt3dadd(90, 75, 0, 1.5)   } 
  rad_thick2  { pt3dclear() pt3dadd(-15, 0, 0, 2)     pt3dadd(-60, 45, 0, 2)    }
  rad_medium2 { pt3dclear() pt3dadd(-60, 45, 0, 1.5)  pt3dadd(-90, 75, 0, 1.5)  } 
  rad_thin2a  { pt3dclear() pt3dadd(-90, 75, 0, 1)    pt3dadd(-110, 155, 0, 1)  }
  rad_thin2b  { pt3dclear() pt3dadd(-90, 75, 0, 1)    pt3dadd(-160, 105, 0, 1)  }
  rad_thin1a  { pt3dclear() pt3dadd(90, 75, 0, 1)     pt3dadd(110, 155, 0, 1)   }
  rad_thin1b  { pt3dclear() pt3dadd(90, 75, 0, 1)     pt3dadd(160, 105, 0, 1)   }
  lm_thick1   { pt3dclear() pt3dadd(0, 200, 0, 2)     pt3dadd(25, 240, 0, 2)    }
  lm_medium1  { pt3dclear() pt3dadd(25, 240, 0, 1.5)  pt3dadd(50, 275, 0, 1.5)  }  
  lm_thin1a   { pt3dclear() pt3dadd(50, 275, 0, 1)    pt3dadd(70, 345, 0, 1)    }
  lm_thin1b   { pt3dclear() pt3dadd(50, 275, 0, 1)    pt3dadd(110, 315, 0, 1)   }
  lm_thick2   { pt3dclear() pt3dadd(0, 200, 0, 2)     pt3dadd(-25, 240, 0, 2)   }
  lm_medium2  { pt3dclear() pt3dadd(-25, 240, 0, 1.5) pt3dadd(-50, 275, 0, 1.5) }
  lm_thin2a   { pt3dclear() pt3dadd(-50, 275, 0, 1)   pt3dadd(-70, 345, 0, 1)   }
  lm_thin2b   { pt3dclear() pt3dadd(-50, 275, 0, 1)   pt3dadd(-110, 315, 0, 1)  }
  oriprox1    { pt3dclear() pt3dadd(-7, 0, 0, 2)     pt3dadd(45, -29, 0, 2)    }
  oridist1a   { pt3dclear() pt3dadd(45, -29, 0, 1.5)  pt3dadd(75, -90, 0, 1.5)  }
  oridist1b   { pt3dclear() pt3dadd(45, -29, 0, 1.5)  pt3dadd(90, -20, 0, 1.5)  }
  oriprox2    { pt3dclear() pt3dadd(-7, 0, 0, 2)     pt3dadd(-45, -29, 0, 2)   }
  oridist2a   { pt3dclear() pt3dadd(-45, -29, 0, 1.5) pt3dadd(-75, -90, 0, 1.5) }
  oridist2b   { pt3dclear() pt3dadd(-45, -29, 0, 1.5) pt3dadd(-90, -20, 0, 1.5) }
  axon        { pt3dclear() pt3dadd(15, 0, 0, 1)      pt3dadd(15, -149, 0, 1)   }
}

objref all
proc subsets() { local i
  objref all
  all = new SectionList()
  
  soma        all.append()
  radTprox    all.append()
  radTmed     all.append()
  radTdist    all.append()
  lm_thick1   all.append()
  lm_medium1  all.append()
  lm_thin1a   all.append()
  lm_thin1b   all.append()
  lm_thick2   all.append()
  lm_medium2  all.append()
  lm_thin2a   all.append()
  lm_thin2b   all.append()
  rad_thick1  all.append()
  rad_medium1 all.append()
  rad_thin1a  all.append()
  rad_thin1b  all.append()
  rad_thick2  all.append()
  rad_medium2 all.append()
  rad_thin2a  all.append()
  rad_thin2b  all.append()  
  oriprox1    all.append()
  oridist1a   all.append()
  oridist1b   all.append()
  oriprox2    all.append()
  oridist2a   all.append()
  oridist2b   all.append()
  axon        all.append()
}

proc geom() {
  soma {  L = 10  diam = 10  }
  // SR is first 500um of apical dendrite
  radTprox {  L = 100  diam = 4.0  }
  radTmed  {  L = 100  diam = 3.0  }
  radTdist {  L = 200  diam = 2.0  }
  // OLM is final 300um of apical dendrite
  lm_thick1  {  L = 100  diam = 2.0  }
  lm_medium1 {  L = 100  diam = 1.5  }
  lm_thin1a  {  L = 50   diam = 1.0  }
  lm_thin1b  {  L = 50   diam = 1.0  }
  lm_thick2  {  L = 100  diam = 2.0  }
  lm_medium2 {  L = 100  diam = 1.5  }
  lm_thin2a  {  L = 50   diam = 1.0  }
  lm_thin2b  {  L = 50   diam = 1.0  }
  // Radiatum is final 300um of apical dendrite
  rad_thick1  {  L = 100  diam = 2.0  }
  rad_medium1 {  L = 100  diam = 1.5  }
  rad_thin1a  {  L = 50   diam = 1.0  }
  rad_thin1b  {  L = 50   diam = 1.0  }
  rad_thick2  {  L = 100  diam = 2.0  }
  rad_medium2 {  L = 100  diam = 1.5  }
  rad_thin2a  {  L = 50   diam = 1.0  }
  rad_thin2b  {  L = 50   diam = 1.0  }  
  // Basal dendrites extend 300 um
  oriprox1  {  L = 100  diam = 2.0  }
  oridist1a {  L = 100  diam = 1.5  }
  oridist1b {  L = 100  diam = 1.5  }
  oriprox2  {  L = 100  diam = 2.0  }
  oridist2a {  L = 100  diam = 1.5  }
  oridist2b {  L = 100  diam = 1.5  }
  // Short section of axon
  axon {  L = 150  diam = 1.0  }
}

external lambda_f
proc geom_nseg() {
  forsec all { nseg = int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1  }
}

proc biophys() {

  //	Rm = 28000	// Ohm.cm^2 (Migliore value)
  Rm = 28000	// Ohm.cm^2 (Migliore value)

  gka_soma = 0.0075 // for Rinput validation
  gh_soma  = 0.00005

  soma {

    // HH mechanism with low threshold for Na spikes (-57 mV)
    insert hha2
    gnabar_hha2 = 0.007
    gkbar_hha2  = 0.007/10
    gl_hha2     = 0
    el_hha2     = -70

    // leak conductance
    insert pas
    g_pas =  1/Rm
    
    // h current according to Migliore et al. 2004 
    insert h
    ghdbar_h = gh_soma
    vhalfl_h = -73

    // proximal A current
    insert kap
    gkabar_kap = gka_soma	//0.0075

    // m-type potassium current
    insert km
    gbar_km    = 0.06 // (pS/um2)
    
    // HVA Ca++-L type current
    insert cal
    gcalbar_cal = 0.0014/2

    // LVA Ca++-T type current
    insert cat	
    gcatbar_cat = 0.0001/2

    // HVAm Ca++-R type current
    insert somacar
    gcabar_somacar = 0.0003

    // K(Ca) sAHP potassium type current
    insert kca
    gbar_kca = 15*0.0001
    
    // medium AHP K++ current (BPG)
    insert mykca
    gkbar_mykca = 0.09075*5

    // calcium pump/buffering mechanism
    insert cad
  }

  radTprox {
    // h current according to Migliore et al. 2004 
    insert h
    ghdbar_h = 2*gh_soma			//0.000005						
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    insert cat
    gcatbar_cat = 0.0001

    // calcium pump/buffering mechanism
    insert cad			
    
    // slow AHP K+ current
    insert kca			
    gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    // medium AHP K++ current (BPG)
    insert mykca
    gkbar_mykca = 2*0.0165

    // m-type K current
    insert km
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    // Inserting A-current
    insert kap               	
    gkabar_kap = 2*gka_soma		//0.0075

    insert kad
    gkabar_kad = 0

    // HH mechanism with high threshold for Na spikes (-50 mV)
    insert hha_old
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    // leak conductance
    insert pas
  }

  radTmed {
    // h current according to Migliore et al. 2004    
    insert h 
    ghdbar_h = 4*gh_soma			// 0.000005					
    vhalfl_h = -81
    
    // HVAm Ca++-R type current
    insert car
    gcabar_car = 0.1*0.0003

    // HVA L-type Ca2+ channel used in distal dendrites to account for 
    insert calH
    gcalbar_calH = 10*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    // HVA T-type Ca2+ channel 
    insert cat
    gcatbar_cat = 0.0001		// 0.0001

    // calcium pump/buffering mechanism
    insert cad

    // slow AHP K+ current
    insert kca
    gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    // medium AHP K++ current (BPG)
    insert mykca
    gkbar_mykca = 2*0.0165

    // m-type K current
    insert km
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    // Inserting A-current
    insert kap
    gkabar_kap = 0

    insert kad
    gkabar_kad = 4*gka_soma

    // HH mechanism with high threshold for Na spikes (-50 mV)
    insert hha_old
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    // leak conductance
    insert pas
  }

  radTdist {
    insert h     			// h current according to Migliore et al. 2004 
    ghdbar_h = 7*gh_soma			// 0.000005					
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 10*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    insert cat
    gcatbar_cat = 0.0001

    insert cad			// calcium pump/buffering mechanism
    
    insert kca			// slow AHP K+ current
    gbar_kca = 0.5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca  			// medium AHP K++ current (BPG)
    gkbar_mykca = 0.25*0.0165

    insert km			// m-type K current
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap               	// Inserting A-current
    gkabar_kap = 0	

    insert kad
    gkabar_kad = 6*gka_soma

    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas 			// leak conductance
  }

  rad_thick1 {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
    }

  rad_medium1 {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  rad_thin1a {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
    }

  rad_thin1b {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
    }

  rad_thick2 {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  rad_medium2 {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  rad_thin2a {
    insert hha_old // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas     // passive properties
    g_pas          = 1/200000

    insert kad     // Insert basal A current
    gkabar_kad     = 6.5*gka_soma
  }

  rad_thin2b {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  lm_thick1 {
    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas 			// passive properties
    g_pas          = 1/200000

    insert kad 			// Insert basal A current
    gkabar_kad = 6.5*gka_soma
    }

    lm_medium1 {
    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas 			// passive properties
    g_pas          = 1/200000

    insert kad 			// Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  lm_thin1a {
    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas 			// passive properties
    g_pas          = 1/200000

    insert kad 			// Insert basal A current
    gkabar_kad = 6.5*gka_soma
    }

  lm_thin1b {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
    }


  lm_thick2 {
    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas 			// passive properties
    g_pas          = 1/200000

    insert kad 			// Insert basal A current
    gkabar_kad     = 6.5*gka_soma
  }

  lm_medium2 {
    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas 			// passive properties
    g_pas          = 1/200000

    insert kad 			// Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  lm_thin2a {
    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas 			// passive properties
    g_pas          = 1/200000

    insert kad 			// Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  lm_thin2b {
    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70
    gl_hha_old     = 0

    insert pas      // passive properties
    g_pas          = 1/200000

    insert kad      // Insert basal A current
    gkabar_kad = 6.5*gka_soma
  }

  oriprox1 {
    insert h     			// h current according to Migliore et al. 2004 
    ghdbar_h = gh_soma
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    insert cat
    gcatbar_cat = 0.0001

    insert cad			// calcium pump/buffering mechanism
    
    insert kca			// slow AHP K+ current
    gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca  			// medium AHP K++ current (BPG)
    gkbar_mykca = 2*0.0165

    insert km			// m-type K current
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap               	// Inserting A-current
    gkabar_kap = gka_soma			//0.0075

    insert kad
    gkabar_kad = 0

    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas 			// leak conductance

  }
    oridist1a {
    insert h          // h current according to Migliore et al. 2004 
    ghdbar_h = 1.5*gh_soma
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635 // varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    insert cat
    gcatbar_cat = 0.0001

    insert cad      // calcium pump/buffering mechanism
    
    insert kca      // slow AHP K+ current
    gbar_kca = 5*0.0001   // varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca        // medium AHP K++ current (BPG)
    gkbar_mykca = 2*0.0165

    insert km     // m-type K current
    gbar_km = 0.06      // varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap                // Inserting A-current
    gkabar_kap = gka_soma     //0.0075

    insert kad
    gkabar_kad = 0

    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas      // leak conductance

  }

  oridist1b {
    insert h     			// h current according to Migliore et al. 2004 
    ghdbar_h = 2*gh_soma
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635	// varies from 4.6*0.00031635 to 0.1*0.00031635

    insert cat
    gcatbar_cat = 0.0001

    insert cad			// calcium pump/buffering mechanism
    
    insert kca			// slow AHP K+ current
    gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca  			// medium AHP K++ current (BPG)
    gkbar_mykca = 2*0.0165

    insert km			// m-type K current
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap               	// Inserting A-current
    gkabar_kap = gka_soma			//0.0075

    insert kad
    gkabar_kad = 0

    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas 			// leak conductance

  }

  oriprox2 {
    insert h     			// h current according to Migliore et al. 2004 
    ghdbar_h = gh_soma
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    insert cat
    gcatbar_cat = 0.0001

    insert cad			// calcium pump/buffering mechanism
    
    insert kca			// slow AHP K+ current
    gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca 	// medium AHP K++ current (BPG)
    gkbar_mykca = 2*0.0165

    insert km			// m-type K current
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap               	// Inserting A-current
    gkabar_kap = 0.0075			//0.0075

    insert kad
    gkabar_kad = 0

    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas 			// leak conductance

  }

  oridist2a {
    insert h          // h current according to Migliore et al. 2004 
    ghdbar_h = 1.5*gh_soma
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635 // varies from .1*0.00031635 to 4.6*0.00031635 as distance increases

    insert cat
    gcatbar_cat = 0.0001

    insert cad      // calcium pump/buffering mechanism
    
    insert kca      // slow AHP K+ current
    gbar_kca = 5*0.0001   // varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca        // medium AHP K++ current (BPG)
    gkbar_mykca = 2*0.0165

    insert km     // m-type K current
    gbar_km = 0.06      // varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap                // Inserting A-current
    gkabar_kap = gka_soma     //0.0075

    insert kad
    gkabar_kad = 0

    insert hha_old      // HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas      // leak conductance

  }

  oridist2b {
    insert h     			// h current according to Migliore et al. 2004 
    ghdbar_h = 2*gh_soma
    vhalfl_h = -81

    insert car
    gcabar_car = 0.1*0.0003

    insert calH
    gcalbar_calH = 0.1*0.00031635	// varies from 4.6*0.00031635 to 0.1*0.00031635

    insert cat
    gcatbar_cat = 0.0001

    insert cad			// calcium pump/buffering mechanism
    
    insert kca			// slow AHP K+ current
    gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
    
    insert mykca  			// medium AHP K++ current (BPG)
    gkbar_mykca = 2*0.0165

    insert km			// m-type K current
    gbar_km = 0.06			// varies with distance (see Poirazi et al. 2003 cell-setup.hoc file)

    insert kap               	// Inserting A-current
    gkabar_kap = 0.0075			//0.0075

    insert kad
    gkabar_kad = 0

    insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
    gnabar_hha_old = 0.007
    gkbar_hha_old  = 0.007/8.065
    el_hha_old     = -70

    insert pas 			// leak conductance
  }

  axon {
    insert hha2  			// HH mechanism with low threshold for Na spikes (-57 mV)
    gnabar_hha2 = 0.2
    gkbar_hha2  = 0.1/5
    gl_hha2     = 0.000002
    el_hha2     = -70

    insert pas  			// leak conductance
    g_pas       = 1/Rm

    insert km  			// m-type potassium current
    gbar_km     = 0.5*0.06
  }

  forsec all {
    ek = -80
    ena = 50
    e_pas = -70
    g_pas = 1/Rm		// crucial parameter for backpropagating action potential spiking of PCs
    //		Ra = 50
    Ra = 150
    cm = 1

  }
}

obfunc connect2target() { localobj nc //$o1 target point process, optional $o2 returned NetCon
  soma nc = new NetCon(&v(1), $o1)
  nc.threshold = -10
  if (numarg() == 2) { $o2 = nc } // for backward compatibility
  return nc
}

objref syn_
proc synapses_EC_AMPA() {
  /* E0 */ lm_medium1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		EC input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E1 */ lm_thin1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   EC input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E2 */ lm_thin1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   EC input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E3 */ lm_medium2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   EC input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E4 */ lm_thin2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   EC input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E5 */ lm_thin2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   EC input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
}

proc synapses_EC_NMDA() {
  /* E6 */ lm_medium1 syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   EC input
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
  /* E7 */ lm_thin1a syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   EC input
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond      
  /* E8 */ lm_thin1b syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   EC input
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond   
  /* E9 */ lm_medium2 syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   EC input
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
  /* E10 */ lm_thin2a syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   EC input
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond   
  /* E11 */ lm_thin2b syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   EC input
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
}

proc synapses_CA3_AMPA_apical() {
  /* E12 */ rad_medium1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E13 */ rad_thin1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E14 */ rad_thin1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E15 */ rad_medium2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E16 */ rad_thin2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E17 */ rad_thin2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
}

proc synapses_CA3_NMDA_apical() {
  /* E18 */ rad_medium1 syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 Schaffer collaterals
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
  /* E19 */ rad_thin1a syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 Schaffer collaterals
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond      
  /* E20 */ rad_thin1b syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 Schaffer collaterals
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond   
  /* E21 */ rad_medium2 syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 Schaffer collaterals
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
  /* E22 */ rad_thin2a syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 Schaffer collaterals
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond   
  /* E23 */ rad_thin2b syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 Schaffer collaterals
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
}

proc synapses_CA3_AMPA_basal() {
  /* E24 */ oriprox1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input - basal
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E25 */ oridist1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input - basal
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E26 */ oridist1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input - basal
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E27 */ oriprox2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input - basal
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E28 */	oridist2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input - basal
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
  /* E29 */	oridist2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // AMPA   CA3 input - basal
  syn_.tau1 = 0.5
  syn_.tau2 = 3.0
  syn_.e    = 0
}

proc synapses_CA3_NMDA_basal() {
  /* E30 */	oriprox1 syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 - basal
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
  /* E31 */	oridist1a syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 - basal
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond      
  /* E32 */	oridist1b syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 - basal
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond   
  /* E33 */	oriprox2 syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 - basal
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
  /* E34 */	oridist2a syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 - basal
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond   
  /* E35 */	oridist2b syn_ = new NMDA(0.5)  pre_list.append(syn_)   // NMDA   CA3 - basal
  syn_.tcon = 2.3 
  syn_.tcoff = 100
  syn_.gNMDAmax = 1 // use connection weight to determine max cond
}

proc synapses_GABA_soma_axon() {
  /* I36 */	soma syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)		// GABA-A	B cell
  syn_.tau1 = 0.30
  syn_.tau2 = 6.20
  syn_.e    = -75
  /* I37 */	soma syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)   // GABA-A VIP/CCK cell
  syn_.tau1 = 0.7 //0.20
  syn_.tau2 = 7.1 //4.20
  syn_.e    = -75
  /* I38 */	axon syn_ = new MyExp2Syn(0.1)  pre_list.append(syn_)		// GABA-A	AA cell
  syn_.tau1 = 0.28
  syn_.tau2 = 8.40
  syn_.e    = -75
}

proc synapses_GABAA_OLM() {
  /* I39 */ lm_thick1 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-A	OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I40 */ lm_medium1 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)   // GABA-A OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I41 */ radTdist syn_ = new MyExp2Syn(0.75) pre_list.append(syn_)   	// GABA-A OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I42 */ radTdist syn_ = new MyExp2Syn(1.0) pre_list.append(syn_)   // GABA-A OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I43 */ lm_thick2 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_) 	// GABA-A	OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I44 */ lm_medium2 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_) 	// GABA-A OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I45 */ radTdist syn_ = new MyExp2Syn(0.5) pre_list.append(syn_) 	// GABA-A OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
  /* I46 */ radTdist syn_ = new MyExp2Syn(0.25) pre_list.append(syn_) 	// GABA-A OLM cells
  syn_.tau1 = 0.13
  syn_.tau2 = 11.0
  syn_.e    = -75
}

proc synapses_GABAB_OLM() {
  /* I47 */	lm_thick1 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-B	OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I48 */	lm_medium1 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-B	OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I49 */ 	radTdist syn_ = new MyExp2Syn(0.75) pre_list.append(syn_)  	// GABA-B OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I50 */ 	radTdist syn_ = new MyExp2Syn(1.0) pre_list.append(syn_)  	// GABA-B OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I51 */ 	lm_thick2 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)  	// GABA-B OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I52 */ 	lm_medium2 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)  	// GABA-B OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I53 */ 	radTdist syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)  	// GABA-B OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I54 */ 	radTdist syn_ = new MyExp2Syn(0.25) pre_list.append(syn_)  	// GABA-B OLM cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
}

proc synapses_GABAA_BS() {
  /* I55 */	rad_thick1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I56 */	rad_medium1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I57 */	rad_thin1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I58 */	rad_thin1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I59 */	rad_thick2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I60 */	rad_medium2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-A	BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I61 */	rad_thin2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75  
  /* I62 */	rad_thin2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
}

proc synapses_GABAB_BS() {
  /* I63 */	rad_thick1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-B	BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I64 */	rad_medium1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-B	BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I65 */	rad_thin1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-B	BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I66 */	rad_thin1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-B	BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I67 */	rad_thick2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-B	BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I68 */	rad_medium2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// GABA-B	BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I69 */	rad_thin2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I70 */	rad_thin2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
}

proc synapses_GABAA_BSBasal() {
  /* I71 */ oridist1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I72 */ oridist1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I73 */ oridist2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I74 */ oridist2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I75 */ oriprox1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
  /* I76 */ oriprox2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // GABA-A BS cells
  syn_.tau1 = 0.11
  syn_.tau2 = 9.70
  syn_.e    = -75
}

proc synapses_GABAB_BSBasal() {
  /* I77 */ oridist1a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I78 */ oridist1b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I79 */ oridist2a syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I80 */ oridist2b syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I81 */ oriprox1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
  /* I82 */ oriprox2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)  // GABA-B BS cells
  syn_.tau1 = 35
  syn_.tau2 = 100
  syn_.e    = -75
}

proc synapses_AMPA_recurrent() {
  /* E83 */	radTprox syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_) // AMPA   PC recurrent input
  syn_.tau1 = 0.10
  syn_.tau2 = 1.50
  syn_.e = 0
}

proc synapses() {
  synapses_EC_AMPA()
  synapses_EC_NMDA()
  synapses_CA3_AMPA_apical()
  synapses_CA3_NMDA_apical()
  synapses_CA3_AMPA_basal()
  synapses_CA3_NMDA_basal()  
  synapses_GABA_soma_axon()
  synapses_GABAA_OLM()
  synapses_GABAB_OLM()
  synapses_GABAA_BS()
  synapses_GABAB_BS()
  synapses_GABAA_BSBasal()
  synapses_GABAB_BSBasal()
  synapses_AMPA_recurrent()
}

func is_art() { return 0 }

endtemplate PyramidalCell