Browse code

new labels, some cleanup

git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@206 83ab2cfd-5345-466c-8aeb-2b2739fb922d

Christoph Budziszewski authored on07/08/2009 17:23:37
Showing10 changed files
1 1
deleted file mode 100644
2 2
Binary files a/choice24.mat and /dev/null differ
... ...
@@ -1,7 +1,6 @@
1
-%% subject loop
2 1
 function decode = som_subject_batch(header,subjectdata,somOpts)
3
-
4
-addpath(fullfile(getTbxPath,'somtoolbox2'));
2
+global NODALYZE_SOMTOOLBOX;
3
+addpath(fullfile(getTbxPath,NODALYZE_SOMTOOLBOX));
5 4
 
6 5
 RANDOMIZE_DATAPOINTS = somOpts.rnd;
7 6
 NAN_AS_ZERO = somOpts.nantozero;
... ...
@@ -1,9 +1,10 @@
1 1
 function [sD sM] = som_train(svmlabel, svmdata, somOptions)
2
+global NODALYZE_SOMTOOLBOX;
3
+addpath(fullfile(getTbxPath,NODALYZE_SOMTOOLBOX));
2 4
 
3 5
 som_size = somOptions.size;
4 6
 som_lattice = somOptions.lattice;
5 7
 
6
-addpath(fullfile(getTbxPath,'somtoolbox2'));
7 8
 sD = som_data_struct(svmdata,'labels',num2str(svmlabel));
8 9
 
9 10
 sM = som_make(sD,'msize', som_size,'lattice', som_lattice, 'tracking', 1, 'init', 'lininit');
... ...
@@ -1,7 +1,6 @@
1
-%% subject loop
2 1
 function decode = som_xsubject_performance(header,subjectdata,somOpts)
3
-
4
-addpath(fullfile(getTbxPath,'somtoolbox2'));
2
+global NODALYZE_SOMTOOLBOX;
3
+addpath(fullfile(getTbxPath,NODALYZE_SOMTOOLBOX));
5 4
 
6 5
 nSubjects = numel(subjectdata);
7 6
 if(nSubjects < 2) 
... ...
@@ -1,5 +1,6 @@
1 1
 function decodePerformance = svm_class_performance(svmlabel,svmdata,svmopts)
2
-addpath(fullfile(getTbxPath,'libsvm-mat-2.88-1'));
2
+global NODALYZE_LIBSVM;
3
+addpath(fullfile(getTbxPath,NODALYZE_LIBSVM));
3 4
 
4 5
 svmmodel = svmtrain(svmlabel,svmdata,svmopts);
5 6
 classperformance = [];
... ...
@@ -1,4 +1,5 @@
1 1
 function performance = svm_single_crossval(svmlabel,svmdata,svmopts)
2
-addpath(fullfile(getTbxPath,'libsvm-mat-2.88-1'));
2
+global NODALYZE_LIBSVM;
3
+addpath(fullfile(getTbxPath,NODALYZE_LIBSVM));
3 4
 performance  = svmtrain(svmlabel, svmdata, svmopts);
4 5
 end
5 6
\ No newline at end of file
... ...
@@ -6,7 +6,7 @@ function ui_main(varargin)
6 6
     
7 7
     frame = figure('Visible','off','Position',[0,0,frameWidth,frameHeight]);
8 8
     movegui(frame,'center'); % get this thing visible on smaller displays.
9
-    set(frame,'Name','SVMCrossVal Decode Performance 4 SPM');
9
+    set(frame,'Name','NODalyze');
10 10
     set(frame,'NumberTitle','off');
11 11
     set(frame,'MenuBar','none');
12 12
     set(frame,'Resize','on');
... ...
@@ -50,7 +50,7 @@ function ui_main(varargin)
50 50
         set(task.taskSwitch,'Units','normalized');
51 51
     
