Christoph Budziszewski commited on 2009-02-06 11:55:55
Zeige 4 geänderte Dateien mit 56 Einfügungen und 39 Löschungen.
git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@126 83ab2cfd-5345-466c-8aeb-2b2739fb922d
| ... | ... |
@@ -32,12 +32,19 @@ function coordinates = computeRoiImageCoordinates(V,Vm) |
| 32 | 32 |
for iVolImage = 1:nVolImage |
| 33 | 33 |
coordinates{iVolImage} = [];
|
| 34 | 34 |
for jRoiImage = 1:nRoiImage |
| 35 |
+ [x,y,z] = computeCoordinateVector(V(iVolImage),Vm(jRoiImage)); |
|
| 36 |
+ coordinates{iVolImage} = [coordinates{iVolImage}; x, y, z];
|
|
| 37 |
+ end |
|
| 38 |
+ end |
|
| 39 |
+end |
|
| 40 |
+ |
|
| 41 |
+function [x,y,z] = computeCoordinateVector(VolumeImage,RoiImage) |
|
| 35 | 42 |
x = []; y = []; z = []; |
| 36 |
- [x1 y1] = ndgrid(1:V(iVolImage).dim(1),1:V(iVolImage).dim(2)); |
|
| 37 |
- for p = 1:V(iVolImage).dim(3) % resample mask Vm(jRoiImage) in space of V(iVolImage) |
|
| 43 |
+ [x1 y1] = ndgrid(1:VolumeImage.dim(1),1:VolumeImage.dim(2)); |
|
| 44 |
+ for p = 1:VolumeImage.dim(3) % resample mask RoiImage in space of VolumeImage |
|
| 38 | 45 |
B = spm_matrix([0 0 -p 0 0 0 1 1 1]); |
| 39 |
- M = inv(B*inv(V(iVolImage).mat)*Vm(jRoiImage).mat); |
|
| 40 |
- msk = find(spm_slice_vol(Vm(jRoiImage),M,V(iVolImage).dim(1:2),0)); |
|
| 46 |
+ M = inv(B*inv(VolumeImage.mat)*RoiImage.mat); |
|
| 47 |
+ msk = find(spm_slice_vol(RoiImage,M,VolumeImage.dim(1:2),0)); |
|
| 41 | 48 |
if ~isempty(msk) |
| 42 | 49 |
z1 = p*ones(size(msk(:))); |
| 43 | 50 |
x = [x; x1(msk(:))]; |
| ... | ... |
@@ -45,7 +52,4 @@ function coordinates = computeRoiImageCoordinates(V,Vm) |
| 45 | 52 |
z = [z; z1]; |
| 46 | 53 |
end; |
| 47 | 54 |
end; |
| 48 |
- coordinates{iVolImage} = [coordinates{iVolImage}; x, y, z];
|
|
| 49 |
- end |
|
| 50 |
- end |
|
| 51 | 55 |
end |
| ... | ... |
@@ -0,0 +1,22 @@ |
| 1 |
+function defineGlobals() |
|
| 2 |
+%define global constants |
|
| 3 |
+global SVMCROSSVAL_USE_DRIVE_CHECK_HACK; |
|
| 4 |
+%enables subroutine to check if image path starts with 'D' |
|
| 5 |
+SVMCROSSVAL_USE_DRIVE_CHECK_HACK = 1; |
|
| 6 |
+ |
|
| 7 |
+global SVMCROSSVAL_CROSSVAL_METHOD_DEF; |
|
| 8 |
+% supported classification methods |
|
| 9 |
+SVMCROSSVAL_CROSSVAL_METHOD_DEF.svmcrossval = 'svm crossval'; |
|
| 10 |
+SVMCROSSVAL_CROSSVAL_METHOD_DEF.classPerformance = 'svm class performance'; |
|
| 11 |
+SVMCROSSVAL_CROSSVAL_METHOD_DEF.crossSubject = 'svm across subject testing'; |
|
| 12 |
+SVMCROSSVAL_CROSSVAL_METHOD_DEF.somTraining = 'som Training'; |
|
| 13 |
+ |
|
| 14 |
+global SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF; |
|
| 15 |
+% supported voxel selection methods |
|
| 16 |
+SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF.manualGui = 'manually defined in GUI'; |
|
| 17 |
+SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF.roiImage = 'use ROI image by pop-up image selector'; |
|
| 18 |
+ |
|
| 19 |
+global SVMCROSSVAL_SUBJECT_PREFIX; |
|
| 20 |
+% internally used to prefix subject-ids starting with numbers. |
|
| 21 |
+SVMCROSSVAL_SUBJECT_PREFIX = 'subject'; |
|
| 22 |
+end |
|
| 0 | 23 |
\ No newline at end of file |
| ... | ... |
@@ -1,22 +1,27 @@ |
| 1 |
-function retVal = main(action,parameterModel) |
|
| 2 |
- |
|
| 3 |
-% if nargs ~=2 |
|
| 4 |
-% error('SVMCrossVal:main:argument','wrong number of arguments');
|
|
| 5 |
-% end |
|
| 6 |
- |
|
| 7 |
-StudyID = 'CHOICE24'; |
|
| 8 |
- |
|
| 1 |
+function main(action,parameterModel) |
|
| 2 |
+timeline = getTimeLineParams(parameterModel); |
|
| 3 |
+switch action |
|
| 4 |
+ case 'COORD-LOOKUP-TABLE' |
|
| 5 |
+ runCoordTable(timeline,parameterModel); |
|
| 6 |
+ case 'ROI-IMAGE-MASK' |
|
| 7 |
+ runROIImageMaskMode(parameterModel) |
|
| 8 |
+ case 'FULL-BRAIN' |
|
| 9 |
+ error('SVMCrossVal:main:notImplemented','Feature not yet implemented');
|
|
| 10 |
+ otherwise |
|
| 11 |
+ error('SVMCrossVal:main:actionError','Wrong ''action''. Use the GUI.');
|
|
| 12 |
+end |
|
| 13 |
+end |
|
| 9 | 14 |
|
| 10 |
- loadParams.StudyID = StudyID; |
|
| 15 |
+function runROIImageMaskMode(parameterModel) |
|
| 16 |
+ loadParams.StudyID = 'CHOICE24'; |
|
| 11 | 17 |
loadParams.use_smoothed_image_hack = 1; |
| 12 | 18 |
loadParams.subjectCellArray = getSubjectIDString(parameterModel); |
| 13 | 19 |
|
| 14 | 20 |
imageStruct = loadImageFileNamesData(loadParams); |
| 15 | 21 |
assignin('base','imageStruct',imageStruct);
|
| 16 | 22 |
|
| 17 |
- coordinateStruct = computeCoordinates(imageStruct); |
|
| 18 |
- assignin('base','coordinateStruct',coordinateStruct);
|
|
| 19 |
- |
|
| 23 |
+% coordinateStruct = computeCoordinates(imageStruct); |
|
| 24 |
+% assignin('base','coordinateStruct',coordinateStruct);
|
|
| 20 | 25 |
end |
| 21 | 26 |
|
| 22 | 27 |
% generate parameter structs for subroutines |
| ... | ... |
@@ -1,25 +1,8 @@ |
| 1 | 1 |
function spm_SVMCrossVal(varargin) |
| 2 | 2 |
|
| 3 |
-%define global constants |
|
| 4 |
-global SVMCROSSVAL_USE_DRIVE_CHECK_HACK; |
|
| 5 |
-%enables subroutine to check if image path starts with 'D' |
|
| 6 |
-SVMCROSSVAL_USE_DRIVE_CHECK_HACK = 1; |
|
| 7 |
- |
|
| 8 |
-global SVMCROSSVAL_CROSSVAL_METHOD_DEF; |
|
| 9 |
-% supported classification methods |
|
| 10 |
-SVMCROSSVAL_CROSSVAL_METHOD_DEF.svmcrossval = 'svm crossval'; |
|
| 11 |
-SVMCROSSVAL_CROSSVAL_METHOD_DEF.classPerformance = 'svm class performance'; |
|
| 12 |
-SVMCROSSVAL_CROSSVAL_METHOD_DEF.crossSubject = 'svm across subject testing'; |
|
| 13 |
-SVMCROSSVAL_CROSSVAL_METHOD_DEF.somTraining = 'som Training'; |
|
| 14 |
- |
|
| 15 |
-global SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF; |
|
| 16 |
-% supported voxel selection methods |
|
| 17 |
-SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF.manualGui = 'manually defined in GUI'; |
|
| 18 |
-SVMCROSSVAL_VOXEL_SELECTION_MODE_DEF.roiImage = 'use ROI image by pop-up image selector'; |
|
| 19 |
- |
|
| 20 |
-global SVMCROSSVAL_SUBJECT_PREFIX; |
|
| 21 |
-% internally used to prefix subject-ids starting with numbers. |
|
| 22 |
-SVMCROSSVAL_SUBJECT_PREFIX = 'subject'; |
|
| 3 |
+SVMCROSSVAL_BASEDIR = fullfile('D:','Analyse','Choice');
|
|
| 4 |
+ |
|
| 5 |
+defineGlobals(); |
|
| 23 | 6 |
|
| 24 | 7 |
switch nargin |
| 25 | 8 |
case 0 |
| ... | ... |
@@ -32,6 +15,9 @@ error('spm_SVMCrossVal:main','wrong nargin');
|
| 32 | 15 |
end |
| 33 | 16 |
end |
| 34 | 17 |
|
| 18 |
+function loadStudies(basedir) |
|
| 19 |
+ |
|
| 20 |
+end |
|
| 35 | 21 |
|
| 36 | 22 |
|
| 37 | 23 |
|
| 38 | 24 |