Open babel, Pybel, RDkit間でmolファイルを扱えるように相互変換する
Pythonでケモインフォマティクスをやる際に必須のライブラリ群として、RDkit・Open Babel・Pybelがあります。どのライブラリも分子操作や機械学習のための記述子生成などが行えますが、そのパッケージでしか出来なかったり、より簡単に実装出来たりする操作もあります。
基本的に化合物をmol objectに変換するのを起点として各種操作を行います。当然ですがそれぞれのライブライラリで作成したmol objectは別のライブラリでは読み込めませんので、変換する必要があります。
Open Babel → Pybelへの変換
Openbabelのmol からPybelのmolへは、専用の変換モジュールがある。
# SmilesからOpenbabel形式のmolを作成 import openbabel obConversion.SetInFormat("smi") obmol = openbabel.OBMol() obConversion.ReadString(obmol, "C1=CC=CS1") obmol
<openbabel.OBMol; proxy of <Swig Object of type 'OpenBabel::OBMol *’ at 0x000001BA8BBA6C60> >
# Molucule()でOpenbabel molをpybel molに変換 import pybel pybelmol = pybel.Molecule(obmol) pybelmol
Open Babel, Pybel → RDkitへの変換
Open BabelまたはPybelのmolを一旦SDFファイルとして出力してから、RDkitで読み込みます。逆経路も同じくSDF経由です。
from rdkit import Chem pybelmol.write("sdf", "outputfile.sdf") rdmol = Chem.SDMolSupplier('outputfile.sdf') rdmol
<rdkit.Chem.rdmolfiles.SDMolSupplier at 0x1ba866ff1b8>
ディスカッション
コメント一覧
まだ、コメントがありません