Voxel Diffusion Profile Simulation and von Mises-Fisher Fibre Mapping

Share:

Description

The synthesized diffusion voxel profiles generated by synthfiberss2z are used to reconstruct ODF profiles. Three methods may be used for reconstruction: GQI, GQI2, and Q-ball. ODF profiles and fibre directions are estimated by relying on von Mises-Fisher (vMF) distributions for directional mapping.

Usage

1
2
3
simulglyph.vmf(gdi="gqi", s2grid=NULL, angles=c(20,100), depth=3, b=3000,
 lambda=NULL, order=4, sigma=NULL, clusterthr=0.6, savedir=tempdir(),
 showglyph=TRUE, aniso=NULL, logplot=TRUE, wi=NULL, ...)

Arguments

gdi

method of ODF reconstruction to use c("gqi", "gqi2", "sph") (default: "gqi").

s2grid

S2 shell grid, or other equivalent user specified grid. By default s2grid=NULL means that the grid is generated by s2tessel.zorder.

angles

angles in degrees of fibres to be used in simulation (default: two fibres with angles c(20,100)).

depth

sampling densities on the hemisphere used in simulation (default N=321; depth=3).

b

strength of the magnetic diffusion gradient (default b-value=3000).

lambda

model parameter: diffusion sampling length in gdi="gqi" and gdi="gqi2"; Aganj's regularization parameter in gdi="sph". By default the following default values are used when lambda=NULL is specified: 1.24 in "gqi", 3 in "gqi2", and 0.006 in "sph".

order

parameter associated with the order of the spherical harmonics approximation for gdi="sph" (default: 4).

sigma

Rician noise level used in simulation; (default NULL).

clusterthr

thresholding orientations based on ODF values at each voxel for directional clustering (default: 0.6).

savedir

directory for saving/loading processed results (default: tempdir()).

showglyph

logical variable controlling visualization of voxel glyphs (default: TRUE).

aniso

anisotropic parameter in the range "[0,1)" or NULL to use in ODF pos-processing default: NULL.

logplot

logical variable for selecting log-scale (default TRUE).

wi

weight given to fiber's volume fraction. Example for two fibers with different weights wi=c(0.7,0.3) (default NULL gives equal weigth to all fibers.)

...

optional specification of non-default control parameters as detailed in movMF.

Details

The "gdi" argument specifies the method of ODF reconstruction to use in the list c("gqi", "gqi2", "sph"). The number of fibres is automatically estimated from the diffusion profile. To decide on the number of components to select the Bayesian information criterion (BIC) is applied.

Value

simulglyph.vmf plots the reconstructed ODF profile together with the vMF-estimated fiber directions.

Author(s)

Adelino Ferreira da Silva, Universidade Nova de Lisboa, Faculdade de Ciencias e Tecnologia, Portugal, afs at fct.unl.pt

References

Ferreira da Silva, A. R. Computational Representation of White Matter Fiber Orientations, International Journal of Biomedical Imaging, Vol. 2013, Article ID 232143, Hindawi Publishing Corporation http://dx.doi.org/10.1155/2013/232143.

Ferreira da Silva, A. R. Facing the Challenge of Estimating Human Brain White Matter Pathways. In Proc. of the 4th International Joint Conference on Computational Intelligence (Oct. 2012), K. Madani, J. Kacprzyk, and J. Filipe, Eds., SciTePress, pp. 709-714.

Hornik, K., and Gruen, B. movMF: Mixtures of von Mises-Fisher Distributions, 2012. R package version 0.0-2.

Adler, D., and Murdoch, D. rgl: 3D visualization device system (OpenGL), 2012. R package version 0.92.880.

Barber, C. B., Habel, K., Grasman, R., Gramacy, R. B., Stahel, A., and Sterratt, D. C. geometry: Mesh generation and surface tessellation, 2012. R package version 0.3-2.

Tabelow K., Polzehl J.: dti: DTI/DWI Analysis, 2012. R package version 1.1-0.

See Also

