audrey xie
not a jack of all trades, nor a master of one. i prefer just being a lazy bum.
← posts

Tortuosity and Self-Organizing Feature Maps


I was lucky enough to spend the summer interning at Professor Van Savage’s lab at UCLA. Below is the combined work of Kaitlin Lim and I.


Vessels in the human body are normally straight, used for efficiently transporting blood to different regions of the human body. However, blood vessels can become tortuous, or twisted, due to vascular disease and abnormal development. The development of tortuous vessels is not well understood, allowing research to be done on finding quantitative methods of analyzing and characterizing the tortuosity of blood vessels in stroke recovery patients.

Vascular systems of mice brain affected by stroke were run with varying thresholds through Angicart, a software than analyses 3D radiographic images of blood vessels to determine their various characteristics. The resulting data points from Angicart were used to analyze a range of different metrics for measuring curvature and torsion. Metrics used each yielded slightly different values. The data points were also fitted with a polynomial and system of spline equations for visualization purposes.

After comparing the polynomial and spline fitting, we concluded that spline fitting consistently did better, with fitting values falling between the 0.5 and 0.6 range. Another area of research that was touched upon, but not deeply studied was the application of neural networks for differentiating between the three types of tortuous vessels. A self-organizing map was able to categorize semi-accurately the types of vessels, which indicates room for improvement.


My main area of focus revolved around writing code that was used to preprocess data before running it through Angicart, and then use the data produced by Angicart for further analysis.

Running an entire vascular network through Angicart is computationally expensive, which means that it is important to find the ideal threshold value beforehand. Preprocessing was done by segmenting full sized networks into smaller sections and running them through Angicart with varying threshold values. After finding a threshold value that was able to balance the number of features and noise, then the full-sized image was processed.

Analysis of different metrics for measuring curvature and torsion of vessels was automated with several R scripts that I wrote. Coordinate collections that made up each vessel were run through the script, and metrics such as average curvature, distance, maximum curvature, and sum of angles were calculated. These values were taken into account when fitting polynomial expressions and collections of splines to the coordinate collections for visualization purposes, done which was done by another R script.

Half of the values from the metric calculations were used to train a self-organizing feature map, an artificial neural network using unsupervised learning. The other half was used to test if the neural net was able to differentiate between the three vessel types. The accuracy plateauing at 0.86 indicates room for further research.

Angicart returns data regarding characteristics of blood vessel segments, which was used for threshold analysis where scaling exponents for vessels were calculated using a distribution-based method and a conservation-based method. I wrote several R scripts automate this sequence of calculations and output the values into a spreadsheet. These scaling exponents are important for finding patterns to predict the behavior of vessels that were outside of the specified region.


Walking into Professor Savage’s lab and being told to write code automating various calculations for blood vessel tortuosity analysis, when I had no idea what they even meant, was terrifying. So I spent the first days of the internship reading for hours on end to understand all that I could; everything from papers categorizing types of tortuous vessels to ones describing the methods behind scaling exponent calculations.

The most difficult aspect of this research process was the fact that no one’s doing anything similar. Meaning no cross referencing with others. When trying to fit a polynomial to a collection of coordinates, I wanted to minimize processing time, which meant I couldn’t use typical methods. Only after studying various fitting techniques I opted to use Frenet-Serret vectors, because they assume nonzero curvature. And since I was working with tortuous vessels, the fact that there will be a large number of twists and curves was a given.

I now realize that minimal guidance had its benefits, it really helped build problem-solving skills and good research habits.