Ventricular mechanics and strain

Feature summary

Badge legend: Phenotype-family colors group feature types only. Status colors are reserved for evidence tables: muted green means verified, muted amber means method-dependent or schema debt, gray outline means needs verification, and red is reserved for blocked items. Disease badges use neutral navigation styling and are literature-context links only, not diagnoses, classifiers, or validated phenotype-to-ICD associations.

Ventricular mechanics and strain phenotypes describe myocardial deformation beyond ventricular volume and ejection fraction. This page is source-audited for current CardiacNexus output names and processing boundaries, but it deliberately treats strain, strain rate, torsion, recoil, and tagged-MRI outputs as registration-sensitive research phenotypes rather than diagnostic classifiers.

Modality
Cine short-axis CMR, cine long-axis CMR, and tagged MRI where available
UKB source
Data Fields 20209, 20208, and 20211
Pipeline step
MIRTK-backed feature tracking, contour propagation, strain extraction, smoothing, and torsion analysis
Outputs
strain_sax.csv, strain_lax.csv, strain_tagged.csv, strain_sax.npz, strain_lax.npz, strain_tagged.npz, strain and torsion QC plots
Maturity
Source-audited high-risk phenotype page

Clinical question

Ventricular strain can detect impaired deformation even when chamber volumes or ejection fraction look preserved. The current CardiacNexus page is useful for cohort phenotyping and method-aware interpretation, but strain values must be read alongside acquisition, tracking, smoothing, and QC context [1] [2].

Anatomical and physiological definition

Lagrangian strain measures change in myocardial length relative to a reference length, usually end diastole. Circumferential strain describes tangential shortening around the LV cavity, radial strain describes wall thickening toward the LV center, and longitudinal strain describes base-to-apex shortening. In the current output convention, raw circumferential and longitudinal strain values are negative for shortening, while page-level absolute-value outputs are explicitly named as absolute values.

Strain rate is the time derivative of strain and is reported in 1/s. Torsion describes apical-basal twist normalized by ventricular length, and recoil rate describes diastolic untwisting speed from the torsion curve [2].

Longitudinal circumferential and radial strain schematic from the CardiacNexus manuscript image cache citing Jeung et al. 2012
Strain-type schematic from the manuscript image cache, cited there to Jeung et al. 2012, shown to orient longitudinal, circumferential, and radial deformation axes. CardiacNexus output sign conventions, absolute-value rows, and method boundaries are defined in the page text and tables.Source: manuscript image cache citing Jeung et al. 2012; permission and exact source-panel review pending for draft use.
LV torsion calculation schematic from the manuscript image cache
LV torsion schematic from the manuscript image cache, cited there to Kowallick et al. 2014, shown to orient apical-basal rotation and length-normalized torsion. It is method context only; CardiacNexus torsion and recoil rows remain registration-sensitive outputs with QC caveats.Source: manuscript image cache citing Kowallick et al. 2014; permission and exact source-panel review pending for draft use.
Mechanical dispersion timing schematic from the manuscript image cache
Mechanical dispersion context figure from the manuscript image cache, cited there to Saijo et al. 2022, shown to orient segmental time-to-peak variability and post-systolic shortening concepts. It is not a CardiacNexus diagnostic classifier.Source: manuscript image cache citing Saijo et al. 2022; permission and exact source-panel review pending for draft use.

Source acquisition and UKB field

Short-axis cine strain uses UK Biobank Data Field 20209 and the short-axis segmentation/contour route. Long-axis longitudinal strain uses Data Field 20208 and long-axis myocardial contour tracking. Tagged MRI outputs use Data Field 20211 and a separate tagged-MRI backend; those outputs are kept separate from cine feature-tracking outputs.

What exactly CardiacNexus measures

Short-axis circumferential and radial strain

eval_strain_sax.py calls the short-axis motion/strain route, evaluates tracked myocardial contours, and records AHA-segment and global extrema. Circumferential strain uses the minimum strain value, while radial strain uses the maximum strain value.

Long-axis longitudinal strain

eval_strain_lax.py calls the long-axis motion/strain route and records six segmental longitudinal strain rows plus a global row. Peak and post-systolic features use smoothed global curves, and timing indices require either ventricular timing or ECG-derived RR interval where available.

Strain rate and timing

SAX and LAX strain rates are derived from smoothed global strain curves. The implementation reports peak systolic, early diastolic, and late diastolic extrema when the time-series segmentation and peak checks succeed. SI-DI uses the difference between end-systolic strain and strain at one-third diastolic duration, normalized by end-systolic strain.

