% folder location subjfolder = '/Users/Desktop/XXX/CPU'; subjpattern = 'CPU*'; funcfolder = 'functional'; anatfolder = 'struct'; % settings (for spm5_preprojobs) funcpattern = 'r*340'; anatpattern = ''; usestruct = true; runjobs = true; disdaqs = 5; smoothmm = 6; sliceorder = 'aio'; tr = 2; % complete settings if ~isempty(funcpattern) ffp = [funcfolder '/' funcpattern]; else ffp = funcfolder; end if ~isempty(anatpattern) anatpattern = [anatfolder '/' anatpattern]; else anatpattern = anatfolder; end ppopts = struct( ... 'fun2str', usestruct, ... 'jobrun', runjobs, ... 'skip', disdaqs, ... 'smk', smoothmm, ... 'sto', sliceorder, ... 'sttr', tr); % find subjects subjects = findfiles(subjfolder, subjpattern, 'depth=1', 'dirs=1'); % for each subject for sc = 1:numel(subjects) % determine whether the subject needs processing rps = findfiles([subjects{sc} '/' funcfolder], 'rp*.txt'); if ~isempty(rps) continue; end % get subject ID [basefld, subjid] = fileparts(subjects{sc}); subjid(subjid == '_') = []; % run fMRI quality on all runs runs = findfiles([subjects{sc} '/' funcfolder], funcpattern, 'dirs=1', 'depth=1'); for rc = 1:numel(runs) q = fmriquality(findfiles(runs{rc}, {'*.img', '*.nii'})); save(sprintf('%s/fmriquality.mat', runs{rc}), 'q'); clear q; end % run preprocessing [j, jh, ppfiles] = spm5_preprojobs(subjects{sc}, ffp, anatpattern, ppopts); % for each run, create one VTC for rc = 1:numel(ppfiles) [basefld, runid] = fileparts(fileparts(ppfiles{rc}{1})); vtc = importvtcfromanalyze(ppfiles{rc}); vtc.TR = round(1000 * tr); vtc.SaveAs(sprintf('%s/%s/%s_%s.vtc', subjects{sc}, funcfolder, subjid, runid); vtc.ClearObject; end end