0001 function out = prt_run_fs(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 job = varargin{1};
0021 fname = char(job.infile);
0022 if exist('PRT','var')
0023 clear PRT
0024 end
0025 load(fname);
0026 fs_name=job.k_file;
0027
0028 mod=struct();
0029 allmod={PRT.masks(:).mod_name};
0030 modchos={job.modality(:).mod_name};
0031
0032 maskchos={job.modality(:).mod_name};
0033
0034 if ~isempty(setdiff(modchos,allmod))
0035 error(['Couldn''t find modality "',cell2mat(modchos),'" in PRT.mat']);
0036 end
0037
0038 for i=1:length(PRT.masks)
0039 if any(strcmpi(modchos,allmod{i}))
0040 mod(i).mod_name=allmod{i};
0041 ind=find(strcmpi(modchos,allmod{i}));
0042
0043
0044
0045 if isfield(job.modality(ind).detrend,'linear_dt')
0046 mod(i).detrend=1;
0047 mod(i).param_dt=job.modality(ind).detrend.linear_dt.paramPoly_dt;
0048 elseif isfield(job.modality(ind).detrend,'no_dt')
0049 mod(i).detrend=0;
0050 mod(i).param_dt=[];
0051 else
0052 mod(i).detrend=2;
0053 mod(i).param_dt=job.modality(ind).detrend.dct_dt.param_dt;
0054 end
0055
0056 if isfield(job.modality(ind).normalise,'no_gms')
0057 mod(i).normalise = 0;
0058 mod(i).matnorm = [];
0059 elseif isfield(job.modality(ind).normalise,'mat_gms')
0060 mod(i).normalise=2;
0061 mod(i).matnorm = char(job.modality(ind).normalise.mat_gms);
0062 end
0063
0064 if isfield(job.modality(ind).conditions,'all_cond')
0065 mod(i).mode='all_cond';
0066 elseif isfield(job.modality(ind).conditions,'all_scans')
0067 mod(i).mode='all_scans';
0068 else
0069 error('Wrong mode selected: choose either all scans or all conditions')
0070 end
0071 indm=find(strcmpi(maskchos,allmod{i}));
0072
0073
0074
0075
0076
0077 if isfield(job.modality(indm).voxels,'fmask')
0078 mod(i).mask = char(job.modality(indm).voxels.fmask);
0079 else
0080 mod(i).mask = [];
0081 end
0082
0083 else
0084 mod(i).mod_name=[];
0085 mod(i).detrend=nan;
0086 mod(i).mode=nan;
0087 mod(i).mask=[];
0088 end
0089 end
0090
0091 input=struct();
0092 input.fname=fname;
0093 input.fs_name=fs_name;
0094 input.mod=mod;
0095
0096 prt_fs(PRT,input);
0097
0098 out.fname{1} = fname;
0099 disp('Done.')
0100 end
0101
0102
0103
0104
0105