◆ FORGE Suite
GitHubMechanical Neuroimaging Lab · Univ. of Delaware
Skip to content

How to Add DTI Fiber Directions

Four of Sentinel's material models need a fibre direction at every element: Orthotropic, TransverseIsotropicV1, TransverseIsotropicV2, and GeneralizedAnisotropic. Supply them from a co-registered DTI acquisition.

Check any model with uses_fiber_directions. The isotropic and poroelastic models return false and need no fibre data — skip this page.

1. Process the DTI volume

julia
using Sentinel

dti_data = process_dti("dti_data.mat", size(mre_data.Ur)[1:3])

The second argument is the MRE volume's spatial dimensions; process_dti resamples the DTI volume onto that grid. The resulting DTIData holds the principal eigenvector field (V1) and the fractional anisotropy (FA).

The DTI volume must already be co-registered with the MRE acquisition. Sentinel resamples, but it does not register.

2. Interpolate the directions onto the mesh

interpolate_fiber_directions assigns one direction per element, taken from the DTI voxel nearest that element's centroid:

julia
fiber_dirs = interpolate_fiber_directions(dti_data, grid, voxel_size;
                                          origin = mesh_origin)
  • grid is the Ferrite grid — hex_mesh_result.grid if you generated the mesh with generate_hex_mesh.

  • voxel_size is the DTI voxel size, and origin is the physical coordinate of the first DTI voxel centre.

Match the units to the grid

voxel_size and origin must be in the same units as the grid's node coordinates, because the mapping is computed as (centroid - origin) / voxel_size. A mesh from generate_hex_mesh has node coordinates in metres, whereas MREData.voxel_size is in millimetres — convert before passing it, or every element will map to the same voxel.

3. Use them in the inversion

Pass fiber_dirs through your problem setup along with a model that consumes them. Models that do not take fibre directions ignore the field — see How to Choose a Material Model for which models need it.

Notes

  • Fractional anisotropy is carried through so you can mask or weight by it; low-FA voxels have an unreliable principal direction.

  • The fibre direction enters the constitutive law as the unit vector n. See the Mathematical Reference for how each anisotropic model uses it.