NiMARE functionalities

I am hoping to do a coordinate-based meta-analysis with Nimare. I have extracted the peak coordinates from a set of task-based fMRI studies (~110) selected from the literature. I want to pursue the following analyses and am wondering whether someone could confirm that Nimare has these functionalities (or if not, suggest alternative tools)? I have been able to find some of them in the Nimare examples but am not sure about all of these. Thanks so much!

Main analyses:

  1. Main effect across all studies and for subsets of studies (eg. for each disorder type separately)

  2. Contrasts between subsets of studies (eg. studies with participants who have disorder A vs. studies with disorder B)

→ For both I would like to do multiple comparison correction using permutation tests + thresholding of statistical maps.

Sensitivity analyses:

  1. Robustness checks using jackknife and bootstrapping. I understand these address different concerns and ideally I’d like to do both.

  2. Using the overall sample size from each study (disorder + control) vs. the sample size of the smaller of the two study groups for the Gaussian kernel.

  3. Running a balanced contrast analysis that accounts for having a different number of studies on each side of a contrast (eg. more studies exist on disorder A vs. B), such that the side with more studies is subsampled down to the number of studies on the other side and this process is repeated.

  4. Pooling all experiments from one study into a single experiment first and then running the main and contrast analyses vs. allowing all experiments to contribute to the analyses as if they were independent.

If there are any other sensitivity analyses typically done that I am not thinking of, please let me know as well!

Hi @dclb!

Here are some brief responses to your questions.

main analyses:

  1. Main effect across all studies and for subsets of studies (eg. for each disorder type separately)

For the main effect across all groups of studies I would suggest using a Conjunction Analysis. Or if you’re just pooling all the studies, that would be a regular meta-analysis (e.g., ALE, MKDA), if I’m understanding correctly.

For each disorder type separately, these would also be regular meta-analyses (e.g., ALE, MKDA)

  1. Contrasts between subsets of studies (eg. studies with participants who have disorder A vs. studies with disorder B)

For contrasts, NiMARE has a couple of options: MKDAChi2 or ALESubtraction

For both I would like to do multiple comparison correction using permutation tests + thresholding of statistical maps.

NiMARE has montecarlo permutation testing for many of the algorithms: permutation testing (montecarlo).
Thresholds to the final statistical map can be applied using numpy or through visualization using nilearn: NiMARE: Neuroimaging Meta-Analysis Research Environment — NiMARE 0.5.3 documentation

Sensitivity analyses:

  1. Robustness checks using jackknife and bootstrapping. I understand these address different concerns and ideally I’d like to do both.

NiMARE currently has jackknife implemented, and I’ll look into permutation testing, it may be valuable to implement, a previous conversation brought this up.

you can also look at focuscounter.

  1. Using the overall sample size from each study (disorder + control) vs. the sample size of the smaller of the two study groups for the Gaussian kernel.

Currently we use the combined sample size, but I think it would be fairly straightforward to offer the option to choose the smaller of the two groups.

  1. Running a balanced contrast analysis that accounts for having a different number of studies on each side of a contrast (eg. more studies exist on disorder A vs. B), such that the side with more studies is subsampled down to the number of studies on the other side and this process is repeated.

NiMARE doesn’t have a specific utility for this, but can be done using python and a loop.

  1. Pooling all experiments from one study into a single experiment first and then running the main and contrast analyses vs. allowing all experiments to contribute to the analyses as if they were independent.

We currently allow all the experiments within a study to contribute to the analyses as if they were independent (unless you use the studyset class, but that is still a work in progress): here’s the related issue: Create Transformer to combine coordinates from different experiments in the same studies · Issue #728 · neurostuff/NiMARE · GitHub, this can also be worked on.

Let me know if you want more specific advice for any of the points provided above, and for the things NiMARE currently doesn’t offer, we can work toward implementing those. I can either help you make the changes yourself on NiMARE (and you can learn to make contributions to open source software!), or if you can prioritize the features you wanted, I’ll get to them (this may be slower).

All the best!
James

Thanks so much for promptly addressing my questions about NiMARE (my bad for the incorrect capitalization!). I’m sure more questions will come up, but for now I have the following follow-up questions:

  1. I wanted to ask more about FocusCounter. It seems to be used in the function you suggested for contrast analysis with ALE (ALESubtraction) but you also suggested it as a way to do a robustness check instead of jackknife or bootstrap. Could you elaborate what FocusCounter does?

  2. I had not come across a conjunction analysis before. How is this different from a regular meta-analysis with ALE (this had been my plan)?

  3. I am a bit confused in regards to the statistical thresholding. You mentioned that NiMARE does not do thresholding and instead the user is supposed to do it afterwards. But in the ALESubtraction I see the option for “diagnostics” which uses FocusCounter. When I examine FocusCounter, I see the options for voxel_thresh and cluster_threshold. What do these do if they are not used for thresholding?

Thanks so much!

Could you give me context to this? I will need the pooled functionality. Is the Studyset class not ready yet? Or does it do something else? I am seeing this example, would I have to do this with each of the studies that have multiple experiments? Does it work if I use my own csv files with coordinates as opposed to studies from a database?

I also came across this tool that implements the pooled analysis (and the balanced contrast). Is it comparable to NiMARE when it comes to doing a cbma?

Thanks so much!