Phase-contrast flow imaging
Phase-contrast flow CMR is the CardiacNexus source for aortic velocity, flow, regurgitation, valve-area, and flow-displacement phenotypes. It feeds the flow subset of Valvular and flow phenotypes.
- Modality
- Phase-contrast flow CMR
- UKB source
- Data Field 20213
- Pipeline step
- Aortic-flow morphology/phase/magnitude loading, VENC extraction, velocity-flow conversion, systolic timing, and flow-displacement analysis
- Outputs
- aortic_flow.csv, timeseries/aorta.npz, aortic velocity/flow/displacement QC plots
- Maturity
- Source-audited modality page
Current pipeline role
The current implementation reads aortic_flow.nii.gz, seg_aortic_flow.nii.gz, aortic_flow_pha.nii.gz, and aortic_flow_mag.nii.gz. It obtains VENC from the source DICOM phase folder, converts phase images to velocity and flow curves, determines peak systole and end systole from the flow curve, and optionally cross-checks end-systolic timing against timeseries/ventricle.npz.
The route writes timeseries/aorta.npz timing keys and a broad aortic_flow.csv feature family. Flow-displacement rows are normalized by vessel radius in image space and separated into systolic, late-systolic, and diastolic summaries.
Current outputs
| Output family | Current rows | Source path | Notes |
|---|---|---|---|
| Aortic area | maximum and minimum area rows | src/feature_extraction/Phase_Contrast_20213/eval_phase_contrast.py | derived from segmentation area |
| Velocity and gradient | peak velocity and mean gradient | eval_phase_contrast.py; evaluate_velocity_flow | mean gradient is averaged to flow-derived ES |
| Flow and regurgitation | forward flow, backward flow, regurgitant fraction | eval_phase_contrast.py | regurgitant fraction > 100% is rejected |
| Valve area and VTI | aortic valve area and velocity-time integral | eval_phase_contrast.py | VTI is skipped when implausibly high |
| Flow displacement | systolic, late-systolic, and diastolic displacement rows | eval_phase_contrast.py | 2D phase-contrast-derived displacement |
| Systolic reversal | systolic forward flow, systolic reverse flow, systolic flow reversal ratio | eval_phase_contrast.py | SFR > 80% is skipped |
| Timing and QC | timeseries/aorta.npz, velocity/flow/displacement plots | eval_phase_contrast.py | route records flow-derived ES and peak systole |
Velocity encoding and plane prescription
Flow rows are method-sensitive. VENC, phase aliasing, plane placement, background phase behavior, segmentation leakage, and through-plane motion should be considered before interpreting outliers.
QC and interpretation caveats
The route requires all phase-contrast image components plus a segmentation. It can skip a subject when flow-derived ES cannot be found, peak systole falls after ES, ventricular timing is grossly inconsistent, regurgitant fraction is impossible, VTI is implausibly high, or systolic reversal is extreme.
Phase-contrast rows should not be interpreted as automated valve-disease diagnoses. They provide quantitative physiology context that must be read with LVOT geometry, ventricular output, and clinical valve-assessment standards.
Source audit
- Current input names, VENC extraction, velocity/flow conversion, flow-derived timing, output row families, NPZ timing keys, and QC plot paths were checked against
eval_phase_contrast.py. docs/data/output_column_inventory.ymlrecords theaortic_flowartifact contract.- Textbook context boundary: broad clinical textbook context is not surfaced here because the source implementation and phase-contrast/valve literature context in the phenotype page are sufficient for draft rollout.

- Displayed figure provenance is recorded in
docs/data/figure_provenance.yml; permission and exact reuse wording remain pending for public release.