Two-sample ALE meta-analysis

Meta-analytic projects often involve a number of common steps comparing two or more samples.

In this example, we replicate the ALE-based analyses from Enge et al.[1].

A common project workflow with two meta-analytic samples involves the following:

  1. Run a within-sample meta-analysis of the first sample.

  2. Characterize/summarize the results of the first meta-analysis.

  3. Run a within-sample meta-analysis of the second sample.

  4. Characterize/summarize the results of the second meta-analysis.

  5. Compare the two samples with a subtraction analysis.

  6. Compare the two within-sample meta-analyses with a conjunction analysis.

import os

import matplotlib.pyplot as plt
from nilearn.plotting import plot_stat_map

Load Sleuth text files into Datasets

The data for this example are a subset of studies from a meta-analysis on semantic cognition in children [1]. A first group of studies probed children’s semantic world knowledge (e.g., correctly naming an object after hearing its auditory description) while a second group of studies asked children to decide if two (or more) words were semantically related to one another or not.

Individual group ALEs

Computing separate ALE analyses for each group is not strictly necessary for performing the subtraction analysis but will help the experimenter to appreciate the similarities and differences between the groups.

from nimare.correct import FWECorrector
from nimare.meta.cbma import ALE

ale = ALE(null_method="approximate")
knowledge_results = ale.fit(knowledge_dset)
related_results = ale.fit(related_dset)

corr = FWECorrector(method="montecarlo", voxel_thresh=0.001, n_iters=100, n_cores=2)
knowledge_corrected_results = corr.transform(knowledge_results)
related_corrected_results = corr.transform(related_results)

fig, axes = plt.subplots(figsize=(12, 10), nrows=2)
knowledge_img = knowledge_corrected_results.get_map(
    "z_desc-size_level-cluster_corr-FWE_method-montecarlo"
)
plot_stat_map(
    knowledge_img,
    cut_coords=4,
    display_mode="z",
    title="Semantic knowledge",
    threshold=2.326,  # cluster-level p < .01, one-tailed
    cmap="RdBu_r",
    vmax=4,
    axes=axes[0],
    figure=fig,
)

related_img = related_corrected_results.get_map(
    "z_desc-size_level-cluster_corr-FWE_method-montecarlo"
)
plot_stat_map(
    related_img,
    cut_coords=4,
    display_mode="z",
    title="Semantic relatedness",
    threshold=2.326,  # cluster-level p < .01, one-tailed
    cmap="RdBu_r",
    vmax=4,
    axes=axes[1],
    figure=fig,
)
fig.show()
08 plot cbma subtraction conjunction

Out:

  0%|          | 0/100 [00:00<?, ?it/s]
  1%|1         | 1/100 [00:01<01:46,  1.07s/it]
  3%|3         | 3/100 [00:02<01:05,  1.47it/s]
  5%|5         | 5/100 [00:03<00:54,  1.74it/s]
  6%|6         | 6/100 [00:03<00:45,  2.07it/s]
  7%|7         | 7/100 [00:04<00:54,  1.71it/s]
  9%|9         | 9/100 [00:05<00:48,  1.87it/s]
 10%|#         | 10/100 [00:05<00:41,  2.16it/s]
 11%|#1        | 11/100 [00:06<00:49,  1.79it/s]
 12%|#2        | 12/100 [00:06<00:39,  2.24it/s]
 13%|#3        | 13/100 [00:07<00:47,  1.84it/s]
 14%|#4        | 14/100 [00:07<00:40,  2.10it/s]
 15%|#5        | 15/100 [00:08<00:47,  1.80it/s]
 16%|#6        | 16/100 [00:08<00:38,  2.18it/s]
 17%|#7        | 17/100 [00:09<00:44,  1.88it/s]
 18%|#8        | 18/100 [00:09<00:38,  2.12it/s]
 19%|#9        | 19/100 [00:10<00:44,  1.82it/s]
 20%|##        | 20/100 [00:10<00:36,  2.17it/s]
 21%|##1       | 21/100 [00:11<00:41,  1.88it/s]
 22%|##2       | 22/100 [00:11<00:38,  2.05it/s]
 23%|##3       | 23/100 [00:12<00:42,  1.80it/s]
 24%|##4       | 24/100 [00:12<00:35,  2.11it/s]
 25%|##5       | 25/100 [00:13<00:38,  1.93it/s]
 26%|##6       | 26/100 [00:13<00:37,  1.99it/s]
 27%|##7       | 27/100 [00:14<00:38,  1.91it/s]
 28%|##8       | 28/100 [00:14<00:34,  2.09it/s]
 29%|##9       | 29/100 [00:15<00:35,  1.98it/s]
 30%|###       | 30/100 [00:15<00:34,  2.01it/s]
 31%|###1      | 31/100 [00:16<00:35,  1.95it/s]
 32%|###2      | 32/100 [00:16<00:32,  2.09it/s]
 33%|###3      | 33/100 [00:17<00:32,  2.03it/s]
 34%|###4      | 34/100 [00:17<00:34,  1.91it/s]
 35%|###5      | 35/100 [00:18<00:32,  1.98it/s]
 36%|###6      | 36/100 [00:18<00:32,  1.97it/s]
 37%|###7      | 37/100 [00:19<00:29,  2.16it/s]
 38%|###8      | 38/100 [00:19<00:33,  1.83it/s]
 39%|###9      | 39/100 [00:20<00:29,  2.10it/s]
 40%|####      | 40/100 [00:20<00:31,  1.90it/s]
 41%|####1     | 41/100 [00:20<00:26,  2.26it/s]
 42%|####2     | 42/100 [00:21<00:33,  1.74it/s]
 43%|####3     | 43/100 [00:22<00:26,  2.15it/s]
 44%|####4     | 44/100 [00:22<00:31,  1.79it/s]
 45%|####5     | 45/100 [00:22<00:24,  2.25it/s]
 46%|####6     | 46/100 [00:23<00:31,  1.70it/s]
 47%|####6     | 47/100 [00:24<00:23,  2.22it/s]
 48%|####8     | 48/100 [00:24<00:29,  1.75it/s]
 50%|#####     | 50/100 [00:26<00:28,  1.76it/s]
 52%|#####2    | 52/100 [00:27<00:25,  1.86it/s]
 54%|#####4    | 54/100 [00:28<00:24,  1.88it/s]
 56%|#####6    | 56/100 [00:29<00:23,  1.91it/s]
 57%|#####6    | 57/100 [00:29<00:19,  2.21it/s]
 58%|#####8    | 58/100 [00:30<00:23,  1.80it/s]
 59%|#####8    | 59/100 [00:30<00:19,  2.10it/s]
 60%|######    | 60/100 [00:31<00:21,  1.86it/s]
 61%|######1   | 61/100 [00:31<00:18,  2.05it/s]
 62%|######2   | 62/100 [00:32<00:21,  1.81it/s]
 63%|######3   | 63/100 [00:32<00:17,  2.13it/s]
 64%|######4   | 64/100 [00:33<00:19,  1.88it/s]
 65%|######5   | 65/100 [00:33<00:17,  2.02it/s]
 66%|######6   | 66/100 [00:34<00:18,  1.81it/s]
 67%|######7   | 67/100 [00:34<00:15,  2.16it/s]
 68%|######8   | 68/100 [00:35<00:17,  1.81it/s]
 69%|######9   | 69/100 [00:35<00:15,  2.03it/s]
 70%|#######   | 70/100 [00:36<00:17,  1.74it/s]
 71%|#######1  | 71/100 [00:36<00:13,  2.15it/s]
 72%|#######2  | 72/100 [00:37<00:14,  1.87it/s]
 73%|#######3  | 73/100 [00:37<00:13,  2.07it/s]
 74%|#######4  | 74/100 [00:38<00:14,  1.82it/s]
 75%|#######5  | 75/100 [00:38<00:11,  2.16it/s]
 76%|#######6  | 76/100 [00:39<00:12,  1.94it/s]
 77%|#######7  | 77/100 [00:39<00:11,  2.00it/s]
 78%|#######8  | 78/100 [00:40<00:11,  1.91it/s]
 79%|#######9  | 79/100 [00:40<00:10,  2.07it/s]
 80%|########  | 80/100 [00:41<00:09,  2.01it/s]
 81%|########1 | 81/100 [00:41<00:10,  1.89it/s]
 82%|########2 | 82/100 [00:42<00:09,  1.97it/s]
 83%|########2 | 83/100 [00:42<00:08,  2.01it/s]
 84%|########4 | 84/100 [00:43<00:07,  2.09it/s]
 85%|########5 | 85/100 [00:43<00:08,  1.86it/s]
 86%|########6 | 86/100 [00:44<00:06,  2.07it/s]
 87%|########7 | 87/100 [00:44<00:06,  1.94it/s]
 88%|########8 | 88/100 [00:45<00:05,  2.21it/s]
 89%|########9 | 89/100 [00:45<00:06,  1.81it/s]
 90%|######### | 90/100 [00:46<00:04,  2.19it/s]
 91%|#########1| 91/100 [00:46<00:04,  1.85it/s]
 92%|#########2| 92/100 [00:47<00:03,  2.32it/s]
 93%|#########3| 93/100 [00:47<00:03,  1.77it/s]
 94%|#########3| 94/100 [00:48<00:02,  2.23it/s]
 95%|#########5| 95/100 [00:48<00:02,  1.80it/s]
 97%|#########7| 97/100 [00:49<00:01,  1.80it/s]
 99%|#########9| 99/100 [00:50<00:00,  1.87it/s]
