Using the function FILES to select files for fMRI data analysis
File selection is one of the most time consuming aspects of working with the SPM GUI. More importantly, having to manually select files in order to process your data makes it virtually impossible to automate your analysis pipeline. But you're in luck: You are in possession of a MATLAB function called "FILES" that, with just one line of code from the command line, will grab all the files that you're looking for. Here, I illustrate how files can be used to grab a specific file from all 10 subjects. In addition, I illustrate why this is useful with a function called BSPM_CHECKREG (which is basically a command line version of the "Check Reg" button you're already familiar with).
Contents
Use the HELP function to see documentation for using FILES
help files
FILES OS-Sensitive Wrapper for RDIR USAGE: [fullpath, filename] = files(pattern, [celloutput]) (adapted from RDIR documentation) "pattern" can be a pathname, filename, or can include both. One can use absolute and relative pathnames and wildcards (*). Wildcard can be placed anywhere and used many times like 'path*\*.m'. One can also use a double wildcard (**) to match multiple directory levels. For example pattern = 'path\**\*.m' will match all ".m" files in "path" and all subdirectories of "path". INPUT pattern: string to use to select files (wildcards OK) charoutput: output as cell arrays [0=no (default), 1 = yes] OUTPUTS fullpath: full path to filenames (char by default) filename: filename only (cekl array by default) (OPTIONAL) This is a wrapper function for RDIR.m, which is included in this file as a subfunction. RDIR.m was downloaded from the MATLAB File Exchange: www.mathworks.com/matlabcentral/fileexchange/ 32226-recursive-directory-listing-enhanced-rdir
Use FILES to select all 10 mask.img files
allmask = files('sub*/**/precooked/2x2/mask.img', 1)
allmask = /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub01/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub02/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub03/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub04/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub05/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub06/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub07/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub08/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub09/results/precooked/2x2/mask.img /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub10/results/precooked/2x2/mask.img
Use BSPM_CHECKREG to examine the selected images using Check Reg
bspm_checkreg(allmask);
Use FILES to select all 10 wanat_hires.nii files
allanat = files('sub*/**/wanat_hires.nii', 1)
allanat = /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub01/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub02/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub03/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub04/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub05/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub06/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub07/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub08/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub09/anatomy/precooked/wanat_hires.nii /Users/bobspunt/Desktop/Personal/SPM_Labs_Data/sub10/anatomy/precooked/wanat_hires.nii
Use BSPM_CHECKREG to examine the selected images using Check Reg
bspm_checkreg(allanat);