|A Digital Heart: The First Step Toward a Virtual Patient|
|Contact: Lynn Yarris, firstname.lastname@example.org|
Suppose you had a debilitating illness for which there was a new experimental drug that offered the promise of a cure but was also known to pose risks. Do you take the chance and consent to treatment? Or do you go with a safer but less effective alternative?
Patients in the future might not have to face such a choice. Using a programming language developed to take full advantage of high-performance computing and parallel processing, a collaboration of researchers that includes Katherine Yelick of Berkeley Lab's Computational Research Division (CRD) has developed software that simulates the flow of blood through a human heart. This represents a first step in what Yelick foresees as 3-D digital models of an individual patient's cardiovascular system and internal organs.
"The long-term goal is to have a complete enough model of a human body that it could be specialized to a particular individual," says Yelick, who leads the Future Technologies Group within CRD's High Performance Computing Research Department and is also a UC Berkeley professor of computer sciences. "In the shorter term, simulations of individual organs will help doctors understand the physiology of how the body works."
Poets may sing of a simple heartbeat, but there's nothing at all simple about the beating of a human heart, not when it comes to the intricate, swirling, pulsating motions of blood flow. Simulating the fluid dynamics behind blood flow through the heart, particularly around the valves which control flow, requires the brute computational power of the most advanced supercomputers.
However, first you need a programming language that enables model designers to take full advantage of high-performance supercomputers and parallel processing.
Just as development of the programming language JAVA made it much easier for application software to use the strengths of the World Wide Web, so did the development of a JAVA dialect called "Titanium" make it possible to produce highly detailed simulations of fluid dynamics in biological systems. Titanium was created by the team of Yelick, Berkeley Lab computer scientist Phil Collela, and UC computer scientists Paul Hilfinger and Susan Graham.
"Charles Peskin and David McQueen of the Courant Institute of Mathematical Sciences at New York University had created a model of the heart, based on a technique they call the Immersed Boundary Method, that was used to simulate blood flow in the heart, the clotting process in arteries, and other biological systems," says Yelick. "But their software was developed for a previous generation of supercomputers and could not scale to large machines."
She and her team worked with the code from Peskin and McQueen, which was written in the Fortran computer programming language, and redesigned it in Titanium for use on the parallel architectures of today's high-performance computers.
"Our first goal was to get the heart code developed by Peskin and McQueen running at higher resolution using parallel processing, which meant figuring out such things as how to divide the heart into pieces and coordinate them during the simulation of a heartbeat," Yelick says. "The second goal was to make a generic immersed boundary code that will run on distributed parallel machines available to the biological sciences. There are a lot of great opportunities for using high-performance parallel processing to accurately simulate important biological flows."
What makes fluid dynamics in the human heart so difficult to simulate is that the blood interacts with flexible, elastic boundaries, the heart's muscle fibers, as it flows. This creates a coupled system in which the elastic boundaries move the fluid at the same time as the fluid pushes back against the boundaries. As a result, researchers must simultaneously solve problems in both fluid mechanics and elasticity. Titanium has features that help programmers express the kinds of complex distributed-data structures that arise in fluid dynamics simulations especially those involving adaptivity or irregular boundaries.
"If you're just trying to make a heart beat, you can get by with a simpler model," Yelick said. "But to understand things like how the muscle fibers contract and what happens in the vortices behind the heart valves, we need much higher resolution for more accurate and realistic simulations."
In addition to simulating the flow of blood through the heart, software developed by Ed Givelberg, a research scientist who worked in Yelick's group, can also simulate the effects of sound waves in the inner ear and can be extended to the simulation of blood clotting, bacterial motion, and other biological systems.
The model of the heart was originally tested on the IBM SP machines at Berkeley Lab's National Energy Research Scientific Computing Center (NERSC) and at UC San Diego's Supercomputing Center. However, the software is designed to run on any type of parallel machine.
Ultimately, Yelick would like to see models of other organs linked to the model of the heart and used in conjunction with medical images and patient histories to create a customized "avatar," or digital version of an individual. Physicians could then test drugs for potential side effects on a patient's avatar, as well as perform virtual surgical procedures or test prosthetic devices. Diagnostics and potential therapies for strokes, heart attacks, or other catastrophic conditions could also be run on a patient's medical avatar. A programming language like Titanium improves the chances for such virtual simulations becoming a reality.
"One of the primary motivations for developing Titanium was to enable easier programming on today's parallel architectures," Yelick said. "By providing high level array abstractions and avoiding tedious message-passing code, Titanium allows application researchers to focus on their science and how to best model it."
While being a part of an interdisciplinary research collaboration that might someday result in lifesaving technologies is rewarding, Yelick says it is also very challenging because of the language barriers.
"We have to think outside our own discipline and speak each other's languages to communicate and solve problems," she says. "But it does feel good to know that what you're working on might someday save lives."