braindynamicslab / dyneusr Goto Github PK
View Code? Open in Web Editor NEWDynamical Neuroimaging Spatiotemporal Representations (DyNeuSR)
Home Page: https://braindynamicslab.github.io/dyneusr
License: BSD 3-Clause Clear License
Dynamical Neuroimaging Spatiotemporal Representations (DyNeuSR)
Home Page: https://braindynamicslab.github.io/dyneusr
License: BSD 3-Clause Clear License
I've been trying to install dyneusr on a singularity image and cannot import it in python. I seem to be having an issue with matplotlib backend TkAgg. I installed using pip after installing the dependencies and this is on debian stretch. Have you come across this problem or know a possible solution? Thanks!
I have tried restarting the kernel and importing before anything else. I've also tried downgrading to matplotlib 3.0.3. These were the only solutions I could find online.
Here is the error I receive after trying to import dyneusr:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/miniconda-latest/envs/neuro/lib/python3.7/site-packages/dyneusr/__init__.py", line 18, in <module>
from . import tools
File "/opt/miniconda-latest/envs/neuro/lib/python3.7/site-packages/dyneusr/tools/__init__.py", line 8, in <module>
from . import mixture
File "/opt/miniconda-latest/envs/neuro/lib/python3.7/site-packages/dyneusr/tools/mixture.py", line 23, in <module>
mpl.use('TkAgg', warn=False)
File "/opt/miniconda-latest/envs/neuro/lib/python3.7/site-packages/matplotlib/__init__.py", line 1391, in use
switch_backend(name)
File "/opt/miniconda-latest/envs/neuro/lib/python3.7/site-packages/matplotlib/pyplot.py", line 222, in switch_backend
newbackend, required_framework, current_framework))
ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
Could anyone tell me how to save the shape graph annotated by my custom configuration/layout as SVG from the HTML file generated by DyNeuSR, without manually clicking any HTML links (SAVE/MODE/META)?
I'm currently investigating effects of the hyperparameters (e.g., R, G and parameters for dbscan) on the shape graphs, and that's why I have to generate a lot of graph images with different parameter settings automatically in my Python code.
See PR 24 for reports relating to an issue with kmapper
. Several different reported errors were found to be due to an empty graph being returned by kmapper
. These errors were only observed in 02_haxby_fmri.ipynb, a notebook in DyNeuSR Notebooks repository. See below for more notes taken from PR 24, which has since been merged for other reasons.
In trefoil.py and wrappers.py, one tries to import Bunch
from sklearn.datasets.base
, which has been moved to sklearn.utils
.
Hi there,
I'm just getting started and running through your examples here:https://pypi.org/project/dyneusr/ and here: https://github.com/braindynamicslab/dyneusr/blob/master/examples/trefoil_knot/compare_lenses.py
Both the versions throw the error: draw_networkx_nodes() got an unexpected keyword argument 'lens' from within the visualize_mapper_stages() command.
Hello,
I am implementing some example code from your website. It seems that it is throwing an error, because the networkx package was updated to use to_numpy_array() instead of to_numpy_matrix(). However, simply making this syntax change in the relevant dyneusr utility script does not fix the problem, as the error chain continues. I am going to try to use an older version of networkx for now, but I wanted to let you know about this in case you are able to update the source code with a fix. Thanks!
Example code with error message:
from dyneusr import DyNeuGraph
from dyneusr.datasets import make_trefoil
from dyneusr.tools import visualize_mapper_stages
import numpy as np
import pandas as pd
from nilearn.datasets import fetch_haxby
from nilearn.input_data import NiftiMasker
from kmapper import KeplerMapper, Cover
from sklearn.manifold import TSNE
from sklearn.cluster import DBSCAN
# Fetch dataset, extract time-series from ventral temporal (VT) mask
dataset = fetch_haxby()
masker = NiftiMasker(
dataset.mask_vt[0],
standardize=True, detrend=True, smoothing_fwhm=4.0,
low_pass=0.09, high_pass=0.008, t_r=2.5,
memory="nilearn_cache")
X = masker.fit_transform(dataset.func[0])
# Encode labels as integers
df = pd.read_csv(dataset.session_target[0], sep=" ")
target, labels = pd.factorize(df.labels.values)
y = pd.DataFrame({l:(target==i).astype(int) for i,l in enumerate(labels)})
# Generate shape graph using KeplerMapper
mapper = KeplerMapper(verbose=1)
lens = mapper.fit_transform(X, projection=TSNE(2))
graph = mapper.map(lens, X, cover=Cover(20, 0.5), clusterer=DBSCAN(eps=20.))
# Visualize the shape graph using DyNeuSR's DyNeuGraph
dG = DyNeuGraph(G=graph, y=y)
dG.visualize('dyneusr_output.html')
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Untitled-1.ipynb Cell 1 line 3
[32](vscode-notebook-cell:Untitled-1.ipynb?jupyter-notebook#W0sdW50aXRsZWQ%3D?line=31) graph = mapper.map(lens, X, cover=Cover(20, 0.5), clusterer=DBSCAN(eps=20.))
[34](vscode-notebook-cell:Untitled-1.ipynb?jupyter-notebook#W0sdW50aXRsZWQ%3D?line=33) # Visualize the shape graph using DyNeuSR's DyNeuGraph
---> [35](vscode-notebook-cell:Untitled-1.ipynb?jupyter-notebook#W0sdW50aXRsZWQ%3D?line=34) dG = DyNeuGraph(G=graph, y=y)
[36](vscode-notebook-cell:Untitled-1.ipynb?jupyter-notebook#W0sdW50aXRsZWQ%3D?line=35) dG.visualize('dyneusr_output.html')
File [c:\Users\Ernest\miniconda3\envs\pyif\Lib\site-packages\dyneusr\core.py:50](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:50), in DyNeuGraph.__init__(self, **params)
[28](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:28) """ DyNeuGraph
[29](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:29)
[30](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:30) Parameters
(...)
[47](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:47) dyneuG.visualize()
[48](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:48) """
[49](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:49) self.cache_ = dict(params)
---> [50](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:50) self.fit(**params)
File [c:\Users\Ernest\miniconda3\envs\pyif\Lib\site-packages\dyneusr\core.py:106](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:106), in DyNeuGraph.fit(self, G, X, y, node_data, edge_data, G_data, **kwargs)
[104](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:104) # process graph
[105](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:105) G = tools.process_graph(G, meta=y, **kwargs)
--> [106](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:106) A, M, TCM = tools.extract_matrices(G, index=data_ids)
[108](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:108) # create graph from TCM
[109](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/core.py:109) if G_data is True:
...
--> [420](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/tools/graph_utils.py:420) A = nx.to_numpy_matrix(G).A # node x node
[421](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/tools/graph_utils.py:421) M = np.zeros((nTR, A.shape[0])) # TR x node
[422](file:///C:/Users/Ernest/miniconda3/envs/pyif/Lib/site-packages/dyneusr/tools/graph_utils.py:422) T = np.zeros((nTR, nTR))
AttributeError: module 'networkx' has no attribute 'to_numpy_matrix'
Output is truncated. View as a [scrollable element](command:cellOutput.enableScrolling?7372d79f-d26c-4711-8e36-38f0ab3ed62d) or open in a [text editor](command:workbench.action.openLargeOutput?7372d79f-d26c-4711-8e36-38f0ab3ed62d). Adjust cell output [settings](command:workbench.action.openSettings?%5B%22%40tag%3AnotebookOutputLayout%22%5D)...
Create docker app to make it easier to install/run dyneusr (e.g. on clusters)
networkx needs a lower version 2.2
and matplotlib==2.2.3
Otherwise, there are some confusing errors
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.