Dear Tom,
>Which images are being used in this batch - are these the contrast images
>produced during 1st level analyses?
No, these should be the thresholded T-maps produced by a second-level (i.e. group-level) analysis. Let say your goal with a conjunction analysis is to identify regions engaged by both the contrasts [A > B] AND [C > D]. Then, you'd typically first run a t-test across the (first-level) con-images for [A > B] of all participants, and a similar t-test across the con-images for [C > D]. Then, using SPM's 'Results' panel, you'd threshold (e.g. at p < 0.05 FWE-corrected) and output a nifti-image for each of the two contrasts (using the 'save...' button). The resulting 2 thresholded T-map nifti-images are what you use in the batch, which will then identify voxels that are significant in both contrasts.
For example, check out Figure 7A of our recent paper: https://academic.oup.com/cercor/article/30/7/3938/5788232
Blue indicates regions significant for contrast 1 (A > B), yellow for contrast 2 (C > D), and green for the conjunction (i.e. [A > B] AND [C > D]).
>Secondly, am I needing to add any values to this line of code:
>matlabbatch{1}.spm.util.imcalc.var = struct('name', {}, 'value', {}); , or
>do I leave it as it is?
You can leave it like this. This refers to the 'Additional Variables' tab of ImCalc, which is not used in this batch. By the way, you can load the batch in the SPM GUI if you remove the first and last lines, i.e. save the following as a .m file:
>> matlabbatch{1}.spm.util.imcalc.input = {
>> 'path_to_image_1';
>> 'path_to_image_2'
>> };
>> matlabbatch{1}.spm.util.imcalc.output = 'conjunction.nii';
>> matlabbatch{1}.spm.util.imcalc.outdir = {'my_output_folder'};
>> matlabbatch{1}.spm.util.imcalc.expression = 'min(X)';
>> matlabbatch{1}.spm.util.imcalc.var = struct('name', {}, 'value', {});
>> matlabbatch{1}.spm.util.imcalc.options.dmtx = 1;
>> matlabbatch{1}.spm.util.imcalc.options.mask = -1;
>> matlabbatch{1}.spm.util.imcalc.options.interp = 0;
>> matlabbatch{1}.spm.util.imcalc.options.dtype = 16;
I hope this helps!
All the best,
Phil
On Fri, 6 Aug 2021 12:44:37 +0100, Thomas Mcgeown <[log in to unmask]> wrote:
>Hi Philipp,
>
>Thanks for your reply. I've just got a couple more questions if that's ok.
>
>Which images are being used in this batch - are these the contrast images
>produced during 1st level analyses?
>
>Secondly, am I needing to add any values to this line of code:
>matlabbatch{1}.spm.util.imcalc.var = struct('name', {}, 'value', {}); , or
>do I leave it as it is?
>
>Thank you,
>
>Tom
>
>On Thu, 5 Aug 2021 at 10:35, Philipp Kuhnke <[log in to unmask]> wrote:
>
>> Dear Tom,
>>
>> I'm not sure I fully understand your approach, but one valid (and in my
>> opinion, the best) way to run a conjunction analysis is to simply take the
>> minimum of two thresholded maps. In this way, you end up testing the
>> conjunction null, i.e. which voxels are significant in both contrasts:
>> https://www.sciencedirect.com/science/article/abs/pii/S1053811904007505
>>
>> You can easily do this using the SPM batch (imcalc):
>>
>> clear matlabbatch
>> matlabbatch{1}.spm.util.imcalc.input = {
>> path_to_image_1;
>> path_to_image_2
>> };
>> matlabbatch{1}.spm.util.imcalc.output = 'conjunction.nii';
>> matlabbatch{1}.spm.util.imcalc.outdir = {'my_output_folder'};
>> matlabbatch{1}.spm.util.imcalc.expression = 'min(X)';
>> matlabbatch{1}.spm.util.imcalc.var = struct('name', {}, 'value', {});
>> matlabbatch{1}.spm.util.imcalc.options.dmtx = 1;
>> matlabbatch{1}.spm.util.imcalc.options.mask = -1;
>> matlabbatch{1}.spm.util.imcalc.options.interp = 0;
>> matlabbatch{1}.spm.util.imcalc.options.dtype = 16;
>> spm_jobman('run',matlabbatch);
>>
>> I hope this helps!
>>
>> All the best,
>> Philipp Kuhnke
>>
>>
>
|