nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.RetroPath / RuleEngine

RuleEngine

Full name SMRUCC.genomics.Analysis.RetroPath.Chem.RuleEngine Assembly SMRUCC.genomics.Analysis.RetroPath Members 4

规则引擎:把广义反应规则双向应用于分子,完成"反应中心匹配 + 原子映射 + 拓扑变换"。

00 Remarks

变换语义(RuleEngine.Apply()):

  • 存活原子 = 两侧共有的类号(元素/电荷按目标侧覆盖);
  • 目标侧成键而匹配侧无键 → 创建新原子(离去/加入的辅底物);
  • 匹配侧成键而目标侧无键 → 断键(断键处即反应中心);
  • 两侧都不涉及的键 → 环境键,原样保留。

应用结束后会做全分子价态校验,违规的应用被丢弃——这是化学合理性的闸门。

01 Syntax

SMRUCC.genomics.Analysis.RetroPath.Chem.RuleEngine

02 Methods

NameOverloadsSummary
ApplyForward 1 正向应用规则:匹配规则的反应物模式,生成产物拓扑。
ApplyReverse 1 逆向应用规则:匹配规则的产物模式,反推反应物拓扑——逆合成搜索使用的方向。
Apply 2 核心变换(热路径):在分子上匹配计划中的「匹配侧」模式,再按「目标侧」拓扑改写化学键。

03 Members

method ApplyForward #
ApplyForward(Molecule, Rule, Int32)

正向应用规则:匹配规则的反应物模式,生成产物拓扑。

Parameters
NameTypeDescription
mMolecule

被作用的底物分子。

ruleRule

待应用的规则。

limitInt32

每个模式的匹配枚举上限,用于防组合爆炸。

Returns

应用结果列表;未命中或全部被价态闸门拒绝时返回空列表。

method ApplyReverse #
ApplyReverse(Molecule, Rule, Int32)

逆向应用规则:匹配规则的产物模式,反推反应物拓扑——逆合成搜索使用的方向。

Parameters
NameTypeDescription
mMolecule

被分解的目标分子。

ruleRule

待应用的规则。

limitInt32

每个模式的匹配枚举上限。

Returns

应用结果列表;未命中或全部被价态闸门拒绝时返回空列表。

method Apply overload 2 #
Apply(Molecule, Pattern, Pattern, Int32)

核心变换:在分子上匹配 matchSide 模式,再按 otherSide 的拓扑改写化学键。

Remarks

兼容入口:两侧模式临时构造 ApplyPlan。热路径请改用 RuleEngine.Apply() 以复用规则预计算好的拓扑。

Parameters
NameTypeDescription
mMolecule

被变换的分子(不会被就地修改,内部先拷贝)。

matchSidePattern

匹配侧模式(决定在分子的哪个部位发生反应)。

otherSidePattern

目标侧模式(决定变换后的拓扑)。

limitInt32

匹配枚举上限。

Returns

每个匹配对应的一个应用结果;已过滤掉价态非法的候选。

method Apply #
Apply(Molecule, ApplyPlan, Int32)

核心变换(热路径):在分子上匹配计划中的「匹配侧」模式,再按「目标侧」拓扑改写化学键。

Parameters
NameTypeDescription
mMolecule

被变换的分子(不会被就地修改,内部先拷贝)。

planApplyPlan

该规则在该方向上的预计算拓扑(只读,可多线程共享)。

limitInt32

匹配枚举上限。

Returns

每个匹配对应的一个应用结果;已过滤掉价态非法的候选。