SMILES 的输入/输出:一个"够用即可"的 SMILES 子集解析与确定性写出实现。
SmilesIO
00 Remarks
解析支持:元素(双字母优先)、支链 ()、环闭合数字、键符 - = #、 电价([NH4+]、[O-])、显式氢([NH2])、多组分 .。 不支持:芳香小写记号(请改用 Kekulé 式)、@/@@ 与 / \ 立体标记、 %nn 多位环号、通配原子 *;元素表仅含 Cl、Br、Si、C、N、O、S、P、F、I、B、H。 写出具备 roundtrip 性质:write → parse → 同一 Molecule.MolKey()。
01 Syntax
SMRUCC.genomics.Analysis.RetroPath.Chem.SmilesIO
02 Methods
03 Fields
| Name | Overloads | Summary |
|---|---|---|
| ElementsAlt | 1 | 可解析的元素符号表;双字母元素排在单字母之前,保证 "Cl"/"Br"/"Si" 优先匹配。 |
04 Members
Parse(
String)解析 SMILES 字符串,构造对应的分子图。
Parameters
| Name | Type | Description |
|---|---|---|
smiles | String | 待解析的 SMILES(须落在本模块支持的子集内)。 |
Returns
解析得到的 Molecule。
Write(Molecule)
以确定性 DFS(邻居按 Morgan 秩排序)写出 SMILES:支链括号化、环用数字闭合。
Remarks
同一分子(含同构的不同写法)总是得到同一输出,因此可作为结构比较与去重的依据。
Parameters
| Name | Type | Description |
|---|---|---|
m | Molecule | 待写出的分子;多组分分子各分量以 |
Returns
规范 SMILES 字符串;空分子返回空串。
ElementsAlt
可解析的元素符号表;双字母元素排在单字母之前,保证 "Cl"/"Br"/"Si" 优先匹配。