100%|##########| 100/100 [00:51<00:00,  1.96it/s]

  0%|          | 0/100 [00:00<?, ?it/s]
  1%|1         | 1/100 [00:00<01:24,  1.17it/s]
  3%|3         | 3/100 [00:01<00:55,  1.75it/s]
  5%|5         | 5/100 [00:02<00:46,  2.03it/s]
  7%|7         | 7/100 [00:03<00:44,  2.08it/s]
  8%|8         | 8/100 [00:03<00:36,  2.53it/s]
  9%|9         | 9/100 [00:04<00:41,  2.17it/s]
 10%|#         | 10/100 [00:04<00:34,  2.60it/s]
 11%|#1        | 11/100 [00:05<00:42,  2.07it/s]
 12%|#2        | 12/100 [00:05<00:35,  2.47it/s]
 13%|#3        | 13/100 [00:06<00:39,  2.18it/s]
 14%|#4        | 14/100 [00:06<00:34,  2.53it/s]
 15%|#5        | 15/100 [00:06<00:41,  2.07it/s]
 16%|#6        | 16/100 [00:07<00:35,  2.36it/s]
 17%|#7        | 17/100 [00:07<00:37,  2.20it/s]
 18%|#8        | 18/100 [00:08<00:33,  2.44it/s]
 19%|#9        | 19/100 [00:08<00:38,  2.11it/s]
 20%|##        | 20/100 [00:09<00:35,  2.26it/s]
 21%|##1       | 21/100 [00:09<00:34,  2.30it/s]
 22%|##2       | 22/100 [00:09<00:32,  2.38it/s]
 23%|##3       | 23/100 [00:10<00:34,  2.21it/s]
 24%|##4       | 24/100 [00:10<00:33,  2.27it/s]
 25%|##5       | 25/100 [00:11<00:31,  2.38it/s]
 26%|##6       | 26/100 [00:11<00:30,  2.41it/s]
 27%|##7       | 27/100 [00:12<00:32,  2.24it/s]
 28%|##8       | 28/100 [00:12<00:31,  2.29it/s]
 29%|##9       | 29/100 [00:12<00:29,  2.38it/s]
 30%|###       | 30/100 [00:13<00:29,  2.37it/s]
 31%|###1      | 31/100 [00:13<00:30,  2.26it/s]
 32%|###2      | 32/100 [00:14<00:29,  2.33it/s]
 33%|###3      | 33/100 [00:14<00:28,  2.39it/s]
 34%|###4      | 34/100 [00:15<00:27,  2.41it/s]
 35%|###5      | 35/100 [00:15<00:28,  2.26it/s]
 36%|###6      | 36/100 [00:15<00:27,  2.31it/s]
 37%|###7      | 37/100 [00:16<00:25,  2.43it/s]
 38%|###8      | 38/100 [00:16<00:25,  2.42it/s]
 39%|###9      | 39/100 [00:17<00:26,  2.27it/s]
 40%|####      | 40/100 [00:17<00:26,  2.30it/s]
 41%|####1     | 41/100 [00:18<00:24,  2.43it/s]
 42%|####2     | 42/100 [00:18<00:24,  2.33it/s]
 43%|####3     | 43/100 [00:18<00:24,  2.28it/s]
 44%|####4     | 44/100 [00:19<00:25,  2.17it/s]
 45%|####5     | 45/100 [00:19<00:22,  2.47it/s]
 46%|####6     | 46/100 [00:20<00:23,  2.27it/s]
 47%|####6     | 47/100 [00:20<00:22,  2.31it/s]
 48%|####8     | 48/100 [00:21<00:24,  2.14it/s]
 49%|####9     | 49/100 [00:21<00:20,  2.54it/s]
 50%|#####     | 50/100 [00:21<00:22,  2.26it/s]
 51%|#####1    | 51/100 [00:22<00:20,  2.44it/s]
 52%|#####2    | 52/100 [00:22<00:22,  2.12it/s]
 53%|#####3    | 53/100 [00:23<00:18,  2.56it/s]
 54%|#####4    | 54/100 [00:23<00:21,  2.14it/s]
 55%|#####5    | 55/100 [00:24<00:18,  2.45it/s]
 56%|#####6    | 56/100 [00:24<00:21,  2.04it/s]
 57%|#####6    | 57/100 [00:24<00:16,  2.64it/s]
 58%|#####8    | 58/100 [00:25<00:20,  2.05it/s]
 59%|#####8    | 59/100 [00:25<00:16,  2.50it/s]
 60%|######    | 60/100 [00:26<00:20,  1.96it/s]
 62%|######2   | 62/100 [00:27<00:17,  2.20it/s]
 63%|######3   | 63/100 [00:27<00:14,  2.63it/s]
 64%|######4   | 64/100 [00:28<00:17,  2.07it/s]
 66%|######6   | 66/100 [00:29<00:15,  2.13it/s]
 68%|######8   | 68/100 [00:30<00:14,  2.17it/s]
 70%|#######   | 70/100 [00:30<00:13,  2.22it/s]
 72%|#######2  | 72/100 [00:31<00:12,  2.29it/s]
 73%|#######3  | 73/100 [00:31<00:10,  2.63it/s]
 74%|#######4  | 74/100 [00:32<00:12,  2.12it/s]
 76%|#######6  | 76/100 [00:33<00:10,  2.28it/s]
 77%|#######7  | 77/100 [00:33<00:08,  2.58it/s]
 78%|#######8  | 78/100 [00:34<00:10,  2.13it/s]
 80%|########  | 80/100 [00:35<00:08,  2.25it/s]
 81%|########1 | 81/100 [00:35<00:07,  2.55it/s]
 82%|########2 | 82/100 [00:36<00:08,  2.10it/s]
 84%|########4 | 84/100 [00:36<00:07,  2.25it/s]
 85%|########5 | 85/100 [00:37<00:05,  2.61it/s]
 86%|########6 | 86/100 [00:37<00:06,  2.10it/s]
 88%|########8 | 88/100 [00:38<00:05,  2.25it/s]
 89%|########9 | 89/100 [00:38<00:04,  2.55it/s]
 90%|######### | 90/100 [00:39<00:04,  2.10it/s]
 92%|#########2| 92/100 [00:40<00:03,  2.25it/s]
 93%|#########3| 93/100 [00:40<00:02,  2.57it/s]
 94%|#########3| 94/100 [00:41<00:02,  2.12it/s]
 95%|#########5| 95/100 [00:41<00:01,  2.61it/s]
 96%|#########6| 96/100 [00:42<00:01,  2.19it/s]
 97%|#########7| 97/100 [00:42<00:01,  2.45it/s]
 98%|#########8| 98/100 [00:43<00:00,  2.09it/s]
 99%|#########9| 99/100 [00:43<00:00,  2.56it/s]
