nimare.meta.cbma.ale.BalancedALESubtraction
- class BalancedALESubtraction(kernel_transformer=<class 'nimare.meta.kernel.ALEKernel'>, target_n=None, n_subsamples=2500, difference_iterations=1000, n_iters=1000, voxel_thresh=0.001, null_method='random-foci', mask_coverage='gm', alpha=0.05, memory=Memory(location=None), memory_level=0, n_cores=1, random_state=None, **kwargs)[source]
Bases:
PairwiseCBMAEstimatorBalanced ALE subtraction with matched-size subsampling.
“A balanced ALE subtraction using matched-size ” “subsampling within groups, averaged balanced ALE differences, and Monte Carlo null ” “extrema from balanced resamples. Frahm et al.[1]”
- Parameters:
null_method ({"random-foci", "label-permutation"}, optional) –
Method used to generate the null distribution of balanced differences.
"random-foci"(default) generates null MA maps by placing each study’s foci randomly within themask_coveragewhile preserving per-study sample-size and focus-count metadata. Because balanced subsampling breaks label exchangeability, this is the statistically coherent null for balanced subtractions."label-permutation"pools the prior-masked MA maps from both groups, randomly reassigns study labels (preserving group sizes), and computes the balanced difference. This directly tests group-label exchangeability at the cost of assuming the spatial structure of each study is fixed.mask_coverage ({"gm", "brain"}, optional) – Voxel set used both for restricting the balanced-difference computation and (when
null_method="random-foci") for drawing random foci."gm"uses mask-image intensity > 0.1 (the ICBM 10% GM probability map);"brain"uses all non-zero voxels. Default is"gm".alpha (float, optional) – Family-wise error rate for the per-group cluster threshold used inside
_probabilistic_mapand for the balanced-subtraction extrema percentiles in_fit. Default is 0.05.
Methods
correct_fwe_montecarlo(result[, ...])Perform FWE correction using the max-value permutation method.
fit(dataset1, dataset2[, drop_invalid, ...])Fit Estimator to two collections.
get_params([deep])Get parameters for this estimator.
load(filename[, compressed])Load a pickled class instance from file.
save(filename[, compress])Pickle the class instance to the provided file.
set_params(**params)Set the parameters of this estimator.
- correct_fwe_montecarlo(result, voxel_thresh=0.001, n_iters=5000, n_cores=1, vfwe_only=False)[source]
Perform FWE correction using the max-value permutation method.
Only call this method from within a Corrector.
Changed in version 0.0.13: Change cluster neighborhood from faces+edges to faces, to match Nilearn.
Changed in version 0.0.12:
Fix the
vfwe_onlyoption.
Changed in version 0.0.11:
Rename
*_level-clustermaps to*_desc-size_level-cluster.Add new
*_desc-mass_level-clustermaps that use cluster mass-based inference.
- Parameters:
result (
MetaResult) – Result object from a CBMA meta-analysis.voxel_thresh (
float, default=0.001) – Cluster-defining p-value threshold. Default is 0.001.n_iters (
int, default=5000) – Number of iterations to build the voxel-level, cluster-size, and cluster-mass FWE null distributions. Default is 5000.n_cores (
int, default=1) – Number of cores to use for parallelization. If <=0, defaults to using all available cores. Default is 1.vfwe_only (
bool, default=False) – If True, only calculate the voxel-level FWE-corrected maps. Voxel-level correction can be performed very quickly if the Estimator’snull_methodwas “montecarlo”. Default is False.
- Returns:
images (
dict) – Dictionary of 1D arrays corresponding to masked images generated by the correction procedure. The following arrays are generated by this method:logp_desc-size_level-cluster: Cluster-level FWE-corrected-log10(p)map based on cluster size. This was previously simply called “logp_level-cluster”. This array is not generated ifvfwe_onlyisTrue.logp_desc-mass_level-cluster: Cluster-level FWE-corrected-log10(p)map based on cluster mass. According to Bullmore et al.[2] and Zhang et al.[3], cluster mass-based inference is more powerful than cluster size. This array is not generated ifvfwe_onlyisTrue.logp_level-voxel: Voxel-level FWE-corrected-log10(p)map. Voxel-level correction is generally more conservative than cluster-level correction, so it is only recommended for very large meta-analyses (i.e., hundreds of studies), per Eickhoff et al.[4].
description_ (
str) – A text description of the correction procedure.
Notes
If
vfwe_onlyisFalse, this method adds three new keys to thenull_distributions_attribute:values_level-voxel_corr-fwe_method-montecarlo: The maximum summary statistic value from each Monte Carlo iteration. An array of shape (n_iters,).values_desc-size_level-cluster_corr-fwe_method-montecarlo: The maximum cluster size from each Monte Carlo iteration. An array of shape (n_iters,).values_desc-mass_level-cluster_corr-fwe_method-montecarlo: The maximum cluster mass from each Monte Carlo iteration. An array of shape (n_iters,).
See also
nimare.correct.FWECorrectorThe Corrector from which to call this method.
References
Examples
>>> meta = MKDADensity() >>> result = meta.fit(dset) >>> corrector = FWECorrector(method='montecarlo', voxel_thresh=0.01, n_iters=5, n_cores=1) >>> cresult = corrector.transform(result)
- fit(dataset1, dataset2, drop_invalid=True, ma_maps1=None, ma_maps2=None, inference_map1=None, inference_map2=None)[source]
Fit Estimator to two collections.
- Parameters:
dataset1/dataset2 (
StudysetorDataset) – Collection objects to analyze.ma_maps1/ma_maps2 (scipy sparse matrix or sparse array, optional) – Precomputed study-wise MA maps aligned to
dataset1anddataset2, respectively. When provided, the estimator will reuse these maps instead of recomputing them from coordinates. These are typically 2D study-by-masked-voxel sparse matrices.inference_map1/inference_map2 (array_like or Niimg-like, optional) – Optional directional inference maps aligned to the common masked voxel space. Positive pairwise effects are only evaluated where
inference_map1 > 0, and negative pairwise effects are only evaluated whereinference_map2 > 0.
- Returns:
MetaResult– Results of Estimator fitting... warning:: – Support for
Datasetinputs is deprecated and will be removed in a future release. PreferStudyset.The
fitmethod is a light wrapper that runs input validation andpreprocessing before fitting the actual model. Estimators’ individual
”fitting” methods are implemented as
_fit, although users shouldcall
fit.
- classmethod load(filename, compressed=True)[source]
Load a pickled class instance from file.
- Parameters:
- Returns:
obj – Loaded class object.
- Return type:
class object
- set_params(**params)[source]
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form
<component>__<parameter>so that it’s possible to update each component of a nested object.- Return type:
self