Christoph Budziszewski commited on 2009-04-28 14:49:31
Zeige 3 geänderte Dateien mit 32 Einfügungen und 13 Löschungen.
git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@190 83ab2cfd-5345-466c-8aeb-2b2739fb922d
... | ... |
@@ -80,10 +80,10 @@ switch task |
80 | 80 |
|
81 | 81 |
out.subjectdata = fbs_load_mask(model.baseDir,subjects); |
82 | 82 |
|
83 |
- if(size(subjects,2)>1) |
|
84 |
- display(sprintf('No BATCH Support for Searchlight!')); |
|
85 |
- return |
|
86 |
- end |
|
83 |
+% if(size(subjects,2)>1) |
|
84 |
+% display(sprintf('No BATCH Support for Searchlight!')); |
|
85 |
+% return |
|
86 |
+% end |
|
87 | 87 |
|
88 | 88 |
fbsargs = struct; |
89 | 89 |
fbsargs.timeline = timeLine; |
... | ... |
@@ -1,6 +1,8 @@ |
1 | 1 |
function output = runFBSImageMaskMode(header,subjectdata,fbsargs) |
2 | 2 |
addpath('NIFTI_20090325'); |
3 | 3 |
|
4 |
+DEBUG = 1; |
|
5 |
+ |
|
4 | 6 |
savePath = fullfile('output',datestr(now,30)); |
5 | 7 |
mkdir(savePath); |
6 | 8 |
|
... | ... |
@@ -96,6 +98,17 @@ for s = 1:nSubjects |
96 | 98 |
% sprintf(' %g%%\t complete',p); |
97 | 99 |
% end |
98 | 100 |
end |
101 |
+ if DEBUG == 1 |
|
102 |
+ figure; |
|
103 |
+ hold on; |
|
104 |
+ for i = 1:size(pst,2) |
|
105 |
+ plot(mean(pst{:,i}{1}),'r-'); |
|
106 |
+ plot(mean(pst{:,i}{2}),'b-'); |
|
107 |
+ end |
|
108 |
+ hold off; |
|
109 |
+ end |
|
110 |
+ |
|
111 |
+ |
|
99 | 112 |
elapsed{s}.psth = toc; |
100 | 113 |
disp('psth done'); |
101 | 114 |
warning(warn); |
... | ... |
@@ -118,6 +131,8 @@ for s = 1:nSubjects |
118 | 131 |
% vdim = tmp(7:9); % Voxel-Size |
119 | 132 |
|
120 | 133 |
mask_image = load_nii(subjects{s}.roiFile.fname); |
134 |
+ tmp = strfind(mask_image.fileprefix,filesep); |
|
135 |
+ maskname = mask_image.fileprefix(tmp(end)+1:end); |
|
121 | 136 |
|
122 | 137 |
vdim = mask_image.hdr.dime.pixdim(2:4); |
123 | 138 |
if mask_image.hdr.dime.pixdim(1) == 1 |
... | ... |
@@ -143,7 +158,7 @@ for timeShiftIdx = fbsTimeLine |
143 | 158 |
frameEndIdx = min(ceil(frameStartIdx+decodeDuration + 0.5*decodeDuration),-globalStart+globalEnd); |
144 | 159 |
|
145 | 160 |
for rIdx = 1:length(radiusList) |
146 |
- img3D{rIdx} = zeros(size(mask_image)); %output image prepare |
|
161 |
+ img3D{rIdx}(:,:,:) = zeros(size(mask_image)); %output image prepare |
|
147 | 162 |
end |
148 | 163 |
|
149 | 164 |
for iVoxel = 1:nVoxel % linear structure avoids 3D-Loop. |
... | ... |
@@ -155,6 +170,10 @@ for timeShiftIdx = fbsTimeLine |
155 | 170 |
radius = radiusList(rIdx); |
156 | 171 |
% get surrounding coordinate-IDs within radius |
157 | 172 |
sphere = fbs_buildSphere(mapping,iVoxel,radius,vdim); |
173 |
+% for i = 1: length(sphere) |
|
174 |
+% sphere(i ) |
|
175 |
+% mapping.indexToCoordMap.get(sphere(i)) |
|
176 |
+% end |
|
158 | 177 |
|
159 | 178 |
%build svm inputmatrix |
160 | 179 |
svmdata = []; |
... | ... |
@@ -164,7 +183,7 @@ for timeShiftIdx = fbsTimeLine |
164 | 183 |
for dp = 1:size(pst{1,anyvoxel}{1,pstConditionGroup},1) % data point |
165 | 184 |
svmlabel = [svmlabel; lm_getSVMLabel(labelMap,eventList(pstConditionGroup,1))]; |
166 | 185 |
row = []; |
167 |
- for voxel = 1:size(sphere,2) |
|
186 |
+ for voxel = sphere |
|
168 | 187 |
row = [row, pst{1,voxel}{1,pstConditionGroup}(dp,frameStartIdx:frameEndIdx)]; % label,[value,value,...],[value,value,...]... |
169 | 188 |
end |
170 | 189 |
svmdata = [svmdata; row]; |
... | ... |
@@ -177,7 +196,7 @@ for timeShiftIdx = fbsTimeLine |
177 | 196 |
svmdata = svmdata(rndindex,:); |
178 | 197 |
svmlabel = svmlabel(rndindex); |
179 | 198 |
end |
180 |
- |
|
199 |
+ decode = 0; |
|
181 | 200 |
decode = svm_single_crossval(svmlabel,svmdata,svmopts); |
182 | 201 |
% save the decode value to the corresponding coordinate |
183 | 202 |
|
... | ... |
@@ -193,9 +212,9 @@ for timeShiftIdx = fbsTimeLine |
193 | 212 |
|
194 | 213 |
for rIdx = 1:length(radiusList) |
195 | 214 |
radius = radiusList(rIdx); |
196 |
- nii = make_nii(img3D{radius},vdim,mask_image.hdr.hist.originator(1:3),16,... |
|
215 |
+ nii = make_nii(img3D{rIdx},vdim,mask_image.hdr.hist.originator(1:3),16,... |
|
197 | 216 |
sprintf('decode performance, time relative to onset: %g to %g sec',frameStartIdx,frameEndIdx)); |
198 |
- save_nii(nii,fullfile(savePath,sprintf('%s-r%g-t%+03g',subjects{s}.name,radius,timeShiftIdx))); |
|
217 |
+ save_nii(nii,fullfile(savePath,sprintf('%s-%s-r%g-t%+03g',subjects{s}.name,maskname,radius,timeShiftIdx))); |
|
199 | 218 |
end |
200 | 219 |
end %for each timeslice |
201 | 220 |
display('rastering done'); |
... | ... |
@@ -1,6 +1,6 @@ |
1 | 1 |
function ui_main(varargin) |
2 | 2 |
|
3 |
-DEFAULT.selectedSubject = [1]; |
|
3 |
+DEFAULT.selectedSubject = [2]; |
|
4 | 4 |
|
5 | 5 |
DEFAULT.pststart = -5; |
6 | 6 |
DEFAULT.pstend = 15; |
... | ... |
@@ -19,8 +19,8 @@ DEFAULT.searchlightradius = 3; |
19 | 19 |
DEFAULT.searchlightTimeline = ''; |
20 | 20 |
|
21 | 21 |
|
22 |
-%DEFAULT.wd = fullfile('d:','Analyze','Choice','24pilot'); |
|
23 |
-DEFAULT.wd = fullfile('/','media','fMRI'); |
|
22 |
+DEFAULT.wd = fullfile('d:','Analyze','Choice','24pilot'); |
|
23 |
+% DEFAULT.wd = fullfile('/','media','fMRI'); |
|
24 | 24 |
|
25 | 25 |
% Initialize and hide the GUI as it is being constructed. |
26 | 26 |
frameWidth=450; |
... | ... |
@@ -270,7 +270,7 @@ function model = createFirstStepPanel(model,parent,DEFAULT) |
270 | 270 |
set(btnRunButton1,'Callback',{@cbRunPreprocessing,model,'COORD'}); % set here, because of model. |
271 | 271 |
set(btnRunButton1,'Enable','on'); |
272 | 272 |
|
273 |
- btnRunButton2 = uicontrol(pButtons,'String',sprintf('use this settings for FBS'),... |
|
273 |
+ btnRunButton2 = uicontrol(pButtons,'String',sprintf('load ROI for FBS'),... |
|
274 | 274 |
'Units','normalized','Position',[0.33 0 0.33 1]); |
275 | 275 |
set(btnRunButton2,'Callback',{@cbRunPreprocessing,model,'FBS'}); % set here, because of model. |
276 | 276 |
set(btnRunButton2,'Enable','on'); |
277 | 277 |