Browse code

new parseVoxelTxtField getImageFileList reads files according to gui-settings voxel to subject coordinate mapping missing.

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

Christoph Budziszewski authored on 16/02/2009 17:32:42
Showing 9 changed files
... ...
@@ -23,7 +23,6 @@ sessionList     = inputStruct.sessionList;
23 23
 
24 24
 % classList       = inputStruct.classList;
25 25
 % labelMap        = inputStruct.labelMap;
26
-smoothed        = inputStruct.smoothed;
27 26
 eventList       = inputStruct.eventList;
28 27
 
29 28
 timeLineStart   = timeline.frameShiftStart;
... ...
@@ -38,9 +37,15 @@ timeLineEnd     = timeline.frameShiftEnd;
38 37
 minPerformance = inf;
39 38
 maxPerformance = -inf;
40 39
 
41
-imageFiles = getImageFileList(des,~smoothed);
40
+subjectDir = '';
41
+sessionDirList = sessionList2DirList(sessionList) ;
42
+mask = '^fandersen.*img$';
43
+imageFiles = getImageFileList(subjectDir,sessionDirList,mask);
42 44
 
43 45
 
46
+disp('press key');
47
+pause
48
+
44 49
 extr = calculateImageData(imageFiles,voxelList);
45 50
 
46 51
 nVoxel = size(voxelList,1);
... ...
@@ -148,3 +153,5 @@ for idx2=strfind(svmopt,' -')
148 153
 end
149 154
 end
150 155
 
156
+
157
+
... ...
@@ -1,24 +1,9 @@
1
-function fileList = getImageFileList(des,use_smoothed_image_hack)
1
+function fileList = getImageFileList(subjectdir,sessionlist,mask)
2
+fileList = [];
2 3
 
3
-global USE_DRIVE_CHECK_HACK;
4
-
5
-fileList  = des.xY.VY;
6
-nFiles = length(fileList);
7
-
8
-if USE_DRIVE_CHECK_HACK
9
-    if fileList(1).fname(1)~='D'
10
-        for z=1:nFiles % Change Drive Letter - HACK!
11
-            fileList(z).fname(1) = 'D';
12
-        end;
13
-    end
14
-end
15
-if ~use_smoothed_image_hack
16
-    for z=1:nFiles % Change smoothed Filename - HACK!
17
-        % D:....SUBJECTID\session\swfanders...
18
-        % D:....SUBJECTID\session\wfanders...
19
-        tmp = findstr(filesep,fileList(z).fname);
20
-        fileList(z).fname = strcat(fileList(z).fname(1:tmp(end)),fileList(z).fname(tmp(end)+2:end));
21
-    end;
4
+for session = 1:numel(sessionlist)    
5
+    [sessionFileList dd] = spm_select('FPList',fullfile(subjectdir,sessionlist{session}),mask);
6
+    fileList = [fileList; sessionFileList];
22 7
 end
23 8
 
24 9
 end
25 10
\ No newline at end of file
... ...
@@ -28,6 +28,8 @@ timelineParams.baselineEnd     = getDouble(paramModel.txtBaselineEnd); % -20;
28 28
 
29 29
 end
30 30
 
31
+
32
+
31 33
 function calculateParams = parseCalculateParams(paramModel)
32 34
 calculateParams  = struct;
33 35
 calculateParams.smoothed        = getChkValue(paramModel.chkSmoothed);
... ...
@@ -10,12 +10,14 @@ outstruct.eventMatrix = [];
10 10
 
11 11
 for i = 1:nClasses
12 12
     line = txt(i,:);
13
-    delim = strfind(line,','); %first and last are real delimiter
14
-
15
-    outstruct.labelCells{i} = strtrunc(line(1:delim(1)-1));
16
-    outstruct.conditionCells{i} = eval(strtrunc(line(delim(1)+1:delim(length(delim))-1)));
17
-    outstruct.eventMatrix   = [outstruct.eventMatrix ; outstruct.conditionCells{i}];
18
-    outstruct.valueCells{i} = strtrunc(line(delim(length(delim))+1:length(line)));
13
+    
14
+    [label rem] = strtok(line,',');
15
+    
16
+    outstruct.labelCells{i} = strtrim(label);
17
+    
18
+    conds = eval(strtrim(rem(2:end)));
19
+    outstruct.conditionCells{i} = conds;
20
+    outstruct.eventMatrix   = [outstruct.eventMatrix ; conds];
19 21
 end
20 22
 
21 23
 end