Torsion and recoil

eval_strain_sax.py calls the torsion helper after strain extraction. The current outputs include endocardial, epicardial, and global torsion, recoil rate, and time-to-peak torsion. Basal/apical slice selection and tracking consistency are material caveats.

Tagged MRI boundary

eval_strain_tagged.py uses tagged-MRI strain arrays and writes a separate strain_tagged.csv. Its output names should not be merged with cine-derived SAX/LAX strain without method labels, because the backend, deformation model, and QC expectations differ.

Output columns and units

CardiacNexus writes these phenotype families into strain_sax.csv, strain_lax.csv, and strain_tagged.csv. Segmental ranges are exact schema families; the current dictionary records selected global and method-critical rows, while the inventory records the broader artifact contract.

SAX global strain, timing, SI-DI, and torsion

Display familyExact output columnUnitStatusSchema note
SAX strainStrain-SAX: Circumferential strain (Global) [%]%currentraw sign retained; typically negative for shortening
SAX strainStrain-SAX: Radial strain (Global) [%]%currentpositive radial thickening
SAX strainStrain-SAX: End Systolic Circumferential Strain (Absolute Value) [%]%conditional current outputsmoothed global curve
SAX strainStrain-SAX: Peak Systolic Circumferential Strain (Absolute Value) [%]%conditional current outputsmoothed global curve
SAX strainStrain-SAX: Post Systolic Circumferential Strain (Absolute Value) [%]%conditional current outputwritten only if peak occurs after ES
SAX strainStrain-SAX: End Systolic Radial Strain (Absolute Value) [%]%conditional current outputsmoothed global curve
SAX strainStrain-SAX: Peak Systolic Radial Strain (Absolute Value) [%]%conditional current outputsmoothed global curve
SAX strainStrain-SAX: Post Systolic Radial Strain (Absolute Value) [%]%conditional current outputwritten only if peak occurs after ES
SAX SI-DIStrain-SAX: Circumferential Strain Imaging Diastolic Index [%]%conditional current outputoutlier/negative guards apply
SAX SI-DIStrain-SAX: Radial Strain Imaging Diastolic Index [%]%conditional current outputoutlier/negative guards apply
SAX strain rateStrain-SAX: Peak Systolic Circumferential Strain Rate [1/s]1/sconditional current outputderived from smoothed curve
SAX strain rateStrain-SAX: Early Diastolic Circumferential Strain Rate [1/s]1/sconditional current outputpeak timing check after ES
SAX strain rateStrain-SAX: Late Diastolic Circumferential Strain Rate [1/s]1/sconditional current outputlate diastolic peak
SAX strain rateStrain-SAX: Peak Systolic Radial Strain Rate [1/s]1/sconditional current outputderived from smoothed curve
SAX strain rateStrain-SAX: Early Diastolic Radial Strain Rate [1/s]1/sconditional current outputpeak timing check after ES
SAX strain rateStrain-SAX: Late Diastolic Radial Strain Rate [1/s]1/sconditional current outputlate diastolic peak
SAX timingStrain-SAX: Time to Peak Circumferential Strain [ms]mscurrentpeak frame times temporal resolution
SAX timingStrain-SAX: Time to Peak Radial Strain [ms]mscurrentpeak frame times temporal resolution
SAX timingStrain-SAX: Time to Peak Circumferential Strain Indexunitlessconditional current outputrequires ECG RR interval
SAX timingStrain-SAX: Time to Peak Radial Strain Indexunitlessconditional current outputrequires ECG RR interval
SAX torsionStrain-SAX: Endocardial Torsion [°/cm]°/cmconditional current outputtorsion helper output
SAX torsionStrain-SAX: Epicardial Torsion [°/cm]°/cmconditional current outputtorsion helper output
SAX torsionStrain-SAX: Global Torsion [°/cm]°/cmconditional current outputtorsion helper output
SAX recoilStrain-SAX: Endocardial Recoil Rate [°/cm/s]°/cm/sconditional current outputrecoil from torsion curve
SAX recoilStrain-SAX: Epicardial Recoil Rate [°/cm/s]°/cm/sconditional current outputrecoil from torsion curve
SAX recoilStrain-SAX: Global Recoil Rate [°/cm/s]°/cm/sconditional current outputrecoil from torsion curve
SAX torsion timingStrain-SAX: Time to Peak Endocardial Torsion [ms]msconditional current outputtorsion timing
SAX torsion timingStrain-SAX: Time to Peak Epicardial Torsion [ms]msconditional current outputtorsion timing
SAX torsion timingStrain-SAX: Time to Peak Global Torsion [ms]msconditional current outputtorsion timing

