Using the Impedance class

A collection of noteworthy items selected by our moderators from discussions about making and using models with NEURON.

Moderators: ted, wwlytton, tom_morse

Post Reply
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Using the Impedance class

Post by ted »

NEURON's GUI tools for impedance analysis

A tutorial on the use of the Impedance class's GUI tools
http://www.neuron.yale.edu/neuron/stati ... zclass.htm

How to use the Impedance class from hoc

After reading the documentation of the Impedance class
http://www.neuron.yale.edu/neuron/stati ... #Impedance
try reading and then using this demo:

Code: Select all

load_file("nrngui.hoc")

// toy model cell

create soma, dend, axon
access soma

connect axon(0), soma(0)
connect dend(0), soma(1)

soma {
  diam = 30
  L = 30
  insert pas
  g_pas /= 20
  e_pas = -65  // same as HH resting potential
}

dend {
  diam(0:1) = 2:0.5
  L = 600
  insert pas
  g_pas /= 20
  e_pas = -65  // same as HH resting potential
}

axon {
  diam = 1
  L = 1000
  insert hh
}

// specify reasonable values for nseg--see
//   http://www.neuron.yale.edu/neuron/static/docs/d_lambda/d_lambda.html

freq = 100      // Hz, frequency at which AC length constant will be computed
d_lambda = 0.1

func lambda_f() { // currently accessed section, $1 == frequency
  return 1e5*sqrt(diam/(4*PI*$1*Ra*cm))
}

proc geom_nseg() {
  soma area(0.5) // make sure diam reflects 3d points
  forall { nseg = int((L/(d_lambda*lambda_f(freq))+0.9)/2)*2 + 1  }
}

geom_nseg()

// prepare to use Impedance class

// always a good idea to finitialize before computing impedance
v_init=-65
finitialize(v_init)

// demonstrate use of impedance class

objref zz
zz = new Impedance()

FREQ = 0 // Hz
WHERE = 0.5 // location in the soma that is the reference point

soma distance(0, WHERE)  // sets origin for distance calculations

proc calcZ() {
  soma zz.loc(WHERE)  // sets origin for impedance calculations
  zz.compute(FREQ, 1) // takes the impedance contributions of 
                      // gating state differential equations into account
                      // but requires mechanisms to be compatible with CVODE

  print "x distance(x) input(x) input_phase(x) transfer(x) transfer_phase(x) ratio(x)"
  forall {
    print secname()
    for (x) print x, distance(x), zz.input(x), zz.input_phase(x), zz.transfer(x), zz.transfer_phase(x), zz.ratio(x)
  }
}

calcZ()
Source code

The algorithms for the basic calculations are in src/nrniv/impedanc.cpp
The GUI interface is specified in nrn/share/nrn/lib/hoc/impedanc.hoc and nrn/share/nrn/lib/hoc/impedanx.hoc

Conceptual background information

To learn how impedance analysis can help you understand the spread of electrical signals in a cell, see the following references:

Carnevale, N.T., and Johnston, D. Electrophysiological characterization of remote chemical synapses. J. Neurophys. 47:606-621, 1982.
PDF available at http://www.neuron.yale.edu/neuron/stati ... vale82.pdf
Introduces the use of an equivalent T circuit, and two-port circuit theory, to analyze the spread of electrical signals between two points in a cell. Also shows that voltage attenuation in one direction is identical to current attenuation in the opposite direction, regardless of the details of cellular anatomy (previously this had been shown only for artificial anatomies that could be reduced to an equivalent cylinder).

Carnevale, N.T., Tsai, K.Y., Claiborne, B.J., and Brown, T.H.. The electrotonic transformation: a tool for relating neuronal form to function. In: Advances in Neural Information Processing Systems, vol. 7, eds. Tesauro, G., Touretzky, D.S., and Leen, T.K.. MIT Press, Cambridge, MA, 1995, pp. 69-76.
Preprint available at http://www.neuron.yale.edu/neuron/stati ... psfin.html
Classical electrotonic distance is meaningless as a measure of the electrical separation between points in a cell, because real cells cannot be reduced to equivalent cylinders and attenuation depends on the direction of signal propagation. Instead, voltage attenuation or its natural logarithm should be used.

O'Boyle, M.P., Carnevale, N.T., Claiborne, B.J., and Brown, T.H. A new graphical approach for visualizing the relationship between anatomical and electrotonic structure. In: Computational Neuroscience: Trends in Research 1995, edited by J.M. Bower. San Diego: Academic Press, 1996, p. 423-428.
Preprint available at http://www.neuron.yale.edu/neuron/stati ... s95pre.pdf
Introduces neuromorphic rendering of the electrotonic transformation.

Carnevale, N.T., Tsai, K.Y., Claiborne, B.J. and Brown, T.H. Comparitive electrotonic analysis of three classes of rat hippocampal neurons. J. Neurophys. 78:703-720, 1997.
Voltage attenuation is much worse in the somatopetal (toward soma) direction than in the somatofugal direction (away from soma).

Jaffe, D.B. and Carnevale, N.T. Passive normalization of synaptic integration influenced by dendritic architecture. Journal of Neurophysiology 82:3268-3285, 1999.
Preprint available from http://www.neuron.yale.edu/neuron/stati ... asnorm.pdf
Unitary synaptic inputs tend to act like current sources, so synaptic efficacy (impact on membrane potential at the spike trigger zone) is proportional to the transfer impedance between the synaptic location and the spike trigger zone. In cells that lack a primary apical dendrite, transfer impedance is nearly independent of synaptic location, so all synapses have nearly equal efficacy. If there is an apical trunk with a distal dendritic tuft, synapses onto the tuft dendrites have less effect on the soma because of lower transfer impedance between the soma and the tuft branches. The bottom line: there is no need for synaptic boosting by voltage-gated currents, except for synapses onto dendrites in a distal apical tuft.
Post Reply