ModelDB is moving. Check out our new site at https://modeldb.science. The corresponding page is https://modeldb.science/144401.

CA1 pyramidal cell: reconstructed axonal arbor and failures at weak gap junctions (Vladimirov 2011)

 Download zip file 
Help downloading and running models
Accession:144401
Model of pyramidal CA1 cells connected by gap junctions in their axons. Cell geometry is based on anatomical reconstruction of rat CA1 cell (NeuroMorpho.Org ID: NMO_00927) with long axonal arbor. Model init_2cells.hoc shows failures of second spike propagation in a spike doublet, depending on conductance of an axonal gap junction. Model init_ring.hoc shows that spike failure result in reentrant oscillations of a spike in a loop of axons connected by gap junctions, where one gap junction is weak. The paper shows that in random networks of axons connected by gap junctions, oscillations are driven by single pacemaker loop of axons. The shortest loop, around which a spike can travel, is the most likely pacemaker. This principle allows us to predict the frequency of oscillations from network connectivity and visa versa. We propose that this type of oscillations corresponds to so-called fast ripples in epileptic hippocampus.
Reference:
1 . Vladimirov N, Tu Y, Traub RD (2012) Shortest Loops are Pacemakers in Random Networks of Electrically Coupled Axons. Front Comput Neurosci 6:17 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Axon;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Na,t; I A; I K; I M; I K,Ca; I Calcium; I Potassium;
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Oscillations; Axonal Action Potentials; Epilepsy; Conduction failure;
Implementer(s): Vladimirov, Nikita ;
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; I Na,t; I A; I K; I M; I K,Ca; I Calcium; I Potassium;
/
VladimirovTuTraub2012
readme.html
bias.mod *
cad.mod *
cal.mod *
gap.mod *
ipulse1.mod *
ka.mod *
kahp.mod *
kc.mod *
kdr.mod *
km.mod *
naf.mod *
2cellsGUI.ses
cellTemplate.hoc
gapjunction.hoc
init_2cells.hoc
init_ring.hoc
mosinit.hoc
ringGUI.ses
screenshot1.jpg
screenshot2.jpg
screenshot3.jpg
                            
// This script runs simulation of loop of pyramidal cells
// connected by gap junctions in axonal section 21, at distance 2296 um from soma
// one gap junction is set weak to break loop symmetry and induce reentrant oscillations

load_file ("nrngui.hoc")
load_file("cellTemplate.hoc")
load_file("gapjunction.hoc")

tstop = 25
ncells = 9
gj_conductance = 3e-3 //[mcS]
weakgj_conductance = 1.3e-3 //[mcS]
axonal_section = 21 // axonal section used
section_pos1 = 0.45 // position within section1
section_pos2 = 0.55 // position within section2

objectvar cells, gaps

proc mkloop(){ local i localobj cell_, gap_
// $1 - length of loop
   cells = new List()
   gaps = new List()
   for i=0,$1-1{
     cell_ = new pyramidal()
	 cells.append(cell_)
   }
   for i=0,$1-1{
    gap_ = new gapjunction(cells.object(i), axonal_section, cells.object((i+1)%$1), axonal_section, gj_conductance, section_pos1, section_pos2)
	gap_.setcells(i,(i+1)%$1)
	gaps.append(gap_)
   }
}

proc setpositions(){ local i, x, y
  for i = 0,cells.count()-1{
      x = 1000*cos(2*PI*i/cells.count())
	  y = 1000*sin(2*PI*i/cells.count())
	  cells.object(i).position(x,y,0)
	  cells.object(i).setgid(i+1)
  }
}

// adds steady current to soma (hyperpolarizing)
// $1 is the current in nA, "-" for hyperpolarizing, "+" for depolarizing
proc setcurrentbias(){ local i, area_soma localobj cell_
 cell_ = new pyramidal() //create a generic cell
 cell_.soma { area_soma = PI*diam*L*1e-8 } // unts converted [mcm2->cm2], area_soma is the area of a soma membrane
 for i = 0,cells.count-1{
   cells.object(i).soma {
      insert bias
	  amp_bias = -$1*1e-6/area_soma //note conversion [nA->mA] by 1e-6 and change of sign
    }
  }
}

// sets all conductances to 0 except HH: fast Na+ and K+(DR)
// this function is used to have only Na(F) and K(DR) conductances and a minimum loop length (9)
// a model with Na(F), K(DR), K(A) and K(M) requires a loop of 40 cells
proc setaxonalchannelsHH(){ local i
 for i = 0,cells.count-1{
	forsec cells.object(i).axonal {	gbar_ka = gbar_km = 0 } 
 }
}

mkloop(ncells)
setpositions()
setcurrentbias(-0.1) // electrode current, [nA]
setaxonalchannelsHH()

// set one gap junction weak
gaps.object(0).setg(weakgj_conductance)

objectvar pulse
cells.object(0).soma pulse = new Ipulse1(0.5)
pulse.amp = 1
pulse.del = 2
pulse.num = 1
pulse.ton = pulse.toff = 1

access cells.object(0).soma
xopen("ringGUI.ses")

Loading data, please wait...