MITKModelFit: A generic opensource framework for model fits and their exploration in medical imaging – design, implementation and application on the example of DCEMRI
Abstract
Background
Many medical imaging techniques utilize fitting approaches for quantitative parameter estimation and analysis. Common examples are pharmacokinetic modeling in dynamic contrastenhanced (DCE) magnetic resonance imaging (MRI)/computed tomography (CT), apparent diffusion coefficient calculations and intravoxel incoherent motion modeling in diffusionweighted MRI and Zspectra analysis in chemical exchange saturation transfer MRI. Most available software tools are limited to a special purpose and do not allow for own developments and extensions. Furthermore, they are mostly designed as standalone solutions using external frameworks and thus cannot be easily incorporated natively in the analysis workflow.
Results
We present a framework for medical image fitting tasks that is included in the Medical Imaging Interaction Toolkit MITK, following a rigorous opensource, wellintegrated and operating system independent policy. Software engineeringwise, the local models, the fitting infrastructure and the results representation are abstracted and thus can be easily adapted to any model fitting task on image data, independent of image modality or model. Several readytouse libraries for model fitting and usecases, including fit evaluation and visualization, were implemented. Their embedding into MITK allows for easy data loading, pre and postprocessing and thus a natural inclusion of model fitting into an overarching workflow. As an example, we present a comprehensive set of plugins for the analysis of DCE MRI data, which we validated on existing and novel digital phantoms, yielding competitive deviations between fit and ground truth.
Conclusions
Providing a very flexible environment, our software mainly addresses developers of medical imaging software that includes model fitting algorithms and tools. Additionally, the framework is of high interest to users in the domain of perfusion MRI, as it offers featurerich, freely available, validated tools to perform pharmacokinetic analysis on DCE MRI data, with both interactive and automatized batch processing workflows.
Keywords
Pharmacokinetic modeling Tracerkinetics Dynamic PET Multipurpose Software development Model fittingAbbreviations
 AIF
Arterial input function
 AUC
Areaunderthecurve
 CEST
Chemical exchange saturation transfer
 CLI
Command line interface
 CNR
Contrasttonoise ratio
 DRO
Digital reference object
 GUI
Graphical userinterface
 MITK
Medical Imaging Interaction Toolkit
 MP
Model parameters
 MFI
Modelfit inspector
 MVC
ModelViewController
 QIBA
Quantitative imaging biomarker alliance
 ROI
Region of interest
 SMP
Static model parameters
 SNR
Signaltonoise ratio
 SUV
Standard uptake value
 TAC
Timeactivity curve
 TTP
Timetopeak
 1TCM
One tissue compartment model
 2CXM
Two compartment exchange model
 2TCM
