【问题标题】:Retrieve all molecules from smiles file从微笑文件中检索所有分子
【发布时间】:2013-02-12 05:59:18
【问题描述】:

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

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

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

如何使用 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]

提前谢谢你。

【问题讨论】:

标签: python bioinformatics biopython cheminformatics


【解决方案1】:

Open Babel

Open Babel 网站上的有用链接

另请参阅,
This blog(作者 Casper Steinmann)关于 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()

【讨论】:

  • 这是你想要的输出吗? OC[C@H]1C=C[C@@H](n2cnc3c(nc(nc23)N)NC2CC2)C1
【解决方案2】:

我想从微笑文件中获取所有原子。这意味着如果有单个“C”原子,则意味着将有 4 个“H”原子连接到它们。 这个假设是不正确的,可能是1,2,3个氢。

尝试、openbabel、CDK 或类似的化学信息学库。

但是,为什么需要文件中的所有原子?

【讨论】:

  • 我想要,因为我想从中找到原子量。我也想找出捐赠者和接受者。
  • @sam 他(sam)似乎想要最稳定的原子配置的原子质量(这里不是正确的词)。如果是这样,1 'C' 必须与 4 'H' 结合,才能稳定。是这样吗?...
  • 是的,但微笑文件格式中不存在 4 H。所以我必须计算这样的 H,然后我想计算质量。
  • openbabel 有 python 绑定 (pybel) 和 CDK - pycdk.sourceforge.net
【解决方案3】:

对于以 SMILES 形式给出的化合物的分子量,Openbabel 的 Python 绑定应该可以工作:

import pybel
mol = pybel.readfile("smi", "stuff.smi").next()
print mol.molwt

【讨论】:

    【解决方案4】:

    试试frowns,这是一个化学信息学工具包,旨在快速开发化学相关算法。它几乎 100% 用 Python 编写,一小部分用 C++ 编写。

    【讨论】:

    • 皱眉似乎只适用于 Python 2.2(旧),它还需要 vflib(不是问题)。此外,该项目自 2004 年以来似乎已经死了(老,大问题)。
    【解决方案5】:

    RDKIT 是一个在 python 中定义良好的化学信息学库。

    从微笑中读取分子,

    from rdkit import Chem
    
    m = Chem.MolFromSmiles('[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]')
    

    在您将微笑读入 RDKIT 分子后,您几乎可以做任何事情。文档 - http://www.rdkit.org

    【讨论】:

      猜你喜欢
      • 2014-05-31
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 2012-08-09
      • 2021-01-15
      相关资源
      最近更新 更多