A plain-language explainer of SeqSeg, an automated method for building patient-specific vascular models from medical images
If you want to simulate blood flow in a specific patient’s arteries—to plan a treatment, test a device, or see how a disease is progressing—you need a 3D model of that person’s vessels first. The simulation itself is hard enough. Getting a usable geometry out of a CT or MR scan is often worse.
That middle step, image to model, is still mostly done by hand. It’s slow, expensive, and it doesn’t scale.
For more than 20 years, the usual path from a CT or MR scan to a simulation-ready vascular model has looked like this:
Each of those steps means a trained person clicking through slices. For a big study, or anything clinical where you need answers soon, that is the bottleneck.
During my PhD at UC Berkeley with Prof. Shawn Shadden, I set out to automate as much of this as I could. The method we ended up with is called SeqSeg (Sequential Segmentation).
A lot of ML approaches try to segment the whole scan in one shot. That is a tough problem: vessels are a tiny fraction of the voxels, their shape varies a lot between patients, and you still need a connected tree at the end—not a pile of disconnected blobs.
SeqSeg does something simpler. It only looks at a small neighborhood at a time and walks along the vessel, roughly the way you’d follow a road without needing the whole map in your head.
In practice:
That is the whole loop. From one click, SeqSeg grows a connected vascular tree. You don’t have to draw centerlines up front; it builds them as it goes, which is often the part that ate the most time in the old workflow.
We tested SeqSeg on CT and MR images of aortic and aortofemoral anatomy and compared it to strong baselines (2D and 3D nnU-Net). A few things stuck with me:
It generalizes better than I expected. Up close, a vessel looks like a vessel—coronary, aorta, cerebral. Because SeqSeg only ever sees those local neighborhoods, it could segment anatomies it never saw in training. On an independent hospital dataset it hadn’t been trained on, it even picked up branches that were missing from the “ground truth.”
It stays connected. Pixel-wise methods often leave gaps, and a broken lumen is useless for simulation. Building the model step by step keeps the tree together, and the branch history is handy when you need to place inlets and outlets.
It’s faster, and it reaches farther. On the same hardware we saw roughly 20–80 minutes depending on how many branches it chased, versus about 2–3 hours for the benchmark—and SeqSeg usually kept more of the smaller distal branches.
I’m not trying to put experts out of a job. I want them to spend less time clicking and more time on the parts that actually need judgment—and I want patient-specific simulation to be something you can do for more than a handful of cases.
SeqSeg still has sharp edges. If a bifurcation root is hidden by artifacts, a branch can get dropped. The voxel segmentation can leave staircase noise on the surface. And calling a network at every step gets expensive when the vascular tree is huge. Those are the problems I’ve kept working on since.
SeqSeg is open access in Annals of Biomedical Engineering:
If you want a walkthrough of setup, training, and inference, there’s a companion tutorial on this blog.
Questions or stuck somewhere in the pipeline? Leave a comment below.
Here are some more articles you might like to read next: