Incorporating FastSurfer to sMRIPrep surface reconstruction

I am working on a fork of sMRIPrep that incorporates FastSurfer as an alternative for the Freesurfer workflow in order to test the performance and similarity of outputs between the two. I have separate working Singularity containers of both sMRIPrep and FastSurfer (CPU and GPU) running on my cluster, and I should have a working image for both soon.

I have less experience with programming workflows in Nipype, so I wanted to know if other folks here would be interested in reviewing the code and giving any suggestions. I will share the fork when I have a working draft.

I know this idea or some version thereof has come up before in the FastSurfer and sMRIPrep GitHub issues, so we can move the discussion there if that is a more appropriate venue. Thanks in advance!


1 Like

This is awesome, Paul. Thanks much!

Yes, let’s move the discussion to the GH repo :slight_smile:

This sounds very useful!

Piggybacking onto this, I was wondering how NiPreps is planning to deal with these sorts of methods questions in general. It could potentially be a nice idea to have an abstraction that allows swapping different parts of the pipelines. For example, I can imagine besides FastSurfer, methods researchers might also want to try swapping out antsBrainExtraction for nobrainer, or antsRegistration for something else, while still being able to control every other aspect of processing within the framework of sMRIPrep/fMRIPrep.

However, I’m not sure if something like that would make the code much harder to read and maintain. Also, would such a feature even be within the scope of the project?