synthfiberss2z, plotglyph, gqi.odfvmflines, rgbvolmap, gqi.odfpeaks, gqi.odfpeaklines, gqi.odfvxgrid, simul.fandtasia, simul.simplefield

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
## Not run: 
    ## Examples of synthetized voxel diffusion glyphs
    ## ODF glyphs, and vMF fiber orientation mapping 
    ## noise-free simulations and vMF estimation by GQI and QBI
    b <- 3000; angles <- c(20,110)
    simulglyph.vmf(angles=angles,b=b, gdi="gqi")
    simulglyph.vmf(angles=angles,b=b, gdi="gqi", logplot=FALSE)
    simulglyph.vmf(angles=angles,b=b, gdi="gqi2")
    simulglyph.vmf(angles=angles,b=b, gdi="gqi2", logplot=FALSE)
    ## test reconstruction with aniso factor
    simulglyph.vmf(angles=angles,b=b, gdi="gqi", aniso=0.5)
    ## Spherical harmonics model
    simulglyph.vmf(angles=angles,b=b, gdi="sph")
    simulglyph.vmf(angles=angles,b=b, gdi="sph", aniso=0.5)
    ## plot diffusion signal with "logplot=FALSE"
    angles <- 45; b <- 1500
    simulglyph.vmf(angles=angles,b=b, gdi="gqi",  logplot=FALSE)
    simulglyph.vmf(angles=angles,b=b, gdi="gqi2", logplot=FALSE)
    ## 2 direction, lower crossing-angles, higher b
    angles <- c(20,80); b <- 6000
    simulglyph.vmf(angles=angles,b=b, gdi="gqi")
    simulglyph.vmf(angles=angles,b=b, gdi="sph")
    ## 2 direction, different volume fractions
    simulglyph.vmf(angles=angles, b=b, wi=c(0.7, 0.3), clusterthr=0.4)
    ## 2 direction, low croosing angle
    angles <- c(20,65); b <- 6000
    simulglyph.vmf(angles=angles,b=b)
    ## 3 directions
    angles <- c(20,80,140); b <- 3000
    simulglyph.vmf(angles=angles,b=b)
    # 3 directions
    angles <- c(0,60,120); b <- 3000
    simulglyph.vmf(angles=angles,b=b)
    # 3 directions, different weights
    simulglyph.vmf(angles=angles,b=b, wi=c(0.25,0.25,0.5), clusterthr=0.4)
    ##------------------
    ## noisy simulations and vMF estimation by GQI and QBI
    b <- 3000; sigma <- 0.033
    angles <- c(20,110)
    simulglyph.vmf(angles=angles,b=b, sigma=sigma, gdi="gqi")
    simulglyph.vmf(angles=angles,b=b, sigma=sigma, gdi="sph")
    # 2 direction, lower crossing-angles, higher b
    angles <- c(20,80)
    simulglyph.vmf(angles=angles,b=b, sigma=sigma)
    ## 2 direction, low croosing angle
    angles <- c(20,65)
    simulglyph.vmf(angles=angles,b=b, sigma=sigma)
    # 3 directions
    angles <- c(20,80,140)
    simulglyph.vmf(angles=angles,b=b, sigma=sigma)
    # 3 directions
    angles <- c(0,60,120)
    simulglyph.vmf(angles=angles,b=b, sigma=sigma)
    ##------------------
    ## speeded up approximations: hardmax and common kappa
    ## 2 direction, low croosing angle
    b <- 4000; angles <- c(20,65) 
    simulglyph.vmf(angles=angles,b=b, clusterthr=0.4,
      E="hardmax", kappa = list(common = TRUE))
    ## 3 directions, different weights
    b <- 6000; angles <- c(0,60,120)
    simulglyph.vmf(angles=angles,b=b, wi=c(0.25,0.25,0.5),
      clusterthr=0.4, E="hardmax", kappa = list(common = TRUE))
    ## hardmax; numeric kappa
    simulglyph.vmf(angles=angles,b=b, wi=c(0.25,0.25,0.5), 
      clusterthr=0.4, E="hardmax", kappa = 40)

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.