MolPy
同一表示 · 六个阶段
同一个分子图,构建、类型化、填充坐标——全流程走完,直接导出或原地分析
01 · 解析/构建
SMILES、BigSMILES 或文件 → 可编辑的图
02 · 编辑
在图上进行反应、交联和组装
03 · 类型化
分配 OPLS-AA / GAFF 类型和参数
04 · 填充
无碰撞填充周期性盒子
05 · 导出
LAMMPS、GROMACS、PDB、HDF5 等多种格式
06 · 分析
RDF、MSD、序参数、谱——在同一个数据结构上直接计算
实践
每个阶段只需几行 Python¶
下面六张卡片与管线的各阶段一一对应。以聚合物为 演示领域,是因为它涉及的耦合、交联和多分散性对编辑机制的每个环节都有挑战性——但这并非 MolPy 建模能力的边界。
用文本描述化学结构¶
一行 SMILES 或 BigSMILES 就能定义可编辑的结构——无论单个分子还是整条聚合物链。
逐个原子地重新连接拓扑¶
合并结构、创建和断开化学键、移除离去基团——然后在新连接处重新推导出角和二面角。
在数据层面分配类型¶
用 SMARTS 匹配把每个原子、键、角和二面角映射到力场参数——导出前就能检查和验证。
使用 Packmol 填满周期性盒子¶
在目标密度下无碰撞填充,由 Python 驱动 Packmol 来完成。想要纯 Rust 版本?我们的 molpack 填充器尚在测试阶段,欢迎试用。
写入你的引擎真正能运行的文件¶
每个文件一条命令:同时写出 LAMMPS data 文件和力场系数。GROMACS、PDB 和 HDF5 的写入接口也遵循同样的模式。
将轨迹转换为可观测量¶
同一份数据直接传给 Rust 后端计算内核——两次调用就能得到近邻搜索和 g® 结果。另有三十多种分析功能可用。
- 一个数据结构,整个生态
- 所有 MolCrafts 工具共享同一套 molrs 后端抽象数据结构——molpack、molvis、molmcp 都能直接读取。工具之间不需要转换器,不需要胶水代码。
- 全面依托 Rust 内核
Frame、Block以及每个计算算子的底层都是 molrs——一个 Rust 列存储,提供零拷贝 NumPy 视图和 O(N) 链接网格近邻搜索。- 为 LLM 智能体打造
- molmcp 套件通过 MCP 提供 MolPy 的符号、文档和实时结构——智能体能检查 Frame 并调用真实 API,依据源码而非猜测。
- 使用其中一块,或全部使用
- 解析器、构建器、类型化器、填充器以及 I/O 和计算模块之间只通过显式数据通信——没有隐藏的共享状态。只导入需要的那一层,其余可忽略。
- 没有任何硬编码
- 新的计算算子、I/O 格式、力场风格或类型化器都可以从核心外部注册——内部的目录是开放注册表,而非硬编码列表。
- 端到端类型化
- 公共 API 全都带有完整的类型提示,CI 中用 Astral 的
ty检查。编辑器会给出真实的签名补全,不会回退到Any。
molvis — 交互式 3D 分子¶
在浏览器中渲染核心抽象数据结构:一个独立 JavaScript 库、一个可嵌入 Jupyter 的笔记本查看器,以及一个编辑器,全都基于同一套 GPU 渲染引擎。拖动阿司匹林就能旋转它。
- RDKit
- 分子图和 RDKit Mol 之间的双向转换,可用于嵌入、构象生成和 SMILES 导出。
- AmberTools
- 用 Python 直接驱动 antechamber、parmchk2 和 tleap,生成 GAFF 电荷和拓扑。
- Packmol
- 通过类型化约束接口,实现周期性盒子的无碰撞填充。
- LAMMPS · CP2K · OpenMM
- 从 MolPy 数据对象生成完整可运行的输入脚本。
- molrs · MCP
- 底层的 Rust 列存储和计算内核;MCP 套件向 LLM 智能体提供符号和文档。