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.
OUTCOME /OBJECTIVES
Learn how to develop reusable software for computational MRI.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.