top of page

Exploring Aortic Disease Progression Through Computational Fluid Dynamics

  • Photo du rédacteur: dov azogui
    dov azogui
  • 5 sept. 2024
  • 2 min de lecture

ree

In a research project at Nanyang Technological University, I leveraged computational fluid dynamics (CFD) to model the progression of aortic diseases. This involved in-depth hemodynamic analysis to understand how different aortic aneurysm models affect key parameters such as pressure distribution, flow velocity, and wall shear stress (WSS), using SimVascular—a software tailored for cardiovascular applications.


Technical Overview:


Modeling Aortic Variants with Advanced Computational Techniques: I employed modified NVIDIA code resources to dynamically alter and generate diverse aortic shapes, enhancing our understanding of disease progression through patient-specific simulations. This customization allowed for more accurate representation of individual anatomical variations and their impacts on hemodynamic parameters.

Code Explanation and Modifications: The project involved two main coding adaptations to model and analyze aortic shapes:


Deformetrica Atlas Estimation and PCA:


import subprocess as sp
import os, sys
import logging
import docopt, configparser
import ssm.pca
import ssm.atlas
    params = docopt.docopt(__doc__, help=True, version='0.1')
    if params["--config"]:
        print("Warning: config overwrites command line parameters")
        config = configparser.ConfigParser()
        config.read(params["--config"])
        params.update({k: config.get("paths", k.strip('--')).strip('"') for k in params if k.startswith('--')})
    print(params)
    return params
if __name__ == "__main__":
    params = input_parameters()
    sp.call(["mkdir", "-p", params["--odir"]])
    ae = ssm.atlas.DeformetricaAtlasEstimation(
        idir=params["--idir"],
        odir=params["--odir"],
        name=params["--name"],
        initial_guess=params["--template"],
        kwd=params["--kwd"],
        kwg=params["--kwg"],
        noise=params["--noise"])
    ae.check_initialisation()
    ae.estimate()
    ae.save_parameters()
    if params["--do-pca"]:
        ao = ssm.pca.DeformetricaAtlasPCA(odir=params["--odir"] + "output/")
        ao.compute_pca()

  • Used for statistical analysis and morphological study of aortic models.

  • Code facilitated the creation of new aortic shapes by applying advanced geometric and deformation parameters to base models.

  • Adjustments were made to integrate patient-specific data and simulate various aneurysm scenarios.


VTK and Iterative Closest Point (ICP) Transformations:


import vtk

import sys, os

import docopt

import ssm.tools, ssm.iovtk


if __name__ == "__main__":


params = docopt.docopt(__doc__, help=True, version='0.1')

print(params)


if not os.path.exists(params["-o"]):

os.mkdir(params["-o"])


fix = ssm.iovtk.ReadPolyData(params["-t"])


transform = vtk.vtkIterativeClosest PointTransform()

transform.SetMode(params.get("--mode", "rigid"))


for f in params["<mesh>"]:

mov = ssm.iovtk.ReadPolyData(f)

transform.SetSource(mov)

transform.Update()

res = ssm.tools.apply_transform(transform, mov)

ssm.iovtk.WritePolyData(os.path.join(params["-o"], f.split("/")[-1]), res)


print("Done.")



  • Employed for precise alignment and comparison of aortic models.

  • Modifications ensured that transformations accurately reflected the physical changes associated with different stages of aneurysm development.


The study underscored the significance of precise modeling in predicting aortic aneurysm impacts on hemodynamics. By comparing modified and original aortic models, it was evident that aneurysms significantly alter blood flow dynamics, potentially leading to critical health issues like thrombosis and aneurysm rupture.

This research not only highlighted the potential of using CFD for detailed cardiovascular analysis but also demonstrated the necessity for integrating computational modeling with empirical data to enhance predictive accuracy and clinical outcomes.



 
 
bottom of page