把 BioCyc(MetaCyc/EcoCyc)PGDB 装配成 RetroPath 的逆向合成通路搜索器。
构造期一次性完成: 1) 化合物结构索引(SMILES 净化 + 元素白名单 + 解析); 2) 反应实例 → 广义反应规则(MCS 原子映射 + 反应中心提取 + SMARTS 泛化); 3) 底盘内源代谢物汇集合。 之后每次 BioCycAdapter.FindPathway() 只是对已装配的 Netwalk 发起一次搜索。
把 BioCyc(MetaCyc/EcoCyc)PGDB 装配成 RetroPath 的逆向合成通路搜索器。
构造期一次性完成: 1) 化合物结构索引(SMILES 净化 + 元素白名单 + 解析); 2) 反应实例 → 广义反应规则(MCS 原子映射 + 反应中心提取 + SMARTS 泛化); 3) 底盘内源代谢物汇集合。 之后每次 BioCycAdapter.FindPathway() 只是对已装配的 Netwalk 发起一次搜索。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 1 | 从 BioCyc 工作目录装配搜索器。 |
| GetCompound | 1 | 按 compound frame id 取结构(无结构时返回 Nothing) |
| FindPathway | 1 | 以给定 SMILES 为目标做逆向合成通路搜索。 查询时会把目标自身从汇集合中剔除:BeamSearch 一旦判定"目标已属于汇"就直接返回 0 条路径,而"目标在底盘中已存在"对通路设计没有意义——我们想知道的是它怎么被合成出来。 |
| SynthesisRoute | 1 | 从起点代谢物 A 出发,搜索合成目标代谢物 B 的最经济通路。 |
| SynthesisRouteById | 1 | 以 BioCyc 化合物 id 指定起点与目标(如 "CHORISMATE" → "ENTEROBACTIN")。 |
| CreateNetwalk | 1 | 用已装配好的规则集与汇集合另建一个搜索器(可指定不同的搜索参数)。 |
| SmilesOf | 1 | 按 compound frame id 取净化后的 SMILES(无结构时抛异常) |
| FindPathwayById | 1 | 以 BioCyc 化合物 id 为目标做搜索(如 "ENTEROBACTIN") |
03 Properties
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| sinkEntries | 1 | 汇条目:(分子指纹, compound id, 净化后的 SMILES) |
| degrees | 1 | 底物/产物在反应中的出现次数(用于判定枢纽代谢物) |
05 Members
Workspace, SearchOptions, ScoreWeights, SinkModes, Int32, Int32, Int32, Int32, Int32, Int32, Boolean, Boolean, Boolean, Boolean)从 BioCyc 工作目录装配搜索器。
| Name | Type | Description |
|---|---|---|
biocyc | Workspace | BioCyc 数据库工作区(如 Workspace.Open("F:\ecoli\29.0")) |
opts | SearchOptions | 束搜索参数(默认 beam / width 50 / depth 6) |
w | ScoreWeights | 路径评分权重(默认 0.4 热力学 / 0.3 酶可得性 / 0.3 长度) |
sinkMode | SinkModes | 汇集合模式:Core = 核心中心代谢子集;All = 全库 |
coreDegree | Int32 | Core 模式下判定枢纽代谢物的最少反应出现次数 |
maxMoleculeAtoms | Int32 | 参与反应的分子重原子数上限(超出则跳过该反应,控耗时) |
maxPatternAtoms | Int32 | 模式原子数上限(超出则规则过特异,跳过) |
mcsNodeBudget | Int32 | MCS 原子映射的回溯节点预算 |
includeBuiltinRules | Int32 | 是否叠加 RetroPath 内置的 9 条广义规则 |
verbose | Int32 | 是否向 stderr 输出装配诊断 |
String)按 compound frame id 取结构(无结构时返回 Nothing)
String)以给定 SMILES 为目标做逆向合成通路搜索。 查询时会把目标自身从汇集合中剔除:BeamSearch 一旦判定"目标已属于汇"就直接返回 0 条路径,而"目标在底盘中已存在"对通路设计没有意义——我们想知道的是它怎么被合成出来。
String, String, SourceRoles, Boolean, IEnumerable(Of ValueTuple(Of String, String)), Int32, Boolean)从起点代谢物 A 出发,搜索合成目标代谢物 B 的最经济通路。
| Name | Type | Description |
|---|---|---|
sourceSmiles | String | 起点化合物 A 的 SMILES。 |
targetSmiles | String | 目标化合物 B 的 SMILES。 |
role | SourceRoles | A 的角色:Source = 必须是最上游叶子原料;Anywhere = 出现在通路任意位置即可。 |
strict | Boolean | 严格模式:除 A 与货币分子外不依赖任何底盘代谢物(可用 allowedExtra 放行个别辅因子)。 |
allowedExtra | IEnumerable(Of ValueTuple(Of String, String)) | strict 模式下额外允许作为起点的化合物(名称, SMILES)。 |
maxRoutes | Int32 | 最多返回多少条候选(0 = 默认 10 条)。 |
escalate | Boolean | 首轮未命中时是否自动加大束宽/深度重试。 |
String, String, SourceRoles, Boolean, IEnumerable(Of String), Int32, Boolean)以 BioCyc 化合物 id 指定起点与目标(如 "CHORISMATE" → "ENTEROBACTIN")。
| Name | Type | Description |
|---|---|---|
allowedExtraIds | String | strict 模式下额外放行的化合物 frame id(如 ATP / NADH)。 |
SearchOptions, ScoreWeights)用已装配好的规则集与汇集合另建一个搜索器(可指定不同的搜索参数)。
| Name | Type | Description |
|---|---|---|
opts | SearchOptions | 搜索参数;省略时用构造期参数。适合做串行/并行对比或按查询调参。 |
w | ScoreWeights | 评分权重;省略时用构造期权重。 |
String)按 compound frame id 取净化后的 SMILES(无结构时抛异常)
String)以 BioCyc 化合物 id 为目标做搜索(如 "ENTEROBACTIN")
current sink mode
规则挖掘过程中被跳过的条目及原因计数
逐条反应的跳过原因(reaction uniqueId → 原因),用于排查某条反应为何未进规则库
装配统计信息(化合物总数 / 可用结构数 / 规则数 / 汇大小 / 耗时)
挖掘得到的广义反应规则集
compound frame id → 结构(净化后的 SMILES + 分子图)
汇条目:(分子指纹, compound id, 净化后的 SMILES)
底物/产物在反应中的出现次数(用于判定枢纽代谢物)