Using randomise (FSL) for a conjunction analysis?

Hello Neurostars.

I’m wondering if anyone has considered and/or been able to successful use FSL’s lovely randomise tool to perform a conjunction analysis (i.e. contrast A > 0 & contrast B > 0).

I don’t see this sort of thing being mentioned in the user guide ( unfortunately so I assume that it is not supported. But I would love to be wrong and save some time spent coding this…

An ad-hoc way to implement this would be to multiply the two values associated with the two contrasts together (to form one contrast)… this would be at least similar to looking for a pattern of “both” things but is obviously not exactly a conjunction.

Thanks for any advice!

1 Like

@nicholst ls might know the answer

1 Like

Hi Arielle,

You’re right there should be more on conjunction inference with randomise, but if you search the FSL list you will find this:
where I spell out the options.

The multiplication option you mention corresponds to Friston’s original “globall null” test, and it isn’t valid I’m afriad to declare a conjunction inference.

Fortunately, proper voxel-wise conjuntion is easy… you simply take the intersection of two thresholded maps. Equivalently, you can take the maximum of two voxelwise FWE corrected p-value images and that will give you the conjunction voxelwise FWE corrected p-values.

Unfortunately, for cluster inference, there’s no such easy option.

Hope this helps!


1 Like

Thanks so much Tom for your reply! I figured there isn’t a trivial way to do this at the cluster level. I am thinking of using one approach - it would be great to hear your expert opinion on this (whether this is valid):

Given a cluster forming threshold, e.g. Tstat > T_thresh:

  • Compute the true conjunction map: ContrastA > T_thresh & ContrastB > T_thresh
  • Permute the conditions going into the maps, to generate a series of permuted maps. Perform the same conjunction: PermContrastA > T_thresh & PermContrastB > T_thresh, store the size of the largest cluster for each permutation.
  • Compare the cluster sizes from the true conjunction map to the distribution of largest cluster sizes from the conjunction on the permuted maps to assign p-value to each cluster.

Thanks again - your input is very much appreciated!


Your approach won’t work I’m afraid because the conjunction null is that (for 2 maps) that 0 or 1 of the maps is null, that is, to have a valid conjunction inference you have to allow for the case where one effect is present (very strong even) and the other is null. This won’t be reflected in a permutation test where both null hypotheses are assumed to be true.

So, actually, one type of cluster conjunction infernece is easy to impliment, but it rarely has power to detect anything: You determine what is the cluster size significance threshold for each null map, and then you use that critereon on the clusters found in the intersection map.

More slowly:

  1. Run a usual permutation test for effect 1, call it T1, and effect 2, T2, with the same cluster forming threshold, call it u. Call the binarised maps T1u and T2u, e.g. T1u=T1>u, T2u=T2>u.
  2. Determine what would be the minimum significant cluster size, i.e. the 5% FWE cluster size threshold. It won’t be identical for the two maps, T1 & T2, but you can take the more conservative (larger cluster size thershold) of the two. While randomise doesn’t directly produce this number, you can find it by useing the -N option, which will produce the null distribution of maximum cluster size, and the 95% percentile will be the critical cluster size threshold, call it u1 and u2 respsctively. Taking the larger of the two, uconj=max(u1,u2).
  3. Take the intersection of clusters in T1u and T2u, Tconj = T1u*T2u, and compute clusters (e.g. with FSL’s cluster); any clusters larger than uconj are significant.

In my experience the intersection map clusters are always so much smaller that this approach rarely finds anything, but it willl give you a proper conjunction inference.