Die Fallstudie beschreibt die Automatisierung einer Werkzeugkette für zur Gewinnung von biomechanischen Risikofaktoren für Hirn-Aneurysmen. Beschreibungen der Simulations-Aufgaben werden in einer abstrakten und anwendungs-unabhängigen Weise gespeichert. Dies erlaubt die automatische (Neu-)Bearbeitung und Variation einer beliebigen Anzahl von Fällen.

Fallstudie: Automatisierung von biomedizinischen Simulation en gros

Das @neurIST Projekt (siehe Übersicht) versuchte die Einschätzung des Ruptur-Risikos von Hirn-Aneurysmen zu verbessern, indem für eine große Anzahl individueller Aneurysmen mittels biomechanischer Simulation physikalische Charakterisierungen berechnet wurden. Im diese Herausforderung zu meistern, musste eine hochgradig automatisierte Werkzeugkette entwickelt werden, die von medizinischen Bilddaten zu geometrischen Form-Maßen, 3D Blutflussanalysen und Simulation der Wandspannungen von Aneurysmen reichte.

Diese Fallstudie beschreibt meine Beiträge im Kontext der relevanten Projekt-Ergebnisse. Viele meiner Arbeiten fanden während meiner Zeit bei NEC statt; danach bearbeitete ich freiberuflich Unteraufträge des Projekts.

Die Schwierigkeiten der Automatisierung biomedizinischer Simulationsketten

@neurISt unterstützt drei Typen von biomechanischen Charakterisierungen von Aneurysmen: geometrische Form-Analyse, Blutfluss-Analyse und Wandspannungs-Analyse. Die Werkzeugkette startet mit medizinischen Bildern direkt aus dem Scanner. Aus diesen werden saubere Oberflächen der Aneurysmen und der umgebenden Blutgefäße extrahiert. Bei der Blutfluss-Analyse (als Beispiel) werden diese Geometrien an geeigneten Stellen abgeschnitten, angemessene Randbedingungen definiert, Input für eine CFD-Anwendung generiert, die Simulation durchgeführt, und schließlich die definierten Charakterisierungen aus der Lösung extrahiert, wie z.B. die maximale Geschwindigkeit des Blutes im Aneurysma.

Es wurde uns schnell klar, dass diese Kette hochgradig automatisiert ablaufen musste, um die Handarbeit der Berechnungen auf ein erträgliches Maß zu reduzieren. Automatisierung war ebenso nötig, um Unterschiede durch unterschiedliche Anwender zu reduzieren: Diese hätten sonst die statistische Analyse massiv gestört. Wir fanden die folgenden wesentlichen Herausforderungen für die Automatisierung:

  • schlechte Datenqualität, etwa niedrige Bildauflösung oder zu geringer Kontrast
  • Heterogenität der Daten, wie verschiedene Protokolle der Bildgebung
  • Schwierigkeiten, intuitive Konzepte in klare algorithmische Spezifikationen zu übersetzen, z.B. den Hals eines Aneurysmas als "natürliche" Trennung zwischen Aneurysma und der gesunden Aterie geometrisch zu definieren.

Ungenügende Auflösung oder Kontrast von Bilddaten kann zu topologisch falschen Geometrien führen, sodass etwa sich berührende Adern im geometrischen Modell eine fehlerhafte Verbindung aufweisen. Starke Abweichungen in Protokollen von bildgebender Hardware sind eine Herausforderung für automatische Segmentierung. Fehlende Formalisierung intuitiver geometrischer Konzepte behindert die Entwicklung von Softwarewerkzeugen für einfach zu beschreibende Operationen, wie definiere den Hals des Aneurysmas, oder schneide die Geometrie in einer Entfernung von etwa 10 Gefäßdurchmessern vom Aneurysma ab. Ohne solche Werkzeuge muss ein Nutzer viele Operationen auf niedriger Ebene aneinanderreihen, um den gewünschten Effekt zu erzielen.

Automatisierung, Semi-Automatisierung, ...

