How to include Qsiprep preprocessing in a Nipype workflow

Dear experts,

I hope you can help me answer two questions.

1- I am trying to create a nipype workflow using qsiprep for preprocessing (final aim is to compute Tract-based spatial statistics). to this end I am preparing a nipype interface for the qsiprep container. However, since Qsiprep is basically a nipype workflow, I am wondering whether this is actually a clever solution. Shouldn’t there be an easy way to include qsiprep as a nipype workflow within my workflow? if so, is it explained anywhere in the documentation? Would it be something like importing this workflow:

2- I have longitudinal data, mostly with two time points. the T1w images images are expected to be very different across the two time points so I do not want to merge them into a single template. if I understood clearly the documentation (and some questions, Longitudinal Processing with sMRIPrep and QSIPrep), one should use a bids filter file (–bids-filter-file) in this case. is this correct? I ask because my setting seems to be one common to many users (just use the T1w image in the same session as the DWI image) and I thought one could implement this choice with a simple flag, as opposed to create a bids file for each session. Or maybe there is a way to implement this concept just creating a single bids filter file for all participants/sessions?

thank you in advance for your help!


hi fabio,

If you’re interested, this would be a great candidate for a reconstruction workflow. There are a couple examples already and maybe TBSS would be not too bad to add too.

I think an issue with TBSS as a recon-spec is that most users register to a study specific template, so there’d need to be some group-level integration beyond the participant level.

Dear Matt,

Thank you for proposing this! I think having a workflow for TBSS is a great idea, especially since it’s surprising that none exist despite TBSS being an established analysis method. Personally, I prefer writing the Nipype workflow myself to maintain the flexibility to make autonomous changes later.

The reason I am including QSIPrep as a single preprocessing unit, rather than writing the individual steps myself, stems from my inexperience with DWI analysis and primarily what Stefan suggested: we aim to have a pipeline that not only analyzes our data but also preprocesses it for use in multisite analyses, specifically for the ENIGMA consortium (see ENIGMA DTI Protocols) and the Eating Disorders subgroup.

Do you think preparing a Nipype interface for the QSIPrep container is a viable solution, or do you foresee any potential issues? Alternatively, would it be more appropriate to import the workflow from PennLINC/qsiprep?

Thank you in advance for your help.

Best regards, Fabio