0001
0002
0003
0004
0005
0006 global BCH;
0007
0008 USE_INTERFACE = 1;
0009 USE_YMAD = 0;
0010
0011 rootpath = '/home03/handy/imagery/';
0012 spmpath = 'analysis';
0013 sub_ids = ...
0014 {'02jun00CW', ...
0015 '03aug00GG', ...
0016 '10aug00EH', ...
0017 '11aug00WS', ...
0018 '14jun00OMG', ...
0019 '15jun00JE', ...
0020 '15jun00SN', ...
0021 '17jul00RC', ...
0022 '18jul00CS'};
0023
0024 series_map.episodic = [ ...
0025 3 6; ...
0026 2 5; ...
0027 2 6; ...
0028 3 6; ...
0029 3 6; ...
0030 2 5; ...
0031 3 6; ...
0032 2 5; ...
0033 3 6];
0034
0035 series_map.semantic = [ ...
0036 1 4; ...
0037 3 6; ...
0038 3 6; ...
0039 1 4; ...
0040 1 4; ...
0041 3 6; ...
0042 1 4; ...
0043 3 6; ...
0044 1 4];
0045
0046 task_vols = [16:34 50:68 84:102 118:136];
0047 rest_vols = [1:15 35:49 69:83 103:117];
0048
0049 nser = 6;
0050 nsub = length(sub_ids);
0051
0052
0053 if USE_INTERFACE
0054
0055
0056
0057
0058
0059
0060
0061
0062 Finter = spm_figure('GetWin','Interactive');
0063 Fgraph = spm_figure('GetWin','Graphics');
0064 set(Finter,'Name','VOI time-series extraction')
0065
0066
0067
0068
0069 if ~length(SPM.XYZmm)
0070 spm('alert!','No suprathreshold voxels!',mfilename,0);
0071 Y = []; xY = [];
0072 return
0073 elseif exist(fullfile(SPM.swd,'Y.mad')) ~= 2
0074 spm('alert!','No raw data saved with this analysis!',mfilename,0);
0075 Y = []; xY = [];
0076 return
0077 elseif ~any(SPM.QQ)
0078 spm('alert!','No raw data saved for any suprathreshold location!',...
0079 mfilename,0);
0080 Y = []; xY = [];
0081 return
0082 end
0083
0084
0085 xyzmm = spm_results_ui('GetCoords');
0086
0087 [xyzmm,i] = spm_XYZreg('NearestXYZ',xyzmm,SPM.XYZmm);
0088 spm_results_ui('SetCoords',xyzmm);
0089 A = spm_clusters(SPM.XYZ);
0090 Q = find(A == A(i));
0091 str = sprintf('%0.0f voxel cluster',length(Q))
0092 D = SPM.XYZ(:,Q);
0093 S = length(Q);
0094
0095 q = find(SPM.QQ(Q));
0096
0097 if any(SPM.QQ(Q)==0)
0098 spm('alert"',{...
0099 sprintf('Don''t have raw data for all %d suprathreshold',length(Q)),...
0100 sprintf('voxels.'), ...
0101 sprintf('Proceeding using the %d voxels that are.',length(q)),...
0102 },mfilename,sqrt(-1));
0103 end
0104 else
0105 D = global_cluster;
0106 end
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117 clear y
0118
0119 if USE_YMAD
0120 y = spm_extract(fullfile(SPM.swd,'Y.mad'),SPM.QQ(Q(q)));
0121 else
0122
0123 for isub = 1:nsub
0124 clear tmp
0125 for iser = 1:nser
0126 switch sub_ids{isub}
0127 case '14jun00OMG'
0128 tmp{iser} = spm_get('Files', ...
0129 sprintf('%s%s/spm/functional/series%02d/', ...
0130 rootpath, sub_ids{isub}, iser), ...
0131 'sns*14jun000MG*.img');
0132 otherwise
0133 tmp{iser} = spm_get('Files', ...
0134 sprintf('%s%s/spm/functional/series%02d/', rootpath, sub_ids{isub}, iser), ...
0135 sprintf('sns*%s*.img', sub_ids{isub}));
0136 end
0137 end
0138 filelist{isub} = char(tmp);
0139
0140
0141
0142
0143
0144
0145 nvol = size(filelist{isub},1);
0146 disp(sprintf('Loading data for subject: %s', sub_ids{isub}))
0147 for ivol = 1:nvol
0148
0149
0150
0151 vol = (spm_vol(deblank(filelist{isub}(ivol,:))));
0152 y(:,ivol,isub) = spm_sample_vol(vol, D(1,:),D(2,:),D(3,:),0);
0153 end
0154 end
0155 end