【问题标题】:STRING database Neo4j importSTRING 数据库 Neo4j 导入
【发布时间】:2017-05-05 11:31:08
【问题描述】:

我正在从 STRING 数据库处理这个网络。 我已经提取了该网络,以便可以将其导入 Neo4j , 我使用的格式是 TSV,我已将其转换为 csv 并完成了导入 然而,我只能看到节点,而没有看到它们之间的关系。 我怎样才能让 Neo4j 能够知道关系并代表它们 这是 STRING 网络:http://string-db.org/cgi/network.pl?taskId=sPvqsEhi3Tk6&sessionId=MKQKZSH3dCb3&bottom_page_content=table

这就是表格形式 [1]:https://i.stack.imgur.com/IMMFk.png 这是 Neo4j 图 [1]:https://i.stack.imgur.com/eKeYv.png

【问题讨论】:

    标签: database import neo4j


    【解决方案1】:

    我认为以下方法可以解决问题:

    CREATE CONSTRAINT ON (n:Node) ASSERT a.NodeID IS UNIQUE;
    USING PERIODIC COMMIT
    LOAD CSV WITH HEADERS FROM 'file:///strings.csv'
    AS line
    WITH line
    MERGE (n1:Node {NodeID: line.node1_string_internal_id, NodeName: line.node1})
    MERGE (n2:Node {NodeID: line.node2_string_internal_id, NodeName: line.node2})
    MERGE (n1)-[:INTERACTS {Score: TOFLOAT(line.combined_score)}]->(n2);
    

    我希望这会有所帮助。

    问候, 汤姆

    【讨论】:

    • 我现在试过了,每次查询都得到了预期的语句,但得到:2 错误,对不起,我是 Cypher 的新手
    • 不是问题。您首先需要在浏览器中执行 CREATE 语句,然后执行其余部分。第一条语句(直到第一个“;”)为您的节点创建一个索引(和约束)。第二条语句根据 CSV 中每一行中可以找到的三件事(两个节点以及它们之间的关系)进行实际加载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    相关资源
    最近更新 更多