You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neo4j中利用指定数据构建糖酵解代谢通路?

嘿,我来帮你搞定在Neo4j里搭建糖酵解通路的事儿!结合你提到的生物实体和glycolysis_bioentities.csv数据,我整理了一套实操步骤,一步步来就能搞定~

1. 先理清实体类型

首先把你提到的生物实体分成两类,方便后续建模:

  • 代谢物:α-D-glucose、glucose 6-phosphate、fructose 6-phosphate、"fructose 1,6-bisphosphate"、dihydroxyacetone phosphate、D-glyceraldehyde 3-phosphate、"1,3-bisphosphoglycerate"、3-phosphoglycerate、2-phosphoglycerate、phosphoenolpyruvate、pyruvate
  • 酶:hexokinase、glucose-6-phosphatase、phosphoglucose isomerase、phosphofructokinase、"fructose-bisphosphate aldolase"

建议你的glycolysis_bioentities.csv里至少包含两列:entity_name(实体名称)和entity_type(标记是metabolite还是enzyme),这样导入时能快速区分。

2. 导入数据创建节点

先把你的csv文件放到Neo4j的import目录下(或者在LOAD CSV里指定正确的文件路径),然后执行以下Cypher命令创建节点:

创建代谢物节点

LOAD CSV WITH HEADERS FROM "file:///glycolysis_bioentities.csv" AS row
WHERE row.entity_type = "metabolite"
CREATE (m:Metabolite {name: row.entity_name})

创建酶节点

LOAD CSV WITH HEADERS FROM "file:///glycolysis_bioentities.csv" AS row
WHERE row.entity_type = "enzyme"
CREATE (e:Enzyme {name: row.entity_name})

如果你的csv里还有其他属性(比如代谢物的分子式、酶的EC编号),可以直接加到节点属性里,比如:

CREATE (m:Metabolite {name: row.entity_name, formula: row.formula})
3. 构建通路的核心关系

糖酵解通路的核心是代谢物之间的转化关系,以及酶对转化反应的催化关系。我把关键反应对应的Cypher命令整理好了,你可以逐个执行:

1. 葡萄糖 → 葡萄糖-6-磷酸(己糖激酶催化)

MATCH (g:Metabolite {name: "α-D-glucose"}), (g6p:Metabolite {name: "glucose 6-phosphate"}), (hk:Enzyme {name: "hexokinase"})
CREATE (g)-[:CONVERTS_TO {reaction: "Glucose phosphorylation", atp_used: 1}]->(g6p),
       (hk)-[:CATALYZES]->(g)-[:CONVERTS_TO]->(g6p)

2. 葡萄糖-6-磷酸 ↔ 果糖-6-磷酸(磷酸葡萄糖异构酶催化,可逆反应)

MATCH (g6p:Metabolite {name: "glucose 6-phosphate"}), (f6p:Metabolite {name: "fructose 6-phosphate"}), (pgi:Enzyme {name: "phosphoglucose isomerase"})
CREATE (g6p)-[:CONVERTS_TO {reaction: "Glucose-6-P isomerization", reversible: true}]->(f6p),
       (f6p)-[:CONVERTS_TO {reaction: "Glucose-6-P isomerization", reversible: true}]->(g6p),
       (pgi)-[:CATALYZES]->(g6p)-[:CONVERTS_TO]->(f6p)

3. 果糖-6-磷酸 → 果糖1,6-二磷酸(磷酸果糖激酶催化,关键限速步骤)

MATCH (f6p:Metabolite {name: "fructose 6-phosphate"}), (fbp:Metabolite {name: "fructose 1,6-bisphosphate"}), (pfk:Enzyme {name: "phosphofructokinase"})
CREATE (f6p)-[:CONVERTS_TO {reaction: "Fructose-6-P phosphorylation", atp_used: 1}]->(fbp),
       (pfk)-[:CATALYZES]->(f6p)-[:CONVERTS_TO]->(fbp)

4. 果糖1,6-二磷酸 → 二羟丙酮磷酸 + 甘油醛-3-磷酸(醛缩酶催化)

