Study 2¶
Brief description of neuroimaging study.
For group-level statistical inference, we ran a sign permutation test using the following bash
command with AFNI
to run 3dttest++
with -Clustsim
:
dirA=mnt/data/study/firstlevel_glm/
3dttest++ -prefix /mnt/data/study/results/Condition_A.nii.gz \
-mask /mnt/data/study/code/modeling/MNI152-graymatter-thr50-2mm.nii.gz \
-Clustsim \
-setA Condition_A \
101 "$dirA/sub-101_stats.nii.gz[0]" \
102 "$dirA/sub-102_stats.nii.gz[0]" \
103 "$dirA/sub-103_stats.nii.gz[0]" \
104 "$dirA/sub-104_stats.nii.gz[0]" \
105 "$dirA/sub-105_stats.nii.gz[0]" \
106 "$dirA/sub-106_stats.nii.gz[0]" \
107 "$dirA/sub-107_stats.nii.gz[0]" \
108 "$dirA/sub-108_stats.nii.gz[0]" \
109 "$dirA/sub-109_stats.nii.gz[0]" \
110 "$dirA/sub-110_stats.nii.gz[0]" \
111 "$dirA/sub-111_stats.nii.gz[0]" \
112 "$dirA/sub-112_stats.nii.gz[0]" \
113 "$dirA/sub-113_stats.nii.gz[0]" \
115 "$dirA/sub-115_stats.nii.gz[0]" \
201 "$dirA/sub-201_stats.nii.gz[0]" \
202 "$dirA/sub-202_stats.nii.gz[0]" \
203 "$dirA/sub-203_stats.nii.gz[0]" \
204 "$dirA/sub-204_stats.nii.gz[0]" \
205 "$dirA/sub-205_stats.nii.gz[0]" \
206 "$dirA/sub-206_stats.nii.gz[0]" \
207 "$dirA/sub-207_stats.nii.gz[0]" \
208 "$dirA/sub-208_stats.nii.gz[0]" \
209 "$dirA/sub-209_stats.nii.gz[0]" \
210 "$dirA/sub-210_stats.nii.gz[0]" \
211 "$dirA/sub-211_stats.nii.gz[0]" \
212 "$dirA/sub-212_stats.nii.gz[0]" \
213 "$dirA/sub-213_stats.nii.gz[0]" \
215 "$dirA/sub-215_stats.nii.gz[0]"
We thresholded our image using the following bash
command with AFNI
to run 3dClusterize
:
3dClusterize -nosum -1Dformat -inset /mnt/data/study/results/Condition_A.nii.gz -idat 1 -ithr 1 -NN 2 -clust_nvox 9 -bisided -2.8 2.8 -pref_map Clust_mask
Figure 2¶
Rather than selecting a few slices, let’s allow readers to interact with the entire statistical map!
import nibabel as nib
from nilearn.plotting import view_img
zmap = nib.load('data/unthresh_Z.nii.gz')
view_img(zmap, threshold=2.8)
Here is the statistic map on a surface mesh.
Supplemental Figure 3¶
from nilearn.plotting import view_img_on_surf
view_img_on_surf(zmap,threshold=2.8)
Table 2¶
We can also generate a coordinate table from the statistical map.
from nilearn.reporting import get_clusters_table
table = get_clusters_table(zmap,
stat_threshold=2.8,
cluster_threshold=10).set_index('Cluster ID',
drop=True)
display(table)
X | Y | Z | Peak Stat | Cluster Size (mm3) | |
---|---|---|---|---|---|
Cluster ID | |||||
1 | -34.0 | 20.0 | 8.0 | 3.961450 | 832 |
2 | -40.0 | -54.0 | 50.0 | 3.916769 | 2800 |
2a | -34.0 | -64.0 | 38.0 | 3.624071 | |
2b | -36.0 | -56.0 | 40.0 | 3.511222 | |
2c | -46.0 | -42.0 | 44.0 | 3.082136 | |
3 | 10.0 | 36.0 | 22.0 | 3.871496 | 512 |
4 | -40.0 | 24.0 | 32.0 | 3.761007 | 1648 |
4a | -48.0 | 28.0 | 34.0 | 3.689187 | |
4b | -42.0 | 30.0 | 26.0 | 3.413833 | |
4c | -54.0 | 12.0 | 34.0 | 3.204023 | |
5 | 0.0 | 24.0 | 36.0 | 3.636167 | 3432 |
5a | -6.0 | 24.0 | 42.0 | 3.557699 | |
5b | -8.0 | 32.0 | 44.0 | 3.462496 | |
6 | -30.0 | 10.0 | 60.0 | 3.617460 | 272 |
6a | -30.0 | 2.0 | 64.0 | 3.185505 | |
7 | -38.0 | 44.0 | 0.0 | 3.396527 | 600 |
7a | -42.0 | 50.0 | 6.0 | 3.363012 | |
8 | -18.0 | 26.0 | 56.0 | 3.380708 | 240 |
9 | -10.0 | 38.0 | 18.0 | 3.372366 | 208 |
10 | 14.0 | 2.0 | -8.0 | 3.150095 | 80 |
11 | 42.0 | -56.0 | 52.0 | 3.104519 | 416 |
11a | 38.0 | -64.0 | 46.0 | 3.018312 |