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