Das Projekt stellte sich diesen Herausforderungen und konnte eine erhebliche Anzahl von Schritten automatisieren. Wo nicht vollständig automatisiert werden konnten, wurde oft eine Halb-Automatisierung erreicht, indem mächtige Werkzeuge für häufige Aufgaben entwickelt wurden:

  • Benutzung einer adaptiven Segmentierungs-Methode (GAR) die an die verschiedenen Bildgebungs-Protokolle mittels Trainings-Bildern angepasst wurde
  • Werkzeuge zur Korrektur von falsch segmentierten Teilen der Geometrie (wie sich berührende Adern)
  • Einführung von eindimensionalen Skeletten zur einfachen Kontrolle der Geometrie, und zum Setzen von lokalen Begrenzungsebenen und Randbedingungen für die Simulationen.
  • Generierung des Simulations-Inputs aus einer gemeinsamen abstrakten Beschreibung des biomechanischen Problems (im Projekt abstract problem description oder APD genannt, siehe unten.)

Die Tatsache, dass bis heute mehr als 260 Ärzte diese Kette erfolgreich benutzt haben, um einen (einfachen) Fall selbstständig von den rohen Bilddaten bis zur Simulation durchzurechnen, gibt einen Eindruck vom Grad der erreichten Automatisierung (auch wenn bei einer Aufgabe wie dieser immer Wünsche offen bleiben).

... und Schulung der Experten

Das alles war jedoch noch nicht ausreichend, um absolut vergleichbare Ergebnisse zu erzielen. Schließlich waren insgesamt ein gutes Dutzend Forscher daran beteiligt, alle Fälle durchzurechnen. Um deren Resultate vergleichbar zu machen, wurde ein sehr detailliertes Handbuch geschrieben, und die individuellen Arbeitsweisen während mehrerer Treffen koordiniert. Ihre Resultate wurden im Hinblick auf den Einfluss des Bearbeiters auf die biomechanischen Charakterisierungen genau untersucht, bis die Ergebnisse nach mehreren Durchgängen hinreichend konsistent waren.

Berechnungen en gros

Die wahre Probe für den Automatisierungsgrad ist die Behandlung einer großen Anzahl von Fällen: Dann schmerzt jeder einzelne noch notwendige Mausclick hundertfach. Mit den sogenannten abstract problems descriptions hat das Projekt eine Methode entwickelt, um biomechanische Simulationen auf einer sehr hohen Ebene zu beschreiben. Auf derselben hohen Ebene können die Beschreibungen dann auch manipuliert und verarbeitet werden, und zwar vollautomatisch.

Meine Rolle bei der Automatisierung

Konzepte

Um die Automatisierung zu ermöglichen, habe ich eine genaue Spezifikation der Prozesse und Datenklassen der Werkzeugkette entwickelt. Diese legt offen, welche Informationen von jedem Prozess benutzt werden, welche Prozesse vollständig automatisiert werden können, und wie ihr Input zu diesem Zweck organisiert werden muss. Meine Richtschnur war hier, zu automatisieren wo es nur möglich war, und sehr gut auf den Rest zu achten: Daten, die manuelle Arbeit benötigen, müssen erhalten bleiben.

Ein Schlüsselelement der Automatisierung erwiesen sich die von mir eingeführten abstrakten Problembeschreibungen (abstract problem description oder APD), die Simulations-Probleme anwendungs-unabhängig definieren. Für diese APDs habe ich eine XML-Darstellung und eine entsprechend Bibliothek entwickelt.

Vom Abstrakten zum Konkreten

Trotz seiner Abstraktheit enthält ein APD alle Informationen, um Input für konkrete Anwendungen automatisch zu generieren. Folgende Generatoren habe ich entwickelt:

Für Blutströmungsanalysen,
  • Einen Generator für ANSYS CFX und ANSYS ICEM Kommando-Dateien, die die 3D Gittergenerierung und Simulation automatisierten (Zusammenarbeit mit Justin Penrose, ANSYS Europ Ltd., und Alberto Marzo, University of Sheffield)
  • Einen Generator für den DC Lattice-Boltzmann (LB) Löser (Zusammenarbeit mit Jörg Bernsdorf, Dinan Wang und Carsten Neff, NEC Europe Ltd.)
Berechnete lastfreie Konfiguration einer Aneurysmen-Wand
Wanddicke auf der berechneten hypothetischen Geometrie eines Aneurysmas ohne Last (d.h. ohne Blutdruck). Man beachte die Übergangsregion zwischen Blutgefäß und Aneurysma.
Bild © Jens Georg Schmidt

