1 Introduction

Diffusion-weighted magnetic resonance imaging has provided the opportunity for non-invasive investigation of neural architecture of the brain. Neuroscientists use this imaging technique to find out how neurons originating from one region in the brain connect to other regions and how well-defined those connections are. The quality of the results of such studies relies heavily on the chosen fiber representation and the reconstruction method, to trace neural pathways.

For studying the microstructure of fibers, we need a model to interpret the diffusion-weighted signal. There are two main categories for such models: parametric and non-parametric models. The simplest parametric model is the diffusion tensor describing a Gaussian estimate of the diffusion orientation and its strength in each voxel. Despite its robustness, this model is inadequate in cases where several fiber populations cross, join or split in one voxel [1, 2]. Several parametric models have been introduced for handling more complex diffusion patters such as mixtures of tensors [37], higher-order tensors [8], diffusion orientation transforms [9] and directional functions [1012]. When fitting the data, one must make certain assumptions about the model. For example, the number of components present in a particular voxel must be determined [13]. As seen in this paper, incorporating information from neighboring voxels helps in this process [14].

Usually non-parametric models contain more information about the diffusion pattern. Instead of estimating a discrete number of fibers as in parametric models, non-parametric techniques estimate the orientation distribution function (ODF) describing arbitrary fiber configurations. Q-ball imaging [15] was invented to compute the ODF estimation numerically using the Funk-Radon transform, and later on, the spherical harmonics would simplify computations by providing an analytic form [1618]. An algorithm for online direct estimation of single-tensor and harmonic coefficients using a linear Kalman filter has recently been introduced by [19]. Assuming a model for the signal response of a single fiber and using spherical deconvolution provides another approach for obtaining an ODF [2022, 11, 23]. Good reviews of both parametric and non-parametric models are found in [24, 25].

Different techniques try to reconstruct neural pathways using the mentioned models. For example, deterministic tractography methods directly follow the diffusion pathways. In the case of a single-tensor model, one continuously follows the principal diffusion direction [26]. Most multi-tensor techniques, on the other hand, try to find the number of fibers present in a voxel and to detect branching pathways [27, 6, 28]. Particle and Kalman filters have been used for path regularization in single-tensor streamline tractography [2931]. A further approach for regularizing single-tensor tractography uses a moving least squares estimate which is weighted with the previous tensor [32]. Probabilistic tractography is an alternative to deterministic path tracing methods. Typically these methods form probabilistic notions of the connectivity based on sampling individual paths; it is an approach that quantifies the uncertainty of connections [33, 34, 13, 35]. Based on these local models, a third class of algorithms has started to develop which attempts to optimize the fiber path instead of just the local model [3638].

While parametric methods directly describe the principal diffusion directions, interpreting the ODFs from model independent representations usually involves finding the number and orientation of principal diffusion directions present [3941]. For example, one approach is to deconvolve with a sharpening kernel before extracting maxima [25], while another approach decomposes a high-order tensor into several rank-1 tensors [42].

Almost all of the listed approaches try to fit the model at each voxel independent of other voxels, but tractography is a causal process, the next position on the fiber is always based on the diffusion found at the previous position. Based on the unscented Kalman filter, Malcolm et al. presented a filtering strategy that treats model estimation and tractography as a causal process [43, 44]. As the signal is examined at every new position, the filter recursively updates the underlying local model parameters. Thereby the filter provides the variance of that estimate and the most consistent direction in which the tractography is to be continued. Using causal estimation in this way yields inherent path regularization and accurate fiber resolution at crossing angles which is not found in independent optimization approaches. The work proposed in this paper uses this filtering strategy as foundation.

1.1 Our contributions

We take the approach of Malcolm et al. but change the underlying fiber model. The framework based on the unscented Kalman filter is generic and can be applied to arbitrary fiber models with a finite dimensional parameter space. The unscented Kalman filter is a good choice for the filter since the signal reconstruction is non-linear. Tractography works with the filter first finding the estimates of the model parameters and then propagating in the most consistent direction.

The existing method of [44] models the diffusion signal with a subset of Gaussian tensors where the second and third eigenvalues are identical, i.e., the diffusion ellipsoids are cylindrical. In this work, we extend this framework such that diffusion can be modeled by an arbitrary ellipsoid (no assumption on the eigenvalues).

By transforming these parameters, it is possible to describe the diffusion with three Euler angles and three eigenvalues. In our experiments, we compare both methods; in particular, we test the behavior in regions where crossing fiber populations are present.

