forall is an iterator in hoc that allows you to write a statement of the form
forall statement
which will be executed like so:
Code: Select all
for each section that exists
make that section the currently accessed section
execute statement
Code: Select all
forall {
Ra = 1.26e8 * fac
}
1.26e8 * fac
to that section's cytoplasmic resistivity parameter Ra.
Now about fac.
In modeldb.yale.edu/9848 the term fac used in cable.hoc is not a function. It is a scale factor used to convert
"longitudinal resistance along a cylinder of length 1 cm"
to
bulk resistivity of cytoplasm in units of ohm cm, which is the resistance between the parallel faces of a 1 cm cube of cytoplasm. Brill et al. did not report the bulk resistivity of cytoplasm in their model. Instead, they reported the longitudinal resistance of their model axon in units of ohm/cm--in other words, resistance, in ohms, per length of their axon, in cm. If the cross-sectional area of their axon was 1 cm2, then the longitudinal resistance of a 1 cm length of their axon would be numerically identical to cytoplasmic resistivity. But if their axon's cross-sectional area were k cm2, then their longitudinal resistance parameter would be 1/k times the numerical value of cytoplasmic resistivity (bigger cross-sectional area means less resistance, smaller cross-sectional area means more resistance), and the way to get cytoplasmic resistivity from their longitudinal resistance parameter would be to multiply their parameter by k.
fac = PI*diam^2/4 * 1e-8
is the cross sectional area, in cm2, of a cylinder with diameter diam (in um).
1.26 * 10^8 is their longitudinal resistance parameter in ohm/cm (they called it "axoplasmic resistance per unit axon length, and it is, as long as your unit of length is 1 cm).
So that's why Ra (cytoplasmic resistivity) is calculated as
Ra = 1.26e8 * fac.
Finally
Code: Select all
func l2a() {
return 1/(PI*diam) * 1e4
}