Vhe values for Vs/Vd in LEMS and the twoCompartment models are very close, but not exactly the same. For times <100ms, the values are off by a fraction of ms. For larger times, the errors accumulate resulting in spikes off by a few ms.
It seems like it's some sort of numerical/rounding/integration issue. The step size is the same. The model parameters are the same too.
Even in the simplest case, when all the channels are taken out, and just leaving the soma leak current in LEMS and twoCompartment model, the values are still not exactly the same.
I.e. In LEMS, set the initial Vs to -30 mv and make sure Vs is just this:
<TimeDerivative variable="Vs" value="(-gLs*(Vs-VL)) / Cm"/>
In Figure2Aand3.parameters.nml, delete all the soma channels, except the somaLeak. In twoCompartmentCell.cell.nml, set initMembPotential to -30 mv, and set Vs:
<TimeDerivative variable="Vs" value="(iDensitySoma)/Cm" />
In both versions, Vs eventually drops down to -60mv (as expected), but the exact values are not the same (see table below).
| Time Step (LEMS) |
Vs (LEMS) |
Time Step (twoCompartment) |
Vs (twoCompartment) |
| 0 |
-0.03 |
0 |
-0.03 |
| 1.00E-05 |
-0.03001 |
1.00E-05 |
-0.03001 |
| 2.00E-05 |
-0.030019997 |
2.00E-05 |
-0.03002 |
| 3.00E-05 |
-0.03002999 |
3.00E-05 |
-0.030029997 |
| 4.00E-05 |
-0.03003998 |
4.00E-05 |
-0.03003999 |
| 5.00E-05 |
-0.030049967 |
5.00E-05 |
-0.03004998 |
| 6.00E-05 |
-0.03005995 |
6.00E-05 |
-0.030059967 |
| 7.00E-05 |
-0.03006993 |
7.00E-05 |
-0.03006995 |
| 8.00E-05 |
-0.030079907 |
8.00E-05 |
-0.03007993 |
| 9.00E-05 |
-0.03008988 |
9.00E-05 |
-0.030089907 |
| 1.00E-04 |
-0.03009985 |
1.00E-04 |
-0.03009988 |
| 1.10E-04 |
-0.030109817 |
1.10E-04 |
-0.03010985 |
| 1.20E-04 |
-0.03011978 |
1.20E-04 |
-0.030119818 |
| 1.30E-04 |
-0.03012974 |
1.30E-04 |
-0.030129781 |
| 1.40E-04 |
-0.030139698 |
1.40E-04 |
-0.03013974 |
| 1.50E-04 |
-0.03014965 |
1.50E-04 |
-0.030149696 |
| 1.60E-04 |
-0.0301596 |
1.60E-04 |
-0.03015965 |
| 1.70E-04 |
-0.030169547 |
1.70E-04 |
-0.0301696 |
| 1.80E-04 |
-0.030179491 |
1.80E-04 |
-0.030179547 |
| ... |
... |
... |
... |
| 1.30E-01 |
-0.0596046 |
1.30E-01 |
-0.05960517 |
| 1.30E-01 |
-0.05960473 |
1.30E-01 |
-0.059605304 |
| 1.30E-01 |
-0.059604865 |
1.30E-01 |
-0.059605435 |
| 1.30E-01 |
-0.059604995 |
1.30E-01 |
-0.059605565 |
| 1.30E-01 |
-0.059605125 |
1.30E-01 |
-0.059605695 |
| 1.30E-01 |
-0.05960526 |
1.30E-01 |
-0.05960583 |
| 1.30E-01 |
-0.05960539 |
1.30E-01 |
-0.05960596 |
| 1.30E-01 |
-0.05960552 |
1.30E-01 |
-0.05960609 |
| 1.30E-01 |
-0.059605654 |
1.30E-01 |
-0.059606224 |
| 1.30E-01 |
-0.059605785 |
1.30E-01 |
-0.059606355 |
| 1.30E-01 |
-0.059605915 |
1.30E-01 |
-0.059606485 |
| 1.30E-01 |
-0.05960605 |
1.30E-01 |
-0.059606615 |
| 1.30E-01 |
-0.05960618 |
1.30E-01 |
-0.059606746 |
| 1.30E-01 |
-0.05960631 |
1.30E-01 |
-0.05960688 |
| 1.30E-01 |
-0.05960644 |
1.30E-01 |
-0.05960701 |
| 1.30E-01 |
-0.05960657 |
1.30E-01 |
-0.05960714 |
Vhe values for Vs/Vd in LEMS and the twoCompartment models are very close, but not exactly the same. For times <100ms, the values are off by a fraction of ms. For larger times, the errors accumulate resulting in spikes off by a few ms.
It seems like it's some sort of numerical/rounding/integration issue. The step size is the same. The model parameters are the same too.
Even in the simplest case, when all the channels are taken out, and just leaving the soma leak current in LEMS and twoCompartment model, the values are still not exactly the same.
I.e. In LEMS, set the initial Vs to -30 mv and make sure Vs is just this:
In Figure2Aand3.parameters.nml, delete all the soma channels, except the somaLeak. In twoCompartmentCell.cell.nml, set initMembPotential to -30 mv, and set Vs:
In both versions, Vs eventually drops down to -60mv (as expected), but the exact values are not the same (see table below).