Our implementation can model the diffusion signal with one, two or three Gaussian tensors. The method also enables tractography directly from the raw signal data without separate preprocessing or regularization steps.

2 Approach

Our approach traces neural fibers by using estimations from previous positions to guide the estimation at the current position. An unscented Kalman Filter is used in a loop that estimates the model at the current position, moves one step in the most consistent direction, and then starts estimating again. Recursive estimation improves the accuracy of resolving individual orientations and yields inherently smooth tracts despite the presence of noise and uncertainty. Each iteration begins with a near-optimal solution provided by the previous position's estimation, and therefore, the convergence of model fitting is improved and many local minima are naturally avoided.

First we explain in Section 2.1 how we model the signal with a mixture of tensors and how our fiber model works. Then we show in Section 2.3 how this model can be estimated using the unscented Kalman filter framework introduced in [43, 44].

2.1 Modeling local fiber orientations

In diffusion-weighted imaging, the contrast is connected to the strength of water diffusion. Our goal is to relate these signals to the underlying fiber model.

The water diffusion is measured in each voxel along a set of gradients, u 1 ,, u n S 2 (on the unit sphere). For each gradient, we record the corresponding signal, s = [s1, ..., s n ]T ∈ ℝn. For voxels containing several fiber populations, the diffusion pattern can generically be described by a mixture of several weighted Gaussian tensors. The signal values can then be written as:

s i = s 0 j w j e - b u i T D j u i
(1)

where s0 is the baseline signal which is obtained without applying any gradients, b is an acquisition-specific constant known as b-value (which is a measurement of the strength of the diffusion weighting), w j are convex weights, and D j is a tensor matrix characterizing the diffusion pattern.

Given the generic mixture model (1), we choose to work with two tensors. Our implementation also supports one or three tensors but several studies have shown that a two-fiber model performs best in our environment with b = 1000 s mm-2[4, 6, 28, 39, 7, 13]. Second, we decided to weigh both tensors equally as suggested in the study of [39]. At a first glance, this might seem to limit flexibility, but the unscented Kalman filter adjusts the eigenvalues to better fit the signal. This has almost the same effect as scaling the tensors [44].

With those assumptions we end up with the following formulation of the fiber model:

s i = s 0 1 2 e - b u i T D 1 u i + 1 2 e - b u i T D 2 u i
(2)

where D1, D2 can each be written as D = λ1mmT + λ2ppT + λ3qqT, with m , p , q S 2 forming an orthonormal basis aligned with the axes of the diffusion ellipsoid. Our implementation restricts each λ to be positive, and without loss of generality, we assume the eigenvalues in decreasing order, i.e., λ1λ2λ3. m is the principal diffusion direction since it corresponds to largest eigenvalue λ1. The model parameters are m 1, p 1, q 1, λ11, λ21, λ31, m2, p2, q2, λ12, λ22 and λ32. Malcolm et al. use a simplified model in [43, 44] where the second and third eigenvalues are equal, which yields the following formulation: D = λ1mmT + λ2 (ppT + qqT). Our model overcomes this simplification and allows for a better fit to the signal. At first, it appears that the large number of free parameters in our new model might be a drawback (the simpler model only has the parameters m1, λ11, λ21, m2, λ12 and λ22). But as we are about to show in Section 2.2 it is possible to represent the orientation of the diffusion tensor with Euler angles. Then we end up with six parameters per tensor, three Euler angles plus three eigenvalues (the existing simpler model stores the principal diffusion direction and two eigenvalues per tensor).

The formulation for the two-tensor model can directly be extended to a three-tensor version:

s i = s 0 1 3 j = 1 3 e - b u i T D j u i
(3)

which uses the additional parameters m3, p3, q3, λ13, λ23, λ33.

2.2 Tensor representation with Euler angles

We use singular value decomposition to rewrite the diffusion tensor matrix D (in this special case it is identical to using the eigenvalue decomposition since D is real, symmetric and positive-definite) which yields:

D = Q Λ Q T
(4)

with Q being a rotation matrix whose columns are the orthonormal eigenvectors of D and Λ being a diagonal matrix containing the eigenvalues:

Λ = λ 1 0 0 0 λ 2 0 0 0 λ 3
(5)

As in [45], we use the ZYZ Euler angle convention that allows splitting Q up into three individual rotations around the z-axis, the y-axis and around the z-axis again. The amount of the rotations is given by the Euler angles ϕ, θ, ψ:

