GraphGists

领域

药物组合是指药物化合物、其各自的适应症及其靶点的集合。制药公司或药店将其药品组织成一个或多个组合。因此,药物组合包含多个药品,每个药品都包含与其在人体中的一个或多个靶点的链接。这适合建模为图。每个药品和药物靶点还可以具有一组不同的属性,这些属性也很好地适合属性图模型。在本用例中发现的示例中,大多数药物靶点恰好是 G 蛋白偶联受体 (GPCR),其结构仅在过去几年中才得以解决。

一种药物可以具有一个或多个靶点。一个靶点可以被一种或多种药物靶向。这不是所有药物组合用例的完整解决方案,但提供了一个良好的起点。

Domain Model
图 1. 领域模型

设置

示例数据集使用药物组合。

自己尝试其他查询!

用例

所有组合

MATCH (c:Portfolio)
RETURN c.name AS Portfolios

按深度查看所有类别

MATCH p=(cats:Category)-[:PARENT|PARENT*]->(cat:Portfolio)
RETURN LENGTH(p) AS Depth, COLLECT(cats.name) AS Categories
ORDER BY Depth ASC

给定深度的所有类别

MATCH p=(cats:Category)-[:PARENT*]->(cat:Portfolio)
WHERE cat.name='Pharmaceutical Portfolio' AND length(p)=1
RETURN cats.name AS `Categories of Given Level`
ORDER BY cats.name

给定类别的所有子类别

MATCH (cats:Category)-[:PARENT]->(parentCat:Category)
MATCH (parentCat)-[:PARENT*]->(c:Portfolio)
RETURN parentCat.name AS Parent, COLLECT(cats.name) AS SubCategories

所有父级及其子类别

MATCH (child:Category)-[:PARENT*]->(parent)
RETURN parent.name AS Parent, COLLECT(child.name) AS Children

所有父级及其直接子级

MATCH (child:Category)-[:PARENT]->(parent)
RETURN labels(parent), parent.name AS Parent, COLLECT(child.name) AS Children