Phase singularities and filaments

See code in GitLab.
Author: Martin Bishop martin.bishop@kcl.ac.uk

To run the experiments of this example change directories as follows:

cd ${EXAMPLES}/05_pre_post_processing/06_igbfilament 

Phase singularities and filaments

The most lethal cardiac arrhythmias are driven by reentrant wavefronts that often have an organising centre. In two dimensions, this centre is commonly described as the tip of a rotating spiral wave. In three dimensions, it becomes a filament: the centre-line around which a scroll wave rotates.

A line of wave break marks where surfaces of activation and recovery intersect. In two dimensions, the corresponding point of wave break is defined by intersecting lines of activation and recovery.

Detection algorithm

Several algorithms for detecting filaments are reviewed by Clayton et al. 1 . They locate the intersection of activation and recovery directly, or first transform activation into phase. The term phase singularity reflects that the point is surrounded by tissue spanning all phase values, so the point itself has no defined phase.

igbfilament explicitly finds the intersection of activation and recovery. The activation isosurface is defined by the membrane-potential threshold \(V_{\mathrm{thresh}}\). This is often chosen near sodium-channel activation, approximately -40 mV, but the best value depends on the cell model and signal amplitude. Recovery is represented by the intersection of voltage isosurfaces separated by a time-embedding lag, which approximates \(dV_m/dt = 0\).

The tool was called GlFilament in the original CARPentry example. It is now named igbfilament and is part of the IGB utilities.

06_igbfilament/05_06_phase_singularity.png
A spiral wave (a), voltage (blue) and recovery (red) isolines (b), and a close-up of their intersection at the phase singularity (c). Taken from Clayton et al. 2

Experimental parameters

Phase-singularity detection works on two-dimensional triangular meshes and three-dimensional tetrahedral meshes. Two parameters control the detector:

--iso-threshold

Membrane-potential threshold in mV used to represent activation. The example default is -20 mV.

--iso-intv

Time-embedding lag in ms used to represent recovery. The example default is 8 ms.

The underlying igbfilament options are named --threshold and --dt.

Output

igbfilament writes a time-dependent auxiliary mesh named phase_sing to the example's output directory:

phase_sing.pts_t

Detected phase-singularity points or filament-segment endpoints.

phase_sing.elem_t

Connections between endpoints for three-dimensional filament segments.

phase_sing.dat_t

The source mesh element index associated with each detected point.

The auxiliary mesh has the same number of time frames as the input IGB file and can be displayed alongside the voltage data in meshalyzer.

Experiment

The example uses precomputed voltage data because generating sustained reentry would require a much larger simulation. To inspect the available options, run:

./run.py --help

Detect phase singularities with:

./run.py --iso-threshold -20 --iso-intv 8 --visualize

The detected phase singularity should remain close to the centre of the spiral wave. Repeat the experiment with different threshold and interval values to see how both parameters affect the result.

Literature


  1. Clayton, R.H., Zhuchkova, E.A. and Panfilov, A.V., Phase singularities and filaments: Simplifying complexity in computational models of ventricular fibrillation, Progress in Biophysics and Molecular Biology 90:378-398, 2006. [PubMed]↩︎

  2. Clayton, R.H., Zhuchkova, E.A. and Panfilov, A.V., Phase singularities and filaments: Simplifying complexity in computational models of ventricular fibrillation, Progress in Biophysics and Molecular Biology 90:378-398, 2006. [PubMed]↩︎

Recent questions tagged igbfilament, filaments, phase-singularities, reentry, post-processing

There are tagged with igbfilament, filaments, phase-singularities, reentry, post-processing.

Here we display the 5 most recent questions. You can click on each tag to show all questions for this tag.

You can also ask a new question.

© Copyright 2020 openCARP project    Supported by DFG and EuroHPC    Contact    Imprint and data protection