By Eva Alonso-Ortiz
This MRM Highlights Pick interview is with Simon Daniel Robinson and Korbinian Eckstein (Medical University of Vienna) and Barbara Dymerska (University College London). Their paper, entitled Phase Unwrapping with a Rapid Opensource Minimum Spanning TreE AlgOrithm (ROMEO), introduces a new approach to phase unwrapping. It was chosen as this month’s Reproducible Research pick because they made the code for ROMEO open source and provided the community with executables for Windows, Linux and macOS.
To discuss this Q&A, please visit our Discourse forum.
MRMH: To start off, could you tell me a little bit about yourselves and how you all came together to work on this paper?
Barbara: I did my PhD with Simon, on improving the reliability of functional MRI at high field strength using phase information. After that, I joined Dr Karin Shmueli’s group at University College London as a Marie Skłodowska-Curie Fellow to work on Quantitative Susceptibility Mapping (QSM) of microbubbles.
Korbinian: After doing my bachelor’s in Munich, I moved to Vienna for my master’s. While there, I did a project in Simon’s group and immediately felt at home. So, I finished my master’s there and afterwards Simon convinced me to stay on for a PhD. My main project was working with phase images (in the context of Susceptibility Weighted Imaging (SWI)).
Simon: My background is in physics. I did a PhD in nuclear physics at Manchester University, then a master’s in medical physics, as part of the training to be a clinical medical physicist. That also involved a placement in MRI, in which I worked on phase-contrast angiography, my first taste of phase! Actually, I’d been skirting around MRI; a lot of medical physicists at that time were getting into MRI because it was considered the most interesting and most diverse medical imaging modality. I swam against the tide for a while and did a PET project for my masters instead. In the end, though, I realised that MRI was the way to go, and moved to Vienna to start working with Ewald Moser at the Medical University of Vienna. After postdocs in Vienna and at The University of Trento, Italy, I got a position with Siegfried Trattnig in Vienna and set up a small group. I’m now working on fMRI-QSM at the University of Queensland for the first two years of a three-year sabbatical, with the final year at the Medical University of Graz (which is all also a Marie Skłodowska-Curie project).
With regard to ROMEO, Korbinian and I had been reviewing a paper that somebody had submitted together with a Jupyter notebook. I had more or less finished the review, but I couldn’t get the notebook to work. So, I said “Korbinian, you might be interested in this”. He came back the very next day enthusiastic about Jupyter. That was the first you’d heard of the Julia programming language, wasn’t it?
Korbinian: Yes, that’s right. And I immediately realized it was a cool new language!
Simon: Knowing that Korbinian desperately wanted to move on from MATLAB, which had been our ‘group language’, I agreed to let him go off and experiment with Julia. At that point, I’d had an idea for a phase unwrapping method based on unwrapping in 1D. I told Korbinian about it, and he said he’d also been working on an unwrapping method, in Julia. It was more or less an early form of ROMEO.
MRMH: Let’s take a step back for those who haven’t read the paper. Simon, could you very briefly describe what the paper is about?
Simon: Phase can encode a lot of interesting information; from flow velocity in angiography to temperature and, probably most importantly, magnetic field strength. An immediate problem in using phase is that it is mapped into a range of 2π radians. Outside of that, it’s wrapped. We use the term “wraps” because a relatively smooth underlying phase leads to distinct boundaries between regions in which the phase is correct and regions that need multiples of 2π to be added to them in order to reveal the underlying true phase; that is the process of unwrapping. Phase unwrapping algorithms fall into different categories; temporal and spatial, with the spatial category including Laplacian-based methods, region-growing methods and path-following methods. ROMEO is in the path-following category, where you are trying to identify a reliable seed voxel and then follow a path through the image that only goes through other reliable voxels, or actually connections between voxels. Korbinian was interested in reading up on and implementing his idea for a phase unwrapping method, but less keen to write about it. That’s why we got Barbara involved; she’s incredibly efficient at analysis and putting a paper together. As well as being fast and accurate, ROMEO is also open source. That allows users to modify the weights which determine the path taken through the object, or other aspects of the algorithm, for their own use case.
Korbinian: Once we had decided to collaborate with Barbara, the first step was to make the code more approachable and share it with her so that she could run the analysis. At first it didn’t work because her environment was different. So, I looked into how to make it portable, in Julia, which proved quite easy to do actually. The Julia code is now available as a package on GitHub but we also provide compiled command line versions for all three major operating systems, so it is very straightforward to set up. I must add that ROMEO started out as a 3D unwrapping algorithm and with the feedback and involvement of Barbara, we turned it into a hybrid method which uses temporal information as well. We also added new features like unwrapping multiple separated regions, performing a weighted combination of unwrapped phase images and removing phase offsets in multi-echo data.
Barbara: When I first saw Korbinian’s code, the Julia programming language was new to me, but Korbinian made it easy to review because he writes elegant code. This experience made me realize how important it is to have one or two other people look through code thoroughly, really trying to understand it line by line, as you would with a manuscript. When somebody sends you a manuscript, you normally tend to look at the figures, the final results, the text and maybe derive the equations yourself, while the code is not examined. And yet, quite often it can contain a mistake, subtle, but very substantial. And you will never trace it if you look only at the final results. I just want to point out that, in Korbinian’s case, there were no such mistakes. But the experience made me realize that it’s really important to let the coauthors or colleagues review the code you want to publish as part of the manuscript. ROMEO wasn’t my idea and I had to understand how it works from the code and select appropriate data for testing it. I hope that made me write about ROMEO in a way that is approachable and interesting.
MRMH: I couldn’t agree more. To wrap up our interview, I’d like to end with a non-scientific question. What do you all like doing when you’re not working?
Simon: Well, I’m living in Australia at the moment and I’m enjoying a clichéd Australian life; barbecues, beaches, swimming and a bit of stand-up paddle boarding. We don’t have a lot COVID in Queensland, so we’ve more or less been free of lockdown or other restrictions. I have some survivor’s guilt about that, but no FOMO!
Barbara: Right now I’m a full-time mama. But otherwise, I’m up to making sourdough goodies. So, lots of baking: bread, pizza, crackers. To stay physically and mentally active, I just go running, do yoga and listen to audiobooks during long pram walks.
Korbinian: I used to play a lot of table tennis and also go rock climbing, but right now I can’t do those things of course. So, I try to get outside a little bit to work out. I hope that it will soon be possible to play sports and table tennis once again. I’m really looking forward to that.