【问题标题】:Retrieving nodes and relationships from neo4j to R console as Dataframe从neo4j检索节点和关系到R控制台作为Dataframe
【发布时间】:2014-11-27 04:45:02
【问题描述】:

我已经使用 neo4j 创建了图形数据库,我正在尝试从 R 中检索一些结果。 但是相同的“GeneName”节点有许多连接,如附图所示(来自 Neo4J)。 那么,是否可以在 R 控制台上将 GeneName 节点的所有连接作为数据框获取。

更多详细信息:

我从一个文件中获取的基因信息以及所附屏幕截图中 GeneName 节点周围的连接是从另一个文件中考虑的。 我已经编写了 cypher 来根据所有文件中的通用基因名称连接各种文件。 例如

文件 A(4 列多行)

SCA1 信息1 信息2 信息3

文件 B(4 列多行)

info5 info7 info8 info10 SCA1

现在我编写了一个密码查询,基于 GeneName (SCA1) 将两个文件连接起来

连接两个文件后的输出会是这样的

SCA1 信息1 信息2 信息3 信息5 信息7 信息8 信息10

所以在截图中,每个 GeneName 节点都连接到 info1 info2 info3 info5 info7 info8 info10

帕万·库马尔·阿鲁里 高级项目工程师 C-DAC KP 印度

![在此处输入图片描述][1]

https://www.dropbox.com/s/3cwtskbd803cqjr/NIcole.png?dl=0

【问题讨论】:

  • 您能否提供示例数据或重现图表的方法以及您希望在 data.frame 中看到的内容?
  • Hello Nicole 在附图中,genenamde 节点(CA1,CA3...)连接到 uniprot 节点(紫色)和许多其他节点(暗白色),每个节点代表不同的信息,如图所示传奇。所以现在在数据框中..我需要以下方式的信息 dropbox.com/s/c6gw4wa9vc9jnj5/Book1.xlsx?dl=0 非常感谢支持 Pavan Kumar Alluri
  • 不幸的是,我不确定能否根据图片提供帮助。你能提供一个 R 脚本来重现你所拥有的吗?另外,你能告诉我你在data.frame中想要什么吗?每列应该有什么?您尝试过哪些没有按预期工作的方法?
  • 我只想将图表转换为文本格式,如上一篇文章所示。匹配 (n:GeneName) 其中 n.GeneName="CA1" 返回 n;它给出了下图(在 Neo4j 上)dropbox.com/s/h28k141uhcv6mpl/DF.png?dl=0 上图显示了与“CA1”基因名称节点的关系。现在,如果我想在 R 控制台上做同样的事情,我使用以下命令 > getNodes(graph,'match (n:GeneName) return n limit 1') [[1]] $genename [1] "CA1" 来获取节点。但是我将如何在 R 控制台上获得 CA1 节点的关系?非常感谢您的支持。
  • 你好 Nicole,我正在使用 getRels 来获取节点的关系。 MATCH (a)-[:GeneName]->(b) RETURN a,b 密码正在 Neo4j 上工作,但 R 上的相同命令显示“返回的实体不是关系。检查您的查询是否返回关系。 "

标签: r neo4j r-neo4j


【解决方案1】:

您可以尝试一些方法:

ca1 = getSingleNode(graph, "MATCH (n:GeneName) WHERE n.name = 'CA1' RETURN n")
r = outgoingRels(ca1)

r 是关系对象的列表。您可以在这些上使用 endNode 和 startNode。

lapply(r, startNode)
lapply(r, endNode)

或者:

r = getRels(graph, "MATCH (n:GeneName)-[r]->() WHERE n.name = 'CA1' RETURN r")

这还将获得一个关系对象列表,您可以在其上使用 apply 系列函数以及 endNode 和 startNode。

你也可以玩路径对象:

query = "
MATCH p = (n:GeneName)-->()
WHERE n.name = 'CA1'
RETURN p
"

p = getPaths(graph, query)
n = lapply(p, nodes)

当然,如果没有任何数据来重现您的图表,我无法确定哪种方法最好。我强烈建议您阅读docs and examples

【讨论】:

  • ca1 = getSingleNode(graph, "MATCH (n:GeneName) WHERE n.name = 'CA1' RETURN n") r = outsideRels(ca1) 说“outcomingRels.default(ca1) 中的错误:对象无效。必须提供节点对象。"
  • 打印 ca1 时会发生什么?
  • 嗨 Nicole,ca1 = getSingleNode(graph, "MATCH (n:GeneName) WHERE n.name = 'CA1' RETURN n") r = outsideRels(ca1) 说“outcomingRels.default( ca1) : 无效对象。必须提供节点对象。” – 当我打印 ca1 时,它显示为 NULL
  • 我尝试了以下命令 node1=getSingleNode(graph,query="match (n:GeneName) where n.GeneName='CA1' return n") > node1 NULL 但是neo4j中的密码查询正在显示关系
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多