【问题标题】:Ncbi protein database, how to get protein sequences from a specific bioproject (python script)Ncbi 蛋白质数据库,如何从特定的生物项目中获取蛋白质序列(python 脚本)
【发布时间】:2013-11-27 12:27:38
【问题描述】:

我正在尝试从特定生物项目的 NCBI 数据库中检索编码蛋白序列。这可以使用网络浏览器以某种方式实现。例如,您可以找到您感兴趣的特定生物项目并“点击”相关蛋白质: http://www.ncbi.nlm.nih.gov/genome/proteins/994?project_id=207383 让您可以看到来自 BioProject "207383" 和 Genome "994" 的所有蛋白质。我想使用 python 自动获取这些蛋白质序列。

为了做到这一点,我使用了 NCBI 的“E-utilities”。主要是“elink.fcgi?”它允许从数据库的特定 UID(比如说 BioProject UID)链接获取数据库的所有 UID(比如说“蛋白质”)。所以这是我的 entrez URL 请求:
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?dbfrom=bioproject&linkname=bioproject_protein&id=207383
然后我获得了一个蛋白质 UID 列表,这很好,因为我需要这些,用于我的下一个 efetch.fcgi 请求? “电子公用事业”。然后这个请求将允许我得到我需要的一切。

好的,一切都很好,一切正常,但是,我从“elink.fcgi”中获得的蛋白质 UID 的数量?请求与基于手动网络浏览器的搜索显示的蛋白质数量不同。更糟糕的是,在询问这些问题的根源时,您会看到缺失的序列或更高分类群的序列(它们也与 BioProject 没有任何联系)。

这是一个例子:这篇文章的第一个链接显示了一些 4014 序列,当 python 请求得到我 3957 蛋白质 UID。

我尝试了一些其他方法,例如从分类 UID 中获取所有蛋白质 UID。这通常会给你比想要的更多的序列,因为有不同的生物项目(也给你一些具有不同名称和相同 Fasta 的双打)。

有没有办法做到这一点,一种可行的方法?

【问题讨论】:

    标签: python ncbi protein-database


    【解决方案1】:

    我还发现与 NCBI 合作非常令人沮丧。我很惊讶这样的数据源甚至没有为我们提供干净的下载方式。相反,它提供了一些糟糕的交叉链接,让用户自己去弄清楚整个事情。

    我的解决方案来自这篇文章

    How to Download Bacterial Genomes Using the Entrez API

    确保将 db 更改为“nuccore”并将 rettype 更改为“fasta_cds_aa”。还要检查下载的 fasta 文件的分类 ID,以确保它正是您所要求的菌株(最后一个让我大吃一惊,教训深刻)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 2012-06-27
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      相关资源
      最近更新 更多