Fmriprep: Preprocessing atypical brains

Created on 29 Sep 2017  Â·  8Comments  Â·  Source: nipreps/fmriprep

We'd like to develop support for atypical brains in fmriprep, including for lesion, hemispherectomy and acallosal patients, where the individual structure is radically different from neurotypical. The biggest issues are on the structural preprocessing side, particularly for freesurfer segmentation correction or inserting alternative templates and segmentations into the pipeline.

Any suggestions about where to start? Happy to fork a branch and see how far we can get. We have access to developer versions of freesurfer with additional flags for single-hemisphere processing, and we're working with fmriprep singularity containers under SGE/Centos.

feature

Most helpful comment

@danlurie and @danielemarinazzo are probably also interested in this topic

All 8 comments

@danlurie and @danielemarinazzo are probably also interested in this topic

Hi, thanks for the interest and the offer of help!

For FreeSurfer segmentation correction, we don't currently have any support for re-running recon-all steps after making corrections. Nipype's ReconAll interface works to reduce steps. In this case, I would probably recommend pre-running FreeSurfer and then including it in the output directory for fmriprep (see the docs for details), or making an initial run through fmriprep, making your corrections, and then re-run with the usual FreeSurfer tools. I just suspect it would be very difficult for us to include a flag that would re-perform the correct steps for every pipeline that involves atypical brains. I'd be happy to discuss if you think otherwise!

As to alternative templates, we've done some work on at least building the infrastructure for these, though currently only one is implemented. If you need alternative skull-stripping templates, I've just created a branch (#729) to use the NKI template, so that may be of use, if only in orienting yourself to the areas of the code you'll be looking at.

For alternative segmentation methods, if it's just alternative options to FAST or recon-all, then that will be extremely simple. If you need an actual different tool, then what we would probably do is build a subworkflows for the existing tool and the new tool, and make sure that both workflows produce all of the needed outputs for down-stream processing. This could be a little time-consuming, but we'd be glad to answer any questions about the process.

For lesion registration, @danlurie has been working on modifications (poldracklab/niworkflows#121, #359). I'm not sure how much this directly overlaps with what you want, but it's probably also worth looking at.

As an additional point, there was a Neurostars issue on at least single-hemisphere processing. If you want to open a PR for that work, we'd appreciate the contribution, and I imagine others would as well.

The modifications I've implemented (with assistance from @oesteban and @chrisfilo) is mainly just the addition of options for using the constrained cost-function masking that are already built into ANTs. That said, that small change makes a big difference, and I've successfully run 60+ lesion patients through the pipeline successfully.

I really need to finish that PR. All the code works (so feel free to play with it), but @oesteban and @chrisfilo have requested a refactor before merging with the main branch.

The neurostar issue was posted by me :)

We've successfully run the hemispherectomy patient data through FreeSurfer in a dev version of it (thanks Bruce!). So 'feeding in' the output of the recons is possible (i.e. no need for another segmentation method) and planned. We actually just tried it out in the singularity container but it immediately bugged out because it is looking for hemisphere-specific FS-files, that are obviously not there (bc we limited FS to the remaining hemisphere) ...

So the question is where do we go from there. In the neurostar issue @effigies suggested that there might be the need for custom images for mri_coreg, bbregister, mri_vol2vol, mri_vol2surf, mris_convert, tkregister2. Most of those tools seem to have hemisphere flags incorporated, which might be helpful? But hard for us to estimate where and how that would affect the more 'global' (both hemispheric) steps within fmriprep....

I'll also check out other issues suggested as well (thanks).

Thanks all for the quick responses! Probably the best place for us to start is by looking at @danlurie's lesion mods to niworkflows and maybe see how tractable adding subworkflows for FS variants would be as @effigies suggested. To clarify, I'm working to support @doritdorit here at Caltech - she's on point with the hemispherectomy and AgCC MVPA projects.

Quick update on this: we have successfully ran the hemispherectomy data with fmriprep (with registering to T1w (and not MNI) and with skipping the freesurfer step (since we can relate to the externally processed data after fmriprep). It works surprisingly well :) .....for most of the steps and some cases, however we do have some issues with the brain extraction in ants (sometimes including eye balls etc).
I thought I try the NKI template next #729 but also wanted to check in about #359 @danlurie. Seem that things have moved forward there so I just wanted to check on the anticipated timeline when this will be merged into a new built?

I keep meaning to finish up the PR, but teaching and other stuff means I just haven't had the time. My apologies.

There have been some changes to fmriprep/niworkflows since I last tested, so I'm not sure if anything is broken, but things were working as of my last comment on the niworkflows PR. I'd like to say I can get to this soon, but honestly I'm slammed with other stuff for the foreseeable future. That said, if someone else wanted to take a whack at what's already there, I'm happy to answer questions about how I set things up. It honestly might very well be as simple as testing and fixing a few changes in how things are called. All the core functionality is there.

@danlurie please add your name to the zenodo file :+1:

On Sat, May 5, 2018, 07:21 Chris Markiewicz notifications@github.com
wrote:

Closed #730 https://github.com/poldracklab/fmriprep/issues/730 via #1106
https://github.com/poldracklab/fmriprep/pull/1106.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poldracklab/fmriprep/issues/730#event-1611291335, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAkhxiew1raJxVJ4BmnuE4HfrEy__DAJks5tvbVmgaJpZM4Po8lE
.

Was this page helpful?
0 / 5 - 0 ratings