规则集的按方向元素需求表:用于在实际匹配前快速排除不可能命中的规则。
RuleFilter
00 Remarks
需求表在构造期算一次(规则数 × 2,开销可忽略),之后只读共享、线程安全。
01 Syntax
SMRUCC.genomics.Analysis.RetroPath.Search.RuleFilter
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 1 | 为规则集构建元素需求表。 |
| ElementCounts | 1 | 统计分子中各元素的原子数(空分子返回空表)。 |
| CanForward | 1 | 该规则正向是否可能匹配给定分子 |
| CanReverse | 1 | 该规则逆向是否可能匹配给定分子 |
| ElementNeeds | 1 | 模式中「参与匹配的原子」的元素多重集——即 PatternMatcher 里 bondedCls 所对应的那些模式原子。元素通配(Nothing)不构成约束。 |
03 Fields
04 Members
#ctor(
List(Of Rule))为规则集构建元素需求表。
Parameters
| Name | Type | Description |
|---|---|---|
rules | List(Of Rule) | 参与搜索的广义规则集。 |
ElementCounts(Molecule)
统计分子中各元素的原子数(空分子返回空表)。
CanForward(
Int32, Dictionary(Of String, Int32))该规则正向是否可能匹配给定分子
CanReverse(
Int32, Dictionary(Of String, Int32))该规则逆向是否可能匹配给定分子
ElementNeeds(Pattern)
模式中「参与匹配的原子」的元素多重集——即 PatternMatcher 里 bondedCls 所对应的那些模式原子。元素通配(Nothing)不构成约束。
_forward
第 i 条规则正向(反应物模式)的元素需求:每项为 (元素, 需要几个)。
_reverse
第 i 条规则逆向(产物模式)的元素需求。