Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display of IC components has a grey outline in report #1095

Closed
dc307 opened this issue May 15, 2024 · 13 comments · Fixed by #1098
Closed

Display of IC components has a grey outline in report #1095

dc307 opened this issue May 15, 2024 · 13 comments · Fixed by #1098
Labels
reports issues related to boilerplate generation or visual reports

Comments

@dc307
Copy link

dc307 commented May 15, 2024

Summary

Following on from a post in neurostars. I used fmriprep, and then tedana with my own mask. The IC components in the output figures have a grey, brainshaped outline. The adaptive mask plot looks fine. It was suggested on neurostars that this may be minor bug in Nilearn’s plot_stat_map function. The issues is not present in 23.0.2, but is present in 24.0.1. Components are also different between versions, but that may be down to something else.
tedana_difference

adaptive_mask

Additional Detail

Next Steps

@tsalo
Copy link
Member

tsalo commented May 15, 2024

I think this is more a concern for nilearn than tedana.

EDIT: Of course that assumes that we're calling the Nilearn plotting function properly. There may be ways for us to improve things on our end. I just think that the gray area is probably a bug on Nilearn's side.

@tsalo tsalo added the reports issues related to boilerplate generation or visual reports label May 15, 2024
@handwerkerd
Copy link
Member

I'm bump discussion from https://neurostars.org/t/ica-components-have-grey-shadow-around-each-brain-after-upgrade-and-different-components/29396/5 to this issue.

Particularly if the images in desc-ICA_components.nii.gz look fine in fsleyes, I agree with @tsalo that we're giving nilearn exactly what we're supposed to give it. Can you open an anatomical underlay and those component maps in fsleyes to confirm the image is fine and this is just a display issue?

I looked through the nilearn code a bit. As far as I've gotten, it consistently passes bg_img=None through functions and adds an overlay without an underlay (here: https://github.com/nilearn/nilearn/blob/d2ddfb9a2d1fbf641574d42f3fb3fd7f8375f733/nilearn/plotting/img_plotting.py#L275 ). My best guess is that something unindented can happen when it displays an overlay without specifying any underlay.

@dc307 Could you share a single dataset with this problem (and the command you used to run tedana) so that we can try to replicate the issue? If it is a nilearn issue, it would be useful to confirm and let them know. @tsalo any nilearn developers you know who are worth tagging in this thread?

@tsalo
Copy link
Member

tsalo commented May 16, 2024

@tsalo any nilearn developers you know who are worth tagging in this thread?

We can ping @Remi-Gau, but I think we should just cobble together a minimal, reproducible script (preferably using Nilearn built-in data) and open an issue.

@Remi-Gau
Copy link

What nilearn version is there in 24.0.1?

@Remi-Gau
Copy link

Ok just checked and 24.0.1 restricted to the very latest versions of nilearn.

Any difference between using nilearn 0.10.3 and 0.10.4 because the latter fixed a whole bunch of bugs.

A minimal reproducible example would definitely help in case so we could git bisect this to see where the regression happened.

@handwerkerd
Copy link
Member

OK. The next step is definitely to get a minimal reproduction. It sounds like both @tsalo and @dc307 have seen this issue. What version of nilearn are you both using? I think we originally added in nilearn visualizations using v0.10.3 and I have 0.10.3 in my environment. I'm wondering if this is coming up now because of some change in 0.10.4.

@dc307, the nilearn version you ran tedana with is listed in the Info section near the bottom of the report and it's also in the saved dataset_description.json file.

@dc307
Copy link
Author

dc307 commented May 16, 2024

I am not sure of the best way to share the dataset (its almost 4GB). If there is a way just give me a heads up and I will share it. In any case, here is the info - looks like nilearn 0.10.3.

The command I used was: tedana -d sub-p1_task-1_echo-1_desc-preproc_bold.nii.gz sub-p1_task-1_echo-2_desc-preproc_bold.nii.gz sub-p1_task-1_echo-3_desc-preproc_bold.nii.gz sub-p1_task-1_echo-4_desc-preproc_bold.nii.gz sub-p1_task-1_echo-5_desc-preproc_bold.nii.gz -e 15 36.02 57.04 78.06 99.08 --prefix sub-p1-task-1 --mask sub-p1_task-1_desc-brain_mask.nii.gz

System: Darwin
Node: psy019942.psych.susx.ac.uk
Release: 22.6.0
System version: Darwin Kernel Version 22.6.0: Mon Apr 22 20:54:28 PDT 2024; root:xnu-8796.141.3.705.2~1/RELEASE_X86_64
Machine: x86_64
Processor: i386
Python: 3.8.18 (default, Sep 11 2023, 08:17:33) [Clang 14.0.6 ]
Tedana version: 24.0.1
Other library versions: {'bokeh': '3.1.1', 'mapca': '0.0.5', 'matplotlib': '3.7.5', 'nibabel': '5.2.1', 'nilearn': '0.10.3', 'numpy': '1.24.3', 'pandas': '2.0.3', 'scikit-learn': '1.3.0', 'scipy': '1.10.1', 'threadpoolctl': '2.2.0'}

@dc307
Copy link
Author

dc307 commented May 17, 2024

UPDATES: upgrading to 0.10.4 does not solve the issue. It does make the font size of the coordinates and the right and left indicators bigger, but the grey background is still present. Running tedana 24 but with with the old static_figures.py generates images without the grey background (of course does not generate the adaptive mask plot etc). Running tedana without supplying my own mask does not solve the problem. So, it is likely an issue with nilearn, and not the mask.

@tsalo
Copy link
Member

tsalo commented May 19, 2024

You'll want to try to reproduce the problem using nilearn's data so that the nilearn devs can check it on their own systems. If they can't reproduce it, they won't be able to fix it. If you can't reproduce it with the data in nilearn.datasets, then you could index a single volume from the 4D component maps file from tedana and share it on Box, Drive, etc. before opening the Nilearn issue.

@handwerkerd
Copy link
Member

I'm realizing that you just need to share desc-ICA_components.nii.gz or even a single volume from that file so that other's here can try to replicate. That might still be a big file, but hopefully it's small enough that you have a practical way to share.

@dc307
Copy link
Author

dc307 commented May 20, 2024

https://sussex.box.com/s/lyf64spon4sdp9ndewjsnxvusgnqls2y

Ok, this link should take you to the des-ICA_components.nii.gz file. Just let me know if there are problems downloading and I will look for another way.

@handwerkerd
Copy link
Member

I replicated the issue @dc307 saw with a snippet of code outside of tedana and opened an issue with nilearn/nilearn#4417

@tsalo
Copy link
Member

tsalo commented May 21, 2024

Based on Bertrand's response, can someone try setting resampling_interpolation='nearest' in the plot_stat_map call? I wonder if that would fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
reports issues related to boilerplate generation or visual reports
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants