eanatDef.Rd
Simplified, low-parameter eigenanatomy implemented with deflation. The
algorithm is able to automatically select hidden sparseness
parameters, given the key parameter nvecs
. The user should select the
cthresh
and smoother
regularization parameters for a given
application and also based on observing algorithm behavior when
verbose=TRUE
.
eanatDef( inmat, nvecs = 0, mask = NULL, smoother = 0, cthresh = 0, its = 5, eps = 0.1, positivity = FALSE, priors = NA, priorWeight = 0, sparEpsilon = 0.0001, whiten = FALSE, verbose = FALSE )
inmat | input matrix |
---|---|
nvecs | number of eigenanatomy vectors to compute. see
|
mask | input mask, must match matrix |
smoother | regularization parameter, typically 0 or 0.5, in voxels |
cthresh | remove isolated voxel islands of size below this value |
its | number of iterations |
eps | gradient descent parameter |
positivity | return unsigned eigenanatomy vectors |
priors | external initialization matrix. |
priorWeight | weight on priors in range 0 to 1. |
sparEpsilon | threshold that controls initial sparseness estimate |
whiten | use ICA style whitening. |
verbose | controls whether computation is silent or not. |
matrix is output, analogous to svd(mat,nu=0,nv=nvecs)
Kandel, B. M.; Wang, D. J. J.; Gee, J. C. & Avants, B. B. Eigenanatomy: sparse dimensionality reduction for multi-modal medical image analysis. Methods, 2015, 73, 43-53. PS Dhillon, DA Wolk, SR Das, LH Ungar, JC Gee, BB Avants Subject-specific functional parcellation via Prior Based Eigenanatomy NeuroImage, 2014, 99, 14-27.
Avants BB, Tustison NJ
if (FALSE) { mat <- matrix(rnorm(2000),ncol=50) nv <- eanatSelect( mat, selectorScale = 1.2 ) esol <- eanatDef( mat, nvecs=nv ) es2 <- sparseDecom( mat, nvecs = nv ) print( paste( "selected", nrow(esol),'pseudo-eigenvectors') ) print( mean( abs( cor( mat %*% t(esol)) ) ) ) # what we use to select nvecs networkPriors = getANTsRData("fmrinetworks") ilist = networkPriors$images mni = antsImageRead( getANTsRData("mni") ) mnireg = antsRegistration( meanbold*mask, mni, typeofTransform = 'Affine') for ( i in 1:length(ilist) ) ilist[[i]] = antsApplyTransforms( meanbold,ilist[[i]],mnireg$fwdtransform ) pr = imageListToMatrix( ilist, cortMask ) esol <- eanatDef( boldMat, nvecs = length(ilist), cortMask, verbose=FALSE, cthresh = 25, smoother = 0, positivity = TRUE, its=10, priors=pr, priorWeight=0.15, eps=0.1 ) }