nipreps / fmriprep

fMRIPrep is a robust and easy-to-use pipeline for preprocessing of diverse fMRI data. The transparent workflow dispenses of manual intervention, thereby ensuring the reproducibility of the results.
https://fmriprep.org
Apache License 2.0
638 stars 294 forks source link

Add information about running fmriprep on Brainlife #1727

Open KirstieJane opened 5 years ago

KirstieJane commented 5 years ago

At the moment the installation documentation about OpenNeuro says:

After uploading your BIDS-compatible dataset to OpenNeuro you will be able to run fmriprep for free using OpenNeuro servers. This is the easiest way to run fmriprep, as there is no installation required.

Here's a link to the file that needs to be updated in GitHub: https://github.com/poldracklab/fmriprep/blob/master/docs/installation.rst#openneuro

This is no longer true 🙀 so it should be removed. And maybe a link to https://brainlife.io added?

adelavega commented 5 years ago

Looks like this was taken care of here: e24c10d3

Still, adding info about Brainlife would be useful

adelavega commented 5 years ago

Hey @soichih I think it would be useful to add mention of brainlife in the fmriprep docs. It's would be a pretty great option for a lot of folks!

I tried running fmriprep on brainlife and I have a few questions:

Thanks!

soichih commented 5 years ago

Thank you all for updating the doc with the pointer to brainlife!

@adelavega

Is it possible to run fmriprep on any arbitrary user-uploaded BIDS-dataset on brainlife?

Yes, you should be able to process all BIDS datasets.. but I know we probably have some use cases that we haven't covered yet. But we are committed to make it work! I'd like to point out though.. fmriprep itself doesn't handle all BIDS dataset. For example, some fieldmap formats (like 2phasemag) aren't supported by fmriprep - although they might be valid BIDS. We can't support datasets that aren' supposed by fmriprep, obviously.

so I suppose uploading to OpenNeuro first would not work right now.

Yes, right now we only auto index OpenNeuro datasets that have high download counts. But this is just for auto indexing. We can index other OpenNeuro datasets on-demand. Right now, we are still working on making sure that data hosted in OpenNeuro can be ingested to Brainlife. For example, BIDS allows nifti to be stored in either .nii or .nii.gz format. This doesn't work for Brainlife as all nifti files need to be in .nii.gz format. We also haven't quite figured out how to handle different snapshots. Once we are comfortable ingesting any OpenNeuro dataset, I will turn on a feature so that all OpenNeuro datasets will be auto ingested by default. For now, please let me know which dataset should be ingested and I can do that manually (ping me on the brainlife slack team)

On brainlife, you will need to run app-freesurfer separately from fmriprep. This was necessary because we run fmriprep on each fmri data but we don't want to keep rerunning freesurfer for the same subject. You can just submit freesurfer (via pipeline rule) prior to running fmriprep and it will find it.

adelavega commented 5 years ago

Cool, thanks. I assume most people will want to upload their own datasets, while maybe ~10% would want to preprocess an OpenNeuro dataset (plus there are already several efforts to preprocess all datasets on ON, so re-doing doesn't make much sense most of the time).

So I think my main question then is really about the upload of the dataset itself.

Is this the correct workflow: Create project -> Go to "archive" -> Click + -> Select fMRI task as dataset type

If so then I would be on this upload form: Screenshot from 2019-11-06 17-25-27

This is a little different than I expected because it seems that I'm expected to upload different components of the BIDS dataset separately, and provide some meta-data (such as subject IDs?). Is there somewhere I can plop an entire dataset and have it parse it for me, and run the BIDS-validator prior to ingesting?

Given that this would likely be for novices, that would be most helpful. Alternatively, if on-demand OpenNeuro indexing is possible, maybe that's the easiest route for the average user?

Thanks for answering these questions. Just trying to make sure I know what I'm talking about if I'm going to write some docs on how to do this.

adelavega commented 5 years ago

Also, if I understand correctly, to run an app on the whole dataset, you have the use the Pipeline feature (otherwise its just for one subject).

I'm starting to wonder if it might make more sense if there was a full walkthrough using fmriprep as an example on brainlife (that also helps users learn the principles of brainlife). We could then just link to it in the fmriprep docs, rather than going through all of that over here.

soichih commented 5 years ago

If your data is already in BIDS, then you can import the entire dataset with bl bids upload.

bl bids upload --tag test --project 5b031990251f5200274d9cc4 -d my_bids_dir

If your data isn't BIDS formatted, and you know how to write a shell script, you can loop over each subject and upload them using bl dataset upload command. Here is an example > https://brainlife.io/docs/cli/upload/#bulk-upload

If you don't know how to write a shell script, and data is not BIDS formatted, and if you are extremely patient person, then you can use the web-based uploader for each dataset.. and people do do that .. believe it or not! We are currently working on an uploader that allows users to deposit RAW dicom directory structure, auto-detect the file structure to convert it to BIDS (and upload it to Brainlife).

if it might make more sense if there was a full walkthrough using fmriprep as an example on brainlife

YES!!! I can help you with this. Would you like to get started?

adelavega commented 5 years ago

We are currently working on an uploader that allows users to deposit RAW dicom directory structure, auto-detect the file structure to convert it to BIDS (and upload it to Brainlife).

That's pretty cool and very useful. I would suggest you consider an uploader for a datasest already in BIDS, since other people may be using other tools to convert to BIDS such as heudiconv. And it seems like your API already supports it if your CLI does.

Uploading from BIDS is probably what makes the most sense for an fmriprep walkthrough since the tool expects BIDS inputs anyways, and most users would expect that as a requirement.

I'll see how far I can get uploading and processing a dataset (it would be re-uploading a openneuro dataset as I don't have any others, so we can delete later).