Open babel, Pybel, RDkit간에 mol 파일을 다룰 수 있도록 상호 변환

파이썬에서 케모 인포매틱스를 할 때 필수 라이브러리 군으로서 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

>

# 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