I have been trying to develop a network model involving extracellular mechanism as well as constructs using LinearMechanism. Since neither of these are intuitive (and prone to user errors), I made a small dummy model just to test my understanding of what was happening (with the LinearMechanisms omitted to start with). I then implemented the electrical equivalent circuit on a circuit simulation platform (here: MultiSim) to compare the results (to be sure what I coded was what I meant... could possibly also have used the cell-builder, but wanted to explicitly define all circuit elements to be certain). The results didn't seem to provide a good match in the presence of extracellular mechanism. Here is a summary of what I did:
Model: Two cells, cellA & cellB, with nseg = 1 connected via gap junctions. cellA is stimulated via IClamp.
Code for developing model:
Code: Select all
create cella, cellb
forall {
L = 20000
diam = 20/PI //For rounded off values of area()
Ra = 181
cm = 1
insert pas
g_pas = 1 / 132500
e_pas = -50
nseg = 1
}
//Setting up gap junctions between the two cells
objref g[2]
for i = 0 ,1 {
g[i] = new Gap(0.5)
g[i].r = 10 //10 MOhm
}
cella g[0].loc(0.9999)
cellb g[1].loc(0.0001)
setpointer g[0].vgap, cellb.v(0.0001)
setpointer g[1].vgap, cella.v(0.9999)
//Function to incorporate extracellular mechanism in both cells with identical properties - Invoked from GUI panel
proc setExtra() {
forall {
insert extracellular
xc[0] = 0
xc[1] = 0
xg[0] = 1e-3
xg[1] = 1e9
}
}
access cella
objref stim
cella stim = new IClamp(0.5)
stim.del = 5
stim.amp = 1
stim.dur = 4995
tstop = 5000
Circuit parameters were converted into absolute units by multiplying with area(0.5)*1e-8 wherever required, i.e. cm, g_pas, xg[0], xg[1]
Here XMM represents voltmeters. XMM1 = cellA.v(0.5), XMM2 = cellA.vext[0](0.5) , XMM3 = cellB.v(0.5), XMM4 = cellB.vext[0](0.5)
Results:
Extracellular fields: ABSENT
-----------------------------
NEURON Output: cellA.v(0.5) = -31.2654 mV, cellB.v(0.5) = -35.6096 mV
Circuit Output: cellA.v(0.5) = -31.265 mV, cellB.v(0.5) = -35.609 mV
=> Perfect Match
Extracellular fields: PRESENT
-----------------------------
NEURON Output: cellA.v(0.5) = -31.6764 mV, cellA.vext[0](0.5) = 138.291 uV, cellB.v(0.5) = -36.0065 mV, cellB.vext[0](0.5) = 105.611 uV
Circuit Output: cellA.v(0.5) = -31.279 mV, cellA.vext[0](0.5) = 141.291 uV, cellB.v(0.5) = -35.595 mV, cellB.vext[0](0.5) = 108.718 uV
=> Differences in the two cases
I did verify the above simulations on another circuit simulation platform (CircuitLab) but ended up with a similar mismatch with NEURON in presence of the extracellular field. I have read that slight differences may arise because of differences in the integration method. But considering that there were near perfect matches in the absence of extracellular mechanism, I am not sure what is causing the larger variation in its presence.
The simulations however match when considering a single cell in the presence/absence of extracellular fields:
Single Cell with Extracellular field: ABSENT
------------------------------------------------
NEURON Output: cellA.v(0.5) = -16.875 mV
Circuit Output: cellA.v(0.5) = -16.876 mV
=> Perfect Match
Single Cell with Extracellular field: PRESENT
------------------------------------------------
NEURON Output: cellA.v(0.5) = -16.875 mV, cellA.vext[0](0.5) = 250 uV
Circuit Output: cellA.v(0.5) = -16.876 mV, cellA.vext[0](0.5) = 249.996 uV
=> Perfect Match
So we basically have scenarios where:
> Gap junctions working fine in the absence of extracellular fields
> Extracellular fields working fine for single cells
> Problems apparently when both gap junctions and extracellular fields are present
One other query: With nseg = 1 and cells connected only via gap junctions (i.e. no "connect" statement), is it correct to consider axial resistivity, both internal as well as external, (i.e. Ra and xraxial) being irrelevant with regards to the electrical equivalent circuit of the cell? Simulations seemed to suggest so, but wanted to confirm.
Thanks in advance for any inputs!