Coding/Python

[Python] RDKit 활용한 분자구조 재조합 (Molecule Enumeration)

Yunzz 2024. 1. 23. 10:05

RDKit의 molzip() 함수를 활용하면 Core+Fragment 조합 생성이 가능함.

 

예시) Benzene Core에 2가지 종류의 R-Group 조합 생성

Core R1 R2
c1cc([*:1])cc([*:2])c1 c1ccc2cc([*:1])ccc2c1 c1ccc2cc3cc([*:2])ccc3cc2c1

 

from rdkit import Chem

core = "c1cc([*:1])cc([*:2])c1"
r1 = "c1ccc2cc([*:1])ccc2c1"
r2 = "c1ccc2cc3cc([*:2])ccc3cc2c1"

sample = Chem.MolFromSmiles(f'{core}.{r1}.{r2}')
mol = Chem.molzip(sample)
smi = Chem.MolToSmiles(mol)

print("Enumeration Smiles : ", smi)

 

 >> Enumeration Smiles : c1cc(-c2ccc3ccccc3c2)cc(-c2ccc3cc4ccccc4cc3c2)c1