Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 在Py4neo中创建现有节点之间的关系_Neo4j_Py2neo - Fatal编程技术网

Neo4j 在Py4neo中创建现有节点之间的关系

Neo4j 在Py4neo中创建现有节点之间的关系,neo4j,py2neo,Neo4j,Py2neo,我有一个基因名称列表genes\u list和一个针对其他基因的基因列表(元组列表)genes2,我成功地连接到本地数据库,并创建了20244个标记为GEN的节点,带有name属性。 我试图生成一个脚本,自动创建Neo4j图中任意一对节点的关系(使用变量tupla[0]和tupla[1]),但我无法让for循环用于元组列表,有什么建议吗?我还在学习如何使用这个图书馆,任何建议都会很好!问候 from py2neo import Node,Relationship,Graph, database,

我有一个基因名称列表
genes\u list
和一个针对其他基因的基因列表(元组列表)
genes2
,我成功地连接到本地数据库,并创建了20244个标记为
GEN
的节点,带有
name
属性。 我试图生成一个脚本,自动创建Neo4j图中任意一对节点的关系(使用变量
tupla[0]和tupla[1]
),但我无法让for循环用于元组列表,有什么建议吗?我还在学习如何使用这个图书馆,任何建议都会很好!问候

from py2neo import Node,Relationship,Graph, database,NodeMatcher  
import time
import pandas as pd

genes_list=pd.read_csv("Gen_list.txt",delimiter="\t",header=None)
genes_list=genes_list[0].tolist()
for name in genes_list:
    graph.run("CREATE(:GEN{name:$name})",name=name)

genes=pd.read_csv(r"C:\Users\espin\OneDrive\Escritorio\MCI\SCRIPTS\dorothea_final.csv", delimiter="\t",header=None)
genes2=list(genes.to_records(index=False))

for tupla in genes2:
    existing_u1 = matcher.match("GEN").where(name=tupla[0]).first()
    existing_u2 = matcher.match("GEN").where(name=tupla[1).first()
    graph.merge(existing_u1,"REGULATES", existing_u2)

我发现,对于想要尝试此实现并使用py2neo V4的人,可以尝试使用graph.run()

请记住,查询必须位于第一个参数中,然后声明由“,”分隔的$
变量

至少,如果您已经创建了节点,并且没有复制现有的节点,则此操作会起作用。

您会遇到什么错误?当我运行最后4行时,我会得到以下信息:AttributeError:“NoneType”对象在处理上述异常时没有属性“db_merge”,发生另一个异常:merge=子图。\uuuuu db\u merge\uuuuuu AttributeError:“非类型”对象没有属性“db\u merge”类型错误(“未定义用于合并对象%r”%subgraph)类型错误:未定义用于合并对象的方法无
for tupla in genes2:
    graph.run("MATCH(a:GEN{name:$name}) MATCH(b:GEN{name:$name1}) CREATE (a)-[:REGULATES]->(b)",name=tupla[0],name1=tupla[1])