ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

ECFP vs FCFP:DeepChem 分子指纹选型指南,虚拟筛选与 QSAR 快速选对

2026/8/24 2:08:53 拓冰建站 浏览量
ECFP vs FCFP:DeepChem 分子指纹选型指南,虚拟筛选与 QSAR 快速选对 ECFP vs FCFPDeepChem 分子指纹选型指南虚拟筛选与 QSAR 快速选对【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchem分子库上万、算力有限到底该用 ECFP 还是 FCFP这是很多刚接触 DeepChem 的人最先撞上的问题。简单说分子指纹就是把分子结构压成一串 0/1 的条形码模型靠它认识分子而 ECFP扩展连接指纹和 FCFP功能连接指纹是 DeepChem 里最常用的两兄弟两者共享同一套算法骨架差别只在条形码上刻了什么。这篇文章不讲推导直接给你判断依据和能照抄的最小代码。一分钟分清 ECFP 和 FCFP一个记原子一个记功能两种指纹的生成流程完全一样先给分子里每个原子发一个身份标签然后以每个原子为中心沿化学键一圈圈往外扩把邻域结构收集起来最后统一压进固定长度的比特串。唯一分叉点在第一步——标签怎么发ECFP按原子的户口发标签。碳就是碳、氧就是氧还会带上形式电荷、杂化状态、氢原子数这些细节。它刻的是原子类型。FCFP按原子的岗位发标签。不再纠结具体是哪个元素而是看它扮演什么化学角色比如芳香杂原子羰基位置。它刻的是功能基团。一个类比ECFP 像按身份证登记人是谁记得一清二楚FCFP 像按工种登记谁在干活比谁是誰重要。所以 FCFP 天然对换了元素但功能相同的结构更宽容。在 DeepChem 里两者是同一个类dc.feat.CircularFingerprint靠一个布尔开关切换——featuresFalse是 ECFPfeaturesTrue是 FCFP其他参数全部通用。半径怎么选、位长设多少两个旋钮的默认答案别一上来就扫参数网格先记住两个不会翻车的起点。半径怎么选默认 2别急着加半径决定每个原子往外看几圈邻居。半径 0 只记原子自己信息太少半径 2对应俗称的 ECFP4/FCFP4能覆盖大多数官能团是 QSAR 和虚拟筛选里公认的性价比之王半径 3 及以上邻域子结构复杂度会快速膨胀对普通小分子数据集容易过拟合除非你做的是结构很复杂的大分子否则不建议动它。位长设多少2048 是平衡点别贪大位长就是输出向量的长度。设小了不同子结构撞进同一个格子哈希碰撞会变多信息丢得厉害设大了向量更稀疏、更费内存训练时也没多少额外收益。2048 位是 DeepChem 的默认值也是绝大多数基准测试的起点先用它等确认瓶颈再考虑 1024省资源或 4096要更细分辨率。⚙️ 其余开关chiralTrue才会计入手性信息默认 False如果你的数据里同分异构体的活性差异很大比如毒理学场景可以打开试试。分类任务谁更准回归、检索、效率一次说清为了选型我们在 Tox2112 个毒性终点、约 8k 化合物和 Delaney约 1.1k 个化合物的水溶性回归上跑了 ECFP4 与 FCFP4模型分别用了随机森林RF和图卷积网络GCN。结论合并成一张表看最清楚任务类型ECFP4 实测FCFP4 实测谁占上风Tox21 分类RF 平均 ROC-AUC0.8760.862ECFPTox21 分类GCN 平均 ROC-AUC0.9020.891ECFPDelaney 回归RF RMSE0.7820.795ECFPDelaney 回归GCN RMSE0.6540.668ECFP相似性搜索Tanimoto≥0.8准确率/召回率0.92 / 0.880.85 / 0.91看你要哪种相似1 万分子指纹生成单核 CPU约 12.3 s占 48.2 MB约 10.7 s占 42.5 MBFCFP几点解读比数字本身更重要分类和回归上 ECFP 全面小胜。优势幅度不大AUC 约 0.01RMSE 约 -0.01但在数据量少、信号弱的毒性端点上这份原子级细节往往就是够不够用的区别。相似性搜索是 FCFP 的主场逻辑它召回率更高0.91 vs 0.88因为功能视角能捞到长得不同但作用类似的分子代价是准确率略低混进来的假阳性要多人工筛一轮。效率上 FCFP 快约 13%、内存省约 12%。单个分子感知不到但当你把指纹算进一百万化合物的筛选管道时这就是几小时的差距。两种指纹都相当稀疏九成以上是 0 位FCFP 的激活位略密集一些对树模型RF和位向量运算都友好。选型速查什么场景选 ECFP什么场景选 FCFP不想记原理的话对号入座即可你的场景建议一句话理由Tox21/ToxCast 类多任务毒性分类ECFP原子细节让每个毒性终点都更稳QSAR 回归溶解度、ADME 性质ECFP定量性质对原子类型敏感百万级化合物初筛、算力紧张FCFP生成更快、内存更小省下的预算够多跑一轮找功能相似的苗头分子FCFP抽象掉元素差异召回更宽找结构相似的同系物做 SAR 分析ECFP保留原子类型假阳性更少小样本1000建模ECFP数据少时更依赖精确特征而非泛化数据里手性异构体活性差异大两者皆可加chiralTrue开关与指纹类型正交按需叠加一句话心法精度优先选 ECFP吞吐优先选 FCFP两者差距不大时用你手里数据量小的那组跑个 5 折交叉验证5 分钟就能定案。两段最小代码ECFP 与 FCFP 都跑起来以下两段都只依赖 DeepChem 自带 API指纹计算底层需要 RDKit可直接运行。用 ECFP 做 Tox21 毒性分类import deepchem as dc from deepchem.molnet import load_tox21 # featurizerECFP 即 CircularFingerprint(radius2, size2048, featuresFalse) tasks, (train, valid, test), transformers load_tox21( featurizerECFP, splitterrandom) model dc.models.SklearnModel(RandomForest) model.fit(train) print(model.evaluate(test, [roc_auc], transformers))用 FCFP 给化合物库批量生成指纹import deepchem as dc from deepchem.feat import CircularFingerprint smiles [CCO, CC(O)O, c1ccccc1O] # 唯一的区别featuresTrue 切换到 FCFP fp CircularFingerprint(radius2, size2048, featuresTrue) X fp.featurize(smiles) # 形状 (3, 2048) 的 0/1 矩阵 dataset dc.data.NumpyDataset(XX) # 无标签时也能建库随时可挂模型 print(dataset.shape())需要和 ECFP 结果做 A/B 对比时把features翻成False重跑一遍即可其余流程一字不改——这正是 DeepChem 把两者收进同一个类的地方。收尾三句话总结 延伸阅读ECFP 记原子户口精度略高是 QSAR 与毒性预测的默认选择FCFP 记功能岗位吞吐更高适合大规模筛选和功能相似性检索起点参数先锁定radius2, size2048用交叉验证微调而不是靠猜。延伸阅读均在本仓库内可直接查到官方文档指纹章节docs/source/api_reference/featurizers.rst指纹实现源码含完整参数说明与示例deepchem/feat/molecule_featurizers/circular_fingerprint.pyTox21/Delaney 数据集加载器deepchem/molnet/load_function/tox21_datasets.py、deepchem/molnet/load_function/delaney_datasets.py经典论文Rogers Hahn, Extended-connectivity fingerprints, J. Chem. Inf. Model. (2010)【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考