100%|##########| 100/100 [00:43<00:00,  2.52it/s]
100%|##########| 100/100 [00:43<00:00,  2.28it/s]

Characterize the relative contributions of experiments in the ALE results

NiMARE contains two methods for this: Jackknife and FocusCounter. We will show both below, but for the sake of speed we will only apply one to each subgroup meta-analysis.

from nimare.diagnostics import FocusCounter

counter = FocusCounter(
    target_image="z_desc-size_level-cluster_corr-FWE_method-montecarlo",
    voxel_thresh=None,
)
knowledge_corrected_results = counter.transform(knowledge_corrected_results)

Out:

  0%|          | 0/21 [00:00<?, ?it/s]
 10%|9         | 2/21 [00:00<00:01, 13.28it/s]
 19%|#9        | 4/21 [00:00<00:01, 11.65it/s]
 29%|##8       | 6/21 [00:00<00:01, 11.25it/s]
 38%|###8      | 8/21 [00:00<00:01, 10.97it/s]
 48%|####7     | 10/21 [00:00<00:01, 10.89it/s]
 57%|#####7    | 12/21 [00:01<00:00, 10.88it/s]
 67%|######6   | 14/21 [00:01<00:00, 10.83it/s]
 76%|#######6  | 16/21 [00:01<00:00, 10.72it/s]
 86%|########5 | 18/21 [00:01<00:00, 10.60it/s]
 95%|#########5| 20/21 [00:01<00:00, 10.54it/s]
100%|##########| 21/21 [00:01<00:00, 10.82it/s]

Clusters table.

knowledge_clusters_table = knowledge_corrected_results.tables[
    "z_desc-size_level-cluster_corr-FWE_method-montecarlo_tab-clust"
]
knowledge_clusters_table.head(10)
Cluster ID X Y Z Peak Stat Cluster Size (mm3)
0 PositiveTail 1 36.0 24.0 -6.0 2.326348 1128
1 PositiveTail 2 -2.0 20.0 46.0 2.326348 3472
2 PositiveTail 3 -44.0 12.0 30.0 2.326348 3096
3 PositiveTail 4 -34.0 22.0 0.0 2.053749 992
4 PositiveTail 5 -52.0 -38.0 4.0 1.340755 672
5 PositiveTail 6 54.0 -28.0 4.0 0.643345 512
6 PositiveTail 7 -6.0 -14.0 12.0 0.643345 512


Contribution table. Here PostiveTail refers to clusters with positive statistics.

knowledge_count_table = knowledge_corrected_results.tables[
    "z_desc-size_level-cluster_corr-FWE_method-montecarlo_diag-FocusCounter_tab-counts"
]
knowledge_count_table.head(10)
id PositiveTail 1 PositiveTail 2 PositiveTail 3 PositiveTail 4 PositiveTail 5 PositiveTail 6 PositiveTail 7
0 arnoldussen2006nc- 0 0 1 0 0 0 0
1 arnoldussen2006rm- 0 0 1 0 0 0 0
2 backes2002- 0 1 1 0 0 0 0
3 balsamo2002- 0 0 0 0 1 0 0
4 balsamo2006- 0 1 1 0 0 0 0
5 bauer2017- 1 0 0 0 0 0 1
6 berl2014- 1 2 2 0 0 1 1
7 brauer2007- 0 1 0 0 0 0 0
8 gaillard2001- 0 0 1 0 0 0 0
9 gaillard2003- 1 1 1 0 0 0 0


from nimare.diagnostics import Jackknife

jackknife = Jackknife(
    target_image="z_desc-size_level-cluster_corr-FWE_method-montecarlo",
    voxel_thresh=None,
)
related_corrected_results = jackknife.transform(related_corrected_results)
related_jackknife_table = related_corrected_results.tables[
    "z_desc-size_level-cluster_corr-FWE_method-montecarlo_diag-Jackknife_tab-counts"
]
related_jackknife_table.head(10)

