Learn R Programming

gdimap (version 0.1-9)

simulglyph.vmf: Voxel Diffusion Profile Simulation and von Mises-Fisher Fibre Mapping

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

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.

Value

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

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.

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

Run this code
## 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)

Run the code above in your browser using DataLab