分子的基本操作汇总-->标准化(canonical)、得到骨架(scaffold)、是否包含某个母核(core)

总是忘记,直接记录下来,以后直接复制粘贴


得到canonical的分子:

mol = Chem.MolFromSmiles(smiles)  # 使用RDKit MolFromSmiles函数标准化SMILES
canonical_smiles = Chem.MolToSmiles(mol, isomericSmiles=True)  # 获取标准化后的SMILES

得到scaffold: 

# 创建自定义函数,用于将SMILES标准化并生成scaffold结构
def generate_scaffold(smiles):
    mol = Chem.MolFromSmiles(smiles)
    scaffold = MurckoScaffold.MurckoScaffoldSmiles(mol=mol)
    return scaffold
scaffold_smiles = generate_scaffold(canonical_smiles)  # 调用自定义函数生成scaffold结构

某个分子是否包含某个母核:

from rdkit import Chem

# 母核 SMILES 字符串
core_smiles = 'O=C(NCc1ccccc1)c1c(Cc2ccccc2)sc2c1CCOC2'

# 分子 SMILES 或 Mol 文件路径
mol_smiles = 'C#CC(C)CNC(=O)c1c(CC(c2ccc(C(F)(F)F)cc2)N(F)F)sc2c1CCOC2'
# 读取分子结构
mol = Chem.MolFromSmiles(mol_smiles)

# 读取母核结构
core = Chem.MolFromSmiles(core_smiles)

# 查找分子中匹配母核的子结构
matches = mol.HasSubstructMatch(core)
print(matches)

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/130487289