diff --git a/docs/generalPurposeProcesses.md b/docs/generalPurposeProcesses.md index 1dcd4f26..36ef98ef 100644 --- a/docs/generalPurposeProcesses.md +++ b/docs/generalPurposeProcesses.md @@ -1,4 +1,3 @@ - # Section G: General purpose processes ## Forward model inversion @@ -7,10 +6,10 @@ | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | -| G.MI1.001 | Analytical inversion | -- | -- | This method is used when the solution of the model inversion is well-defined and the model parameters of interest can be calculated analytically.
**Input:**
[Forward model (M.GF1.001)](perfusionModels.md#Forward model),
[Static model parameters (Q.AI1.001)](quantities.md#AI_SMP){:target="_blank"},
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}]
**Output**:
[[Model parameters (Q.OP1.001)](quantities.md#AI_MP){:target="_blank"}] | -- | -| G.MI1.002 | Optimization | Model fitting | -- | Inversion of a forward model by iteratively adjusting the set of model parameters in order to minimize a similarity measure between the data and the model.
**Input:**
Optimizer (select from [optimizers](#Optimizers))
**Output**:
[[Estimated model parameters (Q.OP1.003)](quantities.md#EMP){:target="_blank"}] | -- | -| G.MI1.003 | Deconvolution | -- | -- | Method which can be used when a model is given as a convolution $h(x) = f(x) \ast g(x)$ with known $h(x)$ and $f(x)$ to determine $g(x)$.
**Input:**
Deconvolution method (select from [deconvolution methods](#Deconvolution methods))
**Output**:
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [g(x), x] | -- | -| G.MI1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.MI1.001 | Analytical inversion | -- |  -- | This method is used when the solution of the model inversion is well-defined and the model parameters of interest can be calculated analytically.
**Input:**
[Forward model (M.GF1.001)](perfusionModels.md#Forward model),
[Static model parameters (Q.AI1.001)](quantities.md#AI_SMP){:target="_blank"},
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}]
**Output**:
[[Model parameters (Q.OP1.001)](quantities.md#AI_MP){:target="_blank"}] | -- | +| G.MI1.002 | Optimization | Model fitting | -- |  Inversion of a forward model by iteratively adjusting the set of model parameters in order to minimize a similarity measure between the data and the model.
**Input:**
Optimizer (select from [optimizers](#Optimizers))
**Output**:
[[Estimated model parameters (Q.OP1.003)](quantities.md#EMP){:target="_blank"}] | -- | +| G.MI1.003 | Deconvolution | -- | -- | Method which can be used when a model is given as a convolution $h(x) = f(x) \ast g(x)$ with known $h(x)$ and $f(x)$ to determine $g(x)$.
**Input:**
Deconvolution method (select from [deconvolution methods](#Deconvolution methods))
**Output**:
 [[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [g(x), x] | -- | +| G.MI1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | ## Optimization @@ -20,20 +19,20 @@ | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | -| G.OP1.001 | Levenberg-Marquardt | -- | LM | An algorithm that interpolates between the Gauss-Newton algorithm and the method of gradient descent.
**Input:**
Cost function (select from [cost functions](#Cost functions)),
[Initial model parameters (Q.OP1.006)](quantities.md#MP_init){:target="_blank"}
*Optional:*
[Model parameter lower bounds (Q.OP1.007)](quantities.md#MP_L){:target="_blank"},
[Model parameter upper bounds (Q.OP1.008)](quantities.md#MP_U){:target="_blank"},
[Data weights (Q.OP1.009)](quantities.md#Weights){:target="_blank"},
[Maximum number of iterations (Q.OP1.010)](quantities.md#N_iter_max){:target="_blank"},
[Convergence threshold (Q.OP1.011)](quantities.md#ConvThresh){:target="_blank"}
**Output**:
[Estimated model parameters (Q.OP1.003)](quantities.md#EMP){:target="_blank"},
[Cost value minimum (Q.OP1.005)](quantities.md#CostValue_min){:target="_blank"} | -- | -| G.OP1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.OP1.001 | Levenberg-Marquardt | -- | LM | An algorithm that interpolates between the Gauss-Newton algorithm and the method of gradient descent.  
**Input:**
Cost function (select from [cost functions](#Cost functions)),
[Initial model parameters (Q.OP1.006)](quantities.md#MP_init){:target="_blank"}
*Optional:*
 [Model parameter lower bounds (Q.OP1.007)](quantities.md#MP_L){:target="_blank"},
[Model parameter upper bounds (Q.OP1.008)](quantities.md#MP_U){:target="_blank"},
[Data weights (Q.OP1.009)](quantities.md#Weights){:target="_blank"},
[Maximum number of iterations (Q.OP1.010)](quantities.md#N_iter_max){:target="_blank"},
[Convergence threshold (Q.OP1.011)](quantities.md#ConvThresh){:target="_blank"}
**Output**:
 [Estimated model parameters (Q.OP1.003)](quantities.md#EMP){:target="_blank"},
[Cost value minimum (Q.OP1.005)](quantities.md#CostValue_min){:target="_blank"} | -- | +| G.OP1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | ### Cost functions | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | -| G.OP2.001 | Non-linear least squares | -- | NLLS | $\lVert f(\phi, \theta; x) - y(x) \rVert_{2}^{2}$ , where $f$ is a forward model describing the data, $x$ is the data grid, $y(x)$ is the measured data and $\lVert \rVert_2$ is the L2-norm. The forward model is non-linear in the model parameters.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[Forward model (M.GF1.001)](perfusionModels.md#Forward model){:target="_blank"},
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[$\theta$ (Q.OP1.002)](quantities.md#SMP){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | +| G.OP2.001 | Non-linear least squares  | -- | NLLS | $\lVert f(\phi, \theta; x) - y(x) \rVert_{2}^{2}$ , where $f$ is a forward model describing the data, $x$ is the data grid, $y(x)$ is the measured data and $\lVert \rVert_2$ is the L2-norm. The forward model is non-linear in the model parameters.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[Forward model (M.GF1.001)](perfusionModels.md#Forward model){:target="_blank"},
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[$\theta$ (Q.OP1.002)](quantities.md#SMP){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
 | -- | | G.OP2.002 | Linear least squares | -- | LLS | $\lVert A\phi - y(x) \rVert_2^2$ , where $x$ is the data grid, $y(x)$ is the measured data and $\lVert \rVert_2$ is the L2-norm.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[ $\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[*A* (Q.OP1.012)](quantities.md#A){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | -| G.OP2.003 | Standard-Form Tikhonov | -- | SFT | $\lVert A\phi - y(x) \rVert_2^2 + \lambda^2 \lVert Ix \rVert_2$ , where $x$ is the data grid, $y(x)$ is the measured data , $\lVert \rVert_2$ is the L2-norm and $L$ is the identity matrix (same dimensions as $A$).
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[*A* (Q.OP1.012)](quantities.md#A){:target="_blank"},
[$\lambda$ (Q.OP1.013)](quantities.md#Lambda){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | -| G.OP2.004 | Generalized cross validation | -- |GCV | $\frac{\lVert A\phi_\lambda - y(x) \rVert_2^2}{trace\left( I-AA_\lambda^\zeta \right)^2}$,
where $x$ is the data grid, $y(x)$ is the measured data, $\lVert \rVert_2$ is the L2-norm, $I$ is the identity matrix of the same dimensions as $A$, $\phi_\lambda$ is the solution of the matrix equation obtained from the SVD for a certain regularization parameter $\lambda$ and $A^\zeta_\lambda$ is defined by the relationship $\phi_\lambda=A_{\lambda}^{\zeta}y(x)$.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[*A* (Q.OP1.012)](quantities.md#A){:target="_blank"},
[$\lambda$ (Q.OP1.013)](quantities.md#Lambda){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | +| G.OP2.003 | Standard-Form Tikhonov | -- | SFT | $\lVert A\phi - y(x) \rVert_2^2 + \lambda^2 \lVert Ix \rVert_2$ , where $x$ is the data grid, $y(x)$ is the measured data , $\lVert \rVert_2$ is the L2-norm and $L$ is the identity matrix (same dimensions as $A$).  
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[*A* (Q.OP1.012)](quantities.md#A){:target="_blank"},
[$\lambda$ (Q.OP1.013)](quantities.md#Lambda){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | +| G.OP2.004 | Generalized cross validation | -- |GCV | $\frac{\lVert A\phi_\lambda - y(x) \rVert_2^2}{trace\left( I-AA_\lambda^\zeta \right)^2}$,
where $x$ is the data grid, $y(x)$ is the measured data, $\lVert \rVert_2$ is the L2-norm, $I$ is the identity matrix of the same dimensions as $A$, $\phi_\lambda$ is the solution of the matrix equation obtained from the SVD for a certain regularization parameter $\lambda$ and $A^\zeta_\lambda$ is defined by the relationship $\phi_\lambda=A_{\lambda}^{\zeta}y(x)$.  
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[*A* (Q.OP1.012)](quantities.md#A){:target="_blank"},
[$\lambda$ (Q.OP1.013)](quantities.md#Lambda){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | | G.OP2.005 | L-curve | -- |LC | $\frac{\hat{\rho^\prime}\hat{\eta^{\prime\prime}} - \hat{\rho^{\prime\prime}}\hat{\eta^\prime}}{\left( (\hat{\eta^\prime})^2 + (\hat{\rho^\prime})^2 \right)^{3/2}}$, where $\phi_\lambda$ is the solution of the matrix equation obtained from the SVD for a certain regularization parameter $\lambda$,
$\rho(\lambda) = \lVert A\phi_\lambda - y(x) \rVert_2$ and
$\eta(\lambda) = \lVert \phi_\lambda \rVert_2$, $\hat{\rho} = ln(\rho)$, $\hat{\eta} = ln(\eta)$ and $\prime$ and $\prime\prime$ are the derivatives with respect to $\lambda$.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"},
[*A* (Q.OP1.012)](quantities.md#A){:target="_blank"},
[$\lambda$ (Q.OP1.013)](quantities.md#Lambda){:target="_blank"}
**Output**:
[Cost value (Q.OP1.004)](quantities.md#CostValue){:target="_blank"}
| -- | -| G.OP2.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.OP2.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | ### Regularization parameter @@ -42,8 +41,8 @@ | -- | -- | -- | -- | -- | -- | | G.OP3.001 | Fixed | -- | -- | A fixed value of $\lambda$ , rather than a determined value is assumed.
**Input:**
[$\lambda_{fixed}$ (Q.OP1.015)](quantities.md#Lambda_fixed){:target="_blank"}
**Output:**
[$\lambda$ (Q.OP1.013)](quantities.md#Lambda){:target="_blank"} | -- | | G.OP3.002 | Generalized Cross Validation | -- | GCV | $\lambda$ is determined by minimizing the generalized cross validation cost function with respect to $\lambda$.
**Input:**
Optimizer (select from [optimizers](#Optimizers)) with a [GCV cost function (G.OP2.004)](#GCV) and [$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"} = [$\lambda$(Q.OP1.013)](quantities.md#Lambda){:target="_blank"}
**Output:**
[$\lambda$(Q.OP1.013)](quantities.md#Lambda){:target="_blank"}| -- | -| G.OP3.003 | L-Curve criterion | -- | LCC | $\lambda$ is determined by minimizing the L-curve cost function with respect to $\lambda$.
**Input:**
Optimizer (select from [optimizers](#Optimizers)) with a [L-curve cost function (G.OP2.005)](#LC) and [$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"} = [$\lambda$(Q.OP1.013)](quantities.md#Lambda){:target="_blank"}.
**Output:**
[$\lambda$(Q.OP1.013)](quantities.md#Lambda){:target="_blank"}| -- | -| G.OP3.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.OP3.003 | L-Curve criterion | -- | LCC | $\lambda$ is determined by minimizing the L-curve cost function with respect to $\lambda$.
**Input:**
Optimizer  (select from [optimizers](#Optimizers)) with a  [L-curve cost function (G.OP2.005)](#LC) and [$\phi$ (Q.OP1.001)](quantities.md#MP){:target="_blank"} = [$\lambda$(Q.OP1.013)](quantities.md#Lambda){:target="_blank"}.
**Output:**
[$\lambda$(Q.OP1.013)](quantities.md#Lambda){:target="_blank"}| -- | +| G.OP3.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | ## Deconvolution @@ -52,28 +51,28 @@ | -- | -- | -- | -- | -- | -- | | G.DE1.001 | Discretization method | -- | -- | Method to transfer continuous models, functions and equations into discrete counterparts. Select from [Discretization methods](#Discretization methods).| -- | | G.DE1.002 | Regularization method | -- | -- | Method to control an excessively fluctuating function such that the coefficients do not take extreme values. This is done by adding an additional penalty term in the cost function. Select a regularized cost function from [Cost functions](#Cost functions).| -- | -| G.DE1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.DE1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | ### Deconvolution methods | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | -| G.DE2.001 | Singular Value Decomposition | -- | SVD | Algebraic deconvolution of $h(x) = f(x) \ast g(x)$ with $f(x)$ and $h(x)$ sampled at discrete points $[f(x), x]$ and $[g(x), x]$. The convolution equation is discretized according to a given discretization method and the resulting matrix equation is solved as a regularized least-squares problem with a given regularization method.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [f(x), x],
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [g(x), x],
Discretization method (select from [discretization methods](#Discretization methods) ),
[Regularization method](#Regularization method)
**Output**:
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [g(x), x]
| -- | -| G.DE2.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.DE2.001 | Singular Value Decomposition | -- | SVD | Algebraic deconvolution of $h(x) = f(x) \ast g(x)$ with $f(x)$ and $h(x)$ sampled at discrete points $[f(x), x]$ and $[g(x), x]$. The convolution equation is discretized according to a given discretization method and the resulting matrix equation is solved as a regularized least-squares problem with a given regularization method.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] =  [f(x), x],
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [g(x), x],
Discretization method (select from [discretization methods](#Discretization methods) ),
[Regularization method](#Regularization method)
**Output**:
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}] = [g(x), x]
 | -- | +| G.DE2.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | ### Discretization methods In this group, the following notation is assumed for all functions $f$: $f_n = f(x_n)$, $g_i^- = (2g_i + g_{i-1})/6$, $g_i^+ = (2g_i + g_{i+1})/6$ and $g_i^\pm = g_i^+ + g_i^-$. | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | -| G.DI1.001 | Numerical convolution (first order)| -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot \sum_{i=0}^{n} (g_i\cdot h_{n-i})$ | -- | -| G.DI1.002 | Block-circulant | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot(g_0h_n+g_1h_{n-1}+...+g_Nh_{n-N})$ .
This requires $h_i$ to be pre-padded with *N* zeros such that $h_{i < 0} = 0$.| Wu 2004 | -| G.DI1.003 | Volterra linear | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot (h_0g_n^+ +\sum_{i=1}^{n-1}h_{n-i}g_i^{\pm}+h_ng_0^+)$| Sourbron 2003 | -| G.DI1.004 | Singular | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot(\sum_{i=-\infty }^{+\infty }h_{n-i}g_i^\pm )$.
It is assumed that $g_i^\pm = 0$ for $i < 0$ and there is an index $k$ such that $h_n = 0$ for $n <- k$. | Ostergaard 1996 | -| G.DI1.005 | Hybrid | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \frac{\Delta x}{2}\cdot(\sum_{i=-\infty }^{+\infty}h_{n-i}(g_{i-1}+g_i))$. | Willats 2006 | -| G.DI1.006 | Exponential convolution | --| --| Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_{i+1}=e^{-x_i}f_i+g_iE_0(x_i)+a_i^\prime TE_1(x_i)$
with $x_i=\frac{t_{i+1}-t_i}{T}; a'_i=\frac{a_{i+1}-a}{t_{i+1}-t_i};\ E_0(x) = 1-e^{-x};\ E_1(x)=x-E_0(x)$. | Flouri 2016 | -| G.DI1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | +| G.DI1.001 | Numerical convolution (first order)| -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot \sum_{i=0}^{n} (g_i\cdot h_{n-i})$  | -- | +| G.DI1.002 | Block-circulant | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot(g_0h_n+g_1h_{n-1}+...+g_Nh_{n-N})$ .
This requires $h_i$ to be pre-padded with *N* zeros such that $h_{i < 0} = 0$.| [Wu et al. 2003](https://doi.org/10.1002/mrm.10522){target="_blank"} | +| G.DI1.003 | Volterra linear | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot (h_0g_n^+ +\sum_{i=1}^{n-1}h_{n-i}g_i^{\pm}+h_ng_0^+)$| [Sourbron et al. 2007](https://doi.org/10.1002/mrm.21182){target="_blank"} | +| G.DI1.004 | Singular | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \Delta x\cdot(\sum_{i=-\infty }^{+\infty }h_{n-i}g_i^\pm )$.
It is assumed that $g_i^\pm = 0$ for $i < 0$ and there is an index $k$ such that $h_n = 0$ for $n <- k$. | [Ostergaard et al. 1996](https://doi.org/10.1002/mrm.1910360510){target="_blank"} | +| G.DI1.005 | Hybrid | -- | -- | Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_n = \frac{\Delta x}{2}\cdot(\sum_{i=-\infty }^{+\infty}h_{n-i}(g_{i-1}+g_i))$. | [Willats et al. 2006](https://doi.org/10.1002/mrm.20760){target="_blank"} | +| G.DI1.006 | Exponential convolution | --| --| Convolutions
$f(x)=g(x) \ast h(x)$
are calculated as
$f_{i+1}=e^{-x_i}f_i+g_iE_0(x_i)+a_i^\prime TE_1(x_i)$
with $x_i=\frac{t_{i+1}-t_i}{T}; a'_i=\frac{a_{i+1}-a}{t_{i+1}-t_i};\ E_0(x) = 1-e^{-x};\ E_1(x)=x-E_0(x)$. | [Flouri et al. 2016](https://doi.org/10.1002/mrm.25872){target="_blank"} | +| G.DI1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage.  | -- | @@ -83,18 +82,18 @@ General processes applied to a given data set, e.g. processes to derive descript | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | | G.CD1.001 | Calculate value at data grid point | -- | Calc $f(x_i)$ | This process returns the data value $f(x_i)$ at the data grid point $x_i$.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[*i* (Q.GE1.003)](quantities.md#index){:target="_blank"}
**Output**:
[$f(x_i)$ (Q.CD1.001)](quantities.md#f(x_i)){:target="_blank"} | -- | -| G.CD1.002 | Calculate maximum of data | -- | Calc $f_{max}$ | This process returns the maximum data value $f_{max}$ .
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}
**Output**: [
$f_{max}$ (Q.CD1.002)](quantities.md#f_max){:target="_blank"} | --| +| G.CD1.002 | Calculate maximum of data | -- | Calc $f_{max}$  | This process returns the maximum data value $f_{max}$ .
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}
**Output**: [
$f_{max}$ (Q.CD1.002)](quantities.md#f_max){:target="_blank"} | --| | G.CD1.003 | Calculate data grid point of maximum data value | -- | Calc $x_{max}$ | This process returns the data grid point at which the maximum of a given data set occurs.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}]
**Output**:
[$x_{max}$ (Q.CD1.003)](quantities.md#x_max){:target="_blank"} | -- | -| G.CD1.004 | Calculate minimum of data | -- | Calc $f_{min}$ | This process returns the minimum data value $f_{min}$ .
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}
**Output**:
[$f_{min}$ (Q.CD1.004)](quantities.md#f_min){:target="_blank"} | --| +| G.CD1.004 | Calculate minimum of data | -- | Calc $f_{min}$  | This process returns the minimum data value $f_{min}$ .
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}
**Output**:
[$f_{min}$ (Q.CD1.004)](quantities.md#f_min){:target="_blank"} | --| | G.CD1.005 | Calculate data grid point of minimum data value | -- | Calc $x_{min}$ | This process returns the data grid point at which the minimum of a given data set occurs.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}]
**Output**:
[$x_{min}$ (Q.CD1.005)](quantities.md#x_min){:target="_blank"} | -- | | G.CD1.006 | Calculate value of final data point | -- | Calc $f_{fin}$ | This process returns the value of the data at the final data grid point.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}]
**Output**:
[$f_{fin}$ (Q.CD1.006)](quantities.md#f_fin){:target="_blank"} | -- | | G.CD1.007 | Calculate final data grid point | -- | Calc $x_{fin}$ | This process returns the last data grid point of a given data grid.
**Input:**
[Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}
**Output**:
[$x_{fin}$ (Q.CD1.007)](quantities.md#x_fin){:target="_blank"} | -- | -| G.CD1.008 | Calculate maximum deviation from baseline | --| Calc $\Delta f_{BL,max}$ | This process returns the maximum absolute deviation of a given data set and baseline.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Baseline value (Q.BL1.001)](quantities.md#f_BL){:target="_blank"}
**Output**:
[$\Delta f_{BL,max}$ (Q.CD1.008)](quantities.md#maxDev){:target="_blank"} | -- | -| G.CD1.009 | Derivative at data grid point | -- | Calc $\frac{df(x_i)}{dx}$ | This process returns the value of the derivative of a given data set at the data grid point xi.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[i (Q.GE1.003)](quantities.md#index){:target="_blank"}
**Output**:
[$\frac{df(x_i)}{dx}$ (Q.CD1.009)](quantities.md#Deriv){:target="_blank"}
| -- | -| G.CD1.010 | Calculate time to peak | -- | Calc $TTP$ | This process returns the time to peak for a given bolus arrival time and data grid point of maximum value.
**Input:**
[$x_{max}$ (Q.CD1.003)](quantities.md#x_max){:target="_blank"},
[$BAT$ (Q.BA1.001)](quantities.md#BAT){:target="_blank"}
**Output**:
[$TTP$ (Q.CD1.010)](quantities.md#TTP){:target="_blank"} | -- | -| G.CD1.011 | Calculate wash-in slope | -- | Calc $WIS$ | This process returns the wash-in-slope for a given baseline, maximum value and time to peak of a data set.
**Input:**
[$f_{max}$ (Q.CD1.002)](quantities.md#f_max){:target="_blank"},
[$f_BL$ (Q.BL1.001)](quantities.md#f_BL),
[$TTP$ (Q.CD1.010)](quantities.md#TTP){:target="_blank"}
**Output** :
[$WIS$ (Q.CD1.011)](quantities.md#WIS){:target="_blank"} | -- | +| G.CD1.008 | Calculate maximum deviation from baseline | --| Calc $\Delta f_{BL,max}$ | This process returns the maximum absolute deviation of a given data set and baseline.  
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Baseline value (Q.BL1.001)](quantities.md#f_BL){:target="_blank"}
**Output**:
[$\Delta f_{BL,max}$ (Q.CD1.008)](quantities.md#maxDev){:target="_blank"} | -- | +| G.CD1.009 | Derivative at data grid point | -- | Calc $\frac{df(x_i)}{dx}$ | This process returns the value of the derivative of a given data set at the data grid point xi.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[i (Q.GE1.003)](quantities.md#index){:target="_blank"}
**Output**:
[$\frac{df(x_i)}{dx}$ (Q.CD1.009)](quantities.md#Deriv){:target="_blank"}
 | -- | +| G.CD1.010 | Calculate time to peak | -- | Calc $TTP$ | This process returns the time to peak for a given bolus arrival time and data grid point of maximum value.
**Input:**
[$x_{max}$ (Q.CD1.003)](quantities.md#x_max){:target="_blank"},
[$BAT$ (Q.BA1.001)](quantities.md#BAT){:target="_blank"}
**Output**:
 [$TTP$ (Q.CD1.010)](quantities.md#TTP){:target="_blank"} | -- | +| G.CD1.011 | Calculate wash-in slope | -- | Calc $WIS$ | This process returns the wash-in-slope for a given baseline, maximum value and time to peak of a data set.
**Input:**
[$f_{max}$ (Q.CD1.002)](quantities.md#f_max){:target="_blank"},
[$f_BL$ (Q.BL1.001)](quantities.md#f_BL),
[$TTP$ (Q.CD1.010)](quantities.md#TTP){:target="_blank"}  
**Output** :
[$WIS$ (Q.CD1.011)](quantities.md#WIS){:target="_blank"}  | -- | | G.CD1.012 | Calculate wash-out slope | -- | Calc $WOS$ | This process returns the wash-out-slope for a given maximum value, final data value and the data grid points of the maximum and final data value of a data set.
**Input:**
[$f_{max}$ (Q.CD1.002)](quantities.md#f_max){:target="_blank"},
[$f_{fin}$ (Q.CD1.006)](quantities.md#f_fin){:target="_blank"},
[$x_{max}$ (Q.CD1.003)](quantities.md#x_max),
[$x_{fin}$ (Q.CD1.007)](quantities.md#x_fin){:target="_blank"}
**Output**:
[$WOS$ (Q.CD1.012)](quantities.md#WOS){:target="_blank"}| -- | -| G.CD1.013 | Calculate area under curve | -- | Calc $AUC_{x_{start}, x_{end}}$ | This process returns the integral of data on a data grid in between a range of data grid points $x_{start}$ and $x_{end}$.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[[$x_{start}$ (Q.GE1.013)](quantities.md#x_start){:target="_blank"}, [$x_{end}$ (Q.GE1.014)](quantities.md#x_end)]
**Output**:
[$AUC_{x_{start}, x_{end}}$ (Q.CD1.013)](quantities.md#AUC){:target="_blank"} | -- | +| G.CD1.013 | Calculate area under curve  | -- | Calc $AUC_{x_{start}, x_{end}}$ | This process returns the integral of data on a data grid in between a range of data grid points $x_{start}$ and $x_{end}$.
**Input:**
[[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, [Data grid (Q.GE1.001)](quantities.md#DataGrid){:target="_blank"}],
[[$x_{start}$ (Q.GE1.013)](quantities.md#x_start){:target="_blank"}, [$x_{end}$ (Q.GE1.014)](quantities.md#x_end)]
**Output**:
[$AUC_{x_{start}, x_{end}}$ (Q.CD1.013)](quantities.md#AUC){:target="_blank"} | -- | | G.CD1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | @@ -112,10 +111,10 @@ Processes related to segmentation are listed in this section. ### Segmentation methods | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | -| G.SE2.001 | Freehand | -- | -- | Manual freehand drawing of contours.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}
**Output**:
[Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | --| +| G.SE2.001 | Freehand | -- | -- | Manual freehand drawing of contours.
**Input:**
 [Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}
**Output**:
[Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | --| | G.SE2.002 | Threshold | -- | -- | This method selects all input data with values in a specified range between lower and upper threshold.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Lower threshold (Q.GE1.010)](quantities.md#L){:target="_blank"},
[Upper threshold (Q.GE1.011)](quantities.md#U){:target="_blank"}
**Output**:
[Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | -- | -| G.SE2.003 | Region growing | -- | -- | This method grows a region from selected seeds with values between the lower and upper value threshold in the neighborhood of the seeds.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Seeds (Q.SE1.004)](quantities.md#Seeds){:target="_blank"},
[Lower threshold (Q.GE1.010)](quantities.md#L){:target="_blank"},
[Upper threshold (Q.GE1.011)](quantities.md#U){:target="_blank"}
**Output**:
[Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | -- | -| G.SE2.004 | *K*-means clustering | -- | -- | This method partitions the input data in a number of clusters using the *K*-means clustering algorithm and selects the cluster with the ith index as binary mask.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Number of *K*-Means clusters (Q.SE1.005)](quantities.md#N_kMeans){:target="_blank"},
[*i* (Q.GE1.003)](quantities.md#index){:target="_blank"}
**Output**:
[Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | -- | +| G.SE2.003 | Region growing | -- | -- | This method grows a region from selected seeds with values between the lower and upper value threshold in the neighborhood of the seeds.  
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Seeds (Q.SE1.004)](quantities.md#Seeds){:target="_blank"},
[Lower threshold (Q.GE1.010)](quantities.md#L){:target="_blank"},
[Upper threshold (Q.GE1.011)](quantities.md#U){:target="_blank"}
**Output**:
[Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | -- | +| G.SE2.004 | *K*-means clustering | -- | -- | This method partitions the input data in a number of clusters using the *K*-means clustering algorithm and selects the cluster with the ith index as binary mask.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"},
[Number of *K*-Means clusters (Q.SE1.005)](quantities.md#N_kMeans){:target="_blank"},
[*i* (Q.GE1.003)](quantities.md#index){:target="_blank"}
**Output**:
 [Binary mask (Q.SE1.001)](quantities.md#BinMask){:target="_blank"} | -- | | G.SE2.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | @@ -148,16 +147,4 @@ Uncertainty estimation and statistics processes | Code | OSIPI name| Alternative names|Notation|Description|Reference| | -- | -- | -- | -- | -- | -- | | G.AV1.001 | Calculate Average | -- | CalcAverage | This process returns the average of input data according to a specified averaging method.
**Input:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}, Averaging method (select from [uncertainty estimation and statistics processes](#Uncertainty estimation and statistics processes)) e.g. [Calc $\bar{x}$ (G.US1.001)](#CalcMeanSample)
**Output:**
[Data (Q.GE1.002)](quantities.md#Data){:target="_blank"}| -- | -| G.AV1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | - - - - - - - - - - - - +| G.AV1.999 | Method not listed | -- | -- |This is a custom free-text item, which can be used if a method of interest is not listed. Please state a literature reference and request the item to be added to the lexicon for future usage. | -- | \ No newline at end of file