Synaptic gating at axonal branches, and sharp-wave ripples with replay (Vladimirov et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:150446
The computational model of in vivo sharp-wave ripples with place cell replay. Excitatory post-synaptic potentials at dendrites gate antidromic spikes arriving from the axonal collateral, and thus determine when the soma and the main axon fire. The model allows synchronous replay of pyramidal cells during sharp-wave ripple event, and the replay is possible in both forward and reverse directions.
Reference:
1 . Vladimirov N, Tu Y, Traub RD (2013) Synaptic gating at axonal branches, and sharp-wave ripples with replay: a simulation study. Eur J Neurosci 38:3435-47 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Axon; Dendrite; Connectionist Network;
Brain Region(s)/Organism:
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hippocampus CA1 basket cell;
Channel(s): I Na,t; I A; I K; I K,leak; I K,Ca; I Calcium; I Potassium; I_AHP;
Gap Junctions: Gap junctions;
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Oscillations; Synchronization; Axonal Action Potentials; Place cell/field; Conduction failure; Brain Rhythms;
Implementer(s): Vladimirov, Nikita ;
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; AMPA; I Na,t; I A; I K; I K,leak; I K,Ca; I Calcium; I Potassium; I_AHP; Gaba; Glutamate;
func fieldrec() { local I, Phi, PhiAll, r, x, y, z, x1, x2, y1, y2, z1, z2, dS, h, l, r2
	sigma = 25*0.3 // uS/um
	PhiAll = 0
	forall {
	if (ismembrane("extracellular")) {
		I = 0
		for (x,0) { I += i_membrane(x)*area(x) }
		if( n3d() != 2 ) print "n3d() not 2, line approximation is invalid, section: ", secname()
		// coordinates of the line ends:
		x1 = x3d(0)
		x2 = x3d(1)
		y1 = y3d(0)
		y2 = y3d(1)
		z1 = z3d(0)
		z2 = z3d(1)
		dS = arc3d(1)
		// distances:
		h = (1/dS) * ( (Ex - x2)*(x2 - x1) + (Ey - y2)*(y2 - y1) + (Ez - z2)*(z2 - z1)  ) 
		r2 = (Ex - x2)^2 + (Ey - y2)^2 + (Ez - z2)^2 - h^2
		l = h + dS
		if (h<0 && l<0) { Phi = (I/(4*PI*sigma*dS)) * log( (sqrt(h^2 + r2) - h) / (sqrt(l^2 + r2) - l) ) }
		if (h<0 && l>0) { Phi = (I/(4*PI*sigma*dS)) * log( (sqrt(h^2 + r2) - h) * ( l + sqrt(l^2 + r2) ) / r2) }
		if (h>0 && l>0) { Phi = (I/(4*PI*sigma*dS)) * log( (l + sqrt(l^2 + r2) ) / ( sqrt(h^2 + r2) + h )) }
		ifsec "soma" { //treat it as a sphere
			x = (x2 + x1)/2
			y = (y2 + y1)/2
			z = (z2 + z1)/2
			r = sqrt( (Ex-x)^2 + (Ey-y)^2 + (Ez-z)^2 )
			Phi =  I/(4*PI*sigma*r)
			}
		PhiAll += Phi
		}
		}
	return PhiAll
}

func totalI() { local I
	I = 0
	forall { 
			if (ismembrane("extracellular")) {
				for (x,0) { I += i_membrane(x)*area(x) } 
			}				
	}
	return I
}

vrec = 0
//irec = 0
proc init() {
    finitialize(v_init)
    fcurrent()
	vrec = fieldrec()
//	irec = totalI()
}

proc advance() {
    fadvance()
	vrec = fieldrec()
//	irec = totalI()
}
objref Vrec
Vrec = new Vector()
Vrec.record(&vrec,0.2)  // Dt=0.2 ms, so sampling f=5 KHz

proc writeLFP() { localobj fout
// arg $1 must be file name, e.g. "myfile.ext"
  fout=new File()
  fout.wopen($s1)
  Vrec.printf(fout, "%4.2f\t")
  fout.close()
}

Loading data, please wait...