Segmental SAX strain

The current short-axis CSV also emits AHA-segment strain rows:

Output familyExact current columns
Circumferential segmental strainStrain-SAX: Circumferential strain (AHA_1) [%], Strain-SAX: Circumferential strain (AHA_2) [%], Strain-SAX: Circumferential strain (AHA_3) [%], Strain-SAX: Circumferential strain (AHA_4) [%], Strain-SAX: Circumferential strain (AHA_5) [%], Strain-SAX: Circumferential strain (AHA_6) [%], Strain-SAX: Circumferential strain (AHA_7) [%], Strain-SAX: Circumferential strain (AHA_8) [%], Strain-SAX: Circumferential strain (AHA_9) [%], Strain-SAX: Circumferential strain (AHA_10) [%], Strain-SAX: Circumferential strain (AHA_11) [%], Strain-SAX: Circumferential strain (AHA_12) [%], Strain-SAX: Circumferential strain (AHA_13) [%], Strain-SAX: Circumferential strain (AHA_14) [%], Strain-SAX: Circumferential strain (AHA_15) [%], Strain-SAX: Circumferential strain (AHA_16) [%]
Radial segmental strainStrain-SAX: Radial strain (AHA_1) [%], Strain-SAX: Radial strain (AHA_2) [%], Strain-SAX: Radial strain (AHA_3) [%], Strain-SAX: Radial strain (AHA_4) [%], Strain-SAX: Radial strain (AHA_5) [%], Strain-SAX: Radial strain (AHA_6) [%], Strain-SAX: Radial strain (AHA_7) [%], Strain-SAX: Radial strain (AHA_8) [%], Strain-SAX: Radial strain (AHA_9) [%], Strain-SAX: Radial strain (AHA_10) [%], Strain-SAX: Radial strain (AHA_11) [%], Strain-SAX: Radial strain (AHA_12) [%], Strain-SAX: Radial strain (AHA_13) [%], Strain-SAX: Radial strain (AHA_14) [%], Strain-SAX: Radial strain (AHA_15) [%], Strain-SAX: Radial strain (AHA_16) [%]

LAX and tagged outputs

Display familyExact output columnUnitStatusSchema note
LAX strainStrain-LAX: Longitudinal Strain (Global) [%]%currentraw sign retained
LAX strainStrain-LAX: End Systolic Longitudinal Strain (Absolute Value) [%]%conditional current outputsmoothed global curve
LAX strainStrain-LAX: Peak Systolic Longitudinal Strain (Absolute Value) [%]%conditional current outputsmoothed global curve
LAX strainStrain-LAX: Post Systolic Longitudinal Strain (Absolute Value) [%]%conditional current outputwritten only if peak occurs after ES
LAX strain rateStrain-LAX: Peak Systolic Longitudinal Strain Rate [1/s]1/sconditional current outputderived from smoothed curve
LAX strain rateStrain-LAX: Early Diastolic Longitudinal Strain Rate [1/s]1/sconditional current outputpeak timing check after ES
LAX strain rateStrain-LAX: Late Diastolic Longitudinal Strain Rate [1/s]1/sconditional current outputlate diastolic peak
LAX timingStrain-LAX: Time to Peak Longitudinal Strain [ms]mscurrentpeak frame times temporal resolution
LAX timingStrain-LAX: Time to Peak Longitudinal Strain Indexunitlessconditional current outputrequires ECG RR interval
LAX indexStrain-LAX: Longitudinal Strain Post Systolic Index [%]%conditional current outputpost-systolic index
LAX dispersionStrain-LAX: Longitudinal Strain Mechanical Dispersion [ms]msconditional current outputrequires distinct segmental peak times
LAX SI-DIStrain-LAX: Longitudinal Strain Imaging Diastolic Index [%]%conditional current outputoutlier/negative guards apply
LAX stretchStrain-LAX: Longitudinal Strain Pre Systolic Stretch [%]%currentwrites zero when no positive systolic stretch
Tagged strainStrain-Tagged: Circumferential strain (global) [%]%currenttagged backend; raw sign retained
Tagged strainStrain-Tagged: Radial strain (global) [%]%currenttagged backend
Tagged schema debtStrain-SAX: Peak Systolic Circumferential Strain (Absolute Value) [%]%conditional current outputemitted by the tagged route with a SAX prefix
Tagged strainStrain-Tagged: Peak Systolic Radial Strain (Absolute Value) [%]%conditional current outputtagged backend
Tagged strain rateStrain-Tagged: Peak Systolic Circumferential Strain Rate [1/s]1/sconditional current outputtagged backend
Tagged strain rateStrain-Tagged: Early Diastolic Circumferential Strain Rate [1/s]1/sconditional current outputtagged backend
Tagged strain rateStrain-Tagged: Peak Systolic Radial Strain Rate [1/s]1/sconditional current outputtagged backend
Tagged strain rateStrain-Tagged: Early Diastolic Radial Strain Rate [1/s]1/sconditional current outputtagged backend
Tagged timingStrain-Tagged: Time to Peak Circumferential Strain [ms]mscurrenttagged backend
Tagged timingStrain-Tagged: Time to Peak Radial Strain [ms]mscurrenttagged backend
Tagged timing indexStrain-Tagged: Time to Peak Circumferential Strain Indexunitlessconditional current outputrequires ECG RR interval
Tagged timing indexStrain-Tagged: Time to Peak Radial Strain Indexunitlessconditional current outputrequires ECG RR interval

