Skip to content

Commit 057fff4

Browse files
committed
name the variables more clearly
1 parent 663a0f7 commit 057fff4

2 files changed

Lines changed: 29 additions & 19 deletions

File tree

nimare/meta/cbma/ale.py

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,11 +1235,13 @@ def _fit(self, dataset):
12351235

12361236
del ma_values
12371237

1238-
iter_df, voxel_ijk, permutation_args, rand_idx = self._prepare_permutations(self.n_iters)
1238+
iter_df, voxel_ijk, permutation_args, sampled_voxel_idx = self._prepare_permutations(
1239+
self.n_iters
1240+
)
12391241
exceedance_counts = np.zeros(stat_values.shape[0], dtype=np.uint32)
12401242

12411243
for iter_values in self._iterate_permuted_stats(
1242-
rand_idx, voxel_ijk, iter_df, permutation_args, self.n_cores
1244+
sampled_voxel_idx, voxel_ijk, iter_df, permutation_args, self.n_cores
12431245
):
12441246
exceedance_counts += iter_values >= stat_values
12451247

@@ -1274,8 +1276,8 @@ def _prepare_permutations(self, n_iters):
12741276
iter_df = self.inputs_["coordinates"].copy()
12751277
voxel_ijk = mm2vox(self.xyz, self.masker.mask_img.affine).astype(np.int32, copy=False)
12761278
permutation_args = self._prepare_permutation_args(iter_df)
1277-
rand_idx = np.random.choice(voxel_ijk.shape[0], size=(iter_df.shape[0], n_iters))
1278-
return iter_df, voxel_ijk, permutation_args, rand_idx
1279+
sampled_voxel_idx = np.random.choice(voxel_ijk.shape[0], size=(iter_df.shape[0], n_iters))
1280+
return iter_df, voxel_ijk, permutation_args, sampled_voxel_idx
12791281

12801282
def _prepare_permutation_args(self, coordinates):
12811283
"""Prepare static ALE kernel inputs for SCALE permutations."""
@@ -1328,12 +1330,12 @@ def _scale_to_p(self, stat_values, scale_values):
13281330
z_values = p_to_z(p_values, tail="one")
13291331
return p_values, z_values
13301332

