nuget server logo nuget api documents
↑

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

Netwalk

Full name SMRUCC.genomics.Analysis.RetroPath.Netwalk Assembly SMRUCC.genomics.Analysis.RetroPath Members 16

代谢网络逆向合成通路搜索器:整个 RetroPath 的对外主入口。

00 Remarks

一次典型调用:准备广义规则集与底盘汇集合 → 构造本对象 → 反复调用 Netwalk.Search() 查询不同目标。构造期只做参数固化,规则与汇可被多个查询复用。

01 Syntax

SMRUCC.genomics.Analysis.RetroPath.Netwalk

02 Methods

NameOverloadsSummary
.ctor 1 构造搜索器。
Search 1 以指定目标分子做逆向合成通路搜索,返回完整结果报告。
SynthesisRoute 1 从起点代谢物 A 出发,搜索合成目标代谢物 B 的最经济通路。
ParseOrThrow 1 解析 SMILES,失败时抛出带上下文的异常
TryMolKey 1 取分子指纹;SMILES 不可解析时返回 Nothing(用于汇/货币分子这类辅助集合)
ParseKeys 1 批量解析 SMILES → 分子指纹(并行)。
Evaluate 1 判定一条完整逆合成路径是否满足起点约束;满足时返回其经济性指标,否则返回 Nothing。
ToRouteDto 1 把候选通路转成 JSON DTO:正向组装、主链标注、经济性评分

03 Properties

NameOverloadsSummary
opts 1 构造时传入的搜索参数。
w 1 构造时传入的评分权重。
rules 1 参与搜索的广义反应规则集(构造时拷贝,外部改动不影响本对象)。
sink 1 底盘内源代谢物集合(汇),每项为 (化合物标识, SMILES)。

04 Fields

NameOverloadsSummary
VersionString 2 程序版本号,会写入结果报告的 version 字段。
EscalateBudgetMs 2 Netwalk.SynthesisRoute()) 自动升级(加大束宽/深度重试)的耗时预算(毫秒)。 超过预算即停止重试,避免单个查询把整个批量 demo 拖垮。

05 Members

method .ctor #
#ctor(IReadOnlyCollection(Of Rule), IReadOnlyCollection(Of ValueTuple(Of String, String)), SearchOptions, ScoreWeights)

构造搜索器。

Parameters
NameTypeDescription
rulesIReadOnlyCollection(Of Rule)

广义反应规则集(可空集合,但那样搜索不出任何路径)。

sinkIReadOnlyCollection(Of ValueTuple(Of String, String))

底盘内源代谢物集合,每项为 (名称或 ID, SMILES);SMILES 会被解析成分子指纹用于终止判定。

optsSearchOptions

搜索参数;传入 Nothing 时调用方需自行保证后续不为 Nothing。

wScoreWeights

评分权重。

method SynthesisRoute #
SynthesisRoute(String, String, SourceRoles, Boolean, IEnumerable(Of ValueTuple(Of String, String)), Int32, Boolean)

从起点代谢物 A 出发,搜索合成目标代谢物 B 的最经济通路。

Remarks

与 Netwalk.Search() 的关键差异:A 会被注入本次查询的汇集合,因此逆向展开时 A 一旦作为前体出现即判定为「已落地」,不会再被继续分解;同时把 A 的指纹作为导向键传给 BeamSearch,让通往 A 的分支在束剪枝中优先存活。这解决了「先枚举全部路径再 事后筛选是否含 A」时命中率低的问题。

Parameters
NameTypeDescription
sourceSmilesString

起点化合物 A 的 SMILES。

targetSmilesString

目标化合物 B 的 SMILES。

roleSourceRoles

A 在通路中的角色:SourceRoles.Source 要求 A 是最上游的叶子原料; SourceRoles.Anywhere 允许 A 出现在通路任意位置(召回更高)。

strictBoolean

严格模式:汇集合只保留 A(以及 allowedExtra 显式放行的化合物), 即除 A 与货币分子外不依赖任何底盘代谢物;默认 False = A 与底盘汇均可作为起点。

allowedExtraIEnumerable(Of ValueTuple(Of String, String))

strict 模式下额外允许作为起点的化合物(名称, SMILES)。

maxRoutesInt32

最多返回多少条候选(0 = 默认 10 条)。

escalateBoolean

首轮未命中时是否自动加大束宽/深度重试(最多 3 轮)。

Returns

RouteReport:Best 为最经济的一条通路,排序准则为 「除 A 外所需的外源起始原料数(越少越好)→ 反应步数(越少越好)→ 全局分(越高越好)」。 未找到满足起点约束的通路时 Best 为 Nothing、Found 为 False。

method ParseOrThrow #
ParseOrThrow(String, String)

解析 SMILES,失败时抛出带上下文的异常

method TryMolKey #
TryMolKey(String)

取分子指纹;SMILES 不可解析时返回 Nothing(用于汇/货币分子这类辅助集合)

method ParseKeys #
ParseKeys(IList(Of ValueTuple(Of String, String)), Int32)

批量解析 SMILES → 分子指纹(并行)。

Remarks

汇集合常有数百条,货币分子另有若干条;指纹计算要走 Morgan 迭代,逐条串行是可观的 固定开销。各条之间互不依赖,因此可安全并行;结果按输入顺序写回数组, 保证汇集合的内容与串行版本一致。

Parameters
NameTypeDescription
entriesIList(Of ValueTuple(Of String, String))

待解析的 (标识, SMILES) 序列。

parallelismInt32

并行度(<=1 时串行)。

Returns

与输入等长的指纹数组;解析失败的项为 Nothing。

method Evaluate #
Evaluate(SearchState, String, SourceRoles)

判定一条完整逆合成路径是否满足起点约束;满足时返回其经济性指标,否则返回 Nothing。

method ToRouteDto #
ToRouteDto(RouteCandidate, String, Int32)

把候选通路转成 JSON DTO:正向组装、主链标注、经济性评分

property opts #
opts

构造时传入的搜索参数。

property w #
w

构造时传入的评分权重。

property rules #
rules

参与搜索的广义反应规则集(构造时拷贝,外部改动不影响本对象)。

property sink #
sink

底盘内源代谢物集合(汇),每项为 (化合物标识, SMILES)。

field VersionString #
VersionString

程序版本号,会写入结果报告的 version 字段。

field EscalateBudgetMs #
EscalateBudgetMs

Netwalk.SynthesisRoute() 自动升级(加大束宽/深度重试)的耗时预算(毫秒)。 超过预算即停止重试,避免单个查询把整个批量 demo 拖垮。

field VersionString #
VersionString
field EscalateBudgetMs #
EscalateBudgetMs