Modulation of hippocampal rhythms by electric fields and network topology (Berzhanskaya et al. 2013)

 Download zip file 
Help downloading and running models
“… Here we present experimental and computational evidence of the interplay among hippocampal synaptic circuitry, neuronal morphology, external electric fields, and network activity. Electrophysiological data are used to constrain and validate an anatomically and biophysically realistic model of area CA1 containing pyramidal cells and two interneuron types: dendritic- and perisomatic-targeting. We report two lines of results: addressing the network structure capable of generating theta-modulated gamma rhythms, and demonstrating electric field effects on those rhythms. First, theta-modulated gamma rhythms require specific inhibitory connectivity. … The second major finding is that subthreshold electric fields robustly alter the balance between different rhythms. …”
1 . Berzhanskaya J, Chernyy N, Gluckman BJ, Schiff SJ, Ascoli GA (2013) Modulation of hippocampal rhythms by subthreshold electric fields and network topology. J Comput Neurosci 34:369-89 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Extracellular;
Brain Region(s)/Organism:
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Gap Junctions:
Simulation Environment: NEURON;
Model Concept(s): Brain Rhythms;
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell;
kadist.mod *
kaprox.mod *
kdrca1.mod *
na3.mod *
nax.mod *
/* Computes xyz coords of nodes in a model cell 
   whose topology & geometry are defined by pt3d data.
   Expects sections to already exist, and that the xtra mechanism has been inserted

// original data, irregularly spaced
objref xx, yy, zz, length
// interpolated data, spaced at regular intervals
objref xint, yint, zint, range

proc grindaway() { local ii, nn, kk, xr
	forall {
	  if (ismembrane("xtra")) {
		// get the data for the section
		nn = n3d()
		xx = new Vector(nn)
		yy = new Vector(nn)
		zz = new Vector(nn)
		length = new Vector(nn)

		for ii = 0,nn-1 {
			xx.x[ii] = x3d(ii)
			yy.x[ii] = y3d(ii)
			zz.x[ii] = z3d(ii)
			length.x[ii] = arc3d(ii)

		// to use Vector class's .interpolate() 
		// must first scale the independent variable
		// i.e. normalize length along centroid

		// initialize the destination "independent" vector
		range = new Vector(nseg+2)

		// length contains the normalized distances of the pt3d points 
		// along the centroid of the section.  These are spaced at 
		// irregular intervals.
		// range contains the normalized distances of the nodes along the 
		// centroid of the section.  These are spaced at regular intervals.
		// Ready to interpolate.

		xint = new Vector(nseg+2)
		yint = new Vector(nseg+2)
		zint = new Vector(nseg+2)
		xint.interpolate(range, length, xx)
		yint.interpolate(range, length, yy)
		zint.interpolate(range, length, zz)

		// for each node, assign the xyz values to x_xtra, y_xtra, z_xtra
		//for ii = 0, nseg+1 {
// don't bother computing coords of the 0 and 1 ends
// also avoid writing coords of the 1 end into the last internal node's coords
		for ii = 1, nseg { 
			xr = range.x[ii]
			x_xtra(xr) = xint.x[ii]
			y_xtra(xr) = yint.x[ii]
			z_xtra(xr) = zint.x[ii]

Loading data, please wait...