Zastosowanie metody FVM do symulacje przepływu krwi w naczyniach krwionośnych człowieka. mgr Jakub Poła jakub.pola@gmail.com Instytut Fizyki Uniwersytet Śląski w Katowicach Raport podsumowujący badania realizowane w ramach projektu TWING Transfer Wiedzy Nauka Gospodarka: Program Stypendialny Lipiec 2013
Spis treści Spis treści Spis treści 1 Wstęp 3 2 Analiza danych biomedycznych 3 2.1 DICOM..................................... 3 2.2 Segmentacja................................... 3 2.2.1 PC-MRI................................. 4 3 Geometria 5 3.1 VIRTUS..................................... 5 4 Symulacja 5 4.1 Wyniki symulacji................................ 6 4.2 Akceleracja obliczeń.............................. 6 5 Podsumowanie 8 2
2 ANALIZA DANYCH BIOMEDYCZNYCH 1 Wstęp Niniejszy dokument przedstawia wyniki badań przeprowadzonych w ramach projektu TWING. Celem badań było opracowanie metody przeprowadzania symulacji komputerowych przepływu krwi w naczyniach krwionośnych człowieka za pomocą metody obliczeniowej dynamiki płynów o nazwie FVM - Finite Volume Method. Prace skupiały się na wszystkich etapach przeprowadzania takich symulacji, którymi są: analiza danych biomedycznych otrzymanych w badaniu tomografem komputerowym (CT - Computer Tomography) oraz w badaniu rezonansem magnetycznym metodą kontrastu fazy (PC-MRI - Phase Contrast Magnetic Resonanse Imaging), segmentacji wybranych fragmentów układu krwionośnego człowieka, w których przeprowadzana będzie symulacja, przygotowanie siatki volumetrycznej, na której rozwiązywane będą równania przepływu oraz warunków brzegowych. Z powodu tego, że symulacje komputerowe metodą FVM są bardzo intensywne obliczeniowo, znaczna część prac dotyczyła zagadnień związanch z akceleracją rozwiązywania układów równań liniowych powstających w wyniku dyskretyzacji równań przepływu (równań Naviera-Stokesa) na siatce objętościowej, przy użyciu kart graficznych (GPU - Graphic Processing Unit). 2 Analiza danych biomedycznych W moich badaniach skupiłem się na dwóch rodzajach danych wygenerowanych przez badanie CT oraz MRI. Pierwszym są obrazy statyczne o rozdzielczości rzędu 2.5mm/pixel powstałe w poprzez uśrednienie danych z kilku okresów. Drugim są sekwencje czasowe o rozdzielczości 4.5mm/pixel otrzymane w badaniu PC-MRI, zawierające informacje na temat przepływu krwi w naczyniach krwionośnych. 2.1 DICOM Standardowo wynik badania radiologicznego pacjenta przechowywany jest w serii plików w formacie DICOM 1. Jest to zestaw kilkuset plików, z których każdy zawiera informacje z danej płaszczyzny przekroju pacjenta. Poszczególny plik składa się z dwóch części. W pierwszej, nagłówkowej, przechowywane są informacje o pacjencie i ustawieniach aparatury, które użyte były do akwizycji danych. W drugiej zawarte są pobrane dane. Na podstawie takiej serii danych możliwa jest rekonstrukcja danej tkanki lub narządu w postaci trójwymiarowego modelu. Oprogramowaniem umożliwiającym rekonsturkcję jest m. in. 3D Slicer 2 (Rys. 1). 2.2 Segmentacja Procedura rekonstrukcji w analizie obrazu nazywa się segmentacją. Jest to proces podziału obrazu na obszary, które są homogeniczne pod względem wybranych własności, np. poziom jasności, barwa lub tekstura. Istnieje wiele różnych algorytmów segmentacji obrazów. Można wyróżnić metody w pełni automatyczne, takie jak metoda progowa[3], oraz półautomatyczne, w których użytkownik musi zaznaczyć obszar zainteresowania, np. algorytm statystycznej segmentacji (ang. robust statistical segmentation)[1]. Wymienione 1 http://medical.nema.org/ Digital Imaging and Communications in Medicine 2 http://www.slicer.org/ 3
2.2 Segmentacja 2 ANALIZA DANYCH BIOMEDYCZNYCH Rysunek 1: Rekonstrukcja aorty na podstawie danych CT wykonana za pomocą programu 3D Slicer. metody najlepiej pasowały do analizowanych danych. Metoda progowa wykorzystana została przy rekonstrukcji obrazów z badania PC-MRI, natomiast metoda statystyczna do rekonstrukcji naczyń krwionośnych zebranych poprzez badanie CT oraz MRI. 2.2.1 PC-MRI Każda klatka czasowa badania przeprowadzonego metodą PC-MRI to cztery serie plików. Pierwsza seria odpowiada wartości prędkości a trzy pozostałe odpowiednio jej składowym X, Y i Z. Na rysunku 2a przedstawiona jest jedna warstwa danych. Na potrzeby analizy danych stworzony został program mri-flower3. Zadaniem tego programu jest rekonstrukcja poszczególnych klatek czasowych i ich konwersja do formatu VTK4. (a) a) długość wektora prędkości, b) składowa X, c) składowa Y, d) składowa Z (b) Rysunek 2: Analiza danych biomedycznych, a) struktura serii danych otrzymanych metodą PC-MRI, b) Rekonstrukcja danych przepływu krwi przez tętnicę szyjną (CCA) Każdy plik to trójwymiarowe powstałe przez złożenie pola prędkości w danej chwili 3 4 http://code.google.com/p/mri-flower/ www.vtk.org 4
4 SYMULACJA czasu. Dzięki rekonstrukcji danych możliwa jest dogłębna analiza przepływu krwi przez wybrane naczynie krwionośnie. Uzyskane informacje mogą posłużyć przykładowo do bardziej realistycznego zadawania warunków brzegowych w symulacjach CFD lub do walidacji wyników. Na rysunku 2b przedstawiona została analiza przepływu przez główną tętnicę szyjną. Na podstawie danych PC-MRI dzięki programowi mri-flower, zrekonstruowany został szereg czasowy. Poprzez analizę danych w programie ParaView 5 sporządzony został wykres zależności prędkości przepływu krwi przez tętnicę od czasu, a przybliżone dane w prawym górnym rogu rysunku 2b przedstawiają izolinie pola prędkości w płaszczyźnie prostopadłej do kierunku do przepływu krwi w naczyniu. 3 Geometria Wynikiem segmentacji są dane reprezentujące powierzchnię wybranego naczynia krwionośnego. Dane te tworzą siatkę powierzchniową. Na ich podstawie możliwe jest wygenerowanie siatki objętościowej na której rozwiązywane są równania Naviera-Stokesa. Procedurę generacji siatki objętościowej można wykonać za pomocą ogólnodostępnego oprogramowania NETGEN 6, jednak w pierwszej kolejności dane otrzymane w wyniku segmentacj należy odpowiednio spreparować. Przygotowanie danych jest dwuetapowe. Pierwszy etap wiąże się z zestawem operacji jakie należy wykonać aby siatka była wolna od defektów mogących powstać podczas segmentacji, tj. przecinanie sie trójkątów tworzących siatkę, duże proporcje tójkątów, nie zamknięta siatka. Drugi etap to procedura mająca na celu odpowiednie przygotowanie wlotów i wylotów naczyń krwionośnych. Są to bardzo żmudne procedury wymagające wielu testów w postaci próbnych symulacji i ponownych segmentacji, są one nieodzownym elementem przygotowań rzeczywistych geometrii do symulacji komputerowych. 3.1 VIRTUS Badania związane z rekonstrukcją danych i przygotowaniem ich do symulacji metodą FVM znalazły spore zainteresowanie w firmie Vratis 7. W ramach współpracy powstał projekt Virtus[5]. Program ten implementuje wszystkie niezbędne procedury do przygotowania siatki objętościowej nadającej się do symulacji komputerowej metodą FVM. Program wykorzystuje nowatorski algorytm aktywnej siatki, dzięki któremu generowana jest ona w czasie rzeczywistym wprost z danych biomedycznych. Posiada zestawy narzędzie które umożliwiają korekcję oraz edycję siatki podczas jej rozrostu. 8 4 Symulacja Do przeprowadzania symulacji metodą FVM wybrany został pakiet OpenFOAM. Jest to zbiór aplikacji i bibliotek przeznaczonych do rozwiązywania problemów z dziedziny CFD. Spośród dużej gamy algorytmów służących do rozwiązywania poszczególnych zagadnień wybrane zostały dwa najbardziej pasujace do rozpatrywanej problematyki. Służą one do rozwiązywania zagadnień stacjonarnych i zmiennych w czasie dla płynów nieściśliwych. Są 5 www.paraview.org 6 http://www.hpfem.jku.at/netgen/ 7 http://vratis.com/ 8 https://www.youtube.com/watch?v=t35mqoenxqu 5
4.1 Wyniki symulacji 4 SYMULACJA Rysunek 3: Przykład wizualizacji danych CT wraz z wygenerowaną siatką w programie VIRTUS. to aplikacje simplefoam implementujący algorytm SIMPLE (ang. Semi-Implicit Method for Pressure-Linked Equations)[4] oraz pisofoam implementujący algorytm PISO (ang. Pressure Implicit with Split Operator )[2]. 4.1 Wyniki symulacji Dzięki opracowanym sposobom zadawania realistycznych warunków brzegowych, rekonstrukcji wybranego fragmentu układu krwionośnego człowieka i generacji siatki objętościowej możliwe jest przeprowadzenie bardzo dużej gamy symulacji przepływu krwi. Nasze zainteresowanie przyciągnęły zwyrodnienia naczyń krwionośnych, którymi są tętniaki. Występują w różnych naczyniach krwionośnych poczynając od największego, aorty, kończąc na najmniejszych, tętnicach mózgowych. Mechanizm ich powstawania nie jest do końca znany. Celem diagnostyki medycznej jest określenie czy tętniak danego naczynia będzie się zwiększał, zmniejszał, czy pozostanie taki sam a co najważniejsze z jakim prawdopodobieństwem i w jakim czasie ulegnie rozerwaniu. Wskazanie czasu i prawdopodobieństwa jest istotne w planowaniu leczenia i interwencji chirurgicznej danego pacjenta. Obecne badania wskazują że bardzo istotnym parametrem mogącym wskazywać na kondycję danego tętniaka jest naprężenie ścinające (WSS - Wall Shear Stress), które w moich symulacjach jest również wyznaczane. Wyniki moich symulacji wykorzystywane są przez Katarzynę Jesionek w analizie akumulacji blaszek miażdżycowych w naczyniach krwionośnych człowieka. 4.2 Akceleracja obliczeń Symulacja komputerowa metodą FVM jest zadaniem czasochłonnym i pochłaniającym bardzo dużo zasobów sprzętowych komputera. W zależności od konfiguracji przypadku i ilości elementów w siatce objętościowej symulacja może trwać od godziny do kilku dni. Rozwiązywania równań macierzowych jest najbardziej wymagającym obliczeniowo zadaniem podczas działania algorytmów OpenFOAM. Jednym ze sposobów akceleracji tych zadań jest ich przeniesienie na procesory graficzne. Dzięki technologii Nvidia CUDA i OpenCL możliwe jest napisanie programu umożliwiającego wykorzystanie potencjału obliczeniowego kart graficznych, których wydajność wielokrotnie przewyższa wydajność 6
4.2 Akceleracja obliczeń 4 SYMULACJA (a) (b) Rysunek 4: Wizualizacja przepływu kriw przez tętnicę podstawną, a) pole ciśnienia, b) linie pola prędkości obliczeniową obecnych procesorów. Użycie kart graficznych w obliczeniach ma sens jeżeli przetwarzane algorytmy dają się zrównoleglić tzn. ich poszczególne zadania mogą być wykonywane niezależnie od siebie. Takim zadaniem jest rozwiązywanie równań macierzowych. We współpracy z firmami Vratis, NVIDIA9 oraz AMD10 stworzony został pakiet oprogramowania SpeedIT, w skład którego wchodzi biblioteka do rozwiązywania układów równań macierzowych na kartach graficznych oraz OpenFOAM-Plugin, który w prosty sposób pozwala wykorzystać bibliotekę SpeedIT w obliczeniach wykonywanych przez algorytmy OpenFOAM. Biblioteka ta znalazła odbiorców w różnych instytutach badawczych z całego świata: Institut fur Technische Mechanik - TU Clausthal, Germany Explosion Research Institute Inc., Japan Dep. of Mechanical and Hydraulic Engineering, University of Granada Rysunek 5: Akceleracja symulacji OpenFOAM z wykorzystaniem biblioteki SpeedIT 9 10 www.nvidia.com www.amd.com 7
Literatura Możliwości obliczeniowe biblioteki SpeedIT i jej zastosowania w systemach typu cloud computing będą prezentowane przeze mnie na konferencji AMD Developer Summit 2013. 5 Podsumowanie Podczas dwuletnich badań opracowana została procedura przeprowadzania symulacji przepływu krwi w naczyniach krwionośnych człowieka za pomocą metody FVM. Opracowana metoda znalazła zastosowanie w komercyjnym oprogramowaniu VIRTUS tworzonym przez firmę Vratis. Dzięki zastosowaniu realistycznych warunków brzegowych otrzymanych z analizy danych biomedycznych możliwa jest rekonstrukcja bardzo zbliżonych warunków panujących u danego pacjenta, w szczególności parametru WSS. Dzięki dalszej analizie WSS możliwe jest przewidywanie miejsc potencjalnie narażonych na zwyrodnienia np, akumulację blaszki miażdżycowej (LDL). W wyniku współpracy z firmą Vratis powstał pakiet oprogramowania SpeedIT. Dzięki niemu możliwa jest akceleracja zadań polegających na szybkim rozwiązywaniu układów równań liniowych z macierzą rzadką. Oprogramowanie znalazło szerokie grono odbiorców prywatnych i instytucjonalnych i jest wciąż rozwijane. Literatura [1] Yi Gao, Ron Kikinis, Sylvain Bouix, Martha Shenton, and Allen Tannenbaum. A 3d interactive multi-object segmentation tool using local robust statistics driven active contours. Medical Image Analysis, (0):, 2012. [2] R.I Issa. Solution of the implicitly discretised fluid flow equations by operator-splitting. Journal of Computational Physics, 62(1):40 65, 1986. [3] N. Otsu. A threshold selection method from gray-level histograms. IEEE Transactions on Systems, Man and Cybernetics, 9:62 66, 1979. [4] S.V Patankar and D.B Spalding. A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows. International Journal of Heat and Mass Transfer, 15(10):1787 1806, 1972. [5] Jakub Pola Wojciech Tarnawski, Lukasz Miroslaw. Semi-automated volumetric mesh generation in medical imaging. In 4th International Workshop 2013 on Computational Phantoms. 8