|
Size: 2884
Comment: missing edit-log entry for this revision
|
Size: 5565
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 2: | Line 2: |
| == Overlaying FSL Feat statistical maps and Higher-Level Analysis == | |
| Line 3: | Line 4: |
| == Overlaying FSL Feat statistical maps == | *To follow this exercise exactly be sure you've downloaded the [wiki:Self:FsTutorial/Data tutorial data set] before you begin. If you choose not to download the data set you can follow these instructions on your own data, but you will have to substitute your own specific paths and subject names. |
| Line 13: | Line 14: |
| Use the following command to display the zmap (zstat1.img) overlaid onto the bert's orig volume. It will display the automatic segmentation, and will also set the threshold at z = 1.3: | Use the following command to display the zmap (zstat1.img) overlaid onto the bert's orig volume. It will display the automatic segmentation, and will also set the threshold at z = 2.3: |
| Line 15: | Line 16: |
| tkmedit bert orig -aux brain -overlay ./fbert.feat/stats/zstat1.img \ -overlay-reg ./fbert.feat/reg/freesurfer/anat2exf.register.dat \ -fthresh 1.3 -fmid 2.3 -fslope 1 \ -segmentation ${SUBJECTS_DIR}/bert/mri/aseg ${FREESURFER_HOME}/tkmeditColorsCMA |
tkmedit bert orig.mgz lh.white -aux brain.mgz \ -overlay ./fbert1.feat/stats/zstat1.nii.gz \ -overlay-reg ./fbert1.feat/reg/freesurfer/anat2exf.register.dat \ -segmentation aparc+aseg.mgz -fthresh 2.3 -fmax 4.3 |
| Line 22: | Line 23: |
| attachment:tkm-zstat1-cor-128-small.jpg | attachment:tkm-zstat1-cor-128.th23.small.jpg When you click or mouse over a voxel, the cortical or subcortical structure that that voxel belongs to will be displayed in the control panel. You can view any of the volumes in the stats dir in this way as well as the clustered maps in the feat directory. |
| Line 24: | Line 26: |
| === 2.0 Sampling statistical maps onto bert's surface === | === 2.0 View statistical maps on bert's surface === To view any of the statistical maps on bert's surface, close the tkmedit GUI (or open a new terminal window) and run: {{{ tksurfer bert lh inflated \ -overlay ./fbert1.feat/stats/zstat1.nii.gz \ -overlay-reg ./fbert1.feat/reg/freesurfer/anat2exf.register.dat \ -fthresh 2.3 -fmid 3.3 -fslope 1 -annot aparc.annot }}} |
| Line 26: | Line 35: |
| In order to display the statistical map overlaid onto the surface, the data in fbert.feat must be resampled. This is done with feat2surf. Documentation for what it does and how it does it can be obtained with: | Change the cortical parcellation to outline mode with View->LabelStyle->Outline. You should see the image below:[[BR]] attachment:tks-zstat1-rh-lat.th23.small.jpg [[BR]] When you click or mouse over a vertex, the control panel will display the name of the cortical structure. You can view any of the volumes in the stats dir in this way as well as the clustered maps in the feat directory. You can also run the tkmedit and tksurfer commands above in separate shells and use the Save-Point/Goto-Point functionality to navigate through the volume and surface. === 3.0 Resampling COPEs to common surface and Higher-Level Analysis === When performing surface-based group analysis of functional data, the COPEs must be sampled to the common surface space (similar to how you must reslice the COPEs from the native functional space into standard space prior to group analysis). The surface sampling can be done in two ways. First, you can use feat2surf as in: |
| Line 28: | Line 46: |
| feat2surf --help | feat2surf --feat fbert1.feat --cope-only |
| Line 30: | Line 48: |
| To run it on this data set, run: | This will create fbert.feat/reg_surf-lh-fsaverage/stats for the left hemi (and another for the right). There will be cope1.nii.gz. This looks like a volume because it is in nifti format, but it is really a surface stored in a volume format (note it's dimensions are 1974 x 1 x 83 = 163842 = number of vertices in fsaverage's surface). You can then concatenate these files from different subjects to perform group analysis with FreeSurfer's mri_glmfit or FSL's randomise or flame. Alternatively, when you have multiple runs/subjects, you can use mris_preproc, something like: |
| Line 32: | Line 52: |
| feat2surf --feat fbert.feat | mris_preproc --target fsaverage --hemi lh --out xrun/lh.cope1.nii.gz \ --iv fbert1.feat/stats/cope1.nii.gz fbert1.feat/reg/freesurfer/anat2exf.register.dat \ --iv fbert2.feat/stats/cope1.nii.gz fbert2.feat/reg/freesurfer/anat2exf.register.dat |
| Line 34: | Line 56: |
| Verify that this has created four directories under fbert.feat: reg_surf-lh, reg_surf-rh, reg_surf-lh-average7, and reg_surf-rh-average7. Each one of these directories will have a stats directory in which all the statistics from fbert.feat/stats have been resampled onto the surface. The average7 directories are resampled onto the common surface spaced (defined by average7). | This will create the output directory (xrun) and lh.cope1.nii.gz, the copes from each run sampled onto the left hemi of the common surface. In this case it will have only two frames for the two runs. This can then be used as input mri_glmfit, randomise, or flame. You can also resample the variances of the copes with: {{{ mris_preproc --target fsaverage --hemi lh --out xrun/lh.varcope1.nii.gz \ --iv fbert1.feat/stats/varcope1.nii.gz fbert1.feat/reg/freesurfer/anat2exf.register.dat \ --iv fbert2.feat/stats/varcope1.nii.gz fbert2.feat/reg/freesurfer/anat2exf.register.dat }}} |
| Line 36: | Line 65: |
| === 3.0 Viewing statistical maps on bert's surface === | The command below can be used to run a fixed-effects analysis across both runs. Normally, you would probably run a random effects or weight random effects analysis, but since we only have two runs here, we'll use a fixed-effects. The dof=163 is the sum of the dofs from fbert?.feat/stats/dof. The model here is a simple one-sample group mean (OSGM) in which the desgin matrix is simply a column of 1s. For more elaborate designs, use an FSGD file instead of --osgm. |
| Line 38: | Line 68: |
| To view the statistical maps on the right hemisphere, run tksurfer: | |
| Line 40: | Line 69: |
| tksurfer bert rh inflated \ -o ./fbert.feat/reg_surf-rh/stats/zstat1.mgh -overlay-reg-identity \ -fthresh 1.3 -fmid 2.3 -fslope 1 |
mri_glmfit --y xrun/lh.cope1.nii.gz --yffxvar xrun/lh.varcope1.nii.gz --ffxdof 163 \ --osgm --glmdir xrun/lh.osgm.ffx --surf fsaverage lh --label lh.cortex.label |
| Line 44: | Line 72: |
| Note that you can run the above tkmedit command (from a different window) simultaneously with the tksurfer command to visualize the same data on the volume and in the surface. You can then use the Save/Goto Point buttons to navigate between the surface and volume. |
To view the higher-level results, run: {{{ tksurfer fsaverage lh inflated -overlay xrun/lh.osgm.ffx/osgm/sig.mgh \ -fthresh 4 -fmid 5 -fslope 1 -annot aparc.annot }}} There are several differences between this invokation of tksurfer and the one further above. * The subject is fsaverage, not bert * The input is a sig map, which is -log10(p) * The thresholds are significance thresholds, not z. So, 4 means p < .0001. |
| Line 48: | Line 82: |
| You should see the image below:[[BR]] attachment:tks-zstat1-rh-lat-small.jpg |
|
| Line 51: | Line 83: |
| === 4.0 Overlaying zmap onto the FSL's standard volume === | |
| Line 53: | Line 84: |
| You can also use tkmedit to view your results on the FSL standard volume instead of the individual's anatomical with the following command: {{{ tkmedit -f $FSLDIR/etc/standard/avg152T1_brain.img \ -overlay ./fbert.feat/stats/zstat1.img \ -overlay-reg ./fbert.feat/reg/freesurfer/std2exf.register.dat \ -fthresh 1.3 -fmid 2.3 -fslope 1 }}} |
[wiki:FsTutorial top] | [wiki:FsTutorial/FslFeatFreeSurfer previous]
Overlaying FSL Feat statistical maps and Higher-Level Analysis
To follow this exercise exactly be sure you've downloaded the [wiki:FsTutorial/Data tutorial data set] before you begin. If you choose not to download the data set you can follow these instructions on your own data, but you will have to substitute your own specific paths and subject names.
In this exercise, the data set of subject bert is used for demonstration. To begin the exercises, first enter the following directory, and then set the current directory to be the default subjects directory using this command:
cd $FREESURFER_HOME/subjects/buckner_data/tutorial_subjs
setenv SUBJECTS_DIR ${PWD}
1.0 Overlaying the statistical map onto the bert's orig volume
Use the following command to display the zmap (zstat1.img) overlaid onto the bert's orig volume. It will display the automatic segmentation, and will also set the threshold at z = 2.3:
tkmedit bert orig.mgz lh.white -aux brain.mgz \ -overlay ./fbert1.feat/stats/zstat1.nii.gz \ -overlay-reg ./fbert1.feat/reg/freesurfer/anat2exf.register.dat \ -segmentation aparc+aseg.mgz -fthresh 2.3 -fmax 4.3
You should see the image below:BR attachment:tkm-zstat1-cor-128.th23.small.jpg When you click or mouse over a voxel, the cortical or subcortical structure that that voxel belongs to will be displayed in the control panel. You can view any of the volumes in the stats dir in this way as well as the clustered maps in the feat directory.
2.0 View statistical maps on bert's surface
To view any of the statistical maps on bert's surface, close the tkmedit GUI (or open a new terminal window) and run:
tksurfer bert lh inflated \ -overlay ./fbert1.feat/stats/zstat1.nii.gz \ -overlay-reg ./fbert1.feat/reg/freesurfer/anat2exf.register.dat \ -fthresh 2.3 -fmid 3.3 -fslope 1 -annot aparc.annot
Change the cortical parcellation to outline mode with View->LabelStyle->Outline. You should see the image below:BR attachment:tks-zstat1-rh-lat.th23.small.jpg BR When you click or mouse over a vertex, the control panel will display the name of the cortical structure. You can view any of the volumes in the stats dir in this way as well as the clustered maps in the feat directory. You can also run the tkmedit and tksurfer commands above in separate shells and use the Save-Point/Goto-Point functionality to navigate through the volume and surface.
3.0 Resampling COPEs to common surface and Higher-Level Analysis
When performing surface-based group analysis of functional data, the COPEs must be sampled to the common surface space (similar to how you must reslice the COPEs from the native functional space into standard space prior to group analysis). The surface sampling can be done in two ways.
First, you can use feat2surf as in:
feat2surf --feat fbert1.feat --cope-only
This will create fbert.feat/reg_surf-lh-fsaverage/stats for the left hemi (and another for the right). There will be cope1.nii.gz. This looks like a volume because it is in nifti format, but it is really a surface stored in a volume format (note it's dimensions are 1974 x 1 x 83 = 163842 = number of vertices in fsaverage's surface). You can then concatenate these files from different subjects to perform group analysis with FreeSurfer's mri_glmfit or FSL's randomise or flame.
Alternatively, when you have multiple runs/subjects, you can use mris_preproc, something like:
mris_preproc --target fsaverage --hemi lh --out xrun/lh.cope1.nii.gz \ --iv fbert1.feat/stats/cope1.nii.gz fbert1.feat/reg/freesurfer/anat2exf.register.dat \ --iv fbert2.feat/stats/cope1.nii.gz fbert2.feat/reg/freesurfer/anat2exf.register.dat
This will create the output directory (xrun) and lh.cope1.nii.gz, the copes from each run sampled onto the left hemi of the common surface. In this case it will have only two frames for the two runs. This can then be used as input mri_glmfit, randomise, or flame. You can also resample the variances of the copes with:
mris_preproc --target fsaverage --hemi lh --out xrun/lh.varcope1.nii.gz \ --iv fbert1.feat/stats/varcope1.nii.gz fbert1.feat/reg/freesurfer/anat2exf.register.dat \ --iv fbert2.feat/stats/varcope1.nii.gz fbert2.feat/reg/freesurfer/anat2exf.register.dat
The command below can be used to run a fixed-effects analysis across both runs. Normally, you would probably run a random effects or weight random effects analysis, but since we only have two runs here, we'll use a fixed-effects. The dof=163 is the sum of the dofs from fbert?.feat/stats/dof. The model here is a simple one-sample group mean (OSGM) in which the desgin matrix is simply a column of 1s. For more elaborate designs, use an FSGD file instead of --osgm.
mri_glmfit --y xrun/lh.cope1.nii.gz --yffxvar xrun/lh.varcope1.nii.gz --ffxdof 163 \
--osgm --glmdir xrun/lh.osgm.ffx --surf fsaverage lh --label lh.cortex.labelTo view the higher-level results, run:
tksurfer fsaverage lh inflated -overlay xrun/lh.osgm.ffx/osgm/sig.mgh \ -fthresh 4 -fmid 5 -fslope 1 -annot aparc.annot
There are several differences between this invokation of tksurfer and the one further above.
- The subject is fsaverage, not bert
- The input is a sig map, which is -log10(p)
The thresholds are significance thresholds, not z. So, 4 means p < .0001.
