### mod file CVODE compatibility

Posted:

**Wed Jun 15, 2005 12:13 pm**We are looking at the persistent sodium channel model (specified in "nap.mod") published in

Poirazi, P. Brannon, T. & Mel, B.W.

"Arithmetic of Subthreshold Synaptic Summation in a Model CA1 Pyramidal Cell."

Neuron 977-987, February 2003.

(file from the ModelDB is http://tinyurl.com/ctor8)

If one makes some minor modifications (removing explicit references to t and dt), we obtain something like the code snippet as follows:

TITLE Na persistent channel

NEURON {

SUFFIX nap2

USEION na READ ena WRITE ina

RANGE gnabar,vhalf, K

}

UNITS {

(mA) = (milliamp)

(mV) = (millivolt)

}

PARAMETER {

v (mV)

ena = 50 (mV) : Na reversal potential (reset in cell-setup.hoc)

K = 4.5 (1) : slope of steady state variable

gnabar = 0 : initialized conductance

vhalf = -50.4 (mV) : half potential

}

STATE { n }

ASSIGNED {

ina (mA/cm2)

}

BREAKPOINT {

SOLVE states

ina = gnabar*n^3*(v-ena)

}

PROCEDURE states() { : exact when v held constant; integrates over dt step

n = 1 / (1 + (exp(vhalf - v)/K)) : steady state value

}

Putting aside all considerations about the accuracy/correctness of the model itself...

1. When we translate this file, the following line appears among the output

"Notice: This mechanism cannot be used with CVODE"

What exactly about this file is incompatible with CVODE? It appears to conform to the most modern NMDOL idioms (i.e. no explicit references to t or dt).

2. In this environment, how big are the computational savings from using multiple multiplication statements ("n*n*n") versus using exponential syntax ("n^3"). The later seems so much more aesthetically and intellectually pleasing.

Brad

Poirazi, P. Brannon, T. & Mel, B.W.

"Arithmetic of Subthreshold Synaptic Summation in a Model CA1 Pyramidal Cell."

Neuron 977-987, February 2003.

(file from the ModelDB is http://tinyurl.com/ctor8)

If one makes some minor modifications (removing explicit references to t and dt), we obtain something like the code snippet as follows:

TITLE Na persistent channel

NEURON {

SUFFIX nap2

USEION na READ ena WRITE ina

RANGE gnabar,vhalf, K

}

UNITS {

(mA) = (milliamp)

(mV) = (millivolt)

}

PARAMETER {

v (mV)

ena = 50 (mV) : Na reversal potential (reset in cell-setup.hoc)

K = 4.5 (1) : slope of steady state variable

gnabar = 0 : initialized conductance

vhalf = -50.4 (mV) : half potential

}

STATE { n }

ASSIGNED {

ina (mA/cm2)

}

BREAKPOINT {

SOLVE states

ina = gnabar*n^3*(v-ena)

}

PROCEDURE states() { : exact when v held constant; integrates over dt step

n = 1 / (1 + (exp(vhalf - v)/K)) : steady state value

}

Putting aside all considerations about the accuracy/correctness of the model itself...

1. When we translate this file, the following line appears among the output

"Notice: This mechanism cannot be used with CVODE"

What exactly about this file is incompatible with CVODE? It appears to conform to the most modern NMDOL idioms (i.e. no explicit references to t or dt).

2. In this environment, how big are the computational savings from using multiple multiplication statements ("n*n*n") versus using exponential syntax ("n^3"). The later seems so much more aesthetically and intellectually pleasing.

Brad