python - 如何处理IncompleteRead : in biopython

标签 python biopython http.client

我正在尝试使用 Biopython 从 NCBI 获取登录号的 fasta 序列。通常序列已成功下载。但偶尔我会收到以下错误:

http.client.IncompleteRead: IncompleteRead(61808640 bytes read)

我已经搜索过答案How to handle IncompleteRead: in python

我已经尝试过最佳答案 https://stackoverflow.com/a/14442358/4037275 。这是工作。然而,问题是,它下载了部分序列。还有什么办法吗。谁能指出我正确的方向吗?

from Bio import Entrez
from Bio import SeqIO
Entrez.email = "my email id"


def extract_fasta_sequence(NC_accession):
    "This takes the NC_accession number and fetches their fasta sequence"
    print("Extracting the fasta sequence for the NC_accession:", NC_accession)
    handle = Entrez.efetch(db="nucleotide", id=NC_accession, rettype="fasta", retmode="text")
    record = handle.read()

最佳答案

您需要添加 try/except 来捕获此类常见的网络错误。请注意,异常 httplib.IncompleteRead 是更通用的 HTTPException 的子类,请参阅:https://docs.python.org/3/library/http.client.html#http.client.IncompleteRead

例如http://lists.open-bio.org/pipermail/biopython/2011-October/013735.html

另请参阅https://github.com/biopython/biopython/pull/590会捕获使用 NCBI Entrez API 可能出现的一些其他错误(NCBI 应该处理但没有处理的错误)。

关于python - 如何处理IncompleteRead : in biopython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38516984/

相关文章:

python - 奇怪的 Cron ls 行为

python - 子进程无法捕获标准输出

python - 如何为多个 fastq 文件运行代码?

json - 来自 Haskell 的查询请求,包含 "same data"的两倍

python - http.client.HTTPConnection.request 与 urllib.request.Request

python - 使用 python 和 http.client 在发布请求中包含证书的示例

python - 使用 Django/HTML/Python 不显示表单

python - 这两个合并排序实现的空间复杂度是否相同?

python - 如果数据库(例如 MySQL)中的任何数据更新,是否可以触发脚本或程序?

python - 无法安装biopython包