Expand description
§omgkit-chem
omgkit 的 L2 层:化学语义 —— 净化管线、芳香性、价键与隐式氢。
§净化管线的 12 个步骤
步骤之间有依赖,不可乱序。“实现在“一列为空的是尚未实现的:
| # | 步骤 | 实现在 |
|---|---|---|
| 1 | 修正硝基 / 叠氮 / 磷酰 / 高卤酸的非标准画法 | cleanup |
| 2 | 有机金属键改配位键 | organometallics |
| 3 | 价键计算 + 隐式氢推断 | valence |
| 4 | 环感知 | rings |
| 5 | 芳香环 → 交替单双键 | kekulize |
| 6 | 自由基电子数 | radicals |
| 7 | 芳香性感知 | aromaticity |
| 8 | 共轭标记 | conjugation |
| 9 | 杂化标记 | conjugation |
| 10 | 阻转异构 | 未实现 |
| 11 | 剔除几何上不成立的立体标记 | cleanup_chirality |
| 12 | 显式/隐式氢调整 | adjust_hs |
§净化之外:两个读它结果的模块
本 crate 里还有三个模块不是净化的步骤:gasteiger、descriptors
是净化输出的消费者,explicit_hs 是一次独立的图编辑(与 remove_hs 一对)。
前两个放在这里
是因为它们要读第 3、4、7、8、9 步填的东西(隐式氢、环、芳香、共轭、杂化),
拆出去就成了一个只依赖 omgkit-chem 的空壳 crate。
| 模块 | 是什么 |
|---|---|
gasteiger | Gasteiger–Marsili 部分电荷(PEOE 迭代) |
descriptors | 图神经网络特征化要读的原子/键描述符(12 + 7 个字段),汇到一处交付 |
explicit_hs | 把隐式氢补成真原子。改原子数,所以不在那 12 步里 —— 与 remove_hs 是一对 |
它们不会被 pipeline::sanitize 调用 —— 净化不该顺手算一批
没人要的数。反过来,它们要求分子已经净化过:没净化不报错,只会让每一项都
是解析时的占位值。
descriptors 还有一处前置在本 crate 之外:双键顺反由
omgkit_io::stereo::perceive_bond_stereo 填,而 omgkit-io 是本 crate 的
同级,调不到。详见该模块的文档。
§removeHs 不属于净化
删除显式 [H] 原子会改变原子数,是一个独立的编辑操作,不在这 12 步里。
实现在 remove_hs,由调用方按需显式调用。
§净化基本不改动连通性
只有第 2 步会把某些键改成配位键并交换端点;除此之外净化只改属性, 不增删原子和键。这是“在解析结果的图上直接做环感知“成立的前提。
Re-exports§
pub use adjust_hs::adjust_hs;pub use aromaticity::set_aromaticity;pub use cleanup::clean_up;pub use cleanup_chirality::cleanup_chirality;pub use conjugation::mark_conjugated_atoms;pub use conjugation::set_conjugation;pub use conjugation::set_hybridization;pub use descriptors::atom_descriptors;pub use descriptors::bond_descriptors;pub use descriptors::AtomDescriptors;pub use descriptors::BondDescriptors;pub use explicit_hs::add_explicit_hs;pub use gasteiger::gasteiger_charges;pub use kekulize::kekulize;pub use kekulize::KekulizeError;pub use organometallics::cleanup_organometallics;pub use organometallics::is_metal;pub use pipeline::sanitize;pub use pipeline::SanitizeError;pub use radicals::assign_radicals;pub use remove_hs::is_removable;pub use remove_hs::remove_hs;pub use rings::fused_ring_systems;pub use rings::perceive_rings;pub use rings::RingPerception;pub use sssr::ring_set;pub use sssr::Ring;pub use valence::update_property_cache;pub use valence::ValenceResult;
Modules§
- adjust_
hs - 净化第 12 步:氢的隐式/显式表示调整。
- aromaticity
- 芳香性感知(净化第 7 步)。
- cleanup
- 非标准画法修正(净化第 1 步)。
- cleanup_
chirality - 净化第 11 步:剔除几何上不成立的立体标记。
- conjugation
- 共轭标记与杂化状态(净化第 8、9 步)。
- descriptors
- 图神经网络特征化要读的那一组原子/键描述符。
- explicit_
hs - 把隐式氢补成真正的原子。三维构象要用。
- gasteiger
- Gasteiger–Marsili 部分电荷(PEOE,逐轨道电负性均衡)。
- kekulize
- Kekulize —— 把芳香键还原为交替的单双键(净化第 5 步)。
- organometallics
- 净化第 2 步:把超价的“非金属—金属“单键改成配位键。
- pipeline
- 净化管线的唯一入口。
- radicals
- 自由基电子数(净化第 6 步)。
- remove_
hs - 把图里的显式氢原子并成邻居上的氢计数。
- rings
- 环感知:判定原子/键是否在环中,以及过每个原子的最短环有多大(净化第 4 步)。
- sssr
- 环集感知 —— 给出分子的一组具体的环,供芳香性感知使用。
- valence
- 净化第 3 步:把隐式氢算出来写回分子。
Structs§
- Valence
Error - 价键校验失败。
Enums§
- Valence
Error Kind - 价键校验失败的类别。
Functions§
- valence_
shift - 形式电荷从
from变到to时,这个元素能用的价变了多少。