See code in GitLab.
Author: Jason Bayer jason.bayer@ihu-liryc.fr
This tutorial demonstrates how to compute action potential duration (APD) restitution in a single cardiac cell.
To run the experiments of this tutorial change directories as follows:
cd ${TUTORIALS}/01_EP_single_cell/02B_APD_restitution
APD restitution is an important property of cardiac tissue. As pacing frequency is increased, APD shortens to maintain a one to one stimulus to response. For this tutorial, the user will be shown how to construct APD restitution curves to describe the repolarization properties of cardiac cells in response to various pacing protocols. For details see the APD restitution section in the manual.
This tutorial uses the cardiac cell models in openCARP's LIMPET library and the single-cell tool bench. The single-cell model is a user input. To see a list of all available models, please type the following command.
bench --list-imps
Single-cell models are paced with 2-ms-long stimuli at twice capture amplitude with all restitution protocols.
Restitutions protocols are designed to reveal different features of AP restitution.
The S1S2 protocol illustrated in fig-apd-restitutions-S1S2-protocol
is used to gauge the propensity
towards developing an arrhythmia.
The dynamic protocol rather reflects restitution for slower transitions between basic cycle lengths (BCLs).
For an S1S2 pacing protocol, the user sets the BCL and number of beats, nbeats
, for the S1 pacing.
Following S1 pacing, a single S2 beat is applied at a range of coupling intervals (CI) chosen by the user.
The basics of the S1S2 protocol are illustrated in fig-apd-restitutions-S1S2-protocol
.
When using a dynamic pacing protocol, the S1 cycle length is decremented sequentially and continuously after a user chosen number of beats, nbeats
until the minimum CI of CI0
is reached. The protocol is graphically illustrated in fig-apd_restitutions-dynamic-protocol
.
Activation potential duration is computed as the time it takes to reach 90% repolarization (\(APD_{90}\)) from the maximum action potential upstroke potential.
The following optional arguments are available (default values are indicated):
./run.py --help
--Protocol Default: S1S2
Restitution protocol, either S1S2 or Dynamic
--prebeats Default: 20
Number of pre-pacing beats for S1 pacing at BCL
--initial Initial state vector representing limit cycle for chosen BCL
--nbeats Default: 5
Number of beats for S1 pacing at BCL
--CI0 Default: 50 ms
Shortest S2 coupling interval
--CI1 Default: BCL
S1 cycle length and longest S2 coupling interval
--CIinc Default: 25 ms
Decrement for time interval from CI1 to CI0
--imp Default: tenTusscherPanfilov
Single-cell model to use
--params Default: ' '
Parameters of single-cell model to modify
The run.py script formats these user inputs into the following file for an S1S2 pacing protocol using bench,
1 # protocol selection 1=S1S2 0=dynamic
prebeats # number of prepacing beats before starting protocol
BCL # basic cycle length
CI1 # S2 prematurity start
CI0 # S2 prematurity end
nbeats # number of beats preceding premature one
CIinc # decrement in S2 prematurity in ms
and the following for a dynamic pacing protocol,
0 # protocol selection 1=S1S2 0=dynamic
prebeats # number of prepacing beats before starting protocol
BCL # initial basic cycle length
CI0 # final basic cycle length
nbeats # number of beats per basic cycle length
CIinc # decrement of bcl in ms
The script run.py then feeds these user input scripts to the function --restitute in bench. The results for DI and APD are output into the ASCII file restout_APD_restitution.dat in the corresponding output directory for the given input parameters. The format of this file is described in the openCARP manual under section the describing the function --restitute in bench (3.1.2). The details of the file format are shown below.
Col 1 #Beat : Beat number of an AP
Col 2 Prematurity : P (premature beat) or * (no prematurity)
Col 3 Steady State : O (not in steady state), 1 (in steady state)
Col 4 APD : Action potential duration
Col 5 DI(n) : Diastolic interval of current beat
Col 6 DI(n-1) : Diastolic interval of previous beat
Col 7 Triangulation : APD90-APD30
Col 8 Vm_min : Minimum potential of current beat
Col 9 Vm_max : Maximum potential of current beat
If run.py is run with the --visualize
option, the APD restitution curve (APD Col 4 vs. DI Col 6) in the output file will be plotted using pythons plotting functions.
Note, if the user input for CI0 is too small, you may need to trim the restout_APD_restitution.dat files after a loss of capture occurs. The visualization feature does not remove these values permanently from the output file.
To run the experiments of this tutorial change directories as follows:
cd ${TUTORIALS}/01_EP_single_cell/02B_APD_restitution
./run.py --imp tenTusscherPanfilov --visualize
./run.py --imp Courtemanche --visualize
./run.py --imp Shannon --visualize
./run.py --imp tenTusscherPanfilov --params GKr=0.172,GKs=0.441 --visualize
./run.py --imp tenTusscherPanfilov --params GKr=0.134,GKs=0.270 --visualize
Notes:
References
ten Tusscher KHWJ, Panfilov AV. Alternans and spiral breakup in a human ventricular tissue model. Am J Physiol Heart Circ Physiol, 291(3):H1088-H1100, 2006. [Pubmed]
© Copyright 2020 openCARP project Supported by DFG Contact Imprint and data protection