Out:

  0%|          | 0/16 [00:00<?, ?it/s]
  6%|6         | 1/16 [00:02<00:33,  2.23s/it]
 12%|#2        | 2/16 [00:04<00:31,  2.23s/it]
 19%|#8        | 3/16 [00:06<00:28,  2.21s/it]
 25%|##5       | 4/16 [00:08<00:26,  2.19s/it]
 31%|###1      | 5/16 [00:11<00:24,  2.20s/it]
 38%|###7      | 6/16 [00:13<00:22,  2.20s/it]
 44%|####3     | 7/16 [00:15<00:19,  2.22s/it]
 50%|#####     | 8/16 [00:17<00:17,  2.22s/it]
 56%|#####6    | 9/16 [00:19<00:15,  2.23s/it]
 62%|######2   | 10/16 [00:22<00:13,  2.23s/it]
 69%|######8   | 11/16 [00:24<00:11,  2.23s/it]
 75%|#######5  | 12/16 [00:26<00:08,  2.22s/it]
 81%|########1 | 13/16 [00:28<00:06,  2.22s/it]
 88%|########7 | 14/16 [00:31<00:04,  2.22s/it]
 94%|#########3| 15/16 [00:33<00:02,  2.22s/it]
100%|##########| 16/16 [00:35<00:00,  2.21s/it]
100%|##########| 16/16 [00:35<00:00,  2.22s/it]
id PositiveTail 1 PositiveTail 2 PositiveTail 3 PositiveTail 4 PositiveTail 5
0 booth2001- 0.0 0.0 0.029415 0.054821 0.0
1 booth2003- 0.0 0.0 0.0 0.000008 0.0
2 booth2007- 0.021799 0.068333 0.051598 0.000028 0.000019
3 cao2008- 0.134026 0.06561 0.035607 0.094222 0.0
4 chou2006a- 0.211268 0.123099 0.000075 0.095687 0.0
5 chou2006b- 0.21024 0.117018 0.004724 0.117981 0.0
6 chou2009- 0.188491 0.1575 0.22325 0.212472 0.330668
7 chou2019- 0.0 0.061734 0.0 0.0 0.0
8 fan2020- 0.0 0.070051 0.002654 0.101595 0.0
9 lee2011aud- 0.000026 0.000246 0.164283 0.068827 0.243831


Subtraction analysis

Typically, one would use at least 10000 iterations for a subtraction analysis. However, we have reduced this to 100 iterations for this example.

from nimare.meta.cbma import ALESubtraction

sub = ALESubtraction(n_iters=100, n_cores=1)
res_sub = sub.fit(knowledge_dset, related_dset)
img_sub = res_sub.get_map("z_desc-group1MinusGroup2")

plot_stat_map(
    img_sub,
    cut_coords=4,
    display_mode="z",
    title="Subtraction",
    cmap="RdBu_r",
    vmax=4,
)
08 plot cbma subtraction conjunction

