Note
Go to the end to download the full example code.
Image-based meta-analysis algorithms
A tour of IBMA algorithms in NiMARE.
This tutorial is intended to provide a brief description and example of each of the IBMA algorithms implemented in NiMARE. For a more detailed introduction to the elements of an image-based meta-analysis, see other stuff.
from nilearn.plotting import plot_stat_map
Download data
Note
The data used in this example come from a collection of NIDM-Results packs downloaded from Neurovault collection 1425, uploaded by Dr. Camille Maumet.
from nimare.extract import download_nidm_pain
dset_dir = download_nidm_pain()
Load Studyset
import os
from pprint import pprint
from nimare.nimads import Studyset
from nimare.transforms import ImageTransformer
from nimare.utils import get_resource_path
studyset_file = os.path.join(get_resource_path(), "nidm_pain_studyset.json")
studyset = Studyset(studyset_file, target="mni152_2mm")
studyset.update_path(dset_dir)
# Calculate missing images
xformer = ImageTransformer(target=["varcope", "z"])
studyset = xformer.transform(studyset)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:355: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
se = masker.transform(available_data["se"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/transforms.py:310: UserWarning: imgs are being resampled to the mask_img resolution. This process is memory intensive. You might want to provide a target_affine that is equal to the affine of the imgs or resample the mask beforehand to save memory and computation time.
t = masker.transform(available_data["t"])
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/latest/lib/python3.13/site-packages/nilearn/image/image.py:540: RuntimeWarning: overflow encountered in scalar negative
infinity_norm = max(-data.min(), data.max())
Stouffer’s
from nimare.meta.ibma import Stouffers
meta = Stouffers(use_sample_size=False)
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}) on 21 z-statistic images using the '
'Stouffer method \\citep{stouffer1949american}.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{stouffer1949american,\n'
' title={The american soldier: Adjustment during army life.(studies in '
'social psychology in world war ii), vol. 1},\n'
' author={Stouffer, Samuel A and Suchman, Edward A and DeVinney, Leland C '
'and Star, Shirley A and Williams Jr, Robin M},\n'
' journal={Studies in social psychology in World War II},\n'
' year={1949},\n'
' publisher={Princeton Univ. Press}\n'
'}')
Stouffer’s with weighting by sample size
meta = Stouffers(use_sample_size=True)
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}) on 21 z-statistic images using the '
'Stouffer method \\citep{stouffer1949american}, with studies weighted by the '
'square root of the study sample sizes, per \\cite{zaykin2011optimally}.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{stouffer1949american,\n'
' title={The american soldier: Adjustment during army life.(studies in '
'social psychology in world war ii), vol. 1},\n'
' author={Stouffer, Samuel A and Suchman, Edward A and DeVinney, Leland C '
'and Star, Shirley A and Williams Jr, Robin M},\n'
' journal={Studies in social psychology in World War II},\n'
' year={1949},\n'
' publisher={Princeton Univ. Press}\n'
'}\n'
'@article{zaykin2011optimally,\n'
' title={Optimally weighted Z-test is a powerful method for combining '
'probabilities in meta-analysis},\n'
' author={Zaykin, Dmitri V},\n'
' journal={Journal of evolutionary biology},\n'
' volume={24},\n'
' number={8},\n'
' pages={1836--1841},\n'
' year={2011},\n'
' publisher={Wiley Online Library},\n'
' url={https://doi.org/10.1111/j.1420-9101.2011.02297.x},\n'
' doi={10.1111/j.1420-9101.2011.02297.x}\n'
'}')
Fisher’s
from nimare.meta.ibma import Fishers
meta = Fishers()
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}) on 21 z-statistic images using the '
'Fisher combined probability method \\citep{fisher1946statistical}.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{fisher1946statistical,\n'
' title={Statistical methods for research workers.},\n'
' author={Fisher, Ronald Aylmer and others},\n'
' journal={Statistical methods for research workers.},\n'
' number={10th. ed.},\n'
' year={1946},\n'
' publisher={Oliver and Boyd}\n'
'}')
Fisher’s with weighting by sample size
Each study receives a weighted-Fisher coefficient equal to its sample size. Note that
this is a different weighting family from Stouffer’s use_sample_size, which uses
the square root of the sample size.
meta = Fishers(use_sample_size=True)
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}) on 21 z-statistic images using the '
'Fisher combined probability method \\citep{fisher1946statistical}. Studies '
'received weighted-Fisher coefficients equal to sample size.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{fisher1946statistical,\n'
' title={Statistical methods for research workers.},\n'
' author={Fisher, Ronald Aylmer and others},\n'
' journal={Statistical methods for research workers.},\n'
' number={10th. ed.},\n'
' year={1946},\n'
' publisher={Oliver and Boyd}\n'
'}')
Permuted OLS
from nimare.correct import FWECorrector
from nimare.meta.ibma import PermutedOLS
meta = PermutedOLS(two_sided=True)
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
corrector = FWECorrector(method="montecarlo", n_iters=100, n_cores=1)
cresult = corrector.transform(results)
plot_stat_map(
cresult.get_map("z_level-voxel_corr-FWE_method-montecarlo"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(cresult.description_)
print("References:")
pprint(cresult.bibtex_)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}), on 21 beta images using a permuted '
"ordinary least squares method derived from Nilearn's "
'\\citep{10.3389/fninf.2014.00014}. Family-wise error rate correction was '
'performed with a max-statistic null distribution generated by sign-flipping '
"each group's contribution as one exchangeability block "
'\\citep{winkler2014permutation}, following the permutation scheme of '
'\\cite{freedman1983nonstochastic}. The maximum was taken over z-statistics, '
'so that voxels backed by different numbers of images contribute on a common '
'scale. 100 iterations were performed to generate the null distribution.')
References:
('@article{10.3389/fninf.2014.00014,\n'
' title={Machine learning for neuroimaging with scikit-learn},\n'
' author={Abraham, Alexandre and Pedregosa, Fabian and Eickenberg, Michael '
'and Gervais, Philippe and Mueller, Andreas and Kossaifi, Jean and Gramfort, '
'Alexandre and Thirion, Bertrand and Varoquaux, Gael},\n'
'\tjournal={Frontiers in Neuroinformatics},\n'
'\tvolume={8},\n'
'\tyear={2014},\n'
'\turl={https://www.frontiersin.org/article/10.3389/fninf.2014.00014},\n'
'\tdoi={10.3389/fninf.2014.00014},\n'
'\tissn={1662-5196}\n'
'}\n'
'@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{freedman1983nonstochastic,\n'
' title={A nonstochastic interpretation of reported significance levels},\n'
' author={Freedman, David and Lane, David},\n'
' journal={Journal of Business \\& Economic Statistics},\n'
' volume={1},\n'
' number={4},\n'
' pages={292--298},\n'
' year={1983},\n'
' publisher={Taylor \\& Francis}\n'
'}\n'
'@article{winkler2014permutation,\n'
' title={Permutation inference for the general linear model},\n'
' author={Winkler, Anderson M. and Ridgway, Gerard R. and Webster, Matthew '
'A. and Smith, Stephen M. and Nichols, Thomas E.},\n'
' journal={NeuroImage},\n'
' volume={92},\n'
' pages={381--397},\n'
' year={2014},\n'
' publisher={Elsevier},\n'
' doi={10.1016/j.neuroimage.2014.01.060}\n'
'}')
Sample-size-weighted permuted OLS
When one study contributes several beta maps, treating them as independent gives
that study disproportionate weight. PermutedOLS groups by study_id by
default: one mean contribution per study, sign-flipped as a whole exchangeability
block. use_sample_size=True also weights each study by its participant count,
with a CR2 cluster-robust variance.
meta = PermutedOLS(two_sided=True, use_sample_size=True)
results = meta.fit(studyset)
cresult = corrector.transform(results)
plot_stat_map(
cresult.get_map("z_level-voxel_corr-FWE_method-montecarlo"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(cresult.description_)
print("References:")
pprint(cresult.bibtex_)

/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.65). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.69). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.74). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.00). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.87). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.82). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.69). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.91). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.79). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.98). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.80). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.63). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.94). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.99). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.98). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.90). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.95). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.95). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.00). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.96). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.77). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.93). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.72). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.00). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.91). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.89). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.46). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.66). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.61). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.84). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.93). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.39). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.59). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.78). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.87). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.94). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.86). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.81). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.67). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.80). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.76). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.88). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.84). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.26). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.45). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.92). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.85). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.57). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.87). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.98). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 3.72). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 1.93). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/_permutation.py:186: UserWarning: Satterthwaite degrees of freedom below 4.0 for predictor(s) [0] (smallest 2.75). The approximation is only known to control the Type I error rate above about that value, so the corresponding p-values and intervals are outside their validated range and should be read as a diagnostic rather than a result. This usually means a group-level predictor is carried by very few groups; more groups on the scarce side of the predictor is the remedy, not a different estimator.
satterthwaite_dof(
Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}), on 21 beta images using a permuted '
"ordinary least squares method derived from Nilearn's "
'\\citep{10.3389/fninf.2014.00014}. Each group was weighted by its sample '
'size. Family-wise error rate correction was performed with a max-statistic '
"null distribution generated by sign-flipping each group's contribution as "
'one exchangeability block \\citep{winkler2014permutation}, following the '
'permutation scheme of \\cite{freedman1983nonstochastic}. The maximum was '
'taken over z-statistics, so that voxels backed by different numbers of '
'images contribute on a common scale. 100 iterations were performed to '
'generate the null distribution.')
References:
('@article{10.3389/fninf.2014.00014,\n'
' title={Machine learning for neuroimaging with scikit-learn},\n'
' author={Abraham, Alexandre and Pedregosa, Fabian and Eickenberg, Michael '
'and Gervais, Philippe and Mueller, Andreas and Kossaifi, Jean and Gramfort, '
'Alexandre and Thirion, Bertrand and Varoquaux, Gael},\n'
'\tjournal={Frontiers in Neuroinformatics},\n'
'\tvolume={8},\n'
'\tyear={2014},\n'
'\turl={https://www.frontiersin.org/article/10.3389/fninf.2014.00014},\n'
'\tdoi={10.3389/fninf.2014.00014},\n'
'\tissn={1662-5196}\n'
'}\n'
'@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{freedman1983nonstochastic,\n'
' title={A nonstochastic interpretation of reported significance levels},\n'
' author={Freedman, David and Lane, David},\n'
' journal={Journal of Business \\& Economic Statistics},\n'
' volume={1},\n'
' number={4},\n'
' pages={292--298},\n'
' year={1983},\n'
' publisher={Taylor \\& Francis}\n'
'}\n'
'@article{winkler2014permutation,\n'
' title={Permutation inference for the general linear model},\n'
' author={Winkler, Anderson M. and Ridgway, Gerard R. and Webster, Matthew '
'A. and Smith, Stephen M. and Nichols, Thomas E.},\n'
' journal={NeuroImage},\n'
' volume={92},\n'
' pages={381--397},\n'
' year={2014},\n'
' publisher={Elsevier},\n'
' doi={10.1016/j.neuroimage.2014.01.060}\n'
'}')
Weighted Least Squares
from nimare.meta.ibma import WeightedLeastSquares
meta = WeightedLeastSquares(tau2=0)
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}), on 21 beta images using the Weighted '
'Least Squares approach \\citep{brockwell2001comparison}, with an a priori '
'tau-squared value of 0 defined across all voxels.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{brockwell2001comparison,\n'
' title={A comparison of statistical methods for meta-analysis},\n'
' author={Brockwell, Sarah E and Gordon, Ian R},\n'
' journal={Statistics in medicine},\n'
' volume={20},\n'
' number={6},\n'
' pages={825--840},\n'
' year={2001},\n'
' publisher={Wiley Online Library},\n'
' url={https://doi.org/10.1002/sim.650},\n'
' doi={10.1002/sim.650}\n'
'}')
DerSimonian-Laird
from nimare.meta.ibma import DerSimonianLaird
meta = DerSimonianLaird()
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}), on 21 beta and variance images using '
'the DerSimonian-Laird method \\citep{dersimonian1986meta}, in which '
'tau-squared is estimated on a voxel-wise basis using the method-of-moments '
'approach \\citep{dersimonian1986meta,kosmidis2017improving}.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{dersimonian1986meta,\n'
' title={Meta-analysis in clinical trials},\n'
' author={DerSimonian, Rebecca and Laird, Nan},\n'
' journal={Controlled clinical trials},\n'
' volume={7},\n'
' number={3},\n'
' pages={177--188},\n'
' year={1986},\n'
' publisher={Elsevier}\n'
'}\n'
'@article{kosmidis2017improving,\n'
' title={Improving the accuracy of likelihood-based inference in '
'meta-analysis and meta-regression},\n'
' author={Kosmidis, Ioannis and Guolo, Annamaria and Varin, Cristiano},\n'
' journal={Biometrika},\n'
' volume={104},\n'
' number={2},\n'
' pages={489--496},\n'
' year={2017},\n'
' publisher={Oxford University Press},\n'
' url={https://doi.org/10.1093/biomet/asx001},\n'
' doi={10.1093/biomet/asx001}\n'
'}')
Hedges
from nimare.meta.ibma import Hedges
meta = Hedges()
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
/home/docs/checkouts/readthedocs.org/user_builds/nimare/checkouts/latest/nimare/meta/ibma.py:325: RuntimeWarning: NaNs or infinite values are present in the data passed to resample. This is a bad thing as they make resampling ill-defined and much slower.
return resample_to_img(img, mask_img, **self._resample_kwargs)
Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}), on 21 beta and variance images using '
'the Hedges method \\citep{hedges2014statistical}, in which tau-squared is '
'estimated on a voxel-wise basis.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@book{hedges2014statistical,\n'
' title={Statistical methods for meta-analysis},\n'
' author={Hedges, Larry V and Olkin, Ingram},\n'
' year={2014},\n'
' publisher={Academic press}\n'
'}')
Why that map looks washed out: beta units
Hedges and DerSimonianLaird fit raw beta maps, and in this studyset those are
not on a common scale. Each study reports betas in whatever units its pipeline produced:
the per-study spatial standard deviation spans a factor of ~2300 here, and the varcopes
track it (the ratio between the two varies only ~2.5x), so this is a difference in units,
not in precision.
Having varcopes does not rescue it. tau2 is estimated from the observed spread of the
betas, which those units dominate – its median here is ~2830, orders of magnitude above
the varcopes, against ~0.05 for the same studies expressed as Hedges’ g. Once tau2
swamps every varcope, the weights 1 / (v + tau2) all collapse to the same value and
the fit degenerates into an unweighted mean of incommensurable betas with a badly
inflated standard error. That is the pale, speckled map above.
Fixed-effect fits such as WeightedLeastSquares keep a correct false-positive rate, as
any fixed set of weights does, but they lose power: inverse-variance weighting reads a
large unit as low precision and downweights that study by the square of its scale.
The estimators that are unaffected are the ones whose inputs are already scale-free, so
reach for those instead when the betas are not on a shared scale. Stouffers and
Fishers combine z maps, and FixedEffectsHedges below turns t maps into
Hedges’ g, a standardized effect size. On this studyset those three agree with each other
to r >= 0.97, while the beta-based fits correlate no better than ~0.87 with them.
Note that FixedEffectsHedges converts with d = t / sqrt(n), which is the
one-sample form. That suits a group activation map, but not a t map from a between-group
contrast, where the conversion needs both group sizes.
There is no supported random-effects counterpart: FixedEffectsHedges is fixed-effect
only, and no NiMARE estimator fits a standardized effect size with a between-study
variance.
None of this applies if your betas do share a scale – percent signal change, say, or a single pipeline throughout. Then beta and varcope meta-regression is the right tool.
Fixed Effects Meta-Analysis with Hedges’ g
from nimare.meta.ibma import FixedEffectsHedges
meta = FixedEffectsHedges(tau2=0)
results = meta.fit(studyset)
plot_stat_map(
results.get_map("z"),
cut_coords=[0, 0, -8],
draw_cross=False,
cmap="RdBu_r",
symmetric_cbar=True,
)
print("Description:")
pprint(results.description_)
print("References:")
pprint(results.bibtex_)