Für den Fall der Wandmechanik-Analysen habe ich ähnliche Generatoren entwickelt, die Jens Georg Schmidt's membran-basierte Anwendung FEANOR und ANSYS Mechanical unterstützen. Die Wand des Aneurysmas ist zu dünn, um mit bildgebenden Verfahren gemessen werden zu können. Deswegen wird sie auf einen vorgegebenen (Literatur-)Wert gesetzt, der wesentlich dünner ist als der für die gesunde Aderwand. Dazwischen wird eine Übergangsregion erzeugt. Dieses Verfahren erlaubt einerseits eine realistische Dicke des Aneurysmas und andererseits des gesunden Blutgefäßes, was den numerischen Lösungsprozess stabilisiert.

Algorithmik und Software

Diese Generatoren enthalten einige nützliche algorithmische Entwicklungen, z.B. ein sauberes Abschneiden der Ader-Geometrie, welches lokalisiert geschieht und die kombinatorischen Nachbarschaftsinformationen des Gitters benutzt (ein rein geometrischer Ansatz würde u.U. auch Teile benachbarter Adern abschneiden).

Für das zentrale graphische Frontend der Kette, @neuFuse (entwickelt von B3C) habe ich einige Plug-ins (DLLs) zur Gitter-Manipulation und Überprüfung entwickelt.

Die Software wurde in C++ implementiert unter Verwendung von generischer Programmierung. Auf diese Art und Weise konnte ich die Komponenten der generischen Gitter-Bibliothek GrAL wiederverwenden: Ein einfacher, GrAL-kompatibler Wrapper für die in @neurIST verwendeten VTK-basierten Datenstrukturen erlaubt die direkte Anwendung von GrAL-Funktionalität auf diesen Daten, ohne Kopieren oder weiteres Anpassen.

Computational services

Das Konzept der abstrakten Problembeschreibung und seine Umsetzung als APD eröffnet interessante Möglichkeiten: Derselbe Input (nämlich die APD) kann benutzt werden um vollkommen verschiedene Simulationsanwendungen zu treiben (sofern ein entsprechender Generator implementiert ist). Das reduziert die Gefahr fehlender Rückwärtskompatibilität bei längerfristiger Speicherung, wenn ältere Simulationsdaten mit neueren Progamm-Versionen bearbeitet werden sollen (jetzt muss einfach nur der Generator einmal angepasst werden). Die vollständig automatisierte Bearbeitung von APDs macht diese zu einem idealen Input für Rechen-Services: In einer service-orientierten Architektur (SOA) können damit problem-orientierte Dienste bereitgestellt werden, die eine bestimmte Aufgabe lösen (z.B. eine im APD spezifizierte Blutströmungsanalyse), ohne sich durch Interface-Details wie Datenformate bereits auf ein bestimmtes Simulationspaket festzulegen. Damit erlauben APDs also die Entkopplung der Service-Technologie von der zu lösenden Aufgabe.

Die APD-Schnittstelle habe ich benutzt, um Services für die bereits erwähnten Simulations-Anwendungen aufzusetzen (ANSYS CFX, DC Lattice Boltzmann, FEANOR). Die Implementierung benutzt die Fura middleware und wurde in Zusammenarbeit mit Guillem Cantallops and Rodrigo Ruiz (Grid Systems) ausgeführt.

Was andere sagen

The integration of the ANSYS CFD tools within the APD framework for the @neurIST project provides a nice example of the integration of complex tools to provide a means for non-experts to easily undertake challenging simulations in a controlled manner. Because of its modular implementation it would be straightforward to support and extend in the light of future developments.
Dr. Ian Jones, Head of Technical Services, ANSYS UK
Performing CFD simulations per se is easier and easier with current commercial software. However, automation and efficiency are key elements of a pre- and post-processing pipeline that are to be used in clinical contexts. Guntram's work has provided a number of essential building blocks to automate such steps and achieve the project's goals.
Prof. Alejandro Frangi, Universitat Pompeu Fabra, Barcelona
We have had great assistance from many partners, in particular from Guntram Berti of NEC as he has developed an Abstract Problem Description protocol which allows any piece of software to specify the inputs necessary for CFD analysis.
Bob Moore, IDAC Ireland Ltd.