BHMSMA | R Documentation |
BHMSMA
is the main function that performs BHMSMA (Sanyal & Ferreira, 2012) of fMRI data, or other multiscale data, using wavelet-based prior that borrows strength across subjects and provides posterior smooth estimates of the effect sizes. Specifically, BHMSMA
constructs a 2D regression coefficient map (e.g., corresponding to a single brain slice) of a given regressor and returns its posterior smoothed version based on multi-subject or single subject analyses.
BHMSMA(n, grid, data, designmat, k, analysis="multi", truecoef=NULL, wave.family="DaubLeAsymm", filter.number=6, bc="periodic")
n |
Number of subjects. |
grid |
The number of voxels in one row (or column) of the brain slice of interest. Must be a power of 2. The total number of voxels is |
data |
The data in the form of an array with dimension |
designmat |
The design matrix used to generate the data. The rows must correspond to |
k |
Index of the regressor chosen for analysis, consistently with |
analysis |
"MSA" or "SSA", depending on whether performing multi-subject analysis or single subject analysis. |
truecoef |
If available, the true GLM coefficients in the form of an array with dimension |
wave.family |
The family of wavelets to use - "DaubExPhase" or "DaubLeAsymm". Default is "DaubLeAsymm". |
filter.number |
The number of vanishing moments of the wavelet. Default is 6. |
bc |
The boundary condition to use - "periodic" or "symmetric". Default is "periodic". |
The wavelet computations are performed by using the R package wavethresh.
A list containing the following.
GLMCoefStandardized |
An array of dimension |
GLMCoefSE |
An array of dimension |
WaveletCoefficientMatrix |
A matrix of dimension |
hyperparam |
A vector containing the estimates of the six hyperparameters. |
hyperparamVar |
Estimated covariance matrix of the hyperparameters. |
posteriorMixProb |
A matrix of dimension |
PostMeanWaveletCoef |
A matrix of size |
GLMcoefposterior |
An array of dimension |
MSE |
MSE of the posterior estimates of the GLM coefficients, if the true values of the GLM coefficients are available. |
Nilotpal Sanyal, Marco Ferreira
Maintainer: Nilotpal Sanyal <nilotpal.sanyal@gmail.com>
Sanyal, Nilotpal, and Ferreira, Marco A.R. (2012). Bayesian hierarchical multi-subject multiscale analysis of functional MRI data. Neuroimage, 63, 3, 1519-1531.
readfmridata
, glmcoef
, waveletcoef
, hyperparamest
, postmixprob
, postwaveletcoef
, substituteWaveletCoef
, postglmcoef
, imwd
, imwr
# BHMSMA multi-subject analysis for simulated (fMRI) # data at 4 timepoints over an 8x8 grid (of a brain # slice) for 3 subjects set.seed(1) n <- 3 grid <- 8 ntime <- 4 data <- array(rnorm(n*grid*grid*ntime), dim=c(n,grid,grid,ntime)) designmat <- cbind(c(1,1,1,1),c(1,0,1,0)) k <- 2 analysis <- "multi" BHMSMAmulti <- BHMSMA(n, grid, data, designmat, k, analysis) zlim = c(0,max(abs(BHMSMAmulti$GLMCoefStandardized))) par(mfrow=c(1,2)) image( abs(BHMSMAmulti$GLMCoefStandardized[1,,,k]), col=heat.colors(12),zlim=zlim,main="GLM coef map") image( abs(BHMSMAmulti$GLMcoefposterior[1,,]), col=heat.colors(12),zlim=zlim,main="GLM coef posterior map") ## Not run: # BHMSMA multi-subject analysis for simulated (fMRI) # data at 100 timepoints over an 64x64 grid (of a # brain slice) for 15 subjects # (takes ~12s in a 2.8 GHz Quad-Core Intel Core i7 processor) set.seed(1) n <- 15 grid <- 64 ntime <- 100 data <- array(rnorm(n*grid*grid*ntime), dim=c(n,grid,grid,ntime)) designmat <- cbind(rep(1,ntime),runif(ntime)) k <- 2 analysis <- "multi" system.time({BHMSMAmulti <- BHMSMA(n,grid,data, designmat,k,analysis)}) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.