Note
Click here to download the full example code
Using Neurovault Statistical Maps in NiMARE
Conversion of Statistical Maps
Some of the statistical maps are T statistics and others are Z statistics.
To perform a Fisher’s meta analysis, we need all Z maps.
Thoughtfully, NiMARE has a class named ImageTransformer
that will
help us.
from nimare.transforms import ImageTransformer
# Not all studies have Z maps!
print(dset.images["z"])
z_transformer = ImageTransformer(target="z")
dset = z_transformer.transform(dset)
# All studies now have Z maps!
print(dset.images["z"])
from nilearn.plotting import plot_stat_map
Out:
1 None
0 None
2 None
5 /home/docs/.nimare/working_memory/collection-3...
4 /home/docs/.nimare/working_memory/collection-3...
6 /home/docs/.nimare/working_memory/collection-4...
3 None
Name: z, dtype: object
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/0.0.10/lib/python3.7/site-packages/nilearn/image/resampling.py:598: 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.
fill_value=fill_value)
1 /home/docs/.nimare/working_memory/study-2621-w...
0 /home/docs/.nimare/working_memory/study-2884-w...
2 /home/docs/.nimare/working_memory/study-3085-w...
5 /home/docs/.nimare/working_memory/collection-3...
4 /home/docs/.nimare/working_memory/collection-3...
6 /home/docs/.nimare/working_memory/collection-4...
3 /home/docs/.nimare/working_memory/study-5623-w...
Name: z, dtype: object
Run a Meta-Analysis
With the missing Z maps filled in, we can run a Meta-Analysis and plot our results
from nimare.meta.ibma import Fishers
meta = Fishers()
meta_res = meta.fit(dset)
plot_stat_map(meta_res.get_map("z"), threshold=3.3)
# The result may look questionable, but this code provides
# a template on how to use neurovault in your meta analysis.
Out:
/home/docs/checkouts/readthedocs.org/user_builds/nimare/envs/0.0.10/lib/python3.7/site-packages/nilearn/_utils/niimg.py:62: UserWarning: Non-finite values detected. These values will be replaced with zeros.
"Non-finite values detected. "
<nilearn.plotting.displays.OrthoSlicer object at 0x7f188aee8bd0>
Total running time of the script: ( 0 minutes 18.401 seconds)