代码之家  ›  专栏  ›  技术社区  ›  catuf

如何处理未完成阅读:在biopython中

  •  0
  • catuf  · 技术社区  · 8 年前

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

    http.客户端。未完成读取:未完成读取(读取61808640字节)

    我已经搜索了答案 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()
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Peter Cock    8 年前

    您需要添加一个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