Two tissue compartment model
Background
Model fitting plays a vital role for many analysis approaches in medical imaging. In order to determine spatially resolved T_{1} relaxation times in magnetic resonance imaging (MRI), multiple images with different T_{1} weightings are acquired and the signal intensities are fitted with the relaxation equation [1]. Quantifying T_{1} relaxation times can add additional morphological information for a variety of pathological conditions. In diffusionweighted MRI (DWI), the apparent diffusion coefficient (ADC) is derived by acquiring images at increasing diffusion gradients (bvalues) and fitting the signal loss with an exponential [2]. In more advanced signal theory, effects such as intravoxel incoherent motion (IVIM) are included, which also rely on signal fitting with a theoretical model. For chemical exchange saturation transfer (CEST) imaging, Zspectra, acquired through sweeping radiofrequency saturation around the bulk water resonance, are analyzed using multipool Lorentzian fitting [3].
A paradigm for fitting of medical images is pharmacokinetic modeling, as applied in dynamic contrastenhanced (DCE) MRI and computed tomography (CT), or in dynamic positron emission tomography (PET). In PET, pharmacokinetic analysis can be used to measure transport rates of certain pharmaceuticals or metabolic substances [4, 5]. Dynamic scans are acquired over the injection of a radioactive tracer, which accumulates in tissue according to the metabolic properties of its pharmacologic compound. Tissuespecific kinetic parameters are then extracted by fitting the measured timeactivity curves with compartment models that describe tracer transport. The most commonly used models are the one tissue compartment model (1TCM) and two tissue compartment model (2TCM) [4].
In DCE MRI the aim is to derive parameters on tissue perfusion and capillary permeability from analysis of the time course of contrast agent (CA) concentration in tissue by acquisition of a time series of T_{1} weighted MR images over CA administration [6, 7]. Tissue concentrationtime curves are then analysed through fitting with a pharmacokinetic (compartment) model [8, 9]. The most commonly used compartment models for gadoliniumbased, extracellular contrast agents are the classical Tofts model, the extended Tofts model and the two compartment exchange model (2CXM) [6].
DCE MRI has become a popular method to assess tissue physiology in various diseases, including cancer, multiple sclerosis [10], rheumatic arthritis [11] and stroke [12]. For research purposes, authors usually write their own analysis code in general purpose frameworks like MATLAB [13], Python, R [14] or MPFit [15]. However, this approach comes with a number of disadvantages: inhouse developed analysis software tools often lack standardization and broad validation, which can result in errors on the estimated parameter and make comparison of results from different centers rather difficult [16]. Also, code is often written without software design concepts and reusability in mind. Thus, novel applications or variations in the analysis workflow often have to be implemented from scratch. Furthermore, inhouse developed tools usually lack the integration into medical image processing ecosystems, leading to excessive data conversion and transfer. This limits their application in clinical routine, as the fitting analysis cannot be performed directly together with other necessary data evaluation steps like segmentation and registration. Many times these inhouse solutions are not graphical user interface (GUI)based, and therefore require a basic knowledge of the respective programming language.
Due to these drawbacks, and especially with respect to standardization, clinically oriented studies tend to be carried out using standard scanner software tools included by the vendors (e.g [17, 18]) or standalone tools [19, 20]. Apart from their commercial nature, these tools constitute blackbox systems that do not offer any flexibility in extension and configuration, which makes them less suitable for research purposes. Many of these tools offer only basic analysis steps and are installed on special workstations of scanner related computers. Hence data evaluation cannot be performed offline by any researcher. On top of this, studies have shown that results from different vendor’s software yield differences in parameter estimates [21, 22, 23]. These aspects have given rise to the need of standardized, open access solutions.
Challenges
Ideally, such software tools would be included into larger medical image analysis platforms, enabling fitting analysis to be carried out side by side with other image processing steps without data conversion or import to other frameworks. In addition to that, linkage to a picture archiving and communication system (PACS) and support of DICOM data facilitates application of data evaluation in clinical settings. For research purposes, software should enable easy development and implementation of extensions to the tools in terms of models, fitting algorithms, etc. In order to be usable for both research and clinical evaluation purposes, the software needs to provide a userfriendly interface for analysis to be carried out, but yet allow for algorithm automatization in order to perform large scale data evaluations. Furthermore, direct means of fit visualization and exploration can improve quality of data evaluation and give room to model validation.
State of the art – software
Several opensource packages for analysis of DCE MRI data have been presented in the last years [24, 25, 26, 27, 28, 29, 30, 31]. They can be divided into two categories: standalone tools, designed explicitly and only for DCE MRI analysis, and plugins or packages, that provide the analysis functionality within a larger analysis framework. Standalone tools are designed to be readytouse applications, with ports for data transfer (data input and results export) and can be modified and extended on basis of the source code by the user. Wellknown examples of standalone tools are ROCKETSHIP [24], DCE@urLAB [26] or DCEMRI.jl [27]. However, these tools are not linked to a common image processing platform, and thus require conversion and transfer of data. Hence, substantial effort is required to perform data analysis with these tools, making them feasible only for research purposes. Additionally, even though these tools are made publicly available as opensource code, many of them depend on some underlying closed source dependency, e.g. MATLAB including its toolboxes. Contrary to that, plugins or packages can be used within larger analysis frameworks. More general examples include published packages for R or Python, like DATforDCEMRI [25], dcemriS4 [32] or pydcemri [30].
More dedicated solutions were introduced to be used complementary to standard image processing software, like OsiriX [33], PMI [28] or 3DSlicer [34]. With regards to the aspect of clinical oriented analysis workflows, these plugin solutions provide the advantage of incorporation of the DCE MRI analysis into general image pre and postprocessing. Thus, OsiriX plugins for DCE MRI analysis, e.g. UMMPerfusion [31] and the DCETool [29], are popular tools that can be used for an entire radiological workflow. However, OsiriX is only available on Mac OS, which presents another drawback. The 3DSlicerbased option “PKModeling” [35] on the other hand provides only basic features of pharmacokinetic analysis for DCE MRI data. Additionally, many of these plugin solutions are designed for application with direct user interaction, thus not allowing for automated batchprocessing analysis pipelines. Another aspect is that all the above named solutions are designed for a single application purpose, i.e. DCE MRI. In order to include other image processing tasks based on image fitting (especially on other fitting domains e.g frequency), would require entirely new implementations from scratch. However, general concepts of the underlying algorithm are not limited to DCE MRI. An ideal tool would offer means for fitting of medical image data with any model and on any domain (time, frequency, etc.)
To the best of our knowledge, there exists no solution, that can be considered truly free in terms of an opensource, operating system (OS)independent software tool for fitting tasks on medical images, regardless of image modality, dimensionality and domain that does not depend in any way on external, commercial software frameworks. In this work, we present the framework ModelFit for the Medical Imaging Interaction Toolkit (MITK) [36], which is designed to perform any fitting task with a given model on multidimensional image data in such a free way. Several dedicated usecases in form of MITK workbench applications were derived from this tool. Special attention was given to pharmacokinetic analysis in DCE MRI, for which several applications were implemented and validated.
Implementation
We designed and implemented a framework within the Medical Imaging Interaction Toolkit (MITK) that enables fitting of medical imaging data with any given model. This framework was implemented with regards to both enduser applications as well as developer features. The following subsections present the design of the framework, explain how decoupling was achieved and which extension points are offered by the framework to tailor own setups and workflows.
Definition of general terms and concepts:
Before we introduce the structure of the here presented framework, let us briefly review the conceptional workflow of data fitting. Data fitting is an optimization problem with the aim of approximating the measured data points by a theoretical mathematical model of the underlying (physical) processes.
The theoretical representation of the data is referred to as the model function f_{ϕ, θ}(x) and maps from the signal grid domain X to the signal codomain Y. X and Y are problem dependent. X is e.g. often the time domain or frequency domain. Y represents the intensities of the images (e.g. concentration of the CA). X and Y are subsets of ℝ.
The model function is parameterized by the parameter vectors ϕ and θ. The parameter vector ϕ is the variable of the model fitting process and is named model parameter (MP) in the following. Parameter vector θ is not in the scope of the optimization and called static model parameter (SMP).
For the optimization the model \( {\boldsymbol{S}}_{\overrightarrow{\boldsymbol{x}},\boldsymbol{\theta}}^{\prime}\left(\boldsymbol{\phi} \right) \) in dependency of the signal grid \( \overrightarrow{\boldsymbol{x}} \) and the SMP θ is used. The values S^{′} are named signal (in analogy to the measured sample S). The input sample S is the vector of measured data points on \( \overrightarrow{\boldsymbol{x}} \). The optimization is performed by iteratively adjusting the set of MP in order to minimize a similarity measure between data and model, i.e. the deviation between sample and signal. This similarity measure is referred to as cost function \( \boldsymbol{C}\left(\boldsymbol{S},{\boldsymbol{S}}_{\overrightarrow{\boldsymbol{x}},\boldsymbol{\theta}}^{\prime },\boldsymbol{\phi} \right) \). C may be a single scalar or vectorial. In many applications the sum of quadratic difference between the sample and theoretical signal, referred to as sum of squared residuals, is used as similarity measure.
Decoupling strategies
An important design aspect for developers is the possibility to extend the framework in multiple ways and to reuse it for different fitting workflows and domains. Such a flexibility and reusability is achieved through the separation of concerns and decoupling (e.g. via abstraction). We regard these abstractions as equally important for a versatile fitting framework, though they are not sufficiently exploited in other publications (except for the modelviewcontroller pattern; see below).
Abstraction of the model function

Name/ID of the model

Name and unit of the signal values

Name and unit of the model parameters ϕ (MP) (i.e. parameters in the model function that are iteratively adjusted during fitting).