Q = Q 1 1 Q 1 2 Q 1 3 Q 2 1 Q 2 2 Q 2 3 Q 3 1 Q 3 2 Q 3 3 = R z ( ϕ ) R y ( θ ) R z ( ψ )
(6)

where R y , R z are the rotation matrices around the y- and the z-axis, respectively:

R y ( Ω ) = cos ( Ω ) 0 sin ( Ω ) 0 1 0 - sin ( Ω ) 0 cos ( Ω ) R z ( Ω ) = cos ( Ω ) - sin ( Ω ) 0 sin ( Ω ) cos ( Ω ) 0 0 0 1
(7)

Fully written out, Q looks as follows:

Q 1 1 Q 2 1 Q 3 1 = cos ( ϕ ) cos ( θ ) cos ( ψ ) - sin ( ϕ ) sin ( ψ ) sin ( ϕ ) cos ( θ ) cos ( ψ ) + cos ( ϕ ) sin ( ψ ) - sin ( θ ) cos ( ψ )
(8)
Q 1 2 Q 2 2 Q 3 3 = - cos ( ϕ ) cos ( θ ) sin ( ψ ) - sin ( ϕ ) cos ( ψ ) sin ( ϕ ) cos ( θ ) sin ( ψ ) + cos ( ϕ ) cos ( ψ ) sin ( θ ) cos ( ψ )
(9)
Q 1 3 Q 2 3 Q 3 3 = cos ( ϕ ) sin ( θ ) sin ( ϕ ) sin ( θ ) cos ( θ )
(10)

Extracting the Euler angles from Q can be carried out as explained in [45]. θ = cos-1(Q33) is trivial, and then, if θ ≠ 0 the other two angles can be obtained through ϕ = atan2(Q23, Q13) and ψ = atan2(Q32, Q31), where atan2 is a function commonly defined in programming languages. Otherwise if θ = 0, ϕ and ψ are not uniquely determined. One solution is ψ = 0, and ϕ = atan2(-Q12, Q22) [45].

2.3 Estimating the fiber model

Given the scanned signal at a particular voxel, we want to estimate the underlying model parameters that best explain this signal. Every fiber is treated as a trajectory of a particle. At each step, we examine the measured signal, estimate the underlying model parameters, and propagate forward in the most consistent direction, which is the principal diffusion direction most aligned with the incoming vector.

Following we define the components used by the unscented Kalman filter:

  1. 1.

    The system state x: the model parameters

  2. 2.

    The state transition function f[·]: how the model changes as we trace the fiber

  3. 3.

    The observation function h[·]: how the signal appears given a particular state

  4. 4.

    The measurement y: the actual signal obtained from the scanner

The state vector is given by:

x = [ ϕ 1 θ 1 ψ 1 λ 1 1 λ 2 1 λ 3 1 ϕ 2 θ 2 ψ 2 λ 1 2 λ 2 2 λ 3 2 ] T
(11)

where ϕ, θ, ψ, ∈ ℝ and λ ∈ ℝ+. Since the local fiber configuration does not drastically change from one position to the next, we assume identity dynamics for the state transition function f [·]. Our observation h[·] is the signal reconstruction, s = [s1, ..., s n ]T which is given as the left hand side of (2). Using (6) and (4) allows to calculate the diffusion tensor matrix D from the Euler angles, which is then plugged into (2). The measurement y is the actual signal from the diffusion-weighted images. At subvoxel positions, we interpolate directly on the signal.

The signal reconstruction is a non-linear process, and therefore, we use an unscented Kalman filter. A Kalman filter tries to reconcile the predicted state of the system with the measured state. The prediction and measurement processes can be non-linear in the unscented version, whereas they are only linear in the classic Kalman filter. The extended Kalman filter would have been an alternative. However, the extended Kalman filter is only a first-order approximation whereas the unscented version is accurate up to the second-order moment of the state distribution. See [46, 47] for more details about the unscented Kalman filter, particularly [23] shows the superiority of the unscented Kalman filter over the extended Kalman filter.

Particle filters would be another approach for non-linear estimation, but their number of particles used is exponential to the state dimension n. In contrast, the unscented Kalman filter requires a linear number of particles (2n + 1 sigma points) and is therefore computationally less complex [43, 44] (especially in the three-tensor case). Further, the distribution of the state is not likely to be highly complex (which would warrant the use of a particle filter), and therefore, it can be sufficiently captured by the unscented Kalman filter.