Out:

  0%|          | 0/100 [00:00<?, ?it/s]
  1%|1         | 1/100 [00:00<00:59,  1.66it/s]
  2%|2         | 2/100 [00:01<00:58,  1.69it/s]
  3%|3         | 3/100 [00:01<00:59,  1.63it/s]
  4%|4         | 4/100 [00:02<00:58,  1.63it/s]
  5%|5         | 5/100 [00:03<00:57,  1.64it/s]
  6%|6         | 6/100 [00:03<00:56,  1.65it/s]
  7%|7         | 7/100 [00:04<00:56,  1.66it/s]
  8%|8         | 8/100 [00:04<00:55,  1.66it/s]
  9%|9         | 9/100 [00:05<00:54,  1.68it/s]
 10%|#         | 10/100 [00:06<00:53,  1.68it/s]
 11%|#1        | 11/100 [00:06<00:54,  1.64it/s]
 12%|#2        | 12/100 [00:07<00:53,  1.64it/s]
 13%|#3        | 13/100 [00:07<00:52,  1.65it/s]
 14%|#4        | 14/100 [00:08<00:51,  1.66it/s]
 15%|#5        | 15/100 [00:09<00:51,  1.66it/s]
 16%|#6        | 16/100 [00:09<00:50,  1.66it/s]
 17%|#7        | 17/100 [00:10<00:49,  1.67it/s]
 18%|#8        | 18/100 [00:10<00:49,  1.67it/s]
 19%|#9        | 19/100 [00:11<00:49,  1.65it/s]
 20%|##        | 20/100 [00:12<00:48,  1.65it/s]
 21%|##1       | 21/100 [00:12<00:47,  1.66it/s]
 22%|##2       | 22/100 [00:13<00:46,  1.67it/s]
 23%|##3       | 23/100 [00:13<00:46,  1.67it/s]
 24%|##4       | 24/100 [00:14<00:46,  1.62it/s]
 25%|##5       | 25/100 [00:15<00:45,  1.64it/s]
 26%|##6       | 26/100 [00:15<00:44,  1.66it/s]
 27%|##7       | 27/100 [00:16<00:44,  1.63it/s]
 28%|##8       | 28/100 [00:16<00:44,  1.64it/s]
 29%|##9       | 29/100 [00:17<00:42,  1.66it/s]
 30%|###       | 30/100 [00:18<00:42,  1.66it/s]
 31%|###1      | 31/100 [00:18<00:41,  1.67it/s]
 32%|###2      | 32/100 [00:19<00:40,  1.67it/s]
 33%|###3      | 33/100 [00:19<00:39,  1.68it/s]
 34%|###4      | 34/100 [00:20<00:39,  1.68it/s]
 35%|###5      | 35/100 [00:21<00:38,  1.68it/s]
 36%|###6      | 36/100 [00:21<00:37,  1.69it/s]
 37%|###7      | 37/100 [00:22<00:37,  1.69it/s]
 38%|###8      | 38/100 [00:22<00:37,  1.66it/s]
 39%|###9      | 39/100 [00:23<00:36,  1.66it/s]
 40%|####      | 40/100 [00:24<00:36,  1.63it/s]
 41%|####1     | 41/100 [00:24<00:36,  1.64it/s]
 42%|####2     | 42/100 [00:25<00:35,  1.66it/s]
 43%|####3     | 43/100 [00:25<00:34,  1.67it/s]
 44%|####4     | 44/100 [00:26<00:33,  1.67it/s]
 45%|####5     | 45/100 [00:27<00:32,  1.68it/s]
 46%|####6     | 46/100 [00:27<00:31,  1.69it/s]
 47%|####6     | 47/100 [00:28<00:31,  1.68it/s]
 48%|####8     | 48/100 [00:28<00:30,  1.68it/s]
 49%|####9     | 49/100 [00:29<00:30,  1.68it/s]
 50%|#####     | 50/100 [00:30<00:29,  1.68it/s]
 51%|#####1    | 51/100 [00:30<00:29,  1.68it/s]
 52%|#####2    | 52/100 [00:31<00:28,  1.68it/s]
 53%|#####3    | 53/100 [00:31<00:27,  1.68it/s]
 54%|#####4    | 54/100 [00:32<00:27,  1.66it/s]
 55%|#####5    | 55/100 [00:33<00:27,  1.66it/s]
 56%|#####6    | 56/100 [00:33<00:26,  1.67it/s]
 57%|#####6    | 57/100 [00:34<00:25,  1.68it/s]
 58%|#####8    | 58/100 [00:34<00:24,  1.68it/s]
 59%|#####8    | 59/100 [00:35<00:24,  1.69it/s]
 60%|######    | 60/100 [00:36<00:23,  1.69it/s]
 61%|######1   | 61/100 [00:36<00:23,  1.69it/s]
 62%|######2   | 62/100 [00:37<00:22,  1.69it/s]
 63%|######3   | 63/100 [00:37<00:22,  1.65it/s]
 64%|######4   | 64/100 [00:38<00:21,  1.66it/s]
 65%|######5   | 65/100 [00:39<00:20,  1.67it/s]
 66%|######6   | 66/100 [00:39<00:20,  1.68it/s]
 67%|######7   | 67/100 [00:40<00:20,  1.63it/s]
 68%|######8   | 68/100 [00:40<00:19,  1.64it/s]
 69%|######9   | 69/100 [00:41<00:18,  1.66it/s]
 70%|#######   | 70/100 [00:42<00:17,  1.67it/s]
 71%|#######1  | 71/100 [00:42<00:17,  1.68it/s]
 72%|#######2  | 72/100 [00:43<00:16,  1.69it/s]
 73%|#######3  | 73/100 [00:43<00:16,  1.69it/s]
 74%|#######4  | 74/100 [00:44<00:15,  1.69it/s]
 75%|#######5  | 75/100 [00:45<00:14,  1.69it/s]
 76%|#######6  | 76/100 [00:45<00:14,  1.70it/s]
 77%|#######7  | 77/100 [00:46<00:13,  1.70it/s]
 78%|#######8  | 78/100 [00:46<00:13,  1.66it/s]
 79%|#######9  | 79/100 [00:47<00:12,  1.67it/s]
 80%|########  | 80/100 [00:47<00:11,  1.68it/s]
 81%|########1 | 81/100 [00:48<00:11,  1.68it/s]
 82%|########2 | 82/100 [00:49<00:10,  1.68it/s]
 83%|########2 | 83/100 [00:49<00:10,  1.69it/s]
 84%|########4 | 84/100 [00:50<00:09,  1.69it/s]
 85%|########5 | 85/100 [00:50<00:08,  1.70it/s]
 86%|########6 | 86/100 [00:51<00:08,  1.67it/s]
 87%|########7 | 87/100 [00:52<00:07,  1.67it/s]
 88%|########8 | 88/100 [00:52<00:07,  1.68it/s]
 89%|########9 | 89/100 [00:53<00:06,  1.67it/s]
 90%|######### | 90/100 [00:53<00:05,  1.67it/s]
 91%|#########1| 91/100 [00:54<00:05,  1.68it/s]
 92%|#########2| 92/100 [00:55<00:04,  1.69it/s]
 93%|#########3| 93/100 [00:55<00:04,  1.69it/s]
 94%|#########3| 94/100 [00:56<00:03,  1.70it/s]
 95%|#########5| 95/100 [00:56<00:02,  1.69it/s]
 96%|#########6| 96/100 [00:57<00:02,  1.70it/s]
 97%|#########7| 97/100 [00:58<00:01,  1.71it/s]
 98%|#########8| 98/100 [00:58<00:01,  1.70it/s]
 99%|#########9| 99/100 [00:59<00:00,  1.69it/s]
