计算化学公社

标题: 求助,rdkit给多肽加H时如何让Lys和Arg的侧链为+1价 [打印本页]

作者
Author:
eagletyr    时间: 2024-9-22 14:34
标题: 求助,rdkit给多肽加H时如何让Lys和Arg的侧链为+1价
本帖最后由 eagletyr 于 2024-9-22 14:34 编辑

各位老师好,做虚拟筛选时,用rdkit给大量的小分子加H,并转为3d结构。某小分子为多肽(附件:1029.sdf),加H时如何让Lys和Arg的侧链为+1价?我的代码执行出来所有氨基酸侧链都是中性的(附件:1029.pdb)。
相关代码为:
       mol_with_h = Chem.AddHs(mol)
        AllChem.EmbedMolecule(mol_with_h, useRandomCoords=True, maxAttempts=10)
        AllChem.MMFFOptimizeMolecule(mol_with_h, mmffVariant='MMFF94', maxIters=5000)


代码主要是参考:http://bbs.keinsci.com/thread-40742-1-1.html
另,用open babel试了,仍然是侧链为中性。且因帖子上说open babel在小分子的2d转3d时,会出现原子重叠等不合理情况(http://bbs.keinsci.com/forum.php?mod=viewthread&tid=26211&highlight=rdkit,故我使用了rdkit来转化结构。

非常感谢。



作者
Author:
student0618    时间: 2024-9-22 17:30
本帖最后由 student0618 于 2024-9-22 19:49 编辑

I usually do this kind of conversions in openbabel, so I don't have an answer for rdkit.
For openbabel, just use the "-p pH" option to get the protonation state of a specific pH, and "--minimize" to get rid of the overlaps (if any). E.g.
  1. obabel -isdf 1029.sdf -opdb -O1029_3d.pdb --gen3d -p 7.4 --minimize --steps 5000 --sd --ff MMFF94
复制代码
It may take several minutes to generate the 3D strucutre due to the size of molecule plus obabel need to minimze the molecule. The results from openbabel 2.4.1 can be found in the attachment. Note that newer versions of openbabel that I have tested (e.g. 3.1.1) may have issues generating the 3D structure of your molecule.

A possible issue/advantage of this approach is that obabel automatically detects the amino acids in your molecule and change the residue name and ID like its a protein. Depends on the docking program you are planning to use, it can be an advantage or a problem.

作者
Author:
eagletyr    时间: 2024-9-22 21:53
student0618 发表于 2024-9-22 17:30
I usually do this kind of conversions in openbabel, so I don't have an answer for rdkit.
For openb ...

非常感谢,我刚刚也试了open babel 3.1.1产生的构象完全不对。而且对同一个结构,open babel比rdkit更耗时,多谢。
作者
Author:
student0618    时间: 2024-9-23 11:47
也可以先用rdkit generate 3D 再用obabel -p 7 来加氢。可能要先移除RDKit 加的?也可能不用。
不过我自己没试过这样做,都直接用obabel 放一晚上的。
作者
Author:
eagletyr    时间: 2024-9-23 18:55
student0618 发表于 2024-9-23 11:47
也可以先用rdkit generate 3D 再用obabel -p 7 来加氢。可能要先移除RDKit 加的?也可能不用。
不过我自己 ...

多谢多谢。我现在是先用obabel加H (-p 7.4),然后传递给rdkit来产生3D结构并优化。这样也会有些分子转化失败(Explicit valence for atom # 4 N, 4, is greater than permitted)。我打算把转化失败的分子单独用obabel转化一下。
另,obabel3.1.1在对1029.sdf转化后的结构呈现平面型(显然不合理),发现对另外好几个分子也是这样,或许我该用obabel2.4.1来处理?

还有一个问题是,数据库中有的分子是二组分,比如这个https://www.ebi.ac.uk/chembl/compound_report_card/CHEMBL533849/,里面是一个有机分子加HCl分子,有没有办法识别这种多组分并删除HCl这种无机分子?因为只想要里面的有机分子,多谢。
作者
Author:
student0618    时间: 2024-9-23 20:12
我先前试过openbabel 3.1.0 和3.1.1, 结果和你一样。他其实有类似“failed to generate 3D”的报错,所以pdb实际和2D sdf一样的。我改用2.4.1就可以了,我回帖的pdb就是用2.4.1生成的。就是obabel自动改了多肽的残基名及序号,根据之后的对接工具可能要注意一下。

rdkit可以用来删除这些,可参考https://www.rdkit.org/docs/source/rdkit.Chem.SaltRemover.html
作者
Author:
eagletyr    时间: 2024-9-23 21:53
student0618 发表于 2024-9-23 20:12
我先前试过openbabel 3.1.0 和3.1.1, 结果和你一样。他其实有类似“failed to generate 3D”的报错,所以pd ...

实在太感谢了,刚试了一下您刚说的rdkit的SaltRemover模块,很好用。再次感谢。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3