python - 如何从 python 中的多个登录号返回来自 ncbi 的相应 fasta 蛋白质序列?

标签 python biopython fasta ncbi

我在使用 python 脚本下载文本文件中多个登录号的 fasta 序列时遇到一些困难。我可以对单个入藏号执行此操作,例如:

import sys
from Bio import Entrez
Entrez.email = "X@Y.com"
handle = Entrez.efetch(db="protein", id="EAS03220", rettype="fasta")
print(handle.read())

但是当我尝试将文件作为列表提供给它(见下文)时,我会收到错误。

import sys
from Bio import Entrez
Entrez.email = "X@Y.com"    

accessions = []
for line in open(sys.argv[1],"r"):
    line = line.strip()
    accessions.append(line)

for num in accessions:
    handle = Entrez.efetch(db="protein", id="num", rettype="fasta")
    print(handle.read())

这是我的输入文件的外观示例:

EAS06781
EAS07087
EAS07113
EAS07200
EAS07226
EAS07230

我确信解决方案很简单,但我已经阅读论坛、NCBI 帮助页面和 Python 初学者书籍几个小时了,但一无所获!提前致谢。

最佳答案

您将number作为string传递,而不是作为变量传递。 尝试删除引号,它应该可以工作。

handle = Entrez.efetch(db="protein", id=num, rettype="fasta")

关于python - 如何从 python 中的多个登录号返回来自 ncbi 的相应 fasta 蛋白质序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37302177/

相关文章:

python - Biopython 比对的无间隙索引

python - 如何使用Python根据给定数据过滤出序列?

python - python中使用指定分隔符逐 block 读取文件

python - 如何在 Django View 中向另一台服务器发送请求?

python - 将字典中的列表作为新列添加到 DataFrame

python - 选择汉明距离为零的读数

shell - 使用 SED/AWK 将 FASTQ 转换为 FASTA

python - 使用输入作为数组和字符串

python - python 包和依赖项位于何处?

python - 使用 entrez 和 biopython 在 medline 数据库中搜索标题