此技能用于分子相似性搜索:以Tanimoto、Tversky、Dice、余弦等系数比较分子指纹,对化合物库排序、聚类和多样性选择。参考示例在RDKit 2024.09+、scikit-learn 1.4+、mhfp 1.9+环境下测试。
主要能力与用法:单查询大库排序可用RDKit的BulkTanimotoSimilarity,先批量生成ECFP4指纹再O(N)比较;非对称“子结构式”查询用Tversky(alpha=1、beta=0),奖励包含查询特征的化合物;按化学型聚类用Butina,Tanimoto 0.6对应距离cutoff 0.4,注意其为O(N^2)距离矩阵,不保证同簇非中心成员两两相似;多样性挑选用rdSimDivPickers.MaxMinPicker的LazyBitVectorPick,需显式设置seed;最大公共子结构用rdFMCS.FindMCS,需设超时并检查canceled,问题组合式增长;活性悬崖检测结合ECFP4相似度与活性差值;百万级库可用MHFP6配合mhfp的LSHForestHelper做近似最近邻,需用精确子集评估召回。
系数选择:类药ECFP4常规类似物检索用Tanimoto阈值约0.7;低相似度敏感检索用Dice(阈值约0.45);计数值/神经指纹用余弦;Tanimoto高值不能保证活性保留,活性悬崖常见,仅作为优先级信号。阈值需按指纹和数据集重新校准,不可跨指纹族迁移。
限制:Butina在大库易内存爆炸,MCS可能超时,折叠哈希指纹可能因碰撞出现Tanimoto=1.0但分子不同,精确同一性应比较规范SMILES或InChIKey;聚类结果对输入顺序敏感,需标准化排序。