100%|##########| 100/100 [00:59<00:00,  1.69it/s]
100%|##########| 100/100 [00:59<00:00,  1.67it/s]

  0%|          | 0/228483 [00:00<?, ?it/s]
  0%|          | 904/228483 [00:00<00:25, 9034.30it/s]
  1%|          | 1810/228483 [00:00<00:25, 9049.29it/s]
  1%|1         | 2715/228483 [00:00<00:25, 9020.72it/s]
  2%|1         | 3618/228483 [00:00<00:24, 9002.78it/s]
  2%|1         | 4519/228483 [00:00<00:25, 8945.16it/s]
  2%|2         | 5422/228483 [00:00<00:24, 8970.74it/s]
  3%|2         | 6336/228483 [00:00<00:24, 9023.46it/s]
  3%|3         | 7242/228483 [00:00<00:24, 9032.39it/s]
  4%|3         | 8154/228483 [00:00<00:24, 9059.57it/s]
  4%|3         | 9060/228483 [00:01<00:24, 9022.36it/s]
  4%|4         | 9963/228483 [00:01<00:24, 9009.39it/s]
  5%|4         | 10872/228483 [00:01<00:24, 9031.10it/s]
  5%|5         | 11785/228483 [00:01<00:23, 9058.99it/s]
  6%|5         | 12696/228483 [00:01<00:23, 9071.85it/s]
  6%|5         | 13604/228483 [00:01<00:23, 9064.04it/s]
  6%|6         | 14514/228483 [00:01<00:23, 9073.15it/s]
  7%|6         | 15422/228483 [00:01<00:23, 9054.88it/s]
  7%|7         | 16328/228483 [00:01<00:23, 9042.28it/s]
  8%|7         | 17233/228483 [00:01<00:23, 9034.52it/s]
  8%|7         | 18146/228483 [00:02<00:23, 9060.81it/s]
  8%|8         | 19053/228483 [00:02<00:23, 9056.46it/s]
  9%|8         | 19959/228483 [00:02<00:23, 9053.37it/s]
  9%|9         | 20868/228483 [00:02<00:22, 9064.34it/s]
 10%|9         | 21775/228483 [00:02<00:22, 9022.40it/s]
 10%|9         | 22678/228483 [00:02<00:22, 8970.04it/s]
 10%|#         | 23581/228483 [00:02<00:22, 8986.76it/s]
 11%|#         | 24495/228483 [00:02<00:22, 9032.32it/s]
 11%|#1        | 25399/228483 [00:02<00:22, 8988.57it/s]
 12%|#1        | 26306/228483 [00:02<00:22, 9009.48it/s]
 12%|#1        | 27208/228483 [00:03<00:22, 8985.62it/s]
 12%|#2        | 28107/228483 [00:03<00:22, 8971.89it/s]
 13%|#2        | 29011/228483 [00:03<00:22, 8990.77it/s]
 13%|#3        | 29911/228483 [00:03<00:22, 8982.79it/s]
 13%|#3        | 30824/228483 [00:03<00:21, 9025.61it/s]
 14%|#3        | 31729/228483 [00:03<00:21, 9031.33it/s]
 14%|#4        | 32633/228483 [00:03<00:21, 9029.56it/s]
 15%|#4        | 33536/228483 [00:03<00:21, 9028.02it/s]
 15%|#5        | 34439/228483 [00:03<00:21, 9007.14it/s]
 15%|#5        | 35348/228483 [00:03<00:21, 9031.31it/s]
 16%|#5        | 36252/228483 [00:04<00:21, 9021.16it/s]
 16%|#6        | 37155/228483 [00:04<00:21, 9016.64it/s]
 17%|#6        | 38060/228483 [00:04<00:21, 9024.72it/s]
 17%|#7        | 38963/228483 [00:04<00:20, 9025.93it/s]
 17%|#7        | 39866/228483 [00:04<00:20, 9004.96it/s]
 18%|#7        | 40767/228483 [00:04<00:32, 5700.12it/s]
 18%|#8        | 41675/228483 [00:04<00:29, 6419.59it/s]
 19%|#8        | 42577/228483 [00:04<00:26, 7024.63it/s]
 19%|#9        | 43473/228483 [00:05<00:24, 7507.00it/s]
 19%|#9        | 44358/228483 [00:05<00:23, 7859.01it/s]
 20%|#9        | 45273/228483 [00:05<00:22, 8211.53it/s]
 20%|##        | 46176/228483 [00:05<00:21, 8439.20it/s]
 21%|##        | 47086/228483 [00:05<00:21, 8627.86it/s]
 21%|##1       | 47990/228483 [00:05<00:20, 8746.21it/s]
 21%|##1       | 48892/228483 [00:05<00:20, 8824.34it/s]
 22%|##1       | 49804/228483 [00:05<00:20, 8911.12it/s]
 22%|##2       | 50705/228483 [00:05<00:19, 8930.05it/s]
 23%|##2       | 51608/228483 [00:05<00:19, 8958.81it/s]
 23%|##2       | 52509/228483 [00:06<00:19, 8973.87it/s]
 23%|##3       | 53424/228483 [00:06<00:19, 9024.91it/s]
 24%|##3       | 54329/228483 [00:06<00:19, 9008.59it/s]
 24%|##4       | 55234/228483 [00:06<00:19, 9017.94it/s]
 25%|##4       | 56137/228483 [00:06<00:19, 8997.19it/s]
 25%|##4       | 57038/228483 [00:06<00:19, 8940.65it/s]
 25%|##5       | 57946/228483 [00:06<00:18, 8979.68it/s]
 26%|##5       | 58855/228483 [00:06<00:18, 9011.35it/s]
 26%|##6       | 59768/228483 [00:06<00:18, 9044.70it/s]
 27%|##6       | 60678/228483 [00:06<00:18, 9059.11it/s]
 27%|##6       | 61585/228483 [00:07<00:18, 9036.19it/s]
 27%|##7       | 62489/228483 [00:07<00:18, 9003.81it/s]
 28%|##7       | 63403/228483 [00:07<00:18, 9044.14it/s]
 28%|##8       | 64312/228483 [00:07<00:18, 9055.43it/s]
 29%|##8       | 65218/228483 [00:07<00:18, 9051.77it/s]
 29%|##8       | 66134/228483 [00:07<00:17, 9083.41it/s]
 29%|##9       | 67043/228483 [00:07<00:17, 9063.13it/s]
 30%|##9       | 67967/228483 [00:07<00:17, 9114.52it/s]
 30%|###       | 68879/228483 [00:07<00:17, 9085.79it/s]
 31%|###       | 69788/228483 [00:07<00:17, 9060.60it/s]
 31%|###       | 70701/228483 [00:08<00:17, 9079.38it/s]
 31%|###1      | 71609/228483 [00:08<00:17, 9060.42it/s]
 32%|###1      | 72525/228483 [00:08<00:17, 9088.36it/s]
 32%|###2      | 73434/228483 [00:08<00:17, 9053.19it/s]
 33%|###2      | 74340/228483 [00:08<00:17, 9038.21it/s]
 33%|###2      | 75244/228483 [00:08<00:17, 8970.94it/s]
 33%|###3      | 76157/228483 [00:08<00:16, 9017.73it/s]
 34%|###3      | 77078/228483 [00:08<00:16, 9072.23it/s]
 34%|###4      | 77986/228483 [00:08<00:17, 8490.55it/s]
 35%|###4      | 78843/228483 [00:08<00:18, 7923.82it/s]
 35%|###4      | 79726/228483 [00:09<00:18, 8170.97it/s]
 35%|###5      | 80648/228483 [00:09<00:17, 8466.65it/s]
 36%|###5      | 81561/228483 [00:09<00:16, 8654.57it/s]
 36%|###6      | 82463/228483 [00:09<00:16, 8760.52it/s]
 36%|###6      | 83380/228483 [00:09<00:16, 8879.25it/s]
 37%|###6      | 84284/228483 [00:09<00:16, 8926.28it/s]
 37%|###7      | 85210/228483 [00:09<00:15, 9023.58it/s]
 38%|###7      | 86115/228483 [00:09<00:15, 9022.40it/s]
 38%|###8      | 87019/228483 [00:09<00:15, 9008.59it/s]
 38%|###8      | 87927/228483 [00:09<00:15, 9029.36it/s]
 39%|###8      | 88836/228483 [00:10<00:15, 9046.46it/s]
 39%|###9      | 89758/228483 [00:10<00:15, 9098.05it/s]
 40%|###9      | 90669/228483 [00:10<00:15, 9074.20it/s]
 40%|####      | 91577/228483 [00:10<00:15, 9046.40it/s]
 40%|####      | 92482/228483 [00:10<00:24, 5545.72it/s]
 41%|####      | 93392/228483 [00:10<00:21, 6281.20it/s]
 41%|####1     | 94309/228483 [00:10<00:19, 6939.49it/s]
 42%|####1     | 95210/228483 [00:10<00:17, 7448.05it/s]
 42%|####2     | 96103/228483 [00:11<00:16, 7832.71it/s]
 42%|####2     | 97014/228483 [00:11<00:16, 8178.17it/s]
 43%|####2     | 97929/228483 [00:11<00:15, 8447.71it/s]
 43%|####3     | 98844/228483 [00:11<00:14, 8646.11it/s]
 44%|####3     | 99750/228483 [00:11<00:14, 8763.63it/s]
 44%|####4     | 100655/228483 [00:11<00:14, 8844.88it/s]
 44%|####4     | 101566/228483 [00:11<00:14, 8922.45it/s]
 45%|####4     | 102470/228483 [00:11<00:14, 8953.07it/s]
 45%|####5     | 103386/228483 [00:11<00:13, 9011.91it/s]
 46%|####5     | 104293/228483 [00:11<00:13, 9000.46it/s]
 46%|####6     | 105198/228483 [00:12<00:13, 9014.47it/s]
 46%|####6     | 106108/228483 [00:12<00:13, 9038.45it/s]
 47%|####6     | 107017/228483 [00:12<00:13, 9053.61it/s]
 47%|####7     | 107924/228483 [00:12<00:13, 8911.52it/s]
 48%|####7     | 108817/228483 [00:12<00:13, 8908.45it/s]
 48%|####8     | 109709/228483 [00:12<00:13, 8911.21it/s]
 48%|####8     | 110633/228483 [00:12<00:13, 9008.17it/s]
 49%|####8     | 111548/228483 [00:12<00:12, 9047.61it/s]
 49%|####9     | 112454/228483 [00:12<00:12, 9043.89it/s]
 50%|####9     | 113359/228483 [00:13<00:12, 9014.29it/s]
 50%|#####     | 114261/228483 [00:13<00:12, 8989.92it/s]
 50%|#####     | 115180/228483 [00:13<00:12, 9048.97it/s]
 51%|#####     | 116089/228483 [00:13<00:12, 9058.59it/s]
 51%|#####1    | 116995/228483 [00:13<00:12, 8902.05it/s]
 52%|#####1    | 117905/228483 [00:13<00:12, 8959.41it/s]
 52%|#####2    | 118822/228483 [00:13<00:12, 9019.42it/s]
 52%|#####2    | 119742/228483 [00:13<00:11, 9072.44it/s]
 53%|#####2    | 120650/228483 [00:13<00:11, 9012.70it/s]
 53%|#####3    | 121554/228483 [00:13<00:11, 9017.90it/s]
 54%|#####3    | 122465/228483 [00:14<00:11, 9042.94it/s]
 54%|#####3    | 123379/228483 [00:14<00:11, 9070.06it/s]
 54%|#####4    | 124287/228483 [00:14<00:11, 9052.36it/s]
 55%|#####4    | 125193/228483 [00:14<00:11, 9033.55it/s]
 55%|#####5    | 126097/228483 [00:14<00:11, 8829.53it/s]
 56%|#####5    | 126992/228483 [00:14<00:11, 8863.01it/s]
 56%|#####5    | 127895/228483 [00:14<00:11, 8912.40it/s]
 56%|#####6    | 128803/228483 [00:14<00:11, 8961.71it/s]
 57%|#####6    | 129705/228483 [00:14<00:11, 8978.02it/s]
 57%|#####7    | 130620/228483 [00:14<00:10, 9026.87it/s]
 58%|#####7    | 131523/228483 [00:15<00:10, 9024.74it/s]
 58%|#####7    | 132426/228483 [00:15<00:10, 9011.12it/s]
 58%|#####8    | 133333/228483 [00:15<00:10, 9028.66it/s]
 59%|#####8    | 134241/228483 [00:15<00:10, 9042.69it/s]
 59%|#####9    | 135153/228483 [00:15<00:10, 9064.40it/s]
 60%|#####9    | 136063/228483 [00:15<00:10, 9074.67it/s]
 60%|#####9    | 136977/228483 [00:15<00:10, 9094.02it/s]
 60%|######    | 137887/228483 [00:15<00:09, 9066.84it/s]
 61%|######    | 138794/228483 [00:15<00:09, 9055.70it/s]
 61%|######1   | 139703/228483 [00:15<00:09, 9065.23it/s]
 62%|######1   | 140614/228483 [00:16<00:09, 9076.96it/s]
 62%|######1   | 141524/228483 [00:16<00:09, 9083.52it/s]
 62%|######2   | 142433/228483 [00:16<00:09, 9042.70it/s]
 63%|######2   | 143339/228483 [00:16<00:09, 9047.34it/s]
 63%|######3   | 144244/228483 [00:16<00:09, 9016.59it/s]
 64%|######3   | 145146/228483 [00:16<00:09, 8984.17it/s]
 64%|######3   | 146048/228483 [00:16<00:09, 8992.43it/s]
 64%|######4   | 146951/228483 [00:16<00:09, 9003.30it/s]
 65%|######4   | 147859/228483 [00:16<00:08, 9023.86it/s]
 65%|######5   | 148767/228483 [00:16<00:08, 9039.79it/s]
 66%|######5   | 149671/228483 [00:17<00:08, 9021.79it/s]
 66%|######5   | 150574/228483 [00:17<00:08, 9001.89it/s]
 66%|######6   | 151477/228483 [00:17<00:08, 9008.52it/s]
 67%|######6   | 152384/228483 [00:17<00:08, 9024.85it/s]
 67%|######7   | 153299/228483 [00:17<00:08, 9060.63it/s]
 67%|######7   | 154210/228483 [00:17<00:08, 9074.61it/s]
 68%|######7   | 155118/228483 [00:17<00:08, 9059.90it/s]
 68%|######8   | 156025/228483 [00:17<00:08, 9039.60it/s]
 69%|######8   | 156929/228483 [00:18<00:13, 5380.55it/s]
 69%|######9   | 157833/228483 [00:18<00:11, 6121.53it/s]
 69%|######9   | 158726/228483 [00:18<00:10, 6751.47it/s]
 70%|######9   | 159622/228483 [00:18<00:09, 7287.44it/s]
 70%|#######   | 160513/228483 [00:18<00:08, 7703.65it/s]
 71%|#######   | 161392/228483 [00:18<00:08, 7994.27it/s]
 71%|#######1  | 162299/228483 [00:18<00:07, 8291.87it/s]
 71%|#######1  | 163204/228483 [00:18<00:07, 8506.15it/s]
 72%|#######1  | 164107/228483 [00:18<00:07, 8656.22it/s]
 72%|#######2  | 165002/228483 [00:18<00:07, 8741.91it/s]
 73%|#######2  | 165895/228483 [00:19<00:07, 8794.80it/s]
 73%|#######3  | 166794/228483 [00:19<00:06, 8850.43it/s]
 73%|#######3  | 167699/228483 [00:19<00:06, 8908.19it/s]
 74%|#######3  | 168600/228483 [00:19<00:06, 8937.69it/s]
 74%|#######4  | 169507/228483 [00:19<00:06, 8976.52it/s]
 75%|#######4  | 170408/228483 [00:19<00:06, 8354.80it/s]
 75%|#######4  | 171255/228483 [00:19<00:07, 7258.66it/s]
 75%|#######5  | 172148/228483 [00:19<00:07, 7692.30it/s]
 76%|#######5  | 173045/228483 [00:19<00:06, 8037.02it/s]
 76%|#######6  | 173950/228483 [00:20<00:06, 8317.37it/s]
 77%|#######6  | 174853/228483 [00:20<00:06, 8518.33it/s]
 77%|#######6  | 175719/228483 [00:20<00:06, 8549.64it/s]
 77%|#######7  | 176613/228483 [00:20<00:05, 8662.91it/s]
 78%|#######7  | 177505/228483 [00:20<00:05, 8738.08it/s]
 78%|#######8  | 178387/228483 [00:20<00:05, 8760.99it/s]
 78%|#######8  | 179286/228483 [00:20<00:05, 8827.90it/s]
 79%|#######8  | 180190/228483 [00:20<00:05, 8888.68it/s]
 79%|#######9  | 181089/228483 [00:20<00:05, 8917.87it/s]
 80%|#######9  | 181995/228483 [00:20<00:05, 8959.19it/s]
 80%|########  | 182892/228483 [00:21<00:05, 8917.30it/s]
 80%|########  | 183785/228483 [00:21<00:05, 8914.92it/s]
 81%|########  | 184692/228483 [00:21<00:04, 8958.97it/s]
 81%|########1 | 185592/228483 [00:21<00:04, 8969.43it/s]
 82%|########1 | 186493/228483 [00:21<00:04, 8978.76it/s]
 82%|########2 | 187397/228483 [00:21<00:04, 8994.36it/s]
 82%|########2 | 188297/228483 [00:21<00:04, 8990.36it/s]
 83%|########2 | 189197/228483 [00:21<00:04, 8992.81it/s]
 83%|########3 | 190097/228483 [00:21<00:04, 8973.01it/s]
 84%|########3 | 191000/228483 [00:21<00:04, 8989.07it/s]
 84%|########3 | 191899/228483 [00:22<00:04, 8981.99it/s]
 84%|########4 | 192799/228483 [00:22<00:03, 8984.98it/s]
 85%|########4 | 193700/228483 [00:22<00:03, 8989.56it/s]
 85%|########5 | 194599/228483 [00:22<00:03, 8959.75it/s]
 86%|########5 | 195496/228483 [00:22<00:03, 8955.61it/s]
 86%|########5 | 196392/228483 [00:22<00:03, 8889.80it/s]
 86%|########6 | 197294/228483 [00:22<00:03, 8927.64it/s]
 87%|########6 | 198198/228483 [00:22<00:03, 8958.47it/s]
 87%|########7 | 199102/228483 [00:22<00:03, 8980.50it/s]
 88%|########7 | 200002/228483 [00:22<00:03, 8985.58it/s]
 88%|########7 | 200901/228483 [00:23<00:03, 8952.53it/s]
 88%|########8 | 201797/228483 [00:23<00:02, 8949.98it/s]
 89%|########8 | 202698/228483 [00:23<00:02, 8966.43it/s]
 89%|########9 | 203597/228483 [00:23<00:02, 8972.25it/s]
 90%|########9 | 204500/228483 [00:23<00:02, 8988.13it/s]
 90%|########9 | 205402/228483 [00:23<00:02, 8995.07it/s]
 90%|######### | 206304/228483 [00:23<00:02, 8999.85it/s]
 91%|######### | 207204/228483 [00:23<00:02, 8981.55it/s]
 91%|#########1| 208103/228483 [00:23<00:02, 8954.81it/s]
 91%|#########1| 208999/228483 [00:23<00:02, 8952.79it/s]
 92%|#########1| 209895/228483 [00:24<00:02, 8954.01it/s]
 92%|#########2| 210791/228483 [00:24<00:01, 8946.82it/s]
 93%|#########2| 211686/228483 [00:24<00:01, 8946.99it/s]
 93%|#########3| 212581/228483 [00:24<00:01, 8924.22it/s]
 93%|#########3| 213474/228483 [00:24<00:01, 8907.93it/s]
 94%|#########3| 214365/228483 [00:24<00:01, 8858.09it/s]
 94%|#########4| 215258/228483 [00:24<00:01, 8877.18it/s]
 95%|#########4| 216161/228483 [00:24<00:01, 8921.81it/s]
 95%|#########5| 217059/228483 [00:24<00:01, 8937.65it/s]
 95%|#########5| 217954/228483 [00:24<00:01, 8939.87it/s]
 96%|#########5| 218849/228483 [00:25<00:01, 8901.74it/s]
 96%|#########6| 219745/228483 [00:25<00:00, 8917.98it/s]
 97%|#########6| 220644/228483 [00:25<00:00, 8939.45it/s]
 97%|#########6| 221545/228483 [00:25<00:00, 8958.36it/s]
 97%|#########7| 222445/228483 [00:25<00:00, 8968.13it/s]
 98%|#########7| 223346/228483 [00:25<00:00, 8979.61it/s]
 98%|#########8| 224246/228483 [00:25<00:00, 8984.80it/s]
 99%|#########8| 225146/228483 [00:25<00:00, 8988.12it/s]
 99%|#########8| 226045/228483 [00:25<00:00, 8973.19it/s]
 99%|#########9| 226948/228483 [00:25<00:00, 8989.98it/s]