22 24
new file mode 100644
... ...
@@ -0,0 +1,17 @@
1
+function voxelList = parseCoordinateTextField(txtFieldHandel)
2
+s = get(txtFieldHandel,'String');
3
+rows = size(s,1);
4
+voxelList = [];
5
+    for i = 1:rows 
6
+        if all(isspace(s(i,:)))
7
+            continue;
8
+        end
9
+        line = s(i,:);
10
+        [roi rem] = strtok(line,'+');
11
+        roimod = eval(str2mat(rem(2:end)));
12
+        coord.name = roi;
13
+        coord.mod = roimod;
14
+        voxelList = [voxelList; coord];
15
+
16
+    end
17
+end
0 18
\ No newline at end of file
... ...
@@ -32,20 +32,20 @@ global SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF;
32 32
         
33 33
         calculateParams.RANDOMIZE       = 0;
34 34
         
35
-        calculateParams.smoothed        = getChkValue(paramModel.chkSmoothed);
35
+%         calculateParams.smoothed        = getChkValue(paramModel.chkSmoothed);
36 36
 
37
-        calculateParams.svmargs         = get(paramModel.txtSVMopts,'String');
37
+%         calculateParams.svmargs         = get(paramModel.txtSVMopts,'String');
38 38
         calculateParams.sessionList     = 1:3;
39 39
 
40 40
         classStruct = parseClassDef(paramModel);
41 41
         
42 42
         
43
-        calculateParams.labelMap        = LabelMap(classStruct.labelCells , classStruct.conditionCells, 'auto'); % LabelMap({'<','>','<+<','>+>','<+>','>+<'},{-2,-1,1,2,3,4}); 0 is autolabel
44
-        calculateParams.classList       = getClasses(calculateParams.labelMap);
43
+%         calculateParams.labelMap        = LabelMap(classStruct.labelCells , classStruct.conditionCells, 'auto'); % LabelMap({'<','>','<+<','>+>','<+>','>+<'},{-2,-1,1,2,3,4}); 0 is autolabel
44
+%         calculateParams.classList       = getClasses(calculateParams.labelMap);
45 45
         calculateParams.eventList       = classStruct.eventMatrix; %[9,11,13; 10,12,14];
46 46
 %         calculateParams.eventList       = getPSTEventMatrix(calculateParams.labelMap);
47 47
         
48
-        subjectSelection = getSubjectIDString(paramModel);
48
+        subjectSelection = {'JZ006'}; %getSubjectIDString(paramModel);
49 49
         calculateParams.subjectSelection = subjectSelection;
50 50
         
51 51
         decode = claculateMultiSubjectDecodePerformance(timelineParams,calculateParams,paramModel);
... ...
@@ -94,7 +94,7 @@ for subjectCell = calculateParams.subjectSelection
94 94
     subjectParams.des             = spm.SPM;
95 95
 
96 96
 
97
-    subjectParams.voxelList       = parseVoxelList(paramModel,SubjectID);
97
+    subjectParams.voxelList       = mapVoxelList(voxelList,SubjectID);
98 98
 
99 99
     
100 100
     subjectParams.SubjectID       = SubjectID;
101 101
new file mode 100644
... ...
@@ -0,0 +1,5 @@
1
+function sessionDirList = sessionList2DirList(sessionList)
2
+for i = 1:numel(sessionList)
3
+    sessionDirList{i} = char(96+sessionList(i));
4
+end
5
+end
... ...
@@ -240,6 +240,8 @@ function model = createFirstStepPanel(model,parent,DEFAULT)
240 240
         set(model.txtVoxelDef,'Min',0);
241 241
         set(model.txtVoxelDef, 'FontName', 'FixedWidth');
242 242
         
243
+        assignin('base','txtVoxelDef',model.txtVoxelDef);
244
+        
243 245
         %normalizations
244 246
         pNorm = uipanel(parent,'Title','Normalization','Position',cell2mat(main_grid(2,3)));
245 247
         set(pNorm,'BackgroundColor','w');
... ...
@@ -1,25 +1,15 @@
1 1
 function spm_SVMCrossVal(varargin)
2 2
 
3
-SVMCROSSVAL_BASEDIR = fullfile('D:','Analyse','Choice');
4
-
5 3
 defineGlobals();
6 4
 
7 5
 switch nargin
8 6
 case 0
9
-% 	project_UI;
10
-	main_UI(varargin);
11
-case 1
12
-	main_UI(varargin);
7
+	ui_main(varargin);
13 8
 otherwise
14 9
 error('spm_SVMCrossVal:main','wrong nargin');
15 10
 end
16 11
 end
17 12
 
18
-function loadStudies(basedir)
19
-
20
-end
21
-
22
-
23 13
 
24 14
 
25 15