首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用这个CSV来加载一个带有密码的neo4j图吗?

我可以使用这个CSV来加载一个带有密码的neo4j图吗?
EN

Stack Overflow用户
提问于 2018-02-04 16:49:12
回答 2查看 524关注 0票数 0

我是一名医生,试图对药物到酶的数据库进行建模,并从一个CSV文件开始,我使用它将数据加载到Gephi图形布局程序中。我知道图形数据库的威力,但我对cypher一无所知:

当前CSV的格式如下:

代码语言:javascript
复制
source;target;arc_type; <- this is an header needed for Gephi import
artemisinin;2B6;induces;
...
amiodarone;1A2;represses;
...
3A457;carbamazepine;metabolizes;

这些示例记录显示了三种类型的关系。药物能抑制或增强细胞色素,细胞色素能代谢药物。

有没有办法使用这个CSV来加载到neo4j中并创建图形?

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2018-02-05 09:45:46

在neo4j术语中,一个relationship必须有“类型”,一个节点可以有任意数量的labels。看起来您的用例可以从使用DrugCytochrome标记您的节点中受益。

以下是适用于您的用例的可能的neo4j数据模型:

代码语言:javascript
复制
(:Drug)-[:MODULATES {induces: false}]->(:Cytochrome)
(:Cytochrome)-[:METABOLIZES]->(:Drug)

induces属性有一个布尔值,指示药物是诱导(true)还是抑制(false)相关的细胞色素。

下面是一个从CSV文件生成上述数据模型的(有点复杂)查询:

代码语言:javascript
复制
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM 'file:///Drugs.csv' AS line FIELDTERMINATOR ';'
WITH line,
  CASE line.arc_type
    WHEN 'metabolizes' THEN {a: [1]}
    WHEN 'induces' THEN {b: [true]}
    ELSE {b: [false]}
  END AS todo
FOREACH (ignored IN todo.a |
  MERGE (c:Cytochrome {id: line.source})
  MERGE (d:Drug {id: line.target})
  MERGE (c)-[:METABOLIZES]->(d)
)
FOREACH (induces IN todo.b |
  MERGE (d:Drug {id: line.source})
  MERGE (c:Cytochrome {id: line.target})
  MERGE (d)-[:MODULATES {induces: induces}]->(c)
)

如果IN后面的值为null,则FOREACH子句不执行任何操作。

票数 1
EN

Stack Overflow用户

发布于 2018-02-04 18:41:46

是的,这是可能的,但你需要安装APOC :一个用于Neo4j的完整存储过程列表。你可以在这里找到它:https://neo4j-contrib.github.io/neo4j-apoc-procedures/

然后,您应该将CSV文件放入Neo4j的import文件夹中,并运行以下查询:

第一个在:Node(name)上创建唯一约束的方法:

代码语言:javascript
复制
CREATE CONSTRAINT ON (n:Node) ASSERT n.name IS UNIQUE;

然后执行以下查询来导入数据:

代码语言:javascript
复制
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM 'file:///my-csv-file.csv' AS line
  MERGE (n:Node {name:line.source})
  MERGE (m:Node {name:line.target})
  CALL apoc.create.relationship(n, line.arc_type,{​}, m)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48606320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档