美文网首页
Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成

Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成

作者: ZeroDesigner | 来源:发表于2019-05-08 17:03 被阅读0次

    材料:

    Ipython qtconsole
    python35

    化学反应:

    羧>酸基团与氮的反应(随意定义仅供参考)

    步骤:

    (1)导入python的rdkit模块
    (2)根据SMARTS定义一个化学反应
    (3)输入化学分子进行反应

    代码:

    import rdkit
    from rdkit.Chem import AllChem
    from rdkit.Chem import Draw
    from rdkit.Chem.AllChem import  ReactionFromSmarts
    
    rxn = AllChem.ReactionFromSmarts('[C:1](=[O:2])-[OD1].[N:3]>>[C:1](=[O:2])[N:3]')
    #定义一个反应,采用SMARTS格式
    #解释这个SMARTS,第一个反应物限制:[C:1](=[O:2])-[OD1],羧基,侧链为(=[O:2]),O双键与C相连,第二个反应物限制:[N:3],基团带N原子
    Draw.ReactionToImage(rxn)
    #画出反应式
    
    反应
    pr = rxn.RunReactants((Chem.MolFromSmiles('CC(=O)O'),Chem.MolFromSmiles('NC')))
    #两个反应物按照定义好的rxn进行反应
    type(pr)
    #pr按照元组格式进行存储
    len(pr)
    #查看产物个数,只有一个产物生成
    Chem.MolToSmiles(pr[0][0])
    #产物转化为SMILES格式,CNC(C)=O
    Draw.MolToImage(pr[0][0])
    #显示产物
    
    不正确产物
    #明显看到N原子的价键不正确
    Chem.SanitizeMol(pr[0][0])
    #标准化其价建
    Draw.MolToImage(pr[0][0])
    #再次查看,完全规范
    
    规范产物

    相关文章

      网友评论

          本文标题:Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成

          本文链接:https://www.haomeiwen.com/subject/gslwnqtx.html