52 52
         btnSwitchPreprocessing = uicontrol(task.taskSwitch,'Style','pushbutton',...
53
-            'String','ImageProcessing',...
53
+            'String','Image Processing',...
54 54
             'Units','normalized','Position',[0.0 0.0 0.33 1]);
55 55
         set(btnSwitchPreprocessing,'Callback',{@cbSwitchTask,'PRE',task}); 
56 56
         set(btnSwitchPreprocessing,'Enable','on');
... ...
@@ -81,7 +81,7 @@ function ui_main(varargin)
81 81
         uimenu(studySelectMenu,'Label','*new Study*','Callback',{@mcb_new_study,studySelectMenu,model});
82 82
         fillStudyMenu(studySelectMenu,model);
83 83
         
84
-    updateMenu = uimenu(frame,'Label','update ...','Enable','on');
84
+    updateMenu = uimenu(frame,'Label','Update ...','Enable','on');
85 85
         uimenu(updateMenu,'Label','rescan subject dir','Callback',{@mcb_update_subjects,model});
86 86
         uimenu(updateMenu,'Label','rescan images','Callback',{@mcb_update_imagebase,model});
87 87
         
... ...
@@ -147,7 +147,7 @@ function model = createFirstStepPanel(model,parent)
147 147
 
148 148
 
149 149
     %Timeline
150
-    pPSTH        = uipanel(parent,'Title','PSTH Options','Position',cell2mat(main_grid(2,1)));
150
+    pPSTH        = uipanel(parent,'Title','PST Options','Position',cell2mat(main_grid(2,1)));
151 151
     set(pPSTH,'BackgroundColor','w');
152 152
         
153 153
         grid_h = 0.16;
... ...
@@ -180,9 +180,10 @@ function model = createFirstStepPanel(model,parent)
180 180
 
181 181
         lStart      = createLabel(pPSTH, cell2mat(tl_grid(2,1)) ,'Start [sec]');
182 182
         lEnd        = createLabel(pPSTH, cell2mat(tl_grid(3,1)) ,'End [sec]');
183
-        lPSTH       = createLabel(pPSTH, cell2mat(tl_grid(1,2)) ,'PSTH Range');
183
+        lPSTH       = createLabel(pPSTH, cell2mat(tl_grid(1,2)) ,'PST Range');
184 184
         lBaseline   = createLabel(pPSTH, cell2mat(tl_grid(1,3)) ,'Baseline');
185 185
         lTRF        = createLabel(pPSTH, cell2mat(tl_grid(1,5)) ,'TR Factor');
186
+        lTRSec      = createLabel(pPSTH, cell2mat(tl_grid(3,4)) ,'TR [sec]');
186 187
 
187 188
         model.txtPSTHStart         = createTextField(pPSTH,cell2mat(tl_grid(2,2)),'');
188 189
         model.txtPSTHEnd           = createTextField(pPSTH,cell2mat(tl_grid(3,2)),'');
... ...
@@ -203,14 +204,14 @@ function model = createFirstStepPanel(model,parent)
203 204
         optGrid{1,2} = [0.0 0.66 grid_wl grid_h];
204 205
         optGrid{2,2} = [0.4 0.66 grid_wo grid_h];
205 206
 
206
-        optGrid{1,3} = [0.0 0.5 grid_wl grid_h];
207
-        optGrid{2,3} = [0.4 0.5 grid_wo grid_h];
207
+        optGrid{1,3} = [0.0 0.5 1.0 grid_h];
208
+%         optGrid{2,3} = [0.4 0.5 grid_wo grid_h];
208 209
         
209 210
         optGrid{1,4} = [0.0 0.33 grid_wl grid_h];
210 211
         optGrid{2,4} = [0.4 0.33 grid_wo grid_h];
211 212
 
212
-        optGrid{1,5} = [0.0 0.16 grid_wl grid_h];
213
-        optGrid{2,5} = [0.4 0.16 grid_wo grid_h];
213
+        optGrid{1,5} = [0.0 0.16 1.0 grid_h];
214
+%         optGrid{2,5} = [0.4 0.16 grid_wo grid_h];
214 215
         
