論文 Scikit-fingerprints: easy and efficient computation of molecular fingerprints in Python 介紹了分子指紋在計算化學中的計算和應用,特別是其在機器學習和大規(guī)模數據處理中的重要性。
動機和意義
分子是計算化學處理的基本結構,通常表示為分子圖,需要轉換為多維向量以便大多數處理算法使用,尤其是機器學習(ML)應用。分子指紋是一種特征提取算法,將分子的結構信息編碼為向量,廣泛用于化學信息學中的各種任務,如化學空間多樣性測量、可視化、聚類、虛擬篩選和分子性質預測等。這些任務在新藥設計中尤為重要。為了正確評估預測模型的性能,訓練-測試數據集的劃分至關重要,分子指紋也可以用于此。指紋模型的性能與最先進的圖神經網絡(GNNs)相比仍然具有競爭力。
指紋選擇和計算
選擇適合特定應用的最佳指紋表示并不簡單,通常需要計算多種不同的指紋,并可能需要調整其超參數。使用多個指紋通常能改善結果,例如通過連接或數據融合。處理大型分子數據集需要利用現代多核CPU的高效實現。Python是當前化學信息學中最流行的語言,包含的scikit-learn庫已成為機器學習任務的事實標準工具。然而,許多流行的開源工具如Chemistry Development Kit (CDK)、OpenBabel或RDKit是用Java或C++編寫的,只有RDKit有官方的Python接口。
并行計算和內存優(yōu)化
并行計算分子指紋對于處理大型數據庫(如虛擬篩選)非常有用。論文展示了五種指紋在稠密和稀疏表示下的內存使用情況,稀疏表示顯著減少了內存使用。具體數據如下:
Klekota-Roth: 稠密數組大小2029MB,稀疏數組大小23MB,內存節(jié)省88.2倍。
FCFP: 稠密數組大小855MB,稀疏數組大小15MB,內存節(jié)省57倍。
Physiochemical Properties: 稠密數組大小855MB,稀疏數組大小17MB,內存節(jié)省50.3倍。
ECFP: 稠密數組大小855MB,稀疏數組大小19MB,內存節(jié)省45倍。
Topological Torsion: 稠密數組大小855MB,稀疏數組大小19MB,內存節(jié)省45倍。
指紋超參數調優(yōu)
大多數文獻中忽略了分子指紋的超參數調優(yōu),僅調優(yōu)下游分類器。論文進行了所有2D指紋的超參數調優(yōu),使用了MoleculeNet單任務分類數據集,結果顯示調優(yōu)帶來了顯著的性能提升。特別是基于子結構的Ghose-Crippen指紋在平均AUROC上提升了4%。具體結果如下:
RDKit指紋
-
- 在BBBP數據集上的AUROC提升高達5.8%。
Ghose-Crippen指紋
- 在所有數據集上的平均AUROC提升為4%。
復雜的3D指紋處理管道
對于需要3D信息的任務,如基于構象的指紋,整個處理管道變得更加復雜。需要生成構象并進行力場優(yōu)化,結果指紋可能有缺失值。使用多個指紋通常是有益的,特別是對于虛擬篩選,因為它們考慮了不同的幾何特征。論文展示了一個創(chuàng)建用于篩選的分子向量化管道的示例,使用了GETAWAY和WHIM描述符。這個示例在RDKit中需要超過100行代碼,而在scikit-fingerprints中則簡化了很多。
from?sklearn.impute?import?SimpleImputer
from?skfp.fingerprints?import?(GETAWAYFingerprint,?WHIMFingerprint)
from?skfp.preprocessing?import?ConformerGenerator
from?sklearn.pipeline?import?make_pipeline,?make_union
pipeline?=?make_pipeline(
????ConformerGenerator(optimize_force_field?=?"MMFF94",?n_jobs?=?-1),
????make_union(GETAWAYFingerprint(n_jobs?=?-1),?WHIMFingerprint(n_jobs?=?-1)),
????SimpleImputer(strategy?=?"mean"),
????)
scikit-fingerprints與CDK和OpenBabel的比較
scikit-fingerprints庫的影響
scikit-fingerprints是一個計算分子指紋的綜合庫,完全兼容scikit-learn接口,易于集成到復雜的分子數據處理管道中。庫中包含30多種指紋(2D和3D),并支持高效的構象生成。其直觀和統一的API使得領域專家(如計算化學家、化學信息學家或分子生物學家)易于使用。庫還強調代碼質量、安全性和自動化檢查。
并行計算:利用所有可用核心,顯著加速了大數據集的處理。
超參數調優(yōu):有助于提高模型性能。
指紋連接和數據融合:支持復雜的計算任務。
相關信息
代碼:https://github.com/scikit-fingerprints/scikit-fingerprints
論文:https://arxiv.org/abs/2407.13291v1