Output reconciliation

Evidence layerResult
Implementation sourcecurrent SAX, LAX, and tagged output families checked against eval_strain_sax.py, eval_strain_lax.py, and eval_strain_tagged.py
Output inventorydocs/data/output_column_inventory.yml records strain_sax, strain_lax, and strain_tagged artifact families
Phenotype dictionarydocs/data/phenotype_dictionary.yml links promoted global/method-critical strain rows to this page
Page output tablepromoted dictionary-backed rows and segmental families are listed above

Required upstream inputs

  • short-axis cine images, short-axis segmentations, and ventricular time-series metadata for SAX strain and torsion;
  • long-axis cine images and segmentations for LAX strain;
  • tagged MRI files and backend outputs for tagged strain;
  • MIRTK and feature-tracking configuration paths from runtime config;
  • ECG timing only for RR-normalized timing-index rows.

Reference ranges with cohort and method context

FeatureSourceCohortReference valueStatusNote
Strain definitionsVoigt et al. deformation-imaging standard [1]consensus method definitionnot a normal rangeVerified context sourceDefines deformation terminology; modality differs from CMR feature tracking
LV torsion and recoilKowallick et al. CMR feature-tracking torsion paper [2]CMR feature-tracking contextmethod-dependentVerified context sourceUseful for torsion/recoil definitions; not a CardiacNexus threshold
Automated CMR strain contextRuijsink et al. automated CMR analysis [3]UKB-scale CMR automation contextmethod-dependentVerified context sourceUse as automation/QC context, not direct pooled threshold
Tagged strain contextTagged MRI strain-estimation route cited by the current extraction source [4]tagged MRI method contextmethod-dependentVerified context sourceKeep tagged and cine outputs method-separated

Source-located registry status: reference_range_sources.yml records source locators for strain terminology, CMR torsion/recoil context, automated CMR strain/QC context, and tagged-strain method context. No universal CardiacNexus strain normal range is promoted here because feature-tracking backend, smoothing, sign convention, tagged versus cine route, and registration QC materially change numeric values.

Disease interpretation

Reduced or abnormal strain has been reported in ischemic heart disease, myocardial infarction, cardiomyopathy, hypertrophic cardiomyopathy, heart failure, and infiltrative disease contexts [1] [3]. Torsion and recoil have pressure-load and cardiomyopathy associations in CMR feature-tracking literature [2]. These disease badges are navigation aids only; CardiacNexus does not diagnose CAD, HCM, HF, or valve disease from a strain row.

QC caveats and maturity boundary

Strain is one of the highest-risk CardiacNexus phenotype families. Values depend on contour tracking, MIRTK/feature-tracking backend behavior, temporal smoothing, ED/ES timing, basal/apical slice selection, and segmentation quality. Tagged MRI outputs are backend-specific and should be compared with cine-derived outputs only after method harmonization.

Future backend changes must keep the classical MIRTK route as a fallback until regression checks cover global strain, segmental strain, ED/ES timing, contour or warped-segmentation consistency, temporal smoothness, and deformation plausibility.

Implementation provenance

