Skip to content

Analyisis of fetal blood flow distribution and oxygen saturation patterns, 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.

Notifications You must be signed in to change notification settings

jfpva/fetal_chd_hemodynamic_patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

analyze_fetal_hemodynamics

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.

Citation

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.

Files

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

1 Disease and Anatomy Nomenclature

1.1 Congenital Heart Disease Sub-Types

  • 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)

1.2 Fetal Vessels

  • 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

2 Derived Flows

2.1 Missing Measurements

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.

Outliers

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.

2.2 Combined Ventricular Output

Combined ventricular output (CVO) can be used to interpret the distribution of blood flow as a fraction of the total blood flow.

Normal Circulation

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.

Pulmonary Atresia

In circulations with pulmonary atresia, Q_CVO = Q_AAo / 0.97 and Q_MPA = 0.

Aortic Atresia

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}.

2.3 Inferior Vena Cava Flow

Q_IVC = Q_DAo

2.4 Foramen Ovale Blood Flow

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

3 Flow Distribution Models

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:

  1. blood flow in and out of the entire heart
  2. pulmonary artery branch junction
  3. arch junction
  4. right ventriculo-arterial connection
  5. left ventriculo-arterial connection
  6. lower body and placenta circulation
  7. coronary circulation
  8. ventricular output
  9. atrial input
  10. combined ventricular output
  11. 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.

circulation type: normal

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

circulation type: transposition

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

circulation type: hlhs_aortic_atresia

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         

circulation type: tof_pa

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

circulation type: double_outlet_right_ventricle

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

circulation type: ebsteins_circular_shunt

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

About

Analyisis of fetal blood flow distribution and oxygen saturation patterns, 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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages