ContrastAnalysis.m 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. % function ContratAnalysis:
  2. % this function creates contrast of SP vs fix. It uses te SPM.mat file within the provided directory
  3. %
  4. % input:
  5. % directory - directory to search for SPM.mat file
  6. function ContrastAnalysis(directory)
  7. % create batch file
  8. matlabbatch = [];
  9. matlabbatch{1}.spm.stats.con.spmmat = cellstr([directory '/SPM.mat']);
  10. matlabbatch{1}.spm.stats.con.consess{1}.tcon.name = 'SP > sacc';
  11. contrast = zeros(8,24);
  12. contrast(:,4) = 1;
  13. contrast(:,16) = -1;
  14. contrast = contrast';
  15. matlabbatch{1}.spm.stats.con.consess{1}.tcon.convec = contrast(:);
  16. % equivalent to
  17. % matlabbatch{1}.spm.stats.con.consess{1}.tcon.convec = [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ...
  18. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 2
  19. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 3
  20. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 4
  21. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 5
  22. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 6
  23. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 7
  24. % 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ... % session 8
  25. % ];
  26. matlabbatch{1}.spm.stats.con.consess{1}.tcon.sessrep = 'none';
  27. matlabbatch{1}.spm.stats.con.consess{2}.tcon.name = 'sacc > SP';
  28. contrast = zeros(8,24);
  29. contrast(:,4) = -1;
  30. contrast(:,16) = 1;
  31. contrast = contrast';
  32. matlabbatch{1}.spm.stats.con.consess{2}.tcon.convec = contrast(:);
  33. matlabbatch{1}.spm.stats.con.consess{2}.tcon.sessrep = 'none';
  34. matlabbatch{1}.spm.stats.con.consess{3}.tcon.name = 'motion > sacc';
  35. contrast = zeros(8,24);
  36. contrast(:,10) = 1;
  37. contrast(:,16) = -1;
  38. contrast = contrast';
  39. matlabbatch{1}.spm.stats.con.consess{3}.tcon.convec = contrast(:);
  40. matlabbatch{1}.spm.stats.con.consess{3}.tcon.sessrep = 'none';
  41. matlabbatch{1}.spm.stats.con.consess{4}.tcon.name = 'sacc > motion';
  42. contrast = zeros(8,24);
  43. contrast(:,10) = -1;
  44. contrast(:,16) = 1;
  45. contrast = contrast';
  46. matlabbatch{1}.spm.stats.con.consess{4}.tcon.convec = contrast(:);
  47. matlabbatch{1}.spm.stats.con.consess{4}.tcon.sessrep = 'none';
  48. matlabbatch{1}.spm.stats.con.consess{5}.tcon.name = 'sp > motion';
  49. contrast = zeros(8,24);
  50. contrast(:,4) = 1;
  51. contrast(:,10) = -1;
  52. contrast = contrast';
  53. matlabbatch{1}.spm.stats.con.consess{5}.tcon.convec = contrast(:);
  54. matlabbatch{1}.spm.stats.con.consess{5}.tcon.sessrep = 'none';
  55. matlabbatch{1}.spm.stats.con.consess{6}.tcon.name = 'motion > sp';
  56. contrast = zeros(8,24);
  57. contrast(:,4) = -1;
  58. contrast(:,10) = 1;
  59. contrast = contrast';
  60. matlabbatch{1}.spm.stats.con.consess{6}.tcon.convec = contrast(:);
  61. matlabbatch{1}.spm.stats.con.consess{6}.tcon.sessrep = 'none';
  62. matlabbatch{1}.spm.stats.con.consess{7}.tcon.name = 'sp + motion > sacc';
  63. contrast = zeros(8,24);
  64. contrast(:,4) = 1;
  65. contrast(:,10) = 1;
  66. contrast(:,16) = -2;
  67. contrast = contrast';
  68. matlabbatch{1}.spm.stats.con.consess{7}.tcon.convec = contrast(:);
  69. matlabbatch{1}.spm.stats.con.consess{7}.tcon.sessrep = 'none';
  70. matlabbatch{1}.spm.stats.con.consess{8}.tcon.name = 'SP > baseline';
  71. contrast = zeros(8,24);
  72. contrast(:,4) = 1;
  73. contrast = contrast';
  74. matlabbatch{1}.spm.stats.con.consess{8}.tcon.convec = contrast(:);
  75. matlabbatch{1}.spm.stats.con.consess{8}.tcon.sessrep = 'none';
  76. matlabbatch{1}.spm.stats.con.consess{9}.tcon.name = 'sacc > baseline';
  77. contrast = zeros(8,24);
  78. contrast(:,16) = 1;
  79. contrast = contrast';
  80. matlabbatch{1}.spm.stats.con.consess{9}.tcon.convec = contrast(:);
  81. matlabbatch{1}.spm.stats.con.consess{9}.tcon.sessrep = 'none';
  82. matlabbatch{1}.spm.stats.con.consess{10}.tcon.name = 'motion > baseline';
  83. contrast = zeros(8,24);
  84. contrast(:,10) = 1;
  85. contrast = contrast';
  86. matlabbatch{1}.spm.stats.con.consess{10}.tcon.convec = contrast(:);
  87. matlabbatch{1}.spm.stats.con.consess{10}.tcon.sessrep = 'none';
  88. % execute job
  89. spm_jobman('run',matlabbatch);
  90. end