100%|#########9| 227848/228483 [00:26<00:00, 8989.43it/s]
100%|##########| 228483/228483 [00:33<00:00, 6889.45it/s]

<nilearn.plotting.displays._slicers.ZSlicer object at 0x7fb27e8a5a60>

Conjunction analysis

To determine the overlap of the meta-analytic results, a conjunction image can be computed by (a) identifying voxels that were statistically significant in both individual group maps and (b) selecting, for each of these voxels, the smaller of the two group-specific z values Nichols et al.[2]. Since this is simple arithmetic on images, conjunction is not implemented as a separate method in NiMARE but can easily be achieved with nilearn.image.math_img().

from nilearn.image import math_img

formula = "np.where(img1 * img2 > 0, np.minimum(img1, img2), 0)"
img_conj = math_img(formula, img1=knowledge_img, img2=related_img)

plot_stat_map(
    img_conj,
    cut_coords=4,
    display_mode="z",
    title="Conjunction",
    threshold=2.326,  # cluster-level p < .01, one-tailed
    cmap="RdBu_r",
    vmax=4,
)
08 plot cbma subtraction conjunction

Out:

<nilearn.plotting.displays._slicers.ZSlicer object at 0x7fb27eac1910>

References

Total running time of the script: ( 4 minutes 5.796 seconds)

Gallery generated by Sphinx-Gallery