用途:在编写或调试 nvMolKit Python 代码时使用,针对 GPU 加速的 RDKit 批量操作。适合成千上万分子的整体批处理,关注批次吞吐量而非单分子延迟,且同一操作在整批上重复执行。输入输出是真实的 RDKit Mol 对象,构建时链接 RDKit。
主要能力:Morgan 指纹(nvmolkit.fingerprints 的 MorganFingerprintGenerator.GetFingerprints);批量 Tanimoto/余弦相似度(nvmolkit.similarity,含 MemoryConstrained 变体);ETKDG 构象嵌入(nvmolkit.embedMolecules);MMFF94 与 UFF 优化(nvmolkit.mmffOptimization、nvmolkit.uffOptimization,及带约束的 nvmolkit.batchedForcefield);成对构象 RMSD(nvmolkit.conformerRmsd);TFD(nvmolkit.tfd);Butina 聚类(nvmolkit.clustering 的 butina、fused_butina);子结构搜索(nvmolkit.substructure);最大公共子结构(nvmolkit.mcs);硬件选项与自动调参(nvmolkit.types、nvmolkit.autotune,后者需 optuna)。
结果模型:AsyncGpuResult 承载单个扁平张量(指纹、相似度矩阵、RMSD/TFD 向量),异步执行,result.torch() 零拷贝返回 GPU 张量,读取前需同步,result.numpy() 同步并返回 CPU 数组;支持 cuda_array_interface 可直接串联。部分 API 接受 stream 参数以在非默认流上执行。Device3DResult 用于 CoordinateOutput.DEVICE 模式,含 values、atom_starts、mol_indices、conf_indices 及能量/收敛缓冲。MCSBatchResult 为 CPU NumPy,结果按 pair 位置平坦存放。
用法与限制:需要计算能力 7.0(V100)以上的 NVIDIA GPU、兼容 CUDA 12.6+ 的驱动、支持 CUDA 的 torch。安装时先选好驱动支持的 PyTorch CUDA 后端,再装 nvMolKit,可用 uv pip install --torch-backend=cu128 nvmolkit。无 CPU 回退,单分子或无法批量化的操作用原生 RDKit。ETKDG 不支持自定义边界矩阵、自定义 CPCI、坐标映射、分片嵌入;子结构搜索不支持手性匹配、增强立体化学等高级参数。写代码前先运行安装冒烟测试,失败时查安装指南而非猜测。其他高级配置细节暂未在资料中完整提供。