Il semblait impossible de calculer le volume à partir de la structure bidimensionnelle du composé avec les fonctions intégrées d'openbabel et de rdkit (je suis triste si j'ai mal compris cela), donc je l'ai implémenté en référence à l'article [1]. .. L'unité est ongstrom cubique.
https://github.com/keisuke-yanagisawa/python-tools/blob/master/calc_mol_volume.py
Il a une implémentation qui dépend d'openbabel.
Si vous utilisez ceci, par exemple, si vous entrez du benzène,
from calc_mol_volume import *
import pybel
mol = pybel.readfile("sdf", "benzene.sdf").next()
print estimate_volume(mol)
# -> 81.1800000...
Sera. De plus, annotate_sdf_volume
est préparé dans calc_mol_volume.py.
from calc_mol_volume import *
annotate_sdf_volume("benzene.sdf", "benzene_annotated.sdf")
Vous pouvez également générer un nouveau fichier sdf en faisant.
[1] Zhao YH, et al., "Fast calculation of van der Waals volume as a sum of atomic and bond contributions and its application to drug compounds", The Journal of Organic Chemistry, 68(19), 7368-7373, 2003.
Recommended Posts