2017-12-18 8 views
2

Ich versuche, ein Diagramm in Neo4j und meine Daten zu erstellen, die in CSV-Datei sieht aus wieWie verwende ich einen Wert in der CSV-Datei als Beziehungslabel in neo4j?

node1,connection,node2 
PPARA,0.5,PPARGC1A 
PPARA,0.5,ENSG00000236349 
PPARA,0.5,TSPA 

I connection Werte als Markierungen von Beziehungen in Graph verwenden möchte, die ich nicht in der Lage bin zu tun. Im Folgenden ist der genaue Code, den ich verwende, um ein Diagramm zu erstellen.

LOAD CSV WITH HEADERS FROM "file:///C:/Users/username/Desktop/Cytoscape-friend.csv" AS network 
CREATE (:GeneRN2{sourceNode:network.node1, destNode:network.node2}) 
CREATE (sourceNode) -[:TO {exp:network.connection}] ->(destNode) 

Meine zweite Frage ist, dass es mehrere sich wiederholende Werte in meiner Datei, die standardmäßig Neo4j ist für sich wiederholende Werte mehrere Knoten zu schaffen. Wie erstelle ich einen einzelnen Knoten für mehrere Werte und verbinde alle anderen zugehörigen Knoten mit diesem einzelnen Knoten?

Antwort

1
  1. Beziehungen haben keine labels. Sie haben eine type.
  2. Wenn Sie den Beziehungstyp aus einer Variablen angeben müssen, müssen Sie die Prozedur apoc.create.relationship von APOC library verwenden.
  3. Um doppelte Knoten zu vermeiden, verwenden Sie anstelle von CREATE.

So Ihre Abfrage könnte wie folgt aussehen:

LOAD CSV WITH HEADERS 
     FROM "file:///C:/Users/username/Desktop/Cytoscape-friend.csv" 
     AS network 
MERGE (sourceNode {id:network.node1}) 
MERGE (destNode {id:network.node2}) 
WITH sourceNode, 
    destNode, 
    network 
CALL apoc.create.relationship(sourceNode, network.connection, {}, destNode) yield rel 
RETURN sourceNode, 
     rel, 
     destNode 
Verwandte Themen