datamol - 简化分子处理
Datamol 是一个用于处理分子的 Python 库。它是构建在 RDKit 之上的一层,旨在尽可能轻量化。
- 🐍 简单的 Python 风格 API
- ⚗️ 以 RDKit 为先:所有操作都基于
rdkit.Chem.Mol
对象 - ✅ 分子操作通常依赖多个选项;Datamol 在设计上提供了良好的默认值
- 🧠 性能至关重要:内置高效并行化处理,可选进度条显示
- 🕹️ 现代 IO:使用
fsspec
开箱即用支持远程路径,可读写多种格式(sdf、xlsx、csv 等)
在线试用
文档
安装
使用 conda:
mamba install -c conda-forge datamol
API 快速浏览
import datamol as dm
# 常用函数
mol = dm.to_mol("O=C(C)Oc1ccccc1C(=O)O", sanitize=True)
fp = dm.to_fp(mol)
selfies = dm.to_selfies(mol)
inchi = dm.to_inchi(mol)
# 标准化和净化
mol = dm.to_mol("O=C(C)Oc1ccccc1C(=O)O")
mol = dm.fix_mol(mol)
mol = dm.sanitize_mol(mol)
mol = dm.standardize_mol(mol)
# 数据框操作
df = dm.data.freesolv()
mols = dm.from_df(df)
# 2D 可视化
legends = [dm.to_smiles(mol) for mol in mols[:10]]
dm.viz.to_image(mols[:10], legends=legends)
# 生成构象
smiles = "O=C(C)Oc1ccccc1C(=O)O"
mol = dm.to_mol(smiles)
mol_with_conformers = dm.conformers.generate(mol)
# 3D 可视化(使用 nglview)
dm.viz.conformers(mol, n_confs=10)
# 从构象计算 SASA
sasa = dm.conformers.sasa(mol_with_conformers)
# 简便的 IO
mols = dm.read_sdf("s3://my-awesome-data-lake/smiles.sdf", as_df=False)
dm.to_sdf(mols, "gs://data-bucket/smiles.sdf")
如何引用
兼容性
版本兼容性对于生产软件栈至关重要。我们谨慎地记录了 datamol
、python
和 rdkit
之间的兼容性。
以下是 Datamol 次要版本在其整个生命周期中已测试的 Python 和 RDKit 相关版本。这并不意味着其他组合不可用,只是这些组合未经测试。
datamol | python | rdkit |
---|---|---|
0.12.x | [3.10, 3.11] | [2023.03, 2023.09] |
0.11.x | [3.9, 3.10, 3.11] | [2022.09, 2023.03] |
0.10.x | [3.9, 3.10, 3.11] | [2022.03, 2022.09] |
0.9.x | [3.9, 3.10, 3.11] | [2022.03, 2022.09] |
0.8.x | [3.8, 3.9, 3.10] | [2021.09, 2022.03, 2022.09] |
0.7.x | [3.8, 3.9] | [2021.09, 2022.03] |
0.6.x | [3.8, 3.9] | [2021.09] |
0.5.x | [3.8, 3.9] | [2021.03, 2021.09] |
0.4.x | [3.8, 3.9] | [2020.09, 2021.03] |
0.3.x | [3.8, 3.9] | [2020.09, 2021.03] |
CI 状态
CI 运行测试并对以下组合进行代码质量检查:
- 三个主要平台:Windows、OSX 和 Linux
- 最新的两个 Python 版本
- 最新的两个 RDKit 版本
许可证
基于 Apache-2.0 许可证。查看 LICENSE。