The system of interest is at time t, and we have a Gaussian estimate of its current state with mean, x t ∈ ℝn, and covariance, P t ∈ ℝn × n. Prediction begins with the formation of a set sample states called sigma points, X t = {χ i } ⊂ ℝn of 2n + 1. Each of these states has an associated convex weight, w i ∈ ℝ. The covariance, P t , is used to deterministically distribute the sigma points around the current state:

χ 0 = x t w 0 = κ ( n + κ ) w i = w i + n = 1 2 ( n + κ ) χ i = x t + ( n + κ ) P t i χ i + n = x t - ( n + κ ) P t i
(12)

with [A] i denoting the ith column of matrix A and κ is an adjustable scaling parameter (we use κ = 0.01 in all our experiments). In a next step the sigma points are propagated through the state transition function, χ ^ =f [ χ ] n , and a new set of predicted sigma points is obtained: X t + 1 | t = { f [ χ i ] } = { χ ^ i } .

As mentioned, we assume that the fiber configuration does not change abruptly from one voxel to the next. This is modeled with an identity transition function: xt+1|t= f [x t ] = x t . Next, the predicted system mean state and covariance are predicted:

x ̄ t + 1 | t = i w i χ ^ i (1) P x x = i w i χ ^ i - x ̄ t + 1 | t χ ^ i - x ̄ t + 1 | t T + Q (2) (3)
(13)

where Q is the Kalman filter's process noise which ensures a non-null spread of sigma points and a positive-definite covariance. The explained sampling technique is known as the unscented transform, and it is used to estimate the behavior of a non-linear function. The sigma points are spread based on the current uncertainty, propagated and then their spread is measured.

The predicted observation is obtained by applying the unscented transform again, this time using the predicted states, Xt+1|t, to estimate what we expect to observe from the hypothetical measurement of each state: γ=h [ χ ^ ] m . Since the observation is the reconstructed signal, this step estimates the diffusion-weighted signal. Then, we calculate the predicted set of observations, Y t + 1 | t = { h [ χ ^ i ] } = { γ i } , and we obtain their mean and covariance,

y ̄ t + 1 | t = i w i γ ^ i (1) P y y = i w i γ ^ i - y ̄ t + 1 | t γ ^ i - y ̄ t + 1 | t T + R (2) (3)
(14)

where R is the observation noise of the Kalman filter. The cross-correlation between the estimated state and observation are calculated as:

P x y = i w i χ ^ i - x ̄ t + 1 | t γ ^ i - y ̄ t + 1 | t T
(15)

As in the classic linear Kalman filter, the final step uses the Kalman gain, K = P x y P y y - 1 , to correct the prediction and provide the final estimated system mean and covariance,

x t + 1 = x ̄ t + 1 | t + K ( y t - y ̄ t + 1 | t )
(16)
P t + 1 = P x x - K P y y K T
(17)

where y t ∈ ℝm is the actual signal measurement taken at this time.

In a few cases erroneous estimation of the reconstruction signal may result in fibers which do not exist in reality. A solution for detecting and removing such false positives was introduced in [48].

2.4 The algorithm

In summary we use the unscented Kalman filter to estimate the local model parameters as we trace each fiber. For each fiber, we store the position at which we are currently tracing it and the current estimate of its model parameters (mean and covariance). Each iteration of the algorithm predicts the new state (which is identity in our case): xt+1|t= x t . The observation y t in (16) is the diffusion-weighted signal coming from the scanner, s. With these, we use the above equations to find the new estimated model parameters, xt+1. Last, we use first-order forward Euler integration to move a small step in the most consistent principal diffusion direction, m, which is given as the first column of the rotation matrix Q, see (6). Afterward, the same is repeated for the new position. Fractional anisotropy (FA) [49] is a measurment of a diffusion tensor's anisotropy, and it is used as break condition for the tractography. A fiber is followed until the FA falls below a certain level (in our experiments meaning full FA thresholds lay in [0.1, 0.15]). The full procedure is presented in Algorithm (1).

Algorithm 1 Main tractography loop repeated for each fiber

  1. 1.

    Initialize x0 and P0

  2. 2.

    repeat

  3. 3.

       Form the sigma points X t around x t

  4. 4.

       Predict the new sigma points Xt+1|tand observations Yt+1|t

  5. 5.

       Compute weighted means and covariances, e.g. x ̄ t + 1 | t , P x y

  6. 6.

       Update estimate (xt+1, Pt+1) using scanner measurement y t

  7. 7.

       Obtain the tensors' principal diffusion directions from the state by putting the Euler angles into (8)

  8. 8.

       Use the principal diffusion direction m j most aligned to the incoming vector to proceed

  9. 9.

    until estimated model appears isotropic

