|
Size: 7761
Comment:
|
Size: 7761
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 35: | Line 35: |
| == Use Case 2: Passing only a single modality stack to create surrogates to be used at a later time == | === Use Case 2: Passing only a single modality stack to create surrogates to be used at a later time === |
| Line 41: | Line 41: |
| == Use Case 3: Passing a stack from one modality and the surrogates from another modality created as in use case #2 == | === Use Case 3: Passing a stack from one modality and the surrogates from another modality created as in use case #2 === |
| Line 47: | Line 47: |
| == Use Case 4: Passing surrogates for both modalities where the surrogates were created as in use case #2 == | === Use Case 4: Passing surrogates for both modalities where the surrogates were created as in use case #2 === |
| Line 52: | Line 52: |
| == | |
| Line 54: | Line 53: |
| === How to cite === | == How to cite == |
Contents
- Introduction
- Creating "Stacks"
-
Use Cases
- Use Case 1: passing stacks from both modalities
- Use Case 2: Passing only a single modality stack to create surrogates to be used at a later time
- Use Case 3: Passing a stack from one modality and the surrogates from another modality created as in use case #2
- Use Case 4: Passing surrogates for both modalities where the surrogates were created as in use case #2
- How to cite
1. Introduction
Dual permutation (DP) is a method to compute the p-value of an inter-modal spatial Pearson correlation coefficient (PCC) of cross-subject mean maps. For example, the result of an fMRI study and a mean map of serotonin receptor density as measured by PET. Each modality is represented by a "stack" of subjects, ie, a map with multiple frames where each frame is a subject. The mean maps to be correlated are computed from these stacks by fitting a regression model in a GLM, then computing a contrast of regression coefficients to reduce the stack to a single univariate map. Dual permutation works by creating "surrogate" maps of each modality and then computing the correlation between the surrogates. The surrogate maps are constructed by first residualizing the stack using the GLM, then permuting the design matrix, then reanalyzing the resdiualized stack with the permuted design matrix, followed by applying the contrast to create a univariate surrogate. This is repeated many times to create a list of surrogate PCCs. The p-value is then computed at the fraction of times the surrogate PCCs exceeded the real PCC. DP should only be used in cases where the two modalities come from different subject populations. The stacks must exist in the same space, eg, MNI152, fsaverage, or a table of ROIs.
DP has been rigorously verified. The surrogate PCC has been shown analytically to have the same variance of that of the real PCC under the null regardless of spatial autocorrelation function (SACF, including spatial non-staionarity of the SACF), spatial non-stationarity in noise power, and group level design. As a non-parametric method, it does not rely on assumptions about the distribution of the noise. DP has been shown to control the false positive rate (also known as the type I error rate) in pairs of real data configured to be null, including, fMRI, cortical thickness, cortical curvature, DTI fractional anisotropy, and serotonin transporter binding potential as measured by PET. DP works in cases where both modalities are null (known as the "Full Null") as well as when one of the modalities is null but the other is non-null (known as the "Partial Null").
2. Creating "Stacks"
"Stacks" are single files with multiple subjects "stacked" in the frame dimension. A stack must be in an atlas space, such as MNI152, fsaverage, or a table of ROIs. Voxel-wise stacks are typically stored in NIFTI or mgz format whereas ROI stacks are in text files. In FreeSurfer, there are several ways to create stacks, such as with mris_preproc, isxconcat-sess, asegstats2table, aparcstats2table, and mri_concat. Of course, stacks created from other software packages can be used with mri_dualperm. The two modalities can have different numbers of subjects.
3. Use Cases
mri_dualperm is the FreeSurfer program that implements DP. It can be run in several ways:
- Passing stacks from both modalities
- Passing only a single modality stack to create surrogates to be used at a later time
- Passing a stack from one modality and the surrogates from another modality created as in use case #2
- Passing surrogates for both modalities where the surrogates were created as in use case #2
It is likely that users will only need method #1. However, allowing the creation of surrogates from a single modality at a time has some advantages, mainly it allows surrogates to be publicly distributed in cases where privacy concerns prevent the distribution of individual subject data in which case methods #3 or #4 could be used. The creation of surrogates from a single modality also makes it easier to perform DP on a broad scale. For example, single modality surrogates could be stored in the BIDS atlas format on OpenNeuro. If surrogates for many such modalities existed, then inter-modal correlations could be computed at a massive scale. Of course, regardless of the application, precomputing surrogates will speed up the final computations.
Both modalities (stacks or surrogates) must be in the same space. It is possible to compile DP runs across spaces. For example, if subcortical gray matter structures were analyzed in the volume and cortical structures were analyzed on the surface, then a whole brain gray matter correlation analysis could be run by running DP on each space separately, then combining the results afterwards.
The execution time of DP depends on the number of subjects in each modality, the size of the atlas space, and the number of permutations. If the number of subjects is 20 and the space is fsaverage, the mri_dual perm only takes a few minutes to run 500 permutations.
3.1. Use Case 1: passing stacks from both modalities
mri_dualperm --o outputfolder --nperm 500 --map1 stack1.nii.gz --fsgd1 design1.fsgd --mask1 mask1.nii.gz --map2 stack2.nii.gz --fsgd2 design2.fsgd --mask2 mask2.nii.gz
In the above command, DP will be run with 500 permutations. The FSGD files are FreeSurfer Group Descriptor File used to specify the group level design for a given modality; see surfer.nmr.mgh.harvard.edu/fswiki/FsgdExamples. The FSGD file must have a univariate (t) contrast specified; if multiple contrasts are specified, then DP is only run on the first one. The modalities do not have to have the same design. If you only want to compute the simple mean of your stack, you can pass --osgm1 and/or --osgm2 instead of --fsgd1 or --fsgd2. OSGM = One-Sample Group Mean.
The masks are optional binary maps that indicate the voxels over which the correlation will be computed. The final mask will be the intersection of the two masks. Note that regardless of whether masks are passed or not, an internal mask is created. For a voxel to be in the internal mask, it must have non-zero values for all subjects in both modalities.
The output will go into outputfolder. The inter-modal correlation will be in the cc.dat file. The p-value will be in p12.max.dat. This file will have three values: (1) p-value for PCC > 0, (2) p-value for PCC < 0, and (3) p-value for PCC != 0. Choose the one appropriate for your hypothesis. There will also be glm1 and glm2 folders with output of the GLM analysis for each modality. This can be handy for quality control and troubleshooting. Final masks are also in the glm folder.
3.2. Use Case 2: Passing only a single modality stack to create surrogates to be used at a later time
mri_dualperm --o outputfolder --nperm 500 --map1 stack1.nii.gz --fsgd1 design1.fsgd --mask1 mask1.nii.gz --map1-only --pstacksave1
This will write out a file called pstack1.nii.gz, which is a stack of 500 surrogates, which can be passed to mri_dualperm as below. These can also be distributed without privacy concern as they are essentially mean images. There will of course not be any correlation coefficients or p-values because this is only one modality.
3.3. Use Case 3: Passing a stack from one modality and the surrogates from another modality created as in use case #2
mri_dualperm --o outputfolder --nperm 500 --pstack1 pstack1.nii.gz --map2 stack2.nii.gz --fsgd2 design2.fsgd --mask2 mask2.nii.gz
This will create the same output as Use Case 1. Note that the input pstack1.nii.gz must have a least nperm (500) frames. A mask for modality 1 can also be passed.
3.4. Use Case 4: Passing surrogates for both modalities where the surrogates were created as in use case #2
mri_dualperm --o outputfolder --nperm 500 --pstack1 pstack1.nii.gz --pstack2 pstack2.nii.gz
This will create the same output as Use Cases 1 and 3. Note that the input pstack1.nii.gz must have a least nperm (500) frames. Masks can also bepassed.
