1

我有一个 Excel 文件,其中给出了 2000 多个生物体,其中每个生物体都有一个相关的 Bioproject ID(如 PRJNA12997)。这个想法是使用这些 ID 来获取序列,以便稍后与我在文本文件中拥有的其他五个序列进行多重比对。

谁能帮我理解如何使用 biopython 做到这一点?至少具有生物项目 ID 的部分。

4

1 回答 1

4

您可以首先使用以下方式获取信息Bio.Entrez

from Bio import Entrez
Entrez.email = "Your.Name.Here@example.org"

# This call to efetch fails sometimes with a 400 error.
handle = Entrez.efetch(db="bioproject", id="PRJNA12997")

我一直在尝试,Entrez.read(handle)似乎没有用。但如果这样做record_xml = handle.read(),您将获得该记录的 XML 条目。在此 XML 中,您可以获得有机体的 ID,在本例中为12997

handle = Entrez.esearch(db="nuccore", term="12997[BioProject]")
search_results = Entrez.read(handle)

现在您可以efecth从您的搜索结果中。此时,您应该使用 Biopython 解析在 efetch 步骤中将获得的任何内容,使用 rettype http://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/

for result in search_results["IdList"]:
    entry = Entrez.efetch(db="nuccore", id=result, rettype="fasta")
    this_seq_in_fasta = entry.read()
于 2016-04-07T17:01:44.157 回答