Feature familyFormula or computational routeExact output columnsSource code file and functionUpstream dependenciesConditional behaviorQC artifactsSchema debt
SAX strainMIRTK-backed short-axis contour tracking, then length-based radial/circumferential strain extremaStrain-SAX:* strain (AHA_*) [%], Strain-SAX: Circumferential strain (Global) [%], Strain-SAX: Radial strain (Global) [%]eval_strain_sax.py; cine_2d_sa_motion_and_strain_analysis; evaluate_strain_by_length_sasa.nii.gz, seg_sa.nii.gz, MIRTK paths, feature-tracking temp directorysubject skipped if tracking or strain extraction failsstrain_circum.png, strain_radial.png, GCS/GRS time-series plots, strain_sax.npzsegmental rows are highly artifact-sensitive
SAX advanced featuresloess-smoothed global strain curves, ES timing, derivative extrema, SI-DI, and post-systolic checksend-systolic/peak/post strain rows, strain-rate rows, SI-DI rows, timing rowseval_strain_sax.py; smoothing and derivative blocksventricle.npz for T_ES, temporal resolution, optional ECG RR intervalrows skipped when peak checks, timing checks, or outlier guards failsmoothed strain and strain-rate plotssign and absolute-value rows must not be mixed
SAX torsion/recoiltorsion helper on tracked contours and basal/apical slice contextendocardial/epicardial/global torsion, recoil, and time-to-peak torsion rowseval_strain_sax.py; evaluate_torsiontracked short-axis contours and slice geometryconditional on successful torsion helper outputtorsion/recoil time-series plots where generatedsensitive to slice exclusion and tracking backend
LAX strainMIRTK-backed long-axis contour tracking and length-based longitudinal strainStrain-LAX: Longitudinal Strain (Global) [%], segment rows, advanced LAX strain rowseval_strain_lax.py; cine_2d_la_motion_and_strain_analysis; evaluate_strain_by_length_lalong-axis segmentation, MIRTK paths, ventricle.npz, optional ECG RR intervalrows skipped when tracking, smoothing, or timing checks failgls_raw.png, gls.png, ECG overlay where available, strain_lax.npzsix-segment LAX model is separate from SAX AHA model
Tagged straintagged-MRI backend arrays, smoothed global curves, derivative extrema, timing rowsStrain-Tagged:* rows listed aboveeval_strain_tagged.pytagged MRI backend output files and temporal metadatarows skipped when tagged backend or peak detection failstagged strain and strain-rate time-series plots, strain_tagged.npzone current tagged line writes a SAX-prefixed circumferential peak row; keep method context explicit

Source audit

  • Current output labels and conditional behavior were checked against eval_strain_sax.py, eval_strain_lax.py, and eval_strain_tagged.py.
  • One strain-type schematic is displayed from a page-local public path and registered in docs/data/figure_provenance.yml; permission and exact source-panel review remain pending for draft use.
  • docs/data/reference_sources.yml is present and used as the curated reference-source registry for this page.
  • Textbook context boundary: page-specific strain definition, torsion, CMR automation, and tagged-MRI context sources are sufficient for draft rollout; Braunwald/Hurst background was not needed for the phenotype-specific output contract.

References

  1. Voigt JU, Pedrizzetti G, Lysyansky P, Marwick TH, Houle H, Baumann R, Pedri S, Ito Y, Abe Y, Metz S, Song JH, Hamilton J, Sengupta PP, Kolias TJ, d'Hooge J, Aurigemma GP, Thomas JD, Badano LP. Definitions for a common standard for 2D speckle tracking echocardiography. Journal of the American Society of Echocardiography. 2015;28(2):183-193.
  2. Kowallick JT, Lamata P, Hussain ST, Kutty S, Steinmetz M, Sohns JM, Fasshauer M, Staab W, Unterberg-Buchwald C, Bigalke B, Lotz J, Hasenfuss G, Schuster A. Quantification of left ventricular torsion and diastolic recoil using cardiovascular magnetic resonance myocardial feature tracking. PLoS ONE. 2014;9(10):e109164.
  3. Ruijsink B, Puyol-Anton E, Oksuz I, Sinclair M, Bai W, Schnabel JA, Razavi R, King AP. Fully automated, quality-controlled cardiac analysis from CMR: validation and large-scale application to characterize cardiac function. JACC: Cardiovascular Imaging. 2020;13(3):684-695.
  4. Ferdian E, Suinesiaputra A, Fung K, Aung N, Lukaschuk E, Barutcu A, Maclean E, Paiva J, Piechnik SK, Neubauer S, Petersen SE, Young AA. Fully automated myocardial strain estimation from cardiovascular MRI-tagged images using a deep learning framework in the UK Biobank. Radiology: Cardiothoracic Imaging. 2020;2(1):e190032. doi:10.1148/ryct.2020190032.
  5. Jeung MY, Germain P, Croisille P, Ghannudi SE, Roy C, Gangi A. Myocardial tagging with MR imaging: overview of normal and pathologic findings. RadioGraphics. 2012;32(5):1381-1398.