python - 从微笑文件中检索所有分子

标签 python bioinformatics biopython cheminformatics

我正在处理 .smiles 文件。 .smiles 文件的文件结构为:http://en.wikipedia.org/wiki/Chemical_file_format#SMILES

我想从微笑文件中获取所有原子。这意味着如果有单个“C”原子,则意味着将有 4 个“H”原子连接到它们。

我在搜索时发现python中有一些模块可以解析微笑格式但它们不提供支持的氢原子。 (例如:他们只给出“C”而不给出与该“C”原子相连的其他 4 个“H”原子)

如何使用 python 找到所有原子,包括连接的“H”原子。
需要转换为所有原子(包括连接的“H”原子)的微笑文件示例:

[H]OC([H])([H])[C@@]1([H])C([H])=C([H])[C@@]([H])(n2c([H])nc3c(nc(nc23)N([H])[H])N([H])C2([H])C([H])([H])C2([H])[H])C1([H])[H]

提前谢谢你。

最佳答案

参见 Open Babel .

Open Babel 网站上的有用链接

另见,
This blog (作者:Casper Steinmann)关于 Chemistry with Python(使用 Open Babel,但并非全部)

更新 请参阅此代码(未经测试):

mymol = pybel.readstring("smi",  
"[H]OC([H])([H])[C@@]1([H])C([H])=C([H])[C@@]([H])(n2c([H])nc3c(nc(nc23)" + \
"N([H])[H])N([H])C2([H])C([H])([H])C2([H])[H])C1([H])[H")
print mymol.addh()

关于python - 从微笑文件中检索所有分子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14826373/

相关文章:

Python 偶数组分配

python - 我可以在 Python 2.7 中从文本文件创建对象名称吗?

python - 反向互补DNA

python - 蛋白质结构可视化

python - 随机 DNA 突变发生器

python - 在 for 循环中直接调用 SeqIO.parse() 可以,但是事先单独使用它不行吗?为什么?

python - biopython聚类的简单例子

python - 如何在 Python 中的局部变量中存储随机整数?

python - 使用 str.translate() 将 DNA 转化为 RNA

python - 从 Windows cmd 或 IDLE 而不是 PyCharm 运行时出现 "QThread: Destroyed while thread is still running"?