Name and unit of the static model parameters θ (SMP) (i.e. parameters in the model function that are not affected by the fitting process)
Abstraction of the fitting process
The optimizer drives and terminates the iterative fitting process based on the cost function and the optimizer’s stopping criteria. The combination of optimizer, cost function and model can be arbitrary chosen by the developer for the desired fitting workflow. Amongst others aspects, this allows for experimental settings e.g. benchmarking the performance of different model implementations using the same optimizer and cost function [42]. To facilitate reuse, meaningful combinations of optimizers and cost functions are composed as ModelFitFunctor classes. ModelFitFunctors depend only on MPs, the parameterized model itself and the sample. This design allows a great versatility and reusability in different workflows; e.g. the ModelFitFunctor itself does not change, if either a region of interest (ROI)based (averaged curve over all voxels in a region of interest) or voxelbased fit (each voxel individually) is performed. To achieve this versatility, the fitting process (Fig. 1) is completely abstracted from type or purpose of input and output data. The concrete realization and further benefits are explained in more details in the next section.
Abstraction of data

Sample signal

SMPs

Initial MP values

Constraints for the fitting
With regard towards fitting workflows and the above mentioned information types the following design consideration was made: Fitting is always done for an indexed discrete element (e.g. an image voxel). Therefore any data can be defined on a global scope (e.g. the sample signal in a ROIbased fitting) or a local scope (e.g. the sample signal in a voxelbased fitting; initial MP values of a model). The type of scope is not fixed. It might change depending on the chosen model, the workflow and the experimental setting. Furthermore the source of data and its representation (values stored in an image object, a value vector, etc.) might differ, depending on the workflow and state of the application.
ModelFactory classes are used by the application to get a valid ModelParameterizer based on the application state and available data types. Hence a ModelFactory encapsulates the decision, which ModelParameterizer should be used and how it should be initialized. A ModelFactory always represent a model class in the context of a certain problem statement. Thus, one model class might be managed by several ModelFactories, but with different ModelParameterizers and constraints regarding the specific problem statement, for which the factory was implemented.
ModelViewController pattern
The modelviewcontroller (MVC) pattern [43] and its variations are wellknown strategies to decouple parts of an application and to allow thorough separation of concerns. It has been applied in other solutions [44]. In our implementations based on MITK, a MVC pattern with multiple views and controllers was applied. To avoid the ambiguity of the term “model” in the context of this paper, the term “application model” will be used for the model of the MVC pattern. In all other cases “model” refers to model classes that represent \( {\boldsymbol{S}}_{\overrightarrow{\boldsymbol{x}},\boldsymbol{\theta}}^{\prime}\left(\boldsymbol{\phi} \right) \) (see above).
In the herein presented framework, the application model not only consists of the data (e.g. input images, ROIs, resulting parameter images) but also of the fitting business logic. The fitting business logic encompasses all classes and structures introduced in the above abstraction levels (e.g. model class, ModelFitFunctor classes, etc.). The decision to make the fitting business logic part of the application model instead of the controller allows its decoupling from controllers. This decoupling enables the reuse of fitting business logic components in multiple controllers and facilitates the necessary unit testing. Within the MITK workbench implementation, a view consists of multiple graphical user elements (widgets) that display the images, model functions, model constraints etc. The controllers are provided by MITK workbench plugins (MFI, generator plugins for DCE MRI, etc.).
Extension points of the framework

New models: The introduction of new models is the most obvious one. A completely new model function requires also the implementation of a respective ModelParameterizer and ModelFactory class. For both types, template base classes are provided to facilitate implementation. If a developer wants to add support of different data representations for an existing model class, only a suitable ModelParameterizer and ModelFactory must be implemented. For the registration of a factory as a micro service in order to make it available in the application, a helper class is provided.

New cost functions and fitting strategies: Custom cost functions can be integrated based on two base classes: SVModelFitCostFunction is used for singlevalue cost functions (e.g. sum of squared residuals) and MVModelfitCostFunction for multivalue cost functions (e.g. array of squared residuals). Both classes are based on cost function classes of the Insight Toolkit (ITK)[45], itk::SingleValuedCostFunction and itk::MultipleValuedCostFunction respectively. Therefore, every threadsafe optimizer offered by ITK can be used to drive the fitting process. In addition, own implementations or wrapping of existent optimizer implementations are possible. In order to regard different types of fitting constraints and boundary conditions, an abstract interface is provided along with a readytouse implementation of simple boundary conditions. The interface can either be used to inject constraints implicitly or explicitly into the fitting process. The latter option must be supported by the optimizer itself (e.g. LBFGSB). The implicit injection is realized by a penalty term added to the cost function. This is easily done by using SVConstrainedCostFunctionDecorator or MVConstrainedCostFunctionDecorator. Both take the constraints and the original cost function and can then be used as cost functions with penalty term.

New domains: The main area of usage is currently timeresolved data, e.g. in pharmacokinetic analysis or for simple trend fitting (e.g. linear or exponential fits). Nevertheless, the framework itself is not limited to a special domain, neither data specific (e.g. time domain or frequency domain) nor regarding the usecase (e.g. image modalities, types of models). This covers e.g. the fitting of diffusion data over different bvalues for ADC extraction, the determination of T_{1} over different inversion times and flip angles or T_{2}* fitting for variant echo times. Due to the above introduced abstraction levels the only restriction imposed by the framework is the possibility to implement the model function. Everything else is covered by readytouse classes or can be extended.

New controller/generation plugins: At the latest when adding a new domain to MITK GUI applications, one has to add a new generation plugin to serve as a controller. To ease the implementation of custom generation plugins, many typical generation aspects are encapsulated into readytouse widgets (e.g. definition of initial values or definition of constraints). Due to the above introduced abstractions those widgets can work with any model. Therefore developers can concentrate on implementing the logic that initializes the needed ModelFitFunctor.
Results
Due to the presented used decoupling strategies, the fitting framework is very flexible in terms of which usecase can be addressed and how the usecase is implemented. The first aspect (what/which) is possible due to abstraction between model, data and fit representation (see abstraction strategy 1 and 3). Thus, the framework can be applied to any kind of fitting task regardless of the image modality (CT, MRI, PET, etc.), fitting dimension (time, frequency, etc.) and applied model (linear, pharmacokinetic, etc.).
The second aspect (how) is achieved by separation and standardization of the fitting routine components in terms of model, cost function (respective fitting criteria) and fitting engine (optimizer) as well as by the used MVC pattern (see abstraction strategy 1, 2 and 4). This leads to modularity and high flexibility for implementations of concrete fitting workflows and applications. The versatility is demonstrated by the implementation of several readytouse tools, which will be shortly presented in the following
Software characteristics
MITK ModelFit  UMM Perfusion  Rocketship  DCEMRI.jl  PMI  DATforDCEMRI  3DSlicer PkModeling  

