Designing Reusable Software Components for Computational MRI
Martin Uecker1

1University Medical Center Göttingen, Germany

Synopsis

Computational techniques play an important part in the development of new methods for Magnetic Resonance Imaging (MRI). Based on our experience developing software for computational MRI, this talk will explain how to develop reusable software components that preserve our scientific knowledge in a reproducible, useful, and sustainable way.

TARGET AUDIENCE

engineers and MR physicists

OUTCOME /OBJECTIVES

Learn how to develop reusable software for computational MRI.

PURPOSE

Computational techniques play an important part in the development of new methods for Magnetic Resonance Imaging (MRI). Algorithms and software for computational MRI is usually very complicated which poses new and difficult challenges and impedes scientific progress in our field. To be able reproduce each others work and to be able to build on top of it, robust, maintainable, and reusable software components are needed that capture our scientific knowledge and make it available to community in an open, useful, and sustainable way. Based on our experience developing the BART toolbox for computational MRI, this talk will explain strategies for developing reusable software that can help meet these requirements.

SUMMARY

The first part of this talk will explain generic concepts and methodologies which are useful when developing research software. It still start with an introduction to free and open source software and its importance for reproducible research and scientific progress. This will include a brief discussion of legal issues and the choice of a suitable license. Many general challenges that arise in the development of research software can be addressed by following well-known and proven software development methodologies, such as the use of version control systems, unit tests, and continuous integration, as well as release management. Using the BART project as a concrete example, the talk will then continue to explain the software development philosophy we followed, the overall development strategy and how these affected specific decisions such as the choice of programming language, libraries, and build environment. Going a bit deeper into BART’s architecture both its high-level design around composable command-line tools and the low-level design of its backend libaries for numerical computing as will be explained.

Focusing then specifically on the area of iterative image reconstruction, the second part of this talk will address the design of generic programming interfaces that achieve a high level of flexibility and reuse by decoupling the software into independent modules. In particular, generic interfaces can be used to construct complicated linear and non-linear forward operators from reusable parts. Based on a powerful mathematical framework based on convex optimization and the concept of proximity functions, many known reconstruction algorithms based on compressed sensing and parallel imaging published in the literature can then be composed directly from a library of optimization algorithms, forward models, and regularization terms. Similar ideas can be used to construct model-based methods for quantitative MRI using linear and nonlinear models or to design deep neural networks for image reconstruction. This flexibility will be illustrated using examples from MRI.

In the last part of this talk, topics such as building a community of users and developers, interacting with it and other existing open-source or standards communities, as well as challenges that arise from a lack of funding and developer time will be discussed. The talk will end by formulating a long-term vision for collaboration in our field.

Acknowledgements

No acknowledgement found.

References

  1. Martin Uecker. Machine Learning Using the BART Toolbox - Implementation of a Deep Convolutional Neural Network for Denoising. Joint Annual Meeting ISMRM-ESMRMB, Paris 2018, In Proc. Intl. Soc. Mag. Reson. Med. 26;2802
  2. Sebastian Schaetz, Dirk Voit, Jens Frahm, Martin Uecker. Accelerated Computing in Magnetic Resonance Imaging - Real-Time Imaging Using Non-Linear Inverse Reconstruction. Computational and Mathematical Methods in Medicine 2017:3527269 (2017)
  3. Jonathan I Tamir, Frank Ong, Joseph Y Cheng, Martin Uecker, and Michael Lustig. Generalized Magnetic Resonance Image Reconstruction using The Berkeley Advanced Reconstruction Toolbox. ISMRM Workshop on Data Sampling and Image Reconstruction, Sedona 2016
  4. Martin Uecker, Frank Ong, Jonathan I Tamir, Dara Bahri, Patrick Virtue, Joseph Y Cheng, Tao Zhang, and Michael Lustig.Berkeley Advanced Reconstruction Toolbox. Annual Meeting ISMRM, Toronto 2015, In Proc. Intl. Soc. Mag. Reson. Med. 23:2486
  5. Martin Uecker, Patrick Virtue, Frank Ong, Mark J. Murphy, Marcus T. Alley, Shreyas S. Vasanawala, and Michael Lustig. Software Toolbox and Programming Library for Compressed Sensing and Parallel Imaging. ISMRM Workshop on Data Sampling and Image Reconstruction, Sedona 2013
  6. Sebastian Schätz, Martin Uecker. A Multi-GPU Programming Library for Real-Time Applications, 12th International Conference on Algorithms and Architectures for Parallel Processing (ICA3PP-2012), Fukuoka 2012, In Lecture Notes in Computer Science, 7439:114-128 (2012)
Proc. Intl. Soc. Mag. Reson. Med. 27 (2019)