215 216
         optGrid{1,6} = [0.0 0.0 grid_wl grid_h];
216 217
         optGrid{2,6} = [0.4 0.0 grid_wo grid_h];
... ...
@@ -227,7 +228,7 @@ function model = createFirstStepPanel(model,parent)
227 228
         
228 229
         %Options:normalizations
229 230
         
230
-        createLabel(pOptions,cell2mat(optGrid(1,2)),'psth norm4SVM');
231
+        createLabel(pOptions,cell2mat(optGrid(1,2)),'PST normalization');
231 232
         model.selNormPST = uicontrol(pOptions,'Style','popupmenu',...
232 233
             'Units','normalized',...
233 234
             'Position',cell2mat(optGrid(2,2)),...
... ...
@@ -237,49 +238,59 @@ function model = createFirstStepPanel(model,parent)
237 238
         
238 239
         model.chkColBias = uicontrol(pOptions,'Style','checkbox',...
239 240
             'Units','normalized',...
240
-            'Position',cell2mat(optGrid(2,3)),...
241
-            'String','column Bias removal',...
241
+            'Position',cell2mat(optGrid(1,3)),...
242
+            'String','Remove Column Bias within class',...
242 243
             'Enable','on');
243 244
          set(model.chkColBias,'BackgroundColor','w');   
244 245
          
245 246
          %Options:spatialGrouping
246 247
 
247
-         createLabel(pOptions,cell2mat(optGrid(1,4)),'ROI Grouping');
248
+         createLabel(pOptions,cell2mat(optGrid(1,4)),'Spatial Grouping');
248 249
          model.selRoiGrouping = uicontrol(pOptions,'Style','popupmenu',...
249 250
                 'Units','normalized',...
250 251
                 'Position',cell2mat(optGrid(2,4)),...
251 252
                 'String',roiGroupMethodNames,...
252 253
                 'UserData',roiGroupMethodFunctions);
253 254
          set(model.selRoiGrouping,'BackgroundColor','w');
255
+         
256
+         %Options:VOI selection for FBS
257
+         btnRunButton2 = uicontrol(pOptions,'String',sprintf('load VOI for Searchlight'),...
258
+             'Units','normalized','Position',cell2mat(optGrid(1,5)));
259
+         set(btnRunButton2,'Enable','on');
260
+ 
254 261
         
255 262
         % COORD TABLE
256
-        pVoxel = uipanel(parent,'Title','ROI','Position',cell2mat(main_grid(1,3)));
263
+        pVoxel = uipanel(parent,'Title','Select ROIs','Position',cell2mat(main_grid(1,3)));
257 264
         set(pVoxel,'BackgroundColor','w');
258 265
         lVoxelDef = createLabel(pVoxel, [0 0.9 1 0.1],'<ROI Name> [+ radius (mm)];');
259
-        model.txtVoxelDef = createTextField(pVoxel,[0 0 1 0.9],'');
266
+        model.txtVoxelDef = createTextField(pVoxel,[0 0.15 1 0.75],'');
260 267
         set(model.txtVoxelDef,'HorizontalAlignment','left');
261 268
         set(model.txtVoxelDef,'Max',20);
262 269
         set(model.txtVoxelDef,'Min',0);
263 270
         set(model.txtVoxelDef, 'FontName', 'FixedWidth');
264 271
         
272
+        btnROIlist = uicontrol(pVoxel,'String','show available ROIs','Units','normalized',...
273
+            'Position',[0 0 1 0.15]);
274
+        set(btnROIlist,'Enable','off');
275
+        
265 276
         %buttons
266 277
         pButtons = uipanel(parent,'Position',cell2mat(main_grid(1,4)));
267 278
         set(pButtons,'BackgroundColor','w');
268 279
         
269
-        btnRunButton1 = uicontrol(pButtons,'String','run coord-Table',...
280
+        btnRunButton1 = uicontrol(pButtons,'String','start ROI-List processing',...
270 281
             'Units','normalized','Position',[0 0 0.33 1]);
271
-        set(btnRunButton1,'Callback',{@cbRunPreprocessing,model,'COORD'}); % set here, because of model.    
272 282
         set(btnRunButton1,'Enable','on');
283
+
284
+        btnRunButton3 = uicontrol(pButtons,'String','start ROI-Image processing',...
285
+            'Units','normalized','Position',[0.66 0 0.33 1]);
286
+        set(btnRunButton3,'Enable','on');
273 287
         
274
-        btnRunButton2 = uicontrol(pButtons,'String',sprintf('load ROI for FBS'),...
275
-            'Units','normalized','Position',[0.33 0 0.33 1]);
276
-        set(btnRunButton2,'Callback',{@cbRunPreprocessing,model,'FBS'}); % set here, because of model.  
277
-        set(btnRunButton2,'Enable','on');
278 288
         
279
-        btnRunButton3 = uicontrol(pButtons,'String','run ROI-Image processing',...
280
-            'Units','normalized','Position',[0.66 0 0.33 1]);
289
+        set(btnRunButton1,'Callback',{@cbRunPreprocessing,model,'COORD'}); % set here, because of model.
290
+        set(btnRunButton2,'Callback',{@cbRunPreprocessing,model,'FBS'}); % set here, because of model.  
281 291
         set(btnRunButton3,'Callback',{@cbRunPreprocessing,model,'ROI'}); % set here, because of model.    
282
-        set(btnRunButton3,'Enable','on');
292
+%         set(btnROIlist,'Callback',); % set here, because of model.  
293
+   
283 294
 end
284 295
 
285 296
 function model = createSecondStepPanel(model,parent)
... ...
@@ -289,7 +300,7 @@ TimeframeGroupingStrings = {'none','mean'};%,'sum,'max','median'};
289 300
 TimeframeGroupingFunctions = {@(in)in,@(in)nanmean(in,2)};%,'sum',','max','median'};
290 301
 
291 302
 pTime = uipanel(parent,'Units','normalized','Position',[0.0 0.7 1 0.3]);
292
-    set(pTime,'Title','Decode Timeframe Options');
303
+    set(pTime,'Title','Decode Timerange Options');
293 304
     set(pTime,'BackgroundColor',basecolor);
294 305
     grid_h = 0.25;
295 306
     grid_w = 0.3;
... ...
@@ -309,9 +320,9 @@ pTime = uipanel(parent,'Units','normalized','Position',[0.0 0.7 1 0.3]);
309 320
     
310 321
     lStart      = createLabel(pTime, cell2mat(time_grid(2,1)) ,'Start [sec]');
311 322
     lEnd        = createLabel(pTime, cell2mat(time_grid(3,1)) ,'End [sec]');
312
-    lFrameShift = createLabel(pTime, cell2mat(time_grid(1,2)),'Frame Shift');
313
-    lFramsSize  = createLabel(pTime, cell2mat(time_grid(1,3)),'Frame Size');
314
-    lFramegroup = createLabel(pTime, cell2mat(time_grid(1,4)),'Timeframe Grouping');
323
+    lFrameShift = createLabel(pTime, cell2mat(time_grid(1,2)),'Time Range');
324
+    lFramsSize  = createLabel(pTime, cell2mat(time_grid(1,3)),'Shifting Time Frame [sec]');
325
+    lFramegroup = createLabel(pTime, cell2mat(time_grid(1,4)),'Time Frame Grouping');
315 326
     
316 327
     model.txtFrameShiftStart   = createTextField(pTime,cell2mat(time_grid(2,2)),'');
317 328
     model.txtFrameShiftEnd     = createTextField(pTime,cell2mat(time_grid(3,2)),'');
... ...
@@ -326,33 +337,57 @@ pTime = uipanel(parent,'Units','normalized','Position',[0.0 0.7 1 0.3]);
326 337
         'UserData',TimeframeGroupingFunctions);
327 338
     set(model.selTimeframeGrouping,'Enable','on');
328 339
     
329
-pSVM = uipanel(parent,'Units','normalized','Position',[0 0.3 0.5 0.4]);
330
-    set(pSVM,'Title','SVM Classification');
340
+pSVM = uipanel(parent,'Units','normalized','Position',[0 0.0 0.499 0.7]);
341
+    set(pSVM,'Title','SVM Classification (libSVM)');
331 342
     set(pSVM,'BackgroundColor',basecolor);
332 343
 
333
-    model.txtSVMopts = createTextField(pSVM,[0 0.83 1 0.16],'');
334
-    set(model.txtSVMopts,'HorizontalAlignment','left');
344
+    grid_h = 0.125;
345
+
346
+    svmgrid = cell([2 8]);
347
+    svmgrid{1,1} = [0.0 0.875 1.0 grid_h];
348
+    svmgrid{1,2} = [0.0 0.750 0.5 grid_h];
349
+    svmgrid{2,2} = [0.5 0.750 0.5 grid_h];
350
+    svmgrid{1,3} = [0.0 0.625 1   grid_h];
351
+    svmgrid{1,4} = [0.0 0.5   1   grid_h];
352
+    svmgrid{1,5} = [0.0 0.375 1   grid_h];
353
+    svmgrid{1,6} = [0.0 0.250 0.5 grid_h];
354
+    svmgrid{2,6} = [0.5 0.250 0.5 grid_h];
355
+    svmgrid{1,7} = [0.0 0.125 0.5 grid_h];
356
+    svmgrid{2,7} = [0.5 0.125 0.5 grid_h];
357
+    svmgrid{1,8} = [0.0 0.0   1   grid_h];
335 358
     
336
-    model.txtSVMnfold = createTextField(pSVM,[0.0 0.66 0.5 0.16],'');
337
-    createLabel(pSVM,[0.5 0.50 0.5 0.25 ],'-Fold CrossVal');
338 359
     
339
-    model.chkSVMrnd = uicontrol(pSVM,'Style','checkbox','Units','normalized','Position',[0.1 0.50 0.9 0.16]);
340
-    set(model.chkSVMrnd,'String','Randomize Datapoints');
341
-    set(model.chkSVMrnd,'BackgroundColor','w');
342
-%     set(model.chkSVMrnd,'Value',StudyArgs.svmrnd);
360
+    model.txtSVMopts = createTextField(pSVM,cell2mat(svmgrid(1,1)),'');
361
+    set(model.txtSVMopts,'HorizontalAlignment','left');
343 362
     
344
-    btnRunSVM = uicontrol(pSVM,'String','run batchmode SVM Crossvalidation',...
363
+    model.txtSVMnfold = createTextField(pSVM,cell2mat(svmgrid(1,2)),'');
364
+    createLabel(pSVM,cell2mat(svmgrid(2,2)),'-Fold CrossVal');
365
+    
366
+    btnRunSVM = uicontrol(pSVM,'String','run SVM within-Subject crossvalidation',...
345 367
         'Units','normalized',...
346
-        'Position',[0 0.25 1 0.25]);
368
+        'Position',cell2mat(svmgrid(1,3)));
347 369
     set(btnRunSVM,'Enable','on');
348 370
     
349
-    btnRunXSVM = uicontrol(pSVM,'String','run SVM X-Subject validation',...
371
+    btnRunXSVM = uicontrol(pSVM,'String','run SVM across-Subject crossvalidation',...
350 372
         'Units','normalized',...
351
-        'Position',[0 0.0 1 0.25]);
373
+        'Position',cell2mat(svmgrid(1,4)));
352 374
     set(btnRunXSVM,'Enable','on');
353 375
     
354
-pSOM = uipanel(parent,'Units','normalized','Position',[0.5 0.3 0.5 0.4]);
355
-    set(pSOM,'Title','SOM Classification');
376
+    lSearchligh = createLabel(pSVM, cell2mat(svmgrid(1,6)),'Searchlight Radius (mm)');
377
+    model.txtSearchlightRadius = createTextField(pSVM,cell2mat(svmgrid(2,6)),'');
378
+    
379
+    lFBSTiming = createLabel(pSVM, cell2mat(svmgrid(1,7)),'Timepoints [sec] (opt.)');
380
+    set(lFBSTiming,'TooltipString','e.g. ''-5 0 5 10 15''');
381
+    model.txtSearchlightTimeline = createTextField(pSVM,cell2mat(svmgrid(2,7)),'');
382
+
383
+    btnRunFBS = uicontrol(pSVM,'String','run Searchlight',...
384
+        'Units','normalized',...
385
+        'Position',cell2mat(svmgrid(1,8)));
386
+    set(btnRunFBS,'Enable','on');
387
+    
388
+    
389
+pSOM = uipanel(parent,'Units','normalized','Position',[0.5 0.3 0.499 0.4]);
390
+    set(pSOM,'Title','SOM Classification (somtoolbox2)');
356 391
     set(pSOM,'BackgroundColor',basecolor);
357 392
 
358 393
     createLabel(pSOM,[0 0.75 0.3 0.20],'Size:');
... ...
@@ -369,35 +404,27 @@ pSOM = uipanel(parent,'Units','normalized','Position',[0.5 0.3 0.5 0.4]);
369 404
     set(model.selSomLattice,'BackgroundColor','w');
370 405
 
371 406
     model.txtSOMnfold = createTextField(pSOM,[0.5 0.50 0.25 0.16],'');
372
-%     set(model.txtSOMnfold,'Enable','off');
373 407
     createLabel(pSOM,[0.75 0.5 0.25 0.16 ],'-Fold CrossVal');
374
-       
375 408
 
376
-    btnRunSOM = uicontrol(pSOM,'String','run SOM Crossvalidation',...
409
+    btnRunSOM = uicontrol(pSOM,'String','run SOM within-Subject crossvalidation',...
377 410
         'Units','normalized',...
378 411
         'Position',[0.0 0.25 1 0.25]);
379 412
     set(btnRunSOM,'Enable','on');
380 413
 
381
-    btnRunXSOM = uicontrol(pSOM,'String','run SOM X-Subject validation',...
414
+    btnRunXSOM = uicontrol(pSOM,'String','run SOM across-Subject crossvalidation',...
382 415
         'Units','normalized',...
383 416
         'Position',[0.0 0.0 1 0.25]);
384 417
     set(btnRunXSOM,'Enable','on');
385 418
     
386
-pSearchlight = uipanel(parent,'Units','normalized','Position',[0.0 0.0 0.5 0.3]);
387
-    set(pSearchlight,'Title','Spatiotemporal FB classification');
388
-    set(pSearchlight,'BackgroundColor',basecolor);
389
-    
390
-    lSearchligh = createLabel(pSearchlight, [0 0.6 0.5 0.3],'Searchlight Radius (mm)');
391
-    model.txtSearchlightRadius = createTextField(pSearchlight,[0.5 0.6 0.5 0.3],'');
419
+% OPTIONS
420
+pOptions = uipanel(parent,'Units','normalized','Position',[0.5 0 0.5 0.3]);
421
+    set(pOptions,'Title','Other Options');
422
+    set(pOptions,'BackgroundColor',basecolor);
392 423
     
393
-    lFBSTiming = createLabel(pSearchlight, [0 0.3 0.5 0.3],'Optional Timeline ( e.g. ''-5 0 5 10 15'')');
394
-    model.txtSearchlightTimeline = createTextField(pSearchlight,[0.5 0.3 0.5 0.3],'');
424
+    model.chkSVMrnd = uicontrol(pOptions,'Style','checkbox','Units','normalized','Position',[0 0.66 1 0.33]);
425
+    set(model.chkSVMrnd,'String','Randomize Trial Order');
426
+    set(model.chkSVMrnd,'BackgroundColor','w');
395 427
 
396
-    btnRunFBS = uicontrol(pSearchlight,'String','run Spatiotemporal FB classification',...
397
-        'Units','normalized',...
398
-        'Position',[0.0 0.0 1 0.3]);
399
-    set(btnRunFBS,'Enable','on');
400
-    
401 428
 
402 429
 % button callbacks set here, because of model.
403 430
     set(btnRunSVM, 'Callback',{@cbRunDecode,model,'SVM'}); 
... ...
@@ -423,19 +450,19 @@ function model = createVisualStepPanel(model,parent)
423 450
 %     set(pButtonPane,'Title','Plot');
424 451
     set(pButtonPane,'BackgroundColor','w');
425 452
     
426
-    btnPlot03 = uicontrol(pButtonPane,'String','plot PSTH',...
453
+    btnPlot03 = uicontrol(pButtonPane,'String','Plot PSTH',...
427 454
         'Units','normalized',...
428 455
         'Position',cell2mat(plot_grid(2,1)));
429 456
     set(btnPlot03,'Callback',{@cbPlot,model,'psth'}); 
430 457
     set(btnPlot03,'Enable','on');
431 458
   
432
-    btnPlot01 = uicontrol(pButtonPane,'String','plot performance and SE',...
459
+    btnPlot01 = uicontrol(pButtonPane,'String','Plot Decode Performance +/- SE',...
433 460
         'Units','normalized',...
434 461
         'Position',cell2mat(plot_grid(2,2)));
435 462
     set(btnPlot01,'Callback',{@cbPlot,model,'simple'});
436 463
     set(btnPlot01,'Enable','on');
437 464
     
438
-    btnPlot02 = uicontrol(pButtonPane,'String','plot subject performance and mean with SE',...
465
+    btnPlot02 = uicontrol(pButtonPane,'String','Plot Individual Performance and Mean +/- SE',...
439 466
         'Units','normalized',...
440 467
         'Position',cell2mat(plot_grid(2,3)));
441 468
     set(btnPlot02,'Callback',{@cbPlot,model,'x-subject-val'});
... ...
@@ -1,7 +1,7 @@
1 1
 %% subject loop
2 2
 function decode = xsvm_subject_loop(header,subjectdata,svmopts)
3
-
4
-addpath(fullfile(getTbxPath,'libsvm-mat-2.88-1'));
3
+global NODALYZE_LIBSVM;
4
+addpath(fullfile(getTbxPath,NODALYZE_LIBSVM));
5 5
 
6 6
 nSubjects = numel(subjectdata);
7 7
 if(nSubjects < 2) 
... ...
@@ -7,6 +7,15 @@ SVMCROSSVAL_SPMDIR = 'D:\SPM\spm2';
7 7
 global SVMCROSSVAL_SPMVERSION;
8 8
 SVMCROSSVAL_SPMVERSION = 'SPM2';
9 9
 
10
+%external tools
11
+global NODALYZE_LIBSVM;
12
+NODALYZE_LIBSVM = 'libsvm-mat-2.88-1';
13
+global NODALYZE_SOMTOOLBOX;
14
+NODALYZE_SOMTOOLBOX = 'somtoolbox2';
15
+global NODALYZE_NIFTI;
16
+NODALYZE_NIFTI = 'NIFTI_20090325';
17
+
18
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10 19
 % No Config from here
11 20
 if strcmp(SVMCROSSVAL_SPMDIR,'') || strcmp(SVMCROSSVAL_SPMVERSION,'')
12 21
     error('spm_SVMCrossVal:main:noinstall','installation not complete!');
... ...
@@ -15,7 +24,6 @@ end
15 24
 global SVMCROSSVAL_DEBUG;
16 25
 
17 26
 defineGlobals();
18
-%reset defaults to _my_ liking ;)
19 27
 bootstrap('default');
20 28
 
21 29
 switch nargin
22 30
deleted file mode 100644
23 31
Binary files a/stimolos.mat and /dev/null differ