Pacing protocol syntax¶
In Myokit, pacing is not part of a model but is defined using a separate
pacing syntax. To introduce a pacing current in the model, a variable must be
bound to an external input such as pace.
A common use of this mechanism is to specify a stimulus current
I_stim = amplitude * level where
amplitude is a constant stimulus amplitude (in amperes) and level is
the dimensionless variable bound to the input pace:
[stimulus]
level = 0
bind pace
amplitude = 60 [A/F]
in [A/F]
current = level * amplitude
in [A/F]
Structure¶
A pacing protocol definition starts with the segment header protocol. Each
successive line defines a pacing event, I.E. a time when the stimulus is
non-zero. The following five parameters must set (separated by any amount of
whitespace):
The value of the stimulus variable
The time at which this stimulus occurs
The duration of this stimulus
For periodic stimuli, the fourth column specifies the stimulus period. Non-periodic stimuli can be created by entering
0here.The number of times a periodic stimulus is given can be specified in the final column, stimuli that are non-periodic or recur indefinetely can use the value
0here.
Comments may be added by starting lines with #.
When specifying the time an event starts, the keyword next may be used to
denote the time at which the previous event ends. This can only be used at the
very start of a protocol or directly after a non-periodic event. To avoid
unexpected results from summing floating point numbers, times specified using
next will be rounded to 9 digits.
Examples¶
A typical example for 0.5ms stimuli occurring every 1000ms (at 1bpm) is:
[[protocol]]
#level start length period multiplier
1.0 10 0.5 1000 0
Here, a stimulus of level 1.0 is applied from t=10ms till t=12ms and then
again from t=1010ms to t=1012ms continuing indefinitely.
In the following example the stimulus only occurs 3 times:
[[protocol]]
#level start length period multiplier
1.0 10 0.5 1000 3
An example for a voltage clamp experiment:
[[protocol]]
#level start length period multiplier
-80 0 500 0 0
40 500 500 0 0
-80 1000 1000 1000 0
In this example, the pacing level is taken to denote a voltage. At t=0 the voltage is set to -80mV. After 500ms, it changes abrubtly to +40, where it stays for another 500ms. Finally, at t=1000ms it drops down to -80mV again where it stays indefinitely.
This example can also be written using next:
[[protocol]]
#level start length period multiplier
-80 0 500 0 0
40 next 500 0 0
-80 next 1000 1000 0