Fmriprep html summary report does not include functional figures unless fieldmaps are ignored

Hi all,

I’m running fmriprep 1.4.1 on a linux cluster and paving the way for our large lab to move to fmriprep. I had to pip install fmriprep because our admins don’t allow docker or singularity.

Everything is working great and I get no errors. There are some sklearn deprecation warnings that seem innocuous for now.

The issue I have is with each subject’s summary report. Unless --ignore fieldmaps is called, the reports don’t include any functional figures, although those figures exist in the appropriate reportlets subdir. The html report navbar does not include the “functional” tab, either. If I do call --ignore fieldmaps, the report includes functional figures and navbar tab, but obviously fieldmaps are left out of the pipeline and report. Again, there are no errors for either call.

Does anyone have an intuition as to what is happening or how I can attempt to debug this? Apologies that I’m not providing much to go off of. At this point, I’m at a loss.

Thank you,
Walter

This is very likely a problem of an outdated niworkflows or pybids dependency. Can you post the output of:

pip freeze

Thanks

Hi Oscar,

Thanks for your reply. Pip freeze output is attached

Thanks,
Walter
7_30_19_crick_pipfreeze.txt (1.3 KB)

backcall==0.1.0
bids-validator==1.2.4
bx-python==0.8.2
certifi==2019.6.16
chardet==3.0.4
citeproc-py==0.4.0
Click==7.0
CrossMap==0.3.3
cycler==0.10.0
Cython==0.29.5
decorator==4.3.2
docopt==0.6.2
duecredit==0.7.0
fmriprep==1.4.1
funcsigs==1.0.2
future==0.17.1
grabbit==0.2.6
idna==2.8
imageio==2.5.0
indexed-gzip==0.8.10
ipython==7.2.0
ipython-genutils==0.2.0
isodate==0.6.0
jedi==0.13.2
Jinja2==2.10.1
joblib==0.13.2
kiwisolver==1.0.1
lockfile==0.12.2
lxml==4.3.4
MarkupSafe==1.1.1
matplotlib==3.0.2
networkx==2.3
neurdflib==5.0.0.post1
nibabel==2.4.1
nilearn==0.5.2
nipype==1.2.0
nitime==0.8.1
niworkflows==0.9.6
num2words==0.5.10
numpy==1.16.1
packaging==19.0
pandas==0.25.0
parso==0.3.3
patsy==0.5.1
pexpect==4.6.0
pickleshare==0.7.5
Pillow==6.1.0
prompt-toolkit==2.0.8
prov==1.5.3
psutil==5.6.3
ptyprocess==0.6.0
pybids==0.7.1
pyBigWig==0.3.13
pydot==1.4.1
pydotplus==2.0.2
Pygments==2.3.1
pyparsing==2.3.1
pysam==0.15.2
python-dateutil==2.8.0
pytz==2019.1
PyWavelets==1.0.3
PyYAML==5.1.1
rdflib==4.2.2
requests==2.22.0
scikit-image==0.15.0
scikit-learn==0.21.2
scipy==1.2.1
seaborn==0.9.0
sentry-sdk==0.10.2
simplejson==3.16.0
six==1.12.0
smriprep==0.2.4
statsmodels==0.10.0
svgutils==0.3.1
tedana==0.0.7
templateflow==0.3.0
tqdm==4.32.2
traitlets==4.3.2
traits==5.1.2
urllib3==1.25.3
versioneer==0.18
wcwidth==0.1.7

It looks good at a glimpse. Can you send us two example reports? One with --ignore fieldmaps and one without. Please zip in not just the sub-XXXXX.html file, but also the sub-XXXXX/figures folder.

It could also be helpful see the output log with the -vv flag added in.

Here’s a link to the reports https://drive.google.com/file/d/18gX4-SUTo6LuxqWzvV-B35eWMYYxYk9j/view?usp=sharing

For the log, is it sufficient to run --reports-only and -vv or should a I completely rerun a subject?

Thanks very much.

Can you try replacing the deprecated --output-space with the new --output-spaces (please note the plural in spaces):

fmriprep /group/dml/alex/CamCAN_Alex/CamCan/ /home/wbreilly/wbr_can_CamCan/output/ participant --participant_label sub-CC110069 -w /home/wbreilly/wbr_can_CamCan/working2/ --nthreads 8 --mem_mb 9000 --n_cpus 8 --output-spaces anat --fs-no-reconall -vv &> send_to_oe.log

Also, I would recommend to drop --resource-monitor for now.

And yes, a full run, on a clean working directory (that’s why I wrote working2) would be very much appreciated.

Thanks for your patience!

I really appreciate your time with this and for your fmriprep development in general, no need to thank me for messing it up :grin:

Previously, I didn’t use --ouput-spaces because it snags fairly quickly. Sorry, I should have mentioned that in my first post. I ran what you requested above and that log is attached.

Looking at that log, you’ll see that fmriprep can’t locate the BIDS validator. Not sure why that is as you could see it was in the list from pip freeze. I manually checked for BIDS validation, but maybe the freesurfer output is causing trouble? Here’s the dir structure in our sample subject as well


send_to_oe.txt (3.2 KB)

1 Like

Sorry that’s a known bug in 1.4.1, I should’ve remembered.

Can you please try instead:

fmriprep /group/dml/alex/CamCAN_Alex/CamCan/ /home/wbreilly/wbr_can_CamCan/output/ participant --participant_label sub-CC110069 -w /home/wbreilly/wbr_can_CamCan/working2/ --nthreads 8 --mem_mb 9000 --n_cpus 8 --output-spaces MNI152NLin2009cAsym anat --fs-no-reconall -vv &> send_to_oe.log
1 Like

Sorry for the delay seemed like the site was down earlier today
send_to_oe_output4.txt (694.7 KB)

and the html

1 Like

Can you post the output of tree /home/wbreilly/wbr_can_CamCan/output/ and tree /home/wbreilly/wbr_can_CamCan/working2/reportlets ?

1 Like

sure thing

tree_output4.txt (4.1 KB)
tree_working4reportlets.txt (2.0 KB)

1 Like

I prepared and ran a different dataset yesterday and it looks like the html reports are complete. I will look for differences between the two datasets and post if I find a solution

1 Like

Yeah, it seems like a one-off problem, your outputs look good indeed.

1 Like

One question, can you post the JSON sidecar corresponding to the fieldmaps in this failing subject?

After fixing the fmap json, I finally got everything to work only after all the permutations of setups I could think of. The only one that was successful was when the func json files were subject specific, in the func folder, and included ‘run-1’. I never saw any error message that pointed to this solution (or any problem for that matter).

Hopefully this is just a one-off problem related to our HPC cluster and pip installation method. I really appreciate the time taken to help me rule out possible problems.

Cheers,
Walter