Description:
('An image-based meta-analysis was performed with NiMARE 0.20.0+5.g605e03f '
'(RRID:SCR_017398; \\citealt{Salo2023}), on 21 t-statistic images using '
"Heges' g as point estimates and the variance of bias-corrected Cohen's in a "
'Weighted Least Squares approach '
'\\citep{brockwell2001comparison,bossier2019}, with an a priori tau-squared '
'value of 0 defined across all voxels.')
References:
('@article{Salo2023,\n'
' doi = {10.52294/001c.87681},\n'
' url = {https://doi.org/10.52294/001c.87681},\n'
' year = {2023},\n'
' volume = {3},\n'
' pages = {1 - 32},\n'
' author = {Taylor Salo and Tal Yarkoni and Thomas E. Nichols and '
'Jean-Baptiste Poline and Murat Bilgel and Katherine L. Bottenhorn and Dorota '
'Jarecka and James D. Kent and Adam Kimbler and Dylan M. Nielson and Kendra '
'M. Oudyk and Julio A. Peraza and Alexandre Pérez and Puck C. Reeders and '
'Julio A. Yanes and Angela R. Laird},\n'
' title = {NiMARE: Neuroimaging Meta-Analysis Research Environment},\n'
' journal = {Aperture Neuro}\n'
'}\n'
'@article{brockwell2001comparison,\n'
' title={A comparison of statistical methods for meta-analysis},\n'
' author={Brockwell, Sarah E and Gordon, Ian R},\n'
' journal={Statistics in medicine},\n'
' volume={20},\n'
' number={6},\n'
' pages={825--840},\n'
' year={2001},\n'
' publisher={Wiley Online Library},\n'
' url={https://doi.org/10.1002/sim.650},\n'
' doi={10.1002/sim.650}\n'
'}')
Total running time of the script: (1 minutes 20.261 seconds)