Operating system  Linux, Mac OS, Windows  Mac OS  Linux, Mac OS, Windows  Linux, Mac OS, Windows  Windows  Linux, Mac OS, Windows  Linux, Mac OS, Windows 
Language  C++  C  Matlab  Julia  IDL  R  C++ 
License  BSD  BSD  GNUGPL  MIT  GNU GPL  Creative Commons  Slicer (BSD like) 
Advanced extensibility  Yes  Yes  No  No  No  No  Yes 
Fitting domain  Time, Frequency, any^{a}  Time  Time  Time  Time  Time  Time 
Ecosystem  Yes (MITK)  Yes (OsiriX)  No  No  Yes (PMI)  No  Yes (3DSlicer) 
Image modalities  DCEMRI, DCECT, PET, dynamic MRI, dynamic CT, CESL/CEST,^{a}  DCEMRI  DCEMRI  DCEMRI  DCEMRI, DSCMRI, DCECT  DCEMRI  DCEMRI 
Models  Tofts, Extended Tofts, 2CXM, 1TCM, 2TCM, Brix, Threestep linear (3SL), Semiquantitative metrics (BAT, TTP, AUC, C_{max}, Washin/Washout Slope, final uptake, mean residence time)  Extended Tofts, 1CP, 2CXM, 2C uptake model, two compartment filtration model (2FM)  Tofts, Extended Tofts, Fast Exchange Regime, 2CXM, Tissue uptake, Nestedmodel selection, Patlak, Semiquantitative metrics (AUC)  Tofts, Extended Tofts, Plasma Only  Uptake models, Steadystate, Patlak, Modelfree deconvolution, Tofts, Extended Tofts, 2CXM, 2C filtration model for kidney, Dualinlet models for Liver, Semiquantitative metrics (Slope/Signal enhancement)  Tofts, Semiquantitative metrics (AUC, MRT  mean residence time)  Tofts, Semiquantitative metrics (AUC, slope) 
Input / Output  DICOM, Analyze, NIFTI, NRRD, VTK, Raw data  DICOM  DICOM, Analyze, NIFTI, Raw data, Matlab data  Matlab data  DICOM, Raw data  R readable data formats  DICOM, Analyze, NIFTI, NRRD, VTK, Raw data 
GUI  Yes  Yes  Yes  No  Yes  No  Yes 
Fit exploration  Yes  Yes  Yes  No  Yes  No  Yes^{b} 
PACS Support  Yes  Yes  No  No  No  No  Yes 
Automatization  Yes  Partially^{c}  Yes  Yes  Yes  Yes  Yes 
Source  http://ikrsrv1.medma.uniheidelberg.de/redmine/projects/ummperfusion  https://www.slicer.org/wiki/Documentation/4.8/Modules/PkModeling 
For fitting tasks outside of pharmacokinetic analysis we provide a simple tool. Currently this multipurpose fitting tool offers conduction of simple fits e.g. with linear or exponential models as well as a generic model. The generic model uses a formula parser to fit any explicit analytical model formula to data. The user needs to specify the functional representation of the model and the number of model parameters that are adjusted during fitting.
When data quality is not sufficient to enable proper fitting analysis or no suitable model is known, simple, semiquantitative parameters describing the curve shape can be calculated to evaluate the data [46, 47, 48].
Before fitting can be performed, 4D DCE MRI image intensities usually need to be converted into the corresponding CA concentration. If precontrast T_{1} maps are available (e.g. from multiple flipangle measurements), analytic conversion of the signal to concentration units is provided in the DCE MRI fitting tool (as described in [27]). Otherwise, conversion by means of relative and absolute signal enhancement can be performed. The conversion can be performed in a dedicated plugin or as convenient alternative directly in the fitting plugin.
The versatility of our framework enabled also the implementation of a tool for simulating concentrationtime curves by forward calculation of the signal from parameter images in combination with an AIF. With this simulation tool, curves can be generated according to the standard Tofts Model, the extended Tofts model and the 2CXM. Noise in form of Gaussian random numbers can be added with userdefined contrasttonoise ratios (defined as ratio between the maximum of the AIF and the standard deviation of the noise). The generation of synthetic concentrationtime curves allows for validation of models and benchmarking of different configurations of fitting algorithms [42].
A number of additional analysis tools for other workflows and fitting domains (e.g. for fitting of Zspectra in chemical exchange saturation transfer (CEST) MRI, general T_{1}/T_{2} mapping) were further derived from the fitting framework.
The above presented readytouse analysis tools are integrated as plugins into the MITK workbench and can be run directly via the user interface. In addition, they can be used as commandline tools (CLI tool) for (semi) automatic analysis, which makes efficient evaluation of large data cohorts feasible. The CLI tools are implemented using the CommonTK/Slicer execution model [56] and therefore offer an easy integration path into other applications without any compile or linkage dependencies.
The integration into MITK allows establishing a complete analysis pipeline. Pre and postprocessing of raw data and resulting parameter maps can be done using all available MITK functionalities. Dynamic images can be coregistered with other, static images of higher signaltonoise ratio (SNR) or spatial resolution, which enables more precise lesion detection and subsequent segmentation. Manual and semiautomated image segmentation techniques facilitate definition of fitting ROIs and other inputs (e.g. AIF). Segmentations can then be directly used for voxelbased as well as ROIbased fitting without further data conversion. Generated model parameter maps from fitting or noncompartmental analysis can be handled independently as MITK images, and thus analyzed. Besides visual inspection of the individual fit values and curves using the MFI plugin, statistics and histogram evaluations can be performed. Further segmentations of subregions can be derived for indepth analysis. Parameter maps can be saved in various image formats or exported to .csv files for further analysis with other programs.
Validation
Validation was performed for the standard and the extended Tofts model as well as the 2CXM. The quantitative imaging biomarker alliance (QIBA) offers virtual phantom data, socalled digital reference objects (DRO), for pharmacokinetic analysis in DCE MRI. For validation of the standard 2parameter Tofts model, the QIBA_v6_Tofts DRO was used (available from https://sites.duke.edu/dblab/qibacontent/). It contains 30 blocks of each 10 × 10 squares of combinations of K_{trans} ∈ {0, 1, 2, 5, 10, 20, 35} ml/ min /100 ml and v_{e} ∈ {0.01, 0.05, 0.1, 0.2, 0.5}. Concentration curves are sampled at a temporal resolution of 0.5 s over a total of 1361 time points. For validation of the extended 3parameter Tofts model, the noise free 4D DRO (https://sites.duke.edu/dblab/dcemritestimages/) was chosen. It includes DICOM images of a 2D+t DCE MRI series, with each 10 x 10 voxel blocks of 108 different, spatially encoded concentrationtime curves, using all combinations of K_{trans} ∈ {0, 1, 2, 5, 10, 20} ml/ min /100 ml , v_{p} ∈ {0.001, 0.005, 0.01, 0.02, 0.05, 0.1} and v_{e} ∈ {0.1, 0.2, 0.5}. Concentration curves are sampled at a temporal resolution of 0.5 s over a total of 661 time points. The dataset was fitted with the DCE MRI tool and resulting parameter estimates were compared to the ground truth. Unfortunately, no DRO is available for the 2CXM to our knowledge. Thus, we created a third DRO for the 2CXM, similar to those for the standard and extended Tofts model. Concentrationtime curves for different combinations of F_{p}, PS, v_{p} and v_{e} were generated from the 2CompFlowExch model in JSim [57]. Values used for generation of concentrationtime curves were F_{p} ∈ {5, 10, 25, 40} ml/ min /100 ml, PS ∈ {0, 5, 15} ml/ min /100 ml, v_{p} ∈ {0.02, 0.05, 0.1, 0.2} and v_{e} ∈ {0.1, 0.2, 0.5}. Curves were simulated on 0.5 s temporal sampling using the arterial input curve extracted from the extended Tofts DRO data. Signal curves were arranged in a 3D+t image of spatial dimensions <10 ∙ F_{p}, 10 ∙ v_{e} ∙ v_{p}, PS > = < 40, 120, 3>, where each <10 × 10 × 1> voxels contained one curve type. The AIF was added as <40, 20, 3> block on the bottom of the image, leading to a final DCE MRI data set of dimension <40, 140, 3, 661>. The data is available in DICOM format under: http://mitk.org/wiki/MITKModelFit.
Relative errors on parameter estimates from fitting the validation datasets
Mean Error [%]  

Standard Tofts  K _{ trans}  3.24  
ν _{ e}  0.38  
extended Tofts  K _{ trans}  7.01  
ν _{ p}  22.06  
ν _{ e}  5.95  
2CXM  F _{ p}  PS = 0 ml/min/100 ml푚푙  2.54 
PS = 5 ml/min/100 ml  1.99  
PS = 15 ml/min/100 ml  1.86  
PS = 0 ml/min/100 ml  10.55  
ν _{ p}  PS = 5 ml/min/100 ml  1.83  
PS = 15 ml/min/100 ml  2.87  
PS  PS = 5 ml/min/100 ml  3.05  
PS = 15 ml/min/100 ml  2.69  
ν _{ e}  PS = 5 ml/min/100 ml  3.22  
PS = 15 ml/min/100 ml  2.48 
Discussion
We presented an opensource software framework for fitting of medical images within the Medical Imaging Interaction Toolkit MITK. Its implementation offers high flexibility and reusability, making it easily adaptable and extendable for own developments. This versatility enables development of analysis tools for various fitting tasks and image modalities, as for example fitting of Zspectra in CEST MRI or tracerkinetic analysis in dynamic PET using compartment models. Furthermore, means of qualitative and quantitative fit quality evaluation and result visualization are provided.
Readytouse applications in form of plugins for the MITK workbench were implemented for several dedicated usecases, which allows for direct GUIbased analysis. An extensive toolbox for pharmacokinetic analysis of DCE MRI data was designed with several commonly used pharmacokinetic models. It offers a wide range of configuration options, such as definition of parameter starting values, constraints for model parameters and different methods to convert the acquired MR signal to contrast agent concentration. Several strategies for AIF definition are supported, in order to enable most common approaches, e.g. imagebased or populationbased AIFs. Fitting can be performed either on an individual voxel basis or in a ROIbased average approach. The most commonly used models “standard Tofts”, “extended Tofts” and “2CXM” were validated on digital reference data sets. Results of estimated parameters for the standard and extended Tofts model were comparable to other published data [16, 27]. For the 2CXM we created a synthetic data set using JSim [57]. In order to spread validation methods and thus standardize pharmacokinetic modeling in DCE MRI, we provide free access to our validation DRO for the 2CXM.
Many approaches in medical image analysis utilize fitting, from preprocessing over extraction of parameters as in pharmacokinetic analysis to simple modeling of timedependent treatment effects. Commonly, image fitting is performed using inhouse developed code in large data analysis platforms such as MATLAB, IDL/MPFIT or R [13, 14, 15]. For analysis of DCE MRI data using pharmacokinetic modeling, several groups have presented opensource software solutions. Even though these tools are made publicly available as opensource code, several (e.g. PMI based on IDL or ROCKETSHIP based on MATLAB) depend on commercial software. Smith et al. presented DCEMRI.jl [27], a toolkit for NLLS fitting analysis of DCE MRI written purely in the programming language julia, hence it does not depend on any commercial licenses. It is opensource and compatible with MacOS, Linux and Windows systems. However, no graphical user interface or fit visualization is provided. Furthermore, it is not incorporated into any image processing platform, and input and output of data is possible only in MATv5 files. Hence a clinical oriented workflow, depending on the support of DICOM formats, is very difficult to realize. Published packages for R or Python, for example DATforDCEMRI [25], depend on no commercial licenses, as these frameworks are freely available and applicable to all operating systems. However, they are not dedicated to medical image analysis, thus data import and integration into a DICOM workstation are not provided. Additionally, other image processing tasks, like segmentation or registration, have to be performed externally. The OsiriX [33] opensource DICOM workstation can be used for an entire radiological workflow. Thus, OsiriX plugins for DCE MRI analysis, e.g. UMMPerfusion [31], are popular tools in the context of clinical research. However, OsiriX is only available on Mac OS, which presents another drawback. Furthermore, these plugins are specifically designed and implemented for OsiriX, hence they cannot be used as standalone tools, or with in automated, batchprocessing analysis pipelines. 3DSlicer offers a rich, opensource and OSindependent platform for medical image analysis and visualization. The PKModeling module [35] can be used in automated workflows or via the 3DSlicer GUI. The major drawbacks compared to other options are the limited number of available models.
Our framework overcomes these limitations, by offering a standardized software concept for data handling, fitting algorithmic and analysis pipelines that can be applied modularly and extended easily. The level of abstraction, compared to other solutions, does not stop with the introduction of normal MVC patterns to separate GUI and algorithms. The fitting infrastructure itself is carefully abstracted and standardized. This ensures a large degree of freedom with respect to both the usecase in question (image modality, fitting domain) as well as the specific algorithm configuration in a usecase (optimizer and cost function, model). Due to the toolkit nature of MITK and the framework, the implemented tools for specific usecases (DCE MRI, dynamic PET, general purpose fitting) can be used for automated batch processing, for integration into other applications (e.g. as CLI tool), as well as for direct userinteraction with GUIbased applications (plugins for the MITK workbench) for endusers without need for advanced software development. Furthermore, the embedding in MITK allows for fitting to be performed within an ecosystem of medical image processing combining all other relevant processing steps and without the burden of data conversion or interapplication transfer. This embedding, together with the capability of MITK to handle all different kinds of imaging modalities, is especially useful in the light of current efforts regarding modern hybrid PETMRI scanners or other kinds of multiparametric imaging data. Different dynamic data types can be evaluated sidebyside in the same software framework and thus allow direct comparison of the derived multiparametric maps. MITK also enables the analysis of longitudinal data generated by treatment response studies like in neoadjuvant chemotherapy, radiation therapy or antiangiogenic treatment. The data analysis tools of ModelFit can be utilized to evaluate the physiologic, metabolic and vascular status of the tumor tissue and thus assess treatment efficacy, as changes in parametric maps reflect responses to therapy. Additionally, the presented software framework can be considered as truly free and opensource as it requires neither further proprietary licenses nor is it limited to specific operating systems. These features also facilitate the wide spread use of the implemented tools and thus can aid in standardization and multicenter analyses.
The quantitative imaging biomarker alliance (QIBA) [58] aims to reduce variability of quantitative imaging biomarkers across devices, sites, patients and time, and thus improve their value and practicality. In recent years, substantial efforts have been made to include, amongst others, pharmacokinetic approaches in MRI and PET into the alliance through standardized validation datasets, software approaches and acquisition protocols. Within this context, our framework for fitting of medical image data could provide a huge step forward in standardizing software not only for DCE MRI, as it can provide a common basis for all application of fitting approaches, whilst being freely available, maintained and transparent (i.e. source code can be directly accessed).
To our knowledge there is no software package for DCE MRI pharmacokinetic analysis that (1) has more functionalities regarding pharmacokinetics (2) can be considered truly free as in opensource and operating system independent, (3) with both GUI and batch processing applicability, (4) integration into a global image processing platform for pre and postprocessing and (5) no dependencies on commercial software packages or licenses.
Conclusion
In summary we have designed and implement a highly flexible and easily extendable software environment for fitting analysis in medical imaging, that allows for the analysis to be performed directly integrated into a larger image pre and postprocessing workflow. This includes, amongst others, highly automatized evaluation workflows regarding longitudinal data, where modeling of responses (e.g. followup under therapy) comes into play and which has become increasingly important in the era of big data. The framework can be used by developers for custom developments, but also offers readytouse GUI based applications for endusers. It is opensource and OSindependent, which together with its high modularity, versatility and rich feature set makes it superior to other existing solutions, especially in the context of pharmacokinetic analysis of dynamic imaging data.
Availability and requirements
Project name: MITK ModelFit
Project home page: http://mitk.org/wiki/MITKModelFit
Operating system(s): Platform independent
Programming language: C++14
Other requirements: Qt 5.9 or higher, Cmake 3.10 or higher; Git from http://gitscm.com
License: BSDlike
Any restrictions to use by nonacademics: none
Notes
Acknowledgements
The authors would like to thank Alina Bendinger, Christin Glowa, Maria Saager, Christian Karger, Patrick Schünke, Jennifer Mosebach, David Bonekamp, Patrick Badura and Dorde Komljenovic, for fruitful discussions on perfusion imaging and pharmacokinetic analysis, and testing of developed plugins. Furthermore we acknowledge Caspar Goch, Stefan Dinkelacker and the division of medical image computing for continuous software support and Ali Afshar and Uwe Haberkorn for insight knowledge on dynamic PET data evaluation.
Funding
This work was supported by the National Center for Tumor diseases (NCT 3.02015.22 BioDose, to AA) the German Research Foundation (DFGKFO214, to AA; and SFB/TRR 125 “CognitionGuided Surgery”, to KMH and MN), the Federal Ministry of Education and Research Germany (BMBF 01IB13001B, to RF) and the Deutsche Krebshilfe (MaxEder 108876, to AA). The funders had no role in study design, data collection and analysis, decision to publish or preparation of the manuscript.
Availability of data and materials
The software and the validation dataset generated during the current study are available under http://mitk.org/wiki/MITKModelFit
Authors’ contributions
CD, RF, MN, KMH and AA participated in design and supervision of the project. CD and RF implemented the software. CD analyzed the data. MI and IK provided background knowledge on DCE MRI. CD and MI collected patient data. MN and KMH supplied the necessary software support for MITK. CD and RF wrote the manuscript. All authors read and approved the final version of the manuscript.
Ethics approval and consent to participate
Not applicable.
Consent for publication
Not applicable.
Competing interests
The authors declare that they have no competing interests.
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
References
 1.Taylor AJ, Salerno M, Dharmakumar R, JeroschHerold M. T1 Mapping: Basic Techniques and Clinical Applications. JACC Cardiovasc Imaging. 2016;9:67–81.CrossRefGoogle Scholar
 2.Le Bihan D. Looking into the functional architecture of the brain with diffusion MRI. Nat Rev Neurosci. 2003;4:469–80.CrossRefGoogle Scholar
 3.Jones KM, Pollard AC, Pagel MD. Clinical applications of chemical exchange saturation transfer (CEST) MRI. J Magn Reson Imaging JMRI. 2018;47:11–27.CrossRefGoogle Scholar
 4.Phelps ME. PET: Molecular Imaging and Its Biological Applications. New York: Springer New York; 2004. https://doi.org/10.1007/9780387225296. Accessed 20 June 2017CrossRefGoogle Scholar
 5.Morris ED, Endres CJ, Schmidt KC, Christian BT, Muzic RF, Fisher RE. Kinetic modeling in positron emission tomography. In: Emiss Tomogr Fundam PET SPECT Acad San Diego; 2004.Google Scholar
 6.Sourbron SP, Buckley DL. Tracer kinetic modelling in MRI: estimating perfusion and capillary permeability. Phys Med Biol. 2012;57:269–76.CrossRefGoogle Scholar
 7.Ingrisch M, Sourbron S. Tracerkinetic modeling of dynamic contrastenhanced MRI and CT: a primer. J Pharmacokinet Pharmacodyn. 2013;40:281–300.CrossRefGoogle Scholar
 8.Khalifa F, Soliman A, ElBaz A, Abou ElGhar M, ElDiasty T, Gimel’farb G, et al. Models and methods for analyzing DCEMRI: a review. Med Phys. 2014;41:124301.CrossRefGoogle Scholar
 9.Sourbron S. Technical aspects of MR perfusion. Eur J Radiol. 2010;76:304–13.CrossRefGoogle Scholar
 10.Ingrisch M, Sourbron S, Morhard D, ErtlWagner B, Kümpfel T, Hohlfeld R, et al. Quantification of perfusion and permeability in multiple sclerosis: dynamic contrastenhanced MRI in 3D at 3T. Invest Radiol. 2012;47:252–8.CrossRefGoogle Scholar
 11.Ledsam JR, Hodgson R, Moots RJ, Sourbron SP. Modeling DCEMRI at low temporal resolution: A case study on rheumatoid arthritis. J Magn Reson Imaging. 2013;38:1554–63.CrossRefGoogle Scholar
 12.Kassner A, Roberts T, Taylor K, Silver F, Mikulis D. Prediction of Hemorrhage in Acute Ischemic Stroke Using Permeability MR Imaging. Am J Neuroradiol. 2005;26:2213–7.PubMedGoogle Scholar
 13.The MathWorks, Inc. MATLAB  MathWorks. https://de.mathworks.com/. Accessed 10 July 2018.
 14.The R Foundation. R: The R Project for Statistical Computing. https://www.rproject.org/. Accessed 10 July 2018.
 15.Markwardt CB. Nonlinear Least Squares Fitting in IDL with MPFIT. ArXiv09022850 AstroPh. 2009. http://arxiv.org/abs/0902.2850. Accessed 6 Feb 2017.
 16.Huang W, Li X, Chen Y, Li X, Chang MC, Oborski MJ, et al. Variations of Dynamic ContrastEnhanced Magnetic Resonance Imaging in Evaluation of Breast Cancer Therapy Response: A Multicenter Data Analysis Challenge. Transl Oncol. 2014;7:153–66.CrossRefGoogle Scholar
 17.Siemens. Tissue 4D. https://www.healthcare.siemens.de/magneticresonanceimaging/optionsandupgrades/clinicalapplications/tissue4d. Accessed 6 Feb 2017.
 18.Philips Healthcare. IntelliSpace Portal 8.0. https://www.philips.de/healthcare/resources/landing/intellispaceportalenterprise. Accessed 26 June 2017.
 19.NordicNeuroLab AS. nordicICE. http://www.nordicneurolab.com/products/nordicICE.html. Accessed 20 Feb 2018.
 20.Olea Medical. Olea Sphere 3.0. Olea medical. http://www.oleamedical.com/en/oleasphere30/. Accessed 20 Feb 2018.
 21.Beuzit L, Eliat PA, Brun V, Ferré JC, Gandon Y, Bannier E, et al. Dynamic contrastenhanced MRI: Study of intersoftware accuracy and reproducibility using simulated and clinical data. J Magn Reson Imaging. 2016;43:1288–300.CrossRefGoogle Scholar
 22.Cron GO, Sourbron S, Barnoriak DP, Abdeen R, Hogan M, Nguyen TB. Bias and precision of three different DCEMRI analysis software packages: a comparison using simulated data. In: Milan: Proceedings in Internaltional Conference for Magnetic Resonance in Medicine; 2014.Google Scholar
 23.Goh V, Schaeffter T, Leach M. Reproducibility of Dynamic Contrastenhanced MR Imaging: Why We Should Care. Radiology. 2013;266:698–700.CrossRefGoogle Scholar
 24.Barnes SR, Ng TSC, SantaMaria N, Montagne A, Zlokovic BV, Jacobs RE. ROCKETSHIP: a flexible and modular software tool for the planning, processing and analysis of dynamic MRI studies. BMC Med Imaging. 2015;15:19.CrossRefGoogle Scholar
 25.Ferl GZ. DATforDCEMRI: An R Package for Deconvolution Analysis and Visualization of DCEMRI Data. J Stat Softw. 2011;44. https://doi.org/10.18637/jss.v044.i03.
 26.Ortuño JE, LedesmaCarbayo MJ, Simões RV, Candiota AP, Arús C, Santos A. DCE@urLAB: a dynamic contrastenhanced MRI pharmacokinetic analysis tool for preclinical data. BMC Bioinformatics. 2013;14:316.CrossRefGoogle Scholar
 27.Smith DS, Li X, Arlinghaus LR, Yankeelov TE, Welch EB. DCEMRI.jl: a fast, validated, open source toolkit for dynamic contrast enhanced MRI analysis. PeerJ. 2015;3:e909.CrossRefGoogle Scholar
 28.Sourbron, Biffar, Ingrisch. PMI:platform for research in medical imaging. In: Magnetic Resonance Materials in Physics, Biology and Medicine. 2009.Google Scholar
 29.Sung K. DCE_Tool. http://kyungs.bol.ucla.edu/software/DCE_tool/DCE_tool.html. Accessed 6 Feb 2017.
 30.Welch EB. pydcemri: Python module for processing dynamic contrast enhanced magnetic resonance imaging (DCEMRI) data. Python. 2017. https://github.com/welcheb/pydcemri. Accessed 30 Apr 2018.
 31.Zöllner FG, Weisser G, Reich M, Kaiser S, Schoenberg SO, Sourbron SP, Schad LR. UMMPerfusion: an open source software tool towards quantitative MRI perfusion analysis in clinical routine. J Digit Imaging. 2013;26(2):34452.Google Scholar
 32.Whitcher B, Schmid VJ. others. Quantitative analysis of dynamic contrastenhanced and diffusionweighted magnetic resonance imaging for oncology in R. J Stat Softw. 2011;44:1–29.Google Scholar
 33.Rosset A, Spadola L, Ratib O. OsiriX: an opensource software for navigating in multidimensional DICOM images. J Digit Imaging. 2004;17:205–16.CrossRefGoogle Scholar
 34.Kikinis R, Pieper SD, Vosburgh KG. 3D Slicer: A Platform for SubjectSpecific Image Analysis, Visualization, and Clinical Support. In: Intraoperative Imaging and ImageGuided Therapy. New York: Springer; 2014. p. 277–89. https://doi.org/10.1007/9781461476573_19.
 35.Miller J. PkModeling: Slicer Extension providing pharmacokinetic modeling. C++. 2018. https://github.com/millerjv/PkModeling. Accessed 7 May 2018.
 36.Nolden M, Zelzer S, Seitel A, Wald D, Müller M, Franz AM, et al. The Medical Imaging Interaction Toolkit: challenges and advances. Int J Comput Assist Radiol Surg. 2013;8:607–20.CrossRefGoogle Scholar
 37.Ahearn TS, Staff RT, Redpath TW, Semple SIK. The use of the Levenberg–Marquardt curvefitting algorithm in pharmacokinetic modelling of DCEMRI data. Phys Med Biol. 2005;50:N85.CrossRefGoogle Scholar
 38.Moré, Jorge. The LevenbergMarquardt algorithm: implementation and theory. 1978.Google Scholar
 39.Broyden CG. The Convergence of a Class of Doublerank Minimization Algorithms 1. General Considerations. IMA J Appl Math. 1970;6:76–90.CrossRefGoogle Scholar
 40.Fletcher R. A new approach to variable metric algorithms. Comput J. 1970;13:317–22.CrossRefGoogle Scholar
 41.Goldfarb D. A family of variablemetric methods derived by variational means. Math Comput. 1970;24:23–6.CrossRefGoogle Scholar
 42.Debus C, Floca R, Nörenberg D, Abdollahi A, Ingrisch M. Impact of fitting algorithms on errors of parameter estimates in dynamic contrast enhanced MRI. Phys Med Biol. 2017. https://doi.org/10.1088/13616560/aa8989.
 43.Krasner GE, Pope STA. Cookbook for Using the Modelview Controller User Interface Paradigm in Smalltalk80. J Object Oriented Program. 1988;1:26–49.Google Scholar
 44.Zöllner FG, Daab M, Sourbron SP, Schad LR, Schoenberg SO, Weisser G. An open source software for analysis of dynamic contrast enhanced magnetic resonance images: UMMPerfusion revisited. BMC Med Imaging. 2016;16:7.CrossRefGoogle Scholar
 45.Ibanez L, Schroeder W, Ng L, Cates J. The ITK Software Guide. 2003. http://insightjournal.org/midas/item/view/948. Accessed 19 Feb 2018.
 46.O’Connor JPB, Jackson A, Parker GJM, Jayson GC. DCEMRI biomarkers in the clinical evaluation of antiangiogenic and vascular disrupting agents. Br J Cancer. 2007;96:189–95.CrossRefGoogle Scholar
 47.O’Connor JPB, Tofts PS, Miles KA, Parkes LM, Thompson G, Jackson A. Dynamic contrastenhanced imaging techniques: CT and MRI. Br J Radiol. 2011;84(special_issue_2):S112–20.CrossRefGoogle Scholar
 48.DiStefano JJ. Noncompartmental vs. compartmental analysis: some bases for choice. Am J Physiol  Regul Integr Comp Physiol. 1982;243:R1–6.CrossRefGoogle Scholar
 49.Riviere JE. Comparative Pharmacokinetics: Principles, Techniques and Applications: Wiley; 2011. https://doi.org/10.1002/9780470959916.
 50.Brix G, Semmler W, Port R, Schad LR, Layer G, Lorenz WJ. Pharmacokinetic parameters in CNS GdDTPA enhanced MR imaging. J Comput Assist Tomogr. 1991;15:621–8.CrossRefGoogle Scholar
 51.Parker GJM, Roberts C, Macdonald A, Buonaccorsi GA, Cheung S, Buckley DL, et al. Experimentallyderived functional form for a populationaveraged hightemporalresolution arterial input function for dynamic contrastenhanced MRI. Magn Reson Med. 2006;56:993–1000.CrossRefGoogle Scholar
 52.Sokoloff L, Reivich M, Kennedy C, Des Rosiers MH, Patlak CS, Pettigrew KD, et al. The [14C] deoxyglucose method for the measurement of local cerebral glucose utilization: theory, procedure, and normal values in the conscious and anesthetized albino rat. J Neurochem. 1977;28:897–916.CrossRefGoogle Scholar
 53.Phelps ME, Huang SC, Hoffman EJ, Selin C, Sokoloff L, Kuhl DE. Tomographic measurement of local cerebral glucose metabolic rate in humans with (F18)2fluoro2deoxyDglucose: validation of method. Ann Neurol. 1979;6:371–88.CrossRefGoogle Scholar
 54.Langen KJ, Hamacher K, Weckesser M, Floeth F, Stoffels G, Bauer D, et al. O(2[18F]fluoroethyl)ltyrosine: uptake mechanisms and clinical applications. Nucl Med Biol. 2006;33:287–94.CrossRefGoogle Scholar
 55.Wester HJ, Herz M, Weber W, Heiss P, SenekowitschSchmidtke R, Schwaiger M, et al. Synthesis and Radiopharmacology of O(2[18F]fluoroethyl)LTyrosine for Tumor Imaging. J Nucl Med. 1999;40:205–12.PubMedGoogle Scholar
 56.CommonTK Command Line Interface. http://www.commontk.org/index.php/Documentation/Command_Line_Interface. Accessed 16 Nov 2018.
 57.Butterworth E, Jardine BE, Raymond GM, Neal ML, Bassingthwaighte JB. JSim, an opensource modeling system for data analysis. F1000Research. 2014. https://doi.org/10.12688/f1000research.2288.v3.
 58.Radiological Society of North America. Quantitative Imaging Biomarkers Alliance (QIBA). https://www.rsna.org/QIBA/. Accessed 23 May 2018.
Copyright information
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated.