Tractography algorithms

The library provides several algorithms to compute the streamlines. More precisely, assume that we are given a field of fibre orientation distribution functions (FODF)

\[\bm u\to ODF(\bm x,\bm u)\]

where $ODF(\bm x,\cdot)$ is the distribution of directions at position $\bm x$.

In practice, to prevent sharp direction changes, the full FODF is not considered at a given step. Typically, a new direction is obtained by sampling the FODF in a cone around the previous direction. This can represented as a modification of the incoming direction $\bm{u} \in \mathbb{S}^2$

\[g(\bm{x}, \bm{u}, \bm{u}') = \frac{1}{N(\bm{x}, \bm{u})}f(\bm{x}, \bm{u}')c(\bm{u}, \bm{u}')\]

where $c(\bm{u}, \bm{u}') \in \mathbb{R}^+$ is non–zero in a cone around $\bm{u}$ and $N(\bm{x}, \bm{u}) \in \mathbb{R}^+$ is a normalization factor that ensures

\[\int_{\mathbb{S}^2}g(\bm{x}, \bm{u}, \bm{u}')d\bm{u}' = 1.\]

Cone

The cone function is passed to a TMC via Tractography.TMC. The TMC also determine how the FODF are computed, see SH evaluation.

1. Deterministic

The algorithm alg = Deterministic() (see Tractography.Deterministic) implements the following situation. We compute a sequence $(\bm x_i, \bm u_i)_i$ such that

\[\bm x_{i+1} = \bm x_i + \Delta s \bm u_i\]

\[\bm u_{i+1} = \argmax g(\bm x_i, \cdot)\]

2. Probabilistic

The algorithm alg = Probabilistic() (see Tractography.Probabilistic) implements the following situation. We compute a sequence $(\bm x_i, \bm u_i)_i$ such that

\[\bm x_{i+1} = \bm x_i + \Delta s \bm u_i\]

\[\bm u_{i+1} \sim g(\bm x_i, \bm u_i, \cdot)\]