Giter Club home page Giter Club logo

cytoscapeneo4j's Introduction

Cytoscape plugin for Neo4j

Neo4j Graphs are often too large for Cytoscape: this plugin allows you to write Cypher queries and import the result as a network. Queries can be parameterized and stored for reuse.

The plugin can be downloaded from the Cytoscape App Store

Citation: Mining functional annotations across species; Sven Warris, Steven Dijkxhoorn, Teije van Sloten, T.L.H. van de Vossenberg, bioRxiv, 2018

Features

Connects to Neo4j with a username/password using the Bolt interface.

Importing graphs

There are three main methods of importing a graph:

  • Import all nodes and edges from Neo4j into Cytoscape
  • Import a cypher query into Cystoscape
  • Import a stored query (template) into Cytoscape

Exporting networks

The plugin allows you to export any Cytoscape Network to Neo4j. This can be an updated version of an imported graph or a network from a different source.
Nodes / relationships removed from a graph in Cytoscape will also result in these elements being removed from the Neo4j database after the export.

Expanding nodes

The plugin allows you to expand a single node, selected nodes or all nodes in the network at once. This way you can browse through your graph.

Main menu:

  • Expand all (selected) nodes in the network through all edges (bidirectional)
  • Expand all (selected) nodes, incoming edges only
  • Expand all (selected) nodes, outgoing edges only

Context menu:

  • Expand single node, bidirectional, incoming or outgoing edges
  • Expand single node, bidirectional, incoming or outgoing edges, based on the available edges connected to this node
  • Expand single node, bidirectional, incoming or outgoing edges, based on the available nodes connected to this node

Other features

  • Show all edges (relationships) between all nodes in the network or only between selected nodes.
  • Get the shortest paths from the database between the selected nodes. When more than two nodes are selected, all combinations will be queried: Neo4j does not allow shortest path calculations between more than two nodes (a.k.a. 'via').

cytoscapeneo4j's People

Contributors

alexanderpico avatar cskardon avatar dependabot[bot] avatar sdijkx avatar swarris avatar

Stargazers

 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

cytoscapeneo4j's Issues

"-" or "." in n.name property leads to failure of import

importing all nodes and edges from neo4j leads to an abort of import and a empty node

if I run following cypher query:
MATCH (n) RETURN *
all nodes are returned, even those with "." and "-" in their n.name but the edges are not of course

Save Position Update on export

I am new to Cytoscape but this plugin while perfect for the purpose I need it for. I just hoping for 1 more feature (or If I am missing how to do it, let me know)

Saving the current style position.

For example. In NEO4J I can set a value of X, Y, and Z and then in the "Cystoscrape" I can use it to override and map the imported data in any position I want on the Viewer.

But when I export back to NEO4J it does not seem to save that piece of information.

As an example, when I use the "Export as Webpage" and look at the data there. I see in a separate block "Position"

 {
      "data" : {
        "id" : "6450",
        "_cytoscape_network" : "neo4j",
        "degree_layout" : 3,
        "_neo4j_labels" : [ "Application" ],
        "isExcludedFromPaths" : false,
        "shared_name" : "EDW",
        "name" : "EDW",
        "x" : "0",
        "isInPath" : false,
        "y" : "0",
        "SUID" : 6450,
        "z" : "0",
        "refid" : 508,
        "selected" : false,
        "connections" : [ "{ node: \"Some Node\", type: \"FLOW\" }" ]
      },
      "position" : {
        "x" : -971.9155760651538,
        "y" : -366.9311824308694
      },
      "selected" : false
    },```

Export Graph to Neo4j

Bonjour,

I have done the following test :
Step1 : Create in an empty database a new graph with several nodes and several edges
Step2 : I connect from Cytoscape to Neo4j database.
Step3 : I import from a cypher query, one or two nodes
Step4 : Expand bidirectional from one node
<< At this step the graph has nothing new, meaning that the export back to neo4j should let the database on the same state as the origine>>
Step5 : Select all the nodes and edges on cytoscape
Step6 : Export to Neo4j.

The problem is that duplication of objects (nodes and edges) come . Cytoscape create properties fields (like _cytoscape_network or SUID) that allow the distintion between "old" objects and "new objects".
My question is how to prevent the n-uplication of objects. How to I setup Cytoscape to prevent this n-uplication when exporting graph to neo4j ?

Many thanks for your help

Have a nice day

B. FRANCK

Allow for not-unique nodes in results

When querying a path, identical nodes are now merged into a single cytoscape node. It would be nice to have the option to display different paths separately,
For example:
match p=(n{id:1})-[r]-(m) return p
will give not a single head node with id=1, but as many as paths exists.

Empty graph pulled from Neo4j 5+

When pulling all the nodes and edges of a graph, nothing shows up, with no error, just like if there was no data pulled.

The connection through Bolt was marked as operational. The data are correctly displayed with neo4j-browser and cypher-shell.

I suspect this has to do with the version of Neo4j being 5, which seem to have introduced some backward-incompatible changes.

Versions:

  • Cytoscape 3.10.1
  • Neo4j 5.11.0

Cannot connect to Neo4J 4.0

Started having connection problems after upgrading the neo4J version to 4.0. Essentially nothing really happens when I click connect. I double checked the user id and password, going via Neo4J browser is no prob either.

My guess is that the auth protocol details have changed. Any insights on this? Can anyone confirm or deny that?

Error executing cypher query - where do I find further details?

I've successfully connected to Neo4j, and imported some data.

However sometimes using the Import from Cypher query option I enter a query, press import - and nothing happens. In the Cytoscape Task History window I can see Error executing cypher query

image

Where would I find further details on what the actual error is?

thanks.

Import Stored Cypher Queries

Bonjour,

First of all I would like to address you a very warm thanks for the work you did and you do for interfacing Neo4j and Cytoscape. It does help me a lot to make Graph Database easier to use in the data word.
I would like to know what is the purpose of the following menu :

Apps >> Cypher Queries >> Import Stored Cypher Queries

I try to use it. I just select a directory where I store cypher queries scripts as files.. But then nothing occurs.
Could you please give me some help about that functionality. It will be really helpful to open script with Cypher Queries and execute them directly within the current session.

Many thanks for your help

Benoit

connect to neo4j running on another port

enable connect to neo4j when it is running on another port.
e.g. support the common approach of

hostname:port

specify in UI which port should be provided (browser or bolt), if no port is specified assume defaults

This might not work for everyone but I would suggest having the UI accept a browser address because users know it. Then assume that bolt is running at the same offset from normal port.

Example:
neo4j browser 7474 (default), neo4j bolt 7687 (default)

so if neo4j is moved up 4 ports, then bolt is as well. Like this

neo4j browser at host:7478 would have bolt running at host:7691

Problems connecting

I can't seem to connect to any Neo4J endpoint - I just get connection fails every time.

This endpoint should be credential-less & works fine for REST and bolt connections:

http://pdb.virtualflybrain.org

I've also tried connecting to a local instance on localhost:7474

All fail with the message 'Cannot connect to Neo4j'.

System:
CytoScape Version: 3.9.0
Java: 11.0.8
Mac OS X 10.15.7 - x86_64

Maybe a bug, or am i missing something simple here?

Labels not exported to Neo4j

Hi,
I'm trying to create a Network from scrach in Cytoscape and export it to Neo4J, yet every single node create a different labels with the name of the node.
I've tried adding the following columns, in vain:

  • :LABEL
  • label
  • _neo4j_labels (as String, or single List of String)
  • group

What do I need to do so that they are correctly imported to Neo4j ?
Thanks

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.