Dear Nilearn experts,
I have been using nilearn for functional connectivity analysis and it has been a great pleasure so far.
Now I have encountered what I believe to be a bug in the view_connectome function.
When plotting a connectome with solely positive correlation the view_connectome displays some of the connections as negative correlations. In contrast when using exactly the same input for the plot_connectome function the correlations are displayed correctly. So I assume this is a bug?
plotting.plot_connectome(r_honest[4:,4:], coords[4:,:], title=‘correlations for honest trials’,edge_threshold=0, display_mode=‘lyrz’)
nilearn.plotting.view_connectome(r_honest[4:,4:], coords[4:,:], linewidth=5.0, node_size=5.0)
thanks! could you share the correlations and coordinates?
coords.txt (619 Bytes)
r_honest.txt (1.4 KB)
the r_honest.txt
you shared does contain negative values. hence both plot_connectome
and view_connectome
correctly plot some edges in blue:
to reproduce:
from nilearn import plotting
import pandas as pd
coords = pd.read_csv("~/Downloads/coords.txt", header=None)
connectome = pd.read_csv("~/Downloads/r_honest.txt", header=None)
plotting.view_connectome(connectome.values, coords.values).open_in_browser()
plotting.plot_connectome(connectome.values, coords.values)
assert (connectome.values < 0.1).any()
assuming the files linked above are in ~/Downloads
Yes, however if you index the arrays or in your case dataframes as I did, only positive values remain and then the two functions return different results.
plotting.view_connectome(connectome.values[4:,4:], coords.values[4:,:])
plotting.plot_connectome(connectome.values[4:,4:],coords.values[4:,:])
which then results in the two plots shown in my first post.
indeed. removing nans in the connectome e.g. with connectome.fillna(0, inplace=True) fixes this problem
1 Like
Great, thanks for your help!
thank you, I’ll add a check for nans in the connectome in nilearn