MATCH (fbp:Metabolite {name: "fructose 1,6-bisphosphate"}), (dhap:Metabolite {name: "dihydroxyacetone phosphate"}), (g3p:Metabolite {name: "D-glyceraldehyde 3-phosphate"}), (aldolase:Enzyme {name: "fructose-bisphosphate aldolase"})
CREATE (fbp)-[:CONVERTS_TO {reaction: "Fructose-1,6-BP cleavage"}]->(dhap),
       (fbp)-[:CONVERTS_TO {reaction: "Fructose-1,6-BP cleavage"}]->(g3p),
       (aldolase)-[:CATALYZES]->(fbp)-[:CONVERTS_TO]->(dhap),
       (aldolase)-[:CATALYZES]->(fbp)-[:CONVERTS_TO]->(g3p)

5. 二羟丙酮磷酸 ↔ 甘油醛-3-磷酸(可选补充)

如果你的通路需要这个可逆反应,可以添加:

MATCH (dhap:Metabolite {name: "dihydroxyacetone phosphate"}), (g3p:Metabolite {name: "D-glyceraldehyde 3-phosphate"})
CREATE (dhap)-[:CONVERTS_TO {reaction: "Triose phosphate isomerization", reversible: true}]->(g3p),
       (g3p)-[:CONVERTS_TO {reaction: "Triose phosphate isomerization", reversible: true}]->(dhap)

6. 甘油醛-3-磷酸 → 1,3-二磷酸甘油酸

MATCH (g3p:Metabolite {name: "D-glyceraldehyde 3-phosphate"}), (bgp:Metabolite {name: "1,3-bisphosphoglycerate"})
CREATE (g3p)-[:CONVERTS_TO {reaction: "G3P oxidation", nadh_produced: 1}]->(bgp)

7. 1,3-二磷酸甘油酸 → 3-磷酸甘油酸

MATCH (bgp:Metabolite {name: "1,3-bisphosphoglycerate"}), (pg3:Metabolite {name: "3-phosphoglycerate"})
CREATE (bgp)-[:CONVERTS_TO {reaction: "1,3-BPG dephosphorylation", atp_produced: 1}]->(pg3)

8. 3-磷酸甘油酸 → 2-磷酸甘油酸

MATCH (pg3:Metabolite {name: "3-phosphoglycerate"}), (pg2:Metabolite {name: "2-phosphoglycerate"})
CREATE (pg3)-[:CONVERTS_TO {reaction: "Phosphoglycerate mutase"}]->(pg2)

9. 2-磷酸甘油酸 → 磷酸烯醇式丙酮酸

MATCH (pg2:Metabolite {name: "2-phosphoglycerate"}), (pep:Metabolite {name: "phosphoenolpyruvate"})
CREATE (pg2)-[:CONVERTS_TO {reaction: "Enolase dehydration"}]->(pep)

10. 磷酸烯醇式丙酮酸 → 丙酮酸

MATCH (pep:Metabolite {name: "phosphoenolpyruvate"}), (pyr:Metabolite {name: "pyruvate"})
CREATE (pep)-[:CONVERTS_TO {reaction: "Pyruvate kinase", atp_produced: 1}]->(pyr)

11. 葡萄糖-6-磷酸 → 葡萄糖(葡萄糖-6-磷酸酶催化,糖异生方向)

MATCH (g6p:Metabolite {name: "glucose 6-phosphate"}), (g:Metabolite {name: "α-D-glucose"}), (g6pase:Enzyme {name: "glucose-6-phosphatase"})
CREATE (g6p)-[:CONVERTS_TO {reaction: "Glucose-6-P dephosphorylation"}]->(g),
       (g6pase)-[:CATALYZES]->(g6p)-[:CONVERTS_TO]->(g)
4. 验证与可视化通路

全部关系创建完成后,你可以用下面的Cypher命令查询整个通路并可视化:

MATCH path=(:Metabolite)-[:CONVERTS_TO*]->(:Metabolite)
RETURN path

在Neo4j浏览器里执行后,切换到可视化视图,调整布局(比如用“层级布局”),就能看到和你目标图片一致的糖酵解通路啦~

小贴士

  • 如果反应有更多细节(比如辅酶参与、反应方向),可以随时给CONVERTS_TO关系添加更多属性
  • 可逆反应用双向关系更符合生物实际,方便后续查询双向转化
  • 若csv里实体名称有引号(比如"fructose 1,6-bisphosphate"),Cypher里匹配时要注意引号的一致性,或者提前处理csv去掉引号

内容的提问来源于stack exchange,提问作者Victoria Stuart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:21:30