Analyisis of fetal blood flow distribution patterns and blood oxygen saturations, measured using MRI, in late gestation human fetuses with a spectrum of congenital heart disease (CHD) subtypes presenting with neonatal cyanosis and age-matched fetuses with normal hearts.
Please cite the following paper if using the material in this repo:
Sun L, van Amerom JFP, Marini D, Portnoy S, Lee F-T, Saini BS, Lim JM, Aguet J, Jaeggi E, Kingdom JC, Macgowan CK, Miller SP, Huang G, Seed M. Characterization of hemodynamic patterns in human fetuses with cyanotic congenital heart disease using MRI. Ultrasound Obstet Gynecol. 2021; DOI: 10.1002/UOG.23707.
script_prep_data.m
– Matlab script to prepare data
script_analyze_fetal_chd_flows.m
– Matlab script to run the flow analysis
statistics.pzfx
– Prism 8 statisitcal analysis
./results
– output of the analysis
./data/data.csv
– measured data
./data/flow.csv
– measured flow data
- normal (Normal)
- hypoplastic left heart (HLH)
- HLH syndrome with restrictive atrial septum (HLHS RAS)
- HLH syndrome with mitral atresia and aortic stenosis (HLHS MA AS)
- HLH syndrome with mitral stenosis and aortic stenosis (HLHS MS AS)
- HLH syndrome with mitral stenosis and aortic atresia (HLHS MS AA)
- HLH syndrome with mitral atresia and aortic atresia (HLHS MA AA)
- hypoplastic left ventricle with double outlet right ventricle (HLV DORV)
- transposition of the great arteries (TGA)
- TGA with intact ventricular septum (TGA IVS)
- TGA with ventricular septal defect (TGA VSD)
- TGA with VSD and pulmonary stenosis (TGA VSD PS)
- TGA with intact ventricular septum with coarctation of the aorta (TGA IVS COA)
- TGA with ventricular septal defect with coarctation of the aorta (TGA VSD COA)
- tetralogy of Fallot (TOF)
- with pulmonary stenosis (TOF PS)
- with pulmonary atresia (TOF PA)
- Ebstein's anomaly (EA)
- EA with functional pulmonary atresia with no circular shunt (Ebstein's no Circular Shunt)
- EA with a circular shunt (Ebstein's Circular Shunt)
- tricuspid atresia (TA)
- TA with ventriculo-arterial concordance and pulmonary stenosis (TA VA Concordance PS)
- TA with ventriculo-arterial concordance and pulmonary atresia (TA VA Concordance PA)
- TA with ventriculo-arterial discordance (TA VA Discordance)
- AAo – ascending aorta
- DAo – desending aorta
- DA – ductus arteriosus
- MPA – main pulmonary artery
- PBF – pulmonary blood flow (sum of left and right pulmonary arteries)
- SVC – superior vena cava
- IVC – inferior vena cava
- UV – umbilical vein
- CA – coronary artery
- CS – coronary sinus
- FO – foramen ovale
- ICS – intracardiac shunt
- CVO – combined ventricular output
Some measurements may be missing in particularly challenging cases. In these circumstances, it may be possible to derive missing measurements from measured flows using conservation of flow at the arch junciton and/or pulmonary branch junction in order to calculate CVO.
Arch Junction: At the junction of the aorta and the DA, Q_AAo = Q_DAo - Q_DA + Q_SVC
.
Pulmonary Branch Junction: At the junction of the MPA and branch pulmonary arteries, Q_MPA = Q_DA + Q_PBF
.
These relationships were used to derive missing measurements, first, directly from measured flows and second, using other derived flow.
Any derived flows which produced retrograde flow in the MPA, AAo, DAo, SVC, PBF or UV were considered outliers and discarded, except for MPA flow in cases with Ebstein's anomaly with circular shunt and AAo flow in cases with aortic atresia. In cases with Ebstein's anomaly or pulmonary atresia, derived antegrade DA flows were also considered outliers.
Furthermore, in sub-groups with sufficient number of measurements to estimate population distributions, any derived flows that were more than three scaled median absolute deviations from the median where considered outliers. Details of this approach can be found here.
Combined ventricular output (CVO) can be used to interpret the distribution of blood flow as a fraction of the total blood flow.
In normal circulation, Q_CVO = Q_MPA + Q_AAo + Q_CA
and can be calculated as Q_CVO = ( Q_MPA + Q_AAo ) / 0.97
where coronary blood flow is estimated as 3% of CVO [Rudulolph2001].
Hence, coronary artery (CA) blood flow can be calculated as Q_{CA} = 0.03 Q_CVO
, which is equal to coronary sinus (CS) flow.
This calculation holds for all circulation types with antegrade MPA and AAo flow.
In circulations with pulmonary atresia, Q_CVO = Q_AAo / 0.97
and Q_MPA = 0
.
In circulations with aortic atresia Q_CVO = Q_MPA
and the coronary areteries are supplied by retrograde flow through the ascending aorta, i.e., Q_AAo = - Q_{CA}.
Q_IVC = Q_DAo
Calculation of FO flow is dependent on the type of circulation.
Normal
Normal, HLHS MS AS
Q_FO = Q_AAo + Q_CA - Q_PBF
Transposition
TGA IVS, TGA IVS COA
Q_FO = Q_SVC + Q_IVC - Q_AAo
Aortic Atresia
HLHS RAS, HLHS MS AA, HLHS MA AA
Q_FO = - Q_PBF
Tricuspid Atresia, Functional Pulmonary Atresia
TA VA, Ebstein's Anomaly with no Circular Shunt
Q_FO = Q_SVC + Q_IVC + Q_CS
Ebstein's Anomaly with Circular Shunt
Q_FO = -Q_MPA + Q_SVC + Q_IVC + Q_CS
Ventricular Septal Defect, Overriding Aorta
HLHS MA AS, HLV DORV, TGA VSD, TGA VSD PS, TGA VSD COA, TOF
Q_FO
unknown
Models of the distribution of blood flow, as a percentage of CVO, were extrapolated from measured flows based on a constrained nonlinear optimization satisfying conservation of flow throughout the fetal circulatory system using a weighted root mean squared difference objective function to limit the change from measured values.
F_objective(x) = ( sum( w * ( x - x0 )^2 ) / sum( w ) )^0.5
, where x0
are the median measured flows as %CVO for a group or sub-group, x
are distribution model flows that satisfy the constraints and w
are weights.
Equality constraints were based on conservation of blood flow at the following locations:
- blood flow in and out of the entire heart
- pulmonary artery branch junction
- arch junction
- right ventriculo-arterial connection
- left ventriculo-arterial connection
- lower body and placenta circulation
- coronary circulation
- ventricular output
- atrial input
- combined ventricular output
- combined atrial input
Specifics of equality and inequality constraints, as well as bounds and weights were as follows.
Intracardiac shunt (ICS) was used to quantify overall right to left shunt, which is equivalent to FO flow in circulations without ventricular septal defect or overriding aorta.
Equality Constraints:
- Q_mpa - Q_aao + Q_svc + Q_pbf + Q_ivc - Q_ca + Q_cs = 0
+ Q_mpa - Q_da - Q_pbf = 0
+ Q_aao - Q_svc + Q_da - Q_dao = 0
- Q_mpa + Q_svc - Q_ics + Q_ivc + Q_cs = 0
- Q_aao + Q_pbf + Q_ics - Q_ca = 0
+ Q_dao - Q_ivc = 0
+ Q_ca - Q_cs = 0
+ Q_mpa + Q_aao - 32.3333 Q_ca = 0
+ Q_svc + Q_pbf + Q_ivc - 32.3333 Q_cs = 0
+ Q_mpa + Q_aao + Q_ca = 100
+ Q_svc + Q_pbf + Q_ivc + Q_cs = 100
Inequality Constraints:
- Q_dao + Q_uv <= 0
Bounds: mpa aao svc da dao pbf uv ics ivc ca cs
lower 0 0 0 -100 0 0 0 -100 0 0 0
upper 100 100 100 100 100 100 100 100 100 100 100
Weights: mpa aao svc da dao pbf uv ics ivc ca cs
0.60 0.60 0.80 0.50 1.00 0.28 1.00 0.00 0.00 0.00 0.00
Equality Constraints:
- Q_mpa - Q_aao + Q_svc + Q_pbf + Q_ivc - Q_ca + Q_cs = 0
+ Q_mpa - Q_da - Q_pbf = 0
+ Q_aao - Q_svc + Q_da - Q_dao = 0
- Q_aao + Q_svc - Q_ics + Q_ivc - Q_ca + Q_cs = 0
- Q_mpa + Q_pbf + Q_ics = 0
+ Q_dao - Q_ivc = 0
+ Q_ca - Q_cs = 0
+ Q_mpa + Q_aao - 32.3333 Q_ca = 0
+ Q_svc + Q_pbf + Q_ivc - 32.3333 Q_cs = 0
+ Q_mpa + Q_aao + Q_ca = 100
+ Q_svc + Q_pbf + Q_ivc + Q_cs = 100
Inequality Constraints:
- Q_dao + Q_uv <= 0
Bounds: mpa aao svc da dao pbf uv ics ivc ca cs
lower 0 0 0 -100 0 0 0 -100 0 0 0
upper 100 100 100 100 100 100 100 100 100 100 100
Weights: mpa aao svc da dao pbf uv ics ivc ca cs
0.60 0.60 0.80 0.50 1.00 0.28 1.00 0.00 0.00 0.00 0.00
Equality Constraints:
- Q_mpa + Q_svc + Q_pbf + Q_ivc + Q_cs = 0
+ Q_mpa - Q_da - Q_pbf = 0
+ Q_aao - Q_svc + Q_da - Q_dao = 0
- Q_mpa + Q_svc - Q_ics + Q_ivc + Q_cs = 0
+ Q_pbf + Q_ics = 0
+ Q_dao - Q_ivc = 0
+ Q_ca - Q_cs = 0
+ Q_svc + Q_pbf + Q_ivc - 32.3333 Q_cs = 0
+ Q_mpa = 100
+ Q_svc + Q_pbf + Q_ivc + Q_cs = 100
Inequality Constraints:
- Q_dao + Q_uv <= 0
Bounds: mpa aao svc da dao pbf uv ics ivc ca cs
lower 0 -100 0 -100 0 0 0 -100 0 0 0
upper 100 0 100 100 100 100 100 100 100 100 100
Weights: mpa aao svc da dao pbf uv ics ivc ca cs
0.60 0.60 0.80 0.50 1.00 0.28 1.00 0.00 0.00 0.00 0.00
Equality Constraints:
- Q_aao + Q_svc + Q_pbf + Q_ivc - Q_ca + Q_cs = 0
- Q_da - Q_pbf = 0
+ Q_aao - Q_svc + Q_da - Q_dao = 0
+ Q_svc - Q_ics + Q_ivc + Q_cs = 0
- Q_aao + Q_pbf + Q_ics - Q_ca = 0
+ Q_dao - Q_ivc = 0
+ Q_ca - Q_cs = 0
+ Q_aao - 32.3333 Q_ca = 0
+ Q_svc + Q_pbf + Q_ivc - 32.3333 Q_cs = 0
+ Q_aao + Q_ca = 100
+ Q_svc + Q_pbf + Q_ivc + Q_cs = 100
Inequality Constraints:
- Q_dao + Q_uv <= 0
Bounds: mpa aao svc da dao pbf uv ics ivc ca cs
lower 0 0 0 -100 0 0 0 -100 0 0 0
upper 0 100 100 0 100 100 100 100 100 100 100
Weights: mpa aao svc da dao pbf uv ics ivc ca cs
0.00 0.60 0.80 0.50 1.00 0.28 1.00 0.00 0.00 0.00 0.00
Equality Constraints:
- Q_mpa - Q_aao + Q_svc + Q_pbf + Q_ivc - Q_ca + Q_cs = 0
+ Q_mpa - Q_da - Q_pbf = 0
+ Q_aao - Q_svc + Q_da - Q_dao = 0
- Q_mpa - Q_aao + Q_svc - Q_ics + Q_ivc - Q_ca + Q_cs = 0
+ Q_pbf + Q_ics = 0
+ Q_dao - Q_ivc = 0
+ Q_ca - Q_cs = 0
+ Q_mpa + Q_aao - 32.3333 Q_ca = 0
+ Q_svc + Q_pbf + Q_ivc - 32.3333 Q_cs = 0
+ Q_mpa + Q_aao + Q_ca = 100
+ Q_svc + Q_pbf + Q_ivc + Q_cs = 100
Inequality Constraints:
- Q_dao + Q_uv <= 0
Bounds: mpa aao svc da dao pbf uv ics ivc ca cs
lower 0 0 0 -100 0 0 0 -100 0 0 0
upper 100 100 100 100 100 100 100 100 100 100 100
Weights: mpa aao svc da dao pbf uv ics ivc ca cs
0.60 0.30 0.80 0.50 1.00 0.28 1.00 0.00 0.00 0.00 0.00
Equality Constraints:
- Q_mpa - Q_aao + Q_svc + Q_pbf + Q_ivc - Q_ca + Q_cs = 0
+ Q_mpa - Q_da - Q_pbf = 0
+ Q_aao - Q_svc + Q_da - Q_dao = 0
- Q_mpa + Q_svc - Q_ics + Q_ivc + Q_cs = 0
- Q_aao + Q_pbf + Q_ics - Q_ca = 0
+ Q_dao - Q_ivc = 0
+ Q_ca - Q_cs = 0
+ Q_aao - 32.3333 Q_ca = 0
- Q_mpa + Q_svc + Q_pbf + Q_ivc - 32.3333 Q_cs = 0
Inequality Constraints:
- Q_dao + Q_uv <= 0
Bounds: mpa aao svc da dao pbf uv ics ivc ca cs
lower -100 0 0 -100 0 0 0 -100 0 0 0
upper 0 100 100 0 100 100 100 100 100 100 100
Weights: mpa aao svc da dao pbf uv ics ivc ca cs
0.30 0.60 0.80 0.50 1.00 0.28 1.00 0.00 0.00 0.00 0.00