Centerline bifurcations for multiple inlets


I had some issues with the blanking array which is not generated correctly when multiple inlet branches are present. Consider the following example:

I have 2 inputs coming from the left and right vertebral arteries (LVA and RVA). The vmtk script using pyepad gives the following output and fails to generate/combine all centerlines correctly.
Reference: Computing Centerlines | vmtk - the Vascular Modelling Toolkit

When I use 3D slicer, I tried different variations as shown in the figure to combine all the centerline vtk files into one object. But every time, I have 2 source points defined for a single Centerline model object, the output changes and just one centerline curve gets saved instead.

So I used just 1 source point and multiple target points as shown below. In that case, the centerlines do get assembled into 1 vtk object but the blanking regions are not correctly produced at the bifurcation.

As the last alternative I combined the 2 vtk files using VTK: vtkAppendPolyData Class Reference and tried to extract the branches using vmtk/ at master · vmtk/vmtk · GitHub, but it failed to generate the blanking arrays where the 2 parent vessels (LVA and RVA) met.

Does the vmtk centerline code need to be modified for generating the parent child relationships correctly when multiple parent vessels are present at the bifurcation?

Thank you.

What is the overall goal you are trying to achieve?

Centerline extraction must know the blood flow direction in each section of the vessel network, therefore your network must have a forest topology (one or more trees). When we used VMTK to model cardiac PDA then we performed two centerline extractions (with switching up some inflow/outflow points) and then merge the two trees by cutting both trees in the middle of the PDA and connecting the two endpoints.

1 Like

Hello @lassoan ,

Can you explain what you mean to say by a figure possibly? Do you mean that for vasculatures having multiple inlets, the centerline trees should be extracted considering every inlet separately and then merging all of them?
Annotating this figure might help.
Xiong, J., Sun, Q., Qian, Y., Hu, L., Tong, Z., Liu, J., & Liu, J. (2021). Effects of patent ductus arteriosus on the hemodynamics of modified Blalock-Taussig shunt based on patient-specific simulation. Frontiers in Physiology , 12 , 707128.

In my case I have 2 vertebral arteries (parent arteries) merging into the basilar. I need to quantify the parent child relationship properly to quantify the overall loss due to bifurcations correctly. I am referring to this publication, but here parts of the vasculature having just a single inlet have been used for analysis.
Chnafa, C., Valen-Sendstad, K., Brina, O., Pereira, V. M., & Steinman, D. A. (2017). Improved reduced-order modelling of cerebrovascular flow distribution by accounting for arterial bifurcation pressure drops. Journal of Biomechanics, 51, 83–88.


A modification in the vmtk code might be required?

Yes, we did what is described in the VMTK documentation: temporarily break the network to have trees and then merged the result:

Hello @lassoan

Thank you for the suggestion!
I used that to generate separate centerline trees starting from the inlet and connecting the outlets separately, but still I lose the blanking part near the bifurcations, after merging the 2 trees.

The same thing happens even when I try to merge these centerlines.

Here, they use a method to encapsulate separate masks for the bifurcations by merging the centerlines based on vmtkcenterlinemerge: vmtk - the Vascular Modelling Toolkit
Impact of baseline coronary flow and its distribution on fractional flow reserve prediction - PubMed


We only needed the geometry and radius values (tom compute angles and curvatures) and not used the bifurcation reference system.

Yes, sure I will need the 1D curvature to build a reduced order model. I shall probably use the aforementioned reference to isolate the bifurcation regions.


Hello @lassoan , @lantiga ,

What modifications need to be done in the underlying vmtk code to take into account multiple inlets converging into a single daughter artery or for generating a forest of centerlines with the correct set of blanked regions?

Is there a way to generate centerlines considering multiple inlets for a fully connected Circle Of Willis? Even if I generate separate centerline trees for all inlets, the common portions (communicating arteries) should share a daughter branch between both the centerline trees. This does not happen using vmtk. It would be great if we can obtain the correct set of bifurcation vectors and bifurcation reference systems considering the blood flow direction in the patient specific centerline trees.