1331-
def _run_permutation(self, iter_idx, voxel_ijk, iter_df, permutation_args=None):
1332-
"""Run a single random SCALE permutation of a dataset."""
1333+
def _run_permutation(self, sampled_voxel_idx, voxel_ijk, iter_df, permutation_args=None):
1334+
"""Run a single random SCALE permutation from sampled voxel-row indices."""
13331335
if permutation_args is not None:
13341336
ma_values, _, _ = compute_ale_ma(
13351337
self.masker.mask_img,
1336-
voxel_ijk[iter_idx, :],
1338+
voxel_ijk[sampled_voxel_idx, :],
13371339
kernel=permutation_args["kernel"],
13381340
exp_idx=permutation_args["exp_idx"],
13391341
sample_sizes=permutation_args["sample_sizes"],
@@ -1342,16 +1344,20 @@ def _run_permutation(self, iter_idx, voxel_ijk, iter_df, permutation_args=None):
13421344
return _compute_ale_summarystat(ma_values)
13431345

13441346
iter_df = iter_df.copy()
1345-
iter_df[["i", "j", "k"]] = voxel_ijk[iter_idx, :]
1347+
iter_df[["i", "j", "k"]] = voxel_ijk[sampled_voxel_idx, :]
13461348
stat_values = self._compute_summarystat_est(iter_df)
13471349
return stat_values
13481350

1349-
def _iterate_permuted_stats(self, rand_idx, voxel_ijk, iter_df, permutation_args, n_cores):
1351+
def _iterate_permuted_stats(
1352+
self, sampled_voxel_idx, voxel_ijk, iter_df, permutation_args, n_cores
1353+
):
13501354
"""Yield permuted SCALE statistic maps for a fixed permutation schedule."""
13511355
if n_cores == 1:
1352-
for i_iter in tqdm(range(rand_idx.shape[1]), total=rand_idx.shape[1]):
1356+
for i_iter in tqdm(
1357+
range(sampled_voxel_idx.shape[1]), total=sampled_voxel_idx.shape[1]
1358+
):
13531359
yield self._run_permutation(
1354-
rand_idx[:, i_iter],
1360+
sampled_voxel_idx[:, i_iter],
13551361
voxel_ijk,
13561362
iter_df,
13571363
permutation_args=permutation_args,
@@ -1365,14 +1371,14 @@ def _iterate_permuted_stats(self, rand_idx, voxel_ijk, iter_df, permutation_args
13651371
yield from tqdm(
13661372
Parallel(**parallel_kwargs)(
13671373
delayed(self._run_permutation)(
1368-
rand_idx[:, i_iter],
1374+
sampled_voxel_idx[:, i_iter],
13691375
voxel_ijk,
13701376
iter_df,
13711377
permutation_args=permutation_args,
13721378
)
1373-
for i_iter in range(rand_idx.shape[1])
1379+
for i_iter in range(sampled_voxel_idx.shape[1])
13741380
),
1375-
total=rand_idx.shape[1],
1381+
total=sampled_voxel_idx.shape[1],
13761382
)
13771383

13781384
def correct_fwe_montecarlo(
@@ -1403,12 +1409,16 @@ def correct_fwe_montecarlo(
14031409
)
14041410

14051411
stat_values = result.get_map("stat", return_type="array")
1406-
iter_df, voxel_ijk, permutation_args, rand_idx = self._prepare_permutations(n_iters)
1412+
iter_df, voxel_ijk, permutation_args, sampled_voxel_idx = self._prepare_permutations(
1413+
n_iters
1414+
)
14071415
fwe_voxel_max = np.empty(n_iters, dtype=DEFAULT_FLOAT_DTYPE)
14081416
n_cores = _check_ncores(n_cores)
14091417

14101418
for i_iter, iter_values in enumerate(
1411-
self._iterate_permuted_stats(rand_idx, voxel_ijk, iter_df, permutation_args, n_cores)
1419+
self._iterate_permuted_stats(
1420+
sampled_voxel_idx, voxel_ijk, iter_df, permutation_args, n_cores
1421+
)
14121422
):
14131423
fwe_voxel_max[i_iter] = np.max(iter_values)
14141424

nimare/tests/test_meta_ale.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,14 +1063,14 @@ def test_SCALE_optimized_permutation_matches_dataframe_path(testdata_cbma):
10631063
iter_df = meta.inputs_["coordinates"].copy()
10641064
permutation_args = meta._prepare_permutation_args(iter_df)
10651065
voxel_ijk = mm2vox(meta.xyz, meta.masker.mask_img.affine).astype(np.int32, copy=False)
1066-
iter_idx = np.arange(iter_df.shape[0]) % voxel_ijk.shape[0]
1066+
sampled_voxel_idx = np.arange(iter_df.shape[0]) % voxel_ijk.shape[0]
10671067

10681068
optimized = meta._run_permutation(
1069-
iter_idx, voxel_ijk, iter_df, permutation_args=permutation_args
1069+
sampled_voxel_idx, voxel_ijk, iter_df, permutation_args=permutation_args
10701070
)
10711071

10721072
legacy_df = iter_df.copy()
1073-
legacy_df[["x", "y", "z"]] = meta.xyz[iter_idx, :]
1073+
legacy_df[["x", "y", "z"]] = meta.xyz[sampled_voxel_idx, :]
10741074
drop_cols = [col for col in ("i", "j", "k") if col in legacy_df.columns]
10751075
if drop_cols:
10761076
legacy_df = legacy_df.drop(columns=drop_cols)

0 commit comments

Comments
 (0)