Code Monkey home page Code Monkey logo

dyneusr's People

Contributors

calebgeniesse avatar dependabot[bot] avatar dhasegan avatar jodahoney avatar jsmentch avatar kristiandroste avatar rdoublea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dyneusr's Issues

Problem importing dyneusr; matplotlib TkAgg backend

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

Saving a shape graph in the HTML file as SVG automatically

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.

Kepler Mapper returns an empty graph

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.

deprecated import from sklearn

In trefoil.py and wrappers.py, one tries to import Bunch from sklearn.datasets.base, which has been moved to sklearn.utils.

DyNeuGraph error due to networkx changes

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)...

docker app

Create docker app to make it easier to install/run dyneusr (e.g. on clusters)

TODO:

  • setup docker script (see this how-to)
  • add integration test
  • update documentation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.