Learn R Programming

BayesBrainMap

R package BayesBrainMap implementing Bayesian brain mapping for individual functional topography and connectivity

This package contains functions implementing the BrainMap model proposed in Mejia et al. (2019) and the spatial BrainMap model proposed in proposed in Mejia et al. (2020+). (Previously, these models were named “Template ICA” and were contained in the package templateICAr.) For both models, subject-level brain networks are estimated as deviations from known population-level networks, which can be estimated using standard ICA algorithms or provided as a parcellation. Both models employ an expectation-maximization algorithm for estimation of the latent brain networks and unknown model parameters.

BrainMap consists of three steps. The main functions associated with each step are listed below.

  1. Prior estimation: estimate_prior. Can export the results with export_prior.
  2. BrainMap model estimation (single-subject): BrainMap.
  3. Identification of areas of engagement in each network (or deviation from the prior mean): engagements.

Citation

If you use BayesBrainMap please cite the following papers:

NameAPA Citation
BrainMapMejia, A. F., Nebel, M. B., Wang, Y., Caffo, B. S., & Guo, Y. (2020). Template Independent Component Analysis: targeted and reliable estimation of subject-level brain networks using big data population priors. Journal of the American Statistical Association, 115(531), 1151-1177.
Spatial BrainMapMejia, A. F., Bolin, D., Yue, Y. R., Wang, J., Caffo, B. S., & Nebel, M. B. (2022). Template Independent Component Analysis with spatial priors for accurate subject-level brain network estimation and inference. Journal of Computational and Graphical Statistics, (just-accepted), 1-35.

You can also obtain citation information from within R like so:

citation("BayesBrainMap")

Installation

You can install the development version of BayesBrainMap from Github with:

# install.packages("devtools")
devtools::install_github("mandymejia/BayesBrainMap")

Important Notes on Dependencies:

To analyze or visualize CIFTI-format data, BayesBrainMap depends on the ciftiTools package, which requires an installation of Connectome Workbench. It can be installed from the HCP website.

For fitting the BrainMap model with surface-based priors (spatial_model=TRUE in BrainMap()), INLA is required. Due to a CRAN policy, INLA cannot be installed automatically. You can obtain it by running install.packages("INLA", repos=c(getOption("repos"), INLA="https://inla.r-inla-download.org/R/stable"), dep=TRUE). Alternatively, dep=FALSE can be used along with manual installation of dependencies as necessary to avoid installing all of the many INLA dependencies, most of which are not actually required. Binaries for alternative Linux builds can be added with the command inla.binary.install(). Note that INLA is not required for standard BrainMap.

Depending on the analysis, PARDISO may reduce computation time. To obtain a free academic license forINLA-PARDISO, run inla.pardiso() in R after running library(INLA). Provide an academic email address. Once you obtain a license, point to it using INLA::inla.setOption(pardiso.license = "pardiso.lic") followed by INLA::inla.pardiso.check() to ensure that PARDISO is successfully installed and running.

Copy Link

Version

Install

install.packages('BayesBrainMap')

Version

0.1.3

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Amanda Mejia

Last Published

July 4th, 2025

Functions in BayesBrainMap (0.1.3)

check_parallel_packages

Check for required parallel packages
bdiag_m

Block diagonal matrix
UpdateThetaSQUAREM_BrainMap

Update theta SQUAREM
TR_param

TR
estimate_nu

Universally estimate IW dof parameter nu based on method of moments, so that no empirical variance is under-estimated
estimate.ESS

Estimation of effective sample size
engagements

Engagements of (spatial) Bayesian brain mapping
compute_mu_s

Compute posterior mean and precision of s
compute_LL_std

Compute LL for EM Bayesian brain mapping
estimate_nu_matrix

Estimate IW dof parameter nu based on method of moments
estimate_prior

Estimate prior
lik

Compute likelihood in SPDE model for ESS estimation
dual_reg2

Dual Regression wrapper
estimate_prior_from_DR_two

Estimate prior from DR estimates (when there are two measurements)
compute_R_inv

Compute SPDE and prior precision matrices for S
estimate_prior_FC

Estimate FC prior
estimate_prior_from_DR

Estimate prior from DR
export_prior

Export prior
make_Pmat

Make permutation matrix
plot.bMap_eng.cifti

Plot engagements
plot.bMap.nifti

Plot prior
dim_reduce

PCA-based Dimension Reduction and Prewhitening
hpf_param

hpf
summary.bMap_eng.nifti

Summarize a "bMap_eng.nifti" object
summary.prior.matrix

Summarize a "prior.matrix" object
summary.prior.gifti

Summarize a "prior.gifti" object
resample_prior

Resample CIFTI prior
scale_Param

scale
plot.prior.cifti

Plot prior
make_mask

Create a mask based on vertices that are invalid
halflogdetX

Half log determinant
format_engagement_name

Format engagement name
loglik_kappa_est

Kappa log-likelihood
summary.prior.cifti

Summarize a "prior.cifti" object
var_sq_err

Compute the error between empirical and theoretical variance of covariance matrix elements
plot.bMap.cifti

Plot BrainMap estiamte
plot.bMap.matrix

Plot prior
var_sq_err_constrained

Compute the overall error between empirical and theoretical variance of CORRELATION matrix elements
VB_FCBrainMap

VB_FCBrainMap
rm_nuisIC

Remove nuisance ICs from data
plot.prior.gifti

Plot prior
make_mesh

Make INLA mesh from "surf" object
get_FORMAT

Get FORMAT from format
norm_BOLD

Normalize BOLD data
getInvCovAR

Compute inverse covariance matrix for AR process (up to a constant scaling factor)
sqrt_XtX

Compute matrix square root of X'X
make_mesh_2D

Make 2D INLA mesh
plot.prior.nifti

Plot prior
pw_estimate

Estimate residual autocorrelation for prewhitening
summary.bMap_eng.cifti

Summarize a "bMap_eng.cifti" object
plot.prior.matrix

Plot prior
orthonorm

Orthonormalizes a square, invertible matrix
struct_prior

Apply data structure to priors
summary.bMap.matrix

Summarize a "bMap.matrix" object
summary.bMap.cifti

Summarize a "bMap.cifti" object
update_S

Update S for VB FC Bayesian brain mapping
update_A_Chol

Update A for VB FC Bayesian brain mapping using Cholesky prior for FC
removebs_prior

Remove brain structure from CIFTI prior
summary.bMap.nifti

Summarize a "bMap.nifti" object
summary.prior.nifti

Summarize a "prior.nifti" object
update_tau2

Update tau for VB FC Bayesian brain mapping
summary.bMap_eng.matrix

Summarize a "bMap_eng.matrix" object
varTol_Param

varTol
update_A

Update A for VB FC Bayesian brain mapping using IW prior on FC
EM_BrainMap

EM Algorithms for Bayesian brain maps
BrainMap

Bayesian brain mapping
LL2_kappa

Compute part of kappa log-likelihood
Chol_samp_fun

Cholesky-based FC sampling
IW_var

Compute theoretical Inverse-Wishart variance of covariance matrix elements
IW_var_cor

Compute theoretical Inverse-Wishart variance of correlation matrix elements
GSR_Param

GSR
LL_SQUAREM

Log-likelihood SQUAREM
INLA_check

Check for INLA
Q2_max_check

Check Q2_max
bdiag_m2

Bdiag m2
UpdateTheta_BrainMap

Parameter Estimates in EM Algorithm for Bayesian brain map
add_str

Combine additive terms in string
check_req_ifti_pkg

Check required packages for the data format