For initializing x0 before the main loop of the algorithm is started, we use a one-tensor model which is easily derived from (1):

s i = s 0 e - b u i T D u i
(18)

This is an overdetermined system (assuming s0 is known and that more than 6 gradients are used, what commonly is the case), and the diffusion tensor matrix D can be obtained by using a least squares method. No matter how many tensors are used, the initial state of each tensor is the same. P0 is initialized as a diagonal matrix with small values (0.01I in our experiments, with I being the identity matrix).

3 Experiments

First, we use synthetically generated diffusion-weighted images to validate our technique against ground truth. We perform tractography through crossing fiber fields of different angles and examine the resulting orientations and branchings. Our new full two-tensor algorithm is compared with the existing simpler model of Malcolm et al. [43, 44] on the same synthetic crossings. For the comparison we measure several statistics to show that the full model performs better. Lastly in Section 3.3, we examine a real data set to demonstrate that our full model works on in vivo data too and that it finds fibers that do not appear with the simpler model (but are known to exist anatomically).

Note the importance of the matrices that inject process noise Q and observation noise R (see (13) and (14)). Their magnitude can be determined by the data itself by running our synthetic experiments with different values and choosing those that yield the best results. Usually the noise matrices are diagonal matrices. The process noise determines how much variance is allowed in the model: high values allow for more variation but if it gets too high the estimation could become inaccurate. We found that the best results are obtained with ,θ, ψ, ∈ [0.001, 0.002] and with qλ 1,2,3≈ 100 (those values are placed on Q's diagonal in the same order as the variables appear in the state x). These values allow an appropriate amount of angular and diffusive flexibility. The injected observation noise governs how much variance is expected in the measurement: higher values mean we expect more variance and hence trust our measurement less. For our experiments, we found r s ∈ [0.01, 0.03] to work quite well (R is also a diagonal matrix and all the values on the diagonal are r s ) but experimentation might be necessary since this value depends on the amount of physical noise present, which again varies depending on the scanner, protocol or pre-processing.

3.1 Synthetic fiber crossings

We generated synthetic MR signals according to (2) using {1700, 500, 300}μ m2 msec-1 (FA = 0.73) as the tensor's eigenvalues to form an anisotropic tensor at b = 1000 s mm-2. The used eigenvalues are typical for brain white matter. We use 81 gradient directions uniformly spread on the hemisphere. We assume s0 = 1, and we perform each experiment with two different levels of Rician noise (SNR ≈ 5 dB for low noise and SNR ≈ 20dB for high). We also ran all the experiments with b = 3000 s mm -2.

Since the algorithm depends on previous estimations, it is not enough to inspect individual voxels for testing. We construct a 2D field with crossings which the fiber has to navigate through. Figure 1a depicts a schematic of one such field with a 60° crossing. The fibers start on the left in a region with only one true fiber population present, and they try to find their way to the right side. In the middle the fibers encounter a region with crossing fibers at a fixed angle. Figure 1b shows the resulting fibers. In blue we present the simpler model and in red our new full model. The simpler model drifts off shortly after entering the crossing region while our full model maintains a straight path for longer. Outside the crossing region, where only one fiber exists, the second component is aligned with the first. The filter begins estimating a single-tensor until it hits the crossing region where the two components start to point in different directions. After the crossing both components will realign again. We generated a set of similar fields for crossings angles of [0°, 5°, ..., 90°].

Figure 1
figure 1

Synthetic tractography experiment testing the behavior of fibers crossing at a 60° angle. As can be seen, our full tensor model performs better. The background in (b) and (c) displays the FA from a single-tensor estimation. The crossing region's FA is lower and therefore darker. a Sketch of our synthetic testing scenario. Tractography is started on the left side in a one tensor region, and the fiber has to go through a crossing region in the middle. b Results of the tractography: The existing simpler model is displayed in blue and our proposed full model is seen in red. c Close-up of the area where the fibers enter the crossing region [yellow rectangle in (b)]. The principal diffusion directions of both tensors are displayed.

In Figure 1c we take a closer look at several points along the fibers as they enter the crossing region (the close-up area is marked with a yellow frame in Figure 1b). At every fiber point the principal diffusion directions of both tensors are shown. Again the simpler model is in blue and the full one in red. The principal diffusion directions adapt stepwise, until they are aligned 60° angle in the crossing region. Our full model adapts quicker than the simple model.

3.2 Measurements

Having verified the underlying behavior, we then began a more comprehensive evaluation. We measured the following three different statistics: the average angular error in the non-crossing regions, the average angular error in the crossing region, and the average absolute FA error. With angular error we mean the difference in angle between the principal diffusion directions of the tensors. The estimated values of each fiber point in a certain region (crossing or non-crossing) are compared to the ground truth, the difference is calculated, and the average is taken. The FA error is calculated over both regions at once.

Figure 2 shows the angular error in the non-crossing regions, Figure 3 depicts the angular error in the crossing region and Figure 4 displays the absolute FA error. Each graph plots the crossing angle, from 0° to 90°, versus the error. As mentioned we ran every experiment for two different noise levels and for b = 1000 s mm-2 and b = 3000 s mm-2. We seeded from 18 different voxels in each test scenario, and also, our crossing region is quite large as you can see in Figure 1. This guarantees a fair number of used tensors for averaging. In each graph the trendlines indicate the mean error while the bars indicate the standard deviation.

Figure 2
figure 2

These graphs depict the average angular error between the principal diffusion directions of all tensors and the ground truth in non-crossing regions. The simpler model's values are displayed in blue while our new full model is in red. Our full model yields a smaller error. a Angular error in non-crossing region with low noise on the left and high noise on the right, b = 1000 s mm-2. b Angular error in non-crossing region with low noise on the left and high noise on the right, b = 3000 s mm-2.

Figure 3
figure 3

These graphs depict the average angular error between the principal diffusion directions of all tensors and the ground truth in crossing region. The simpler model's values are displayed in blue while our new full model is in red. Our full model yields a smaller error. a Angular error in crossing region with low noise on the left and high noise on the right, b = 1000 s mm-2. b Angular error in crossing region with low noise on the left, and high noise on the right, b = 3000 s mm-2.

Figure 4
figure 4

Here we present average absolute FA error of all tensors. The FA obtained from the estimated eigenvalues are compared the constant ground truth ({1700, 500, 300}μ m2 msec-1 as eigenvalues which yields FA = 0.73). The simpler model's values are displayed in blue while our new full model is in red. Our model's estimated FA values are more constant and precise than those of the simpler model. a Absolute FA error with low noise on the left, and high noise on the right, b = 1000 s mm-2. b Absolute FA error with low noise on the left, and high noise on the right, b = 3000 s mm-2.

The graphs for the angular errors show that our new full model generally performs better. In the non-crossing region our model is more stable, especially for the cases with higher crossing angles of 60°-90°. For these angles the simpler model's error raises quickly while our full model is almost constant. In the crossing region the full model performs better for lower angles 0°-45°. Working with different b-values or with a different noise levels does not significantly change the errors. The absolute FA error is lower and yields a lower variance with our new full tensor algorithm (see Figure 4). This is the expected result of having independent second and third eigenvalues. In the simpler model the second and third eigenvalues have to be identical, which makes it more difficult to match the signal.

3.3 In vivo tractography

We tested our approach also on a real human brain scan which was weighted with 51 gradients directions. The diffusion-weighted images have a voxel size of 1.66 × 1.66 × 1.7 mm2 and b = 900 s mm-2. Figure 5 shows the results from a tractography started in the right Thalamus of the human brain. The blue fibers were obtained with the simpler fiber model whereas the red fibers were traced with our new full model. At a first glance both methods seem similar but the separated close-ups in Figure 5b, c show that our approach finds fibers in certain areas where the simpler model stops.

Figure 5
figure 5

This is an example of the fiber bundles obtained from an in vivo data set. The tractography was seeded in the right Thalamus in the brain. a The result of the tractography. The simpler model is displayed in blue and the new model in red. Close-ups of the marked area are shown in (b) and (c). b Close-up of the simpler model of the marked region. c Close-up of the full model of the marked region.

4 Conclusions

We used the tractography framework of Malcolm et al. [43, 44] which is built on an unscented Kalman filter and extended the used fiber model. By changing the fiber model and allowing it to have three different, independent eigenvalues, the tractography procedure was improved and the angular and FA errors were minimized. By representing the orientation of the diffusion ellipsoid with Euler angles, the Kalman filter's state only contains one variable more per tensor than the simpler model. The small increase in calculation time due to this additional variable is negligible. We confirm that using a causal filter for tractography performs much better than independent alternatives. We believe that exploring more alternative fiber models and plugging them into the filtering framework will provide new insights into neural pathways and that they, ultimately, will enhance non-invasive diagnosis of human brains. Furthermore, exploring filtering techniques other than the unscented Kalman filter might yield promising results.