<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,
    <br>
    <br>
    It looks like SwissProt can parse old version uniprot_sprot data
    file, but fails with the current version data file. Below is how to
    replicate the error (Biopython version is '1.64').
    <br>
    <br>
    Regards,
    <br>
    <br>
    Jinghua
    <br>
    ----------------------
    <br>
    <br>
    First download the current uniprot_sprot data file (~72 MB in size)
    at <a class="moz-txt-link-freetext"
href="ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/taxonomic_divisions/uniprot_sprot_human.dat.gz">ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/taxonomic_divisions/uniprot_sprot_human.dat.gz</a>
    <br>
    <br>
    Then in IPython, using SwissProt to parse the downloaded data file:
    <br>
    <br>
    In [1]: from Bio import SwissProt
    <br>
    <br>
    In [2]: import gzip
    <br>
    <br>
    In [3]: inhandle = gzip.open('./uniprot_sprot_human.dat.gz')
    <br>
    <br>
    In [4]: reader = SwissProt.parse(inhandle)
    <br>
    <br>
    In [5]: for r in reader:
    <br>
    &nbsp;&nbsp; ...:&nbsp;&nbsp;&nbsp;&nbsp; pass
    <br>
    &nbsp;&nbsp; ...:
    <br>
---------------------------------------------------------------------------
    <br>
    AssertionError&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Traceback (most recent
    call last)
    <br>
    &lt;ipython-input-5-c04351d992d2&gt; in &lt;module&gt;()
    <br>
    ----&gt; 1 for r in reader:
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; pass
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3
    <br>
    <br>
    <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>usr/local/lib/python2.7/dist-packages/Bio/SwissProt<span
        class="moz-txt-tag">/</span></i>__init__.pyc in parse(handle)
    <br>
    &nbsp;&nbsp;&nbsp; 115 def parse(handle):
    <br>
    &nbsp;&nbsp;&nbsp; 116&nbsp;&nbsp;&nbsp;&nbsp; while True:
    <br>
    --&gt; 117&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record = _read(handle)
    <br>
    &nbsp;&nbsp;&nbsp; 118&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not record:
    <br>
    &nbsp;&nbsp;&nbsp; 119&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
    <br>
    <br>
    <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>usr/local/lib/python2.7/dist-packages/Bio/SwissProt<span
        class="moz-txt-tag">/</span></i>__init__.pyc in _read(handle)
    <br>
    &nbsp;&nbsp;&nbsp; 182&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elif key == 'RN':
    <br>
    &nbsp;&nbsp;&nbsp; 183&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reference = Reference()
    <br>
    --&gt; 184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _read_rn(reference, value)
    <br>
    &nbsp;&nbsp;&nbsp; 185&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record.references.append(reference)
    <br>
    &nbsp;&nbsp;&nbsp; 186&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elif key == 'RP':
    <br>
    <br>
    <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>usr/local/lib/python2.7/dist-packages/Bio/SwissProt<span
        class="moz-txt-tag">/</span></i>__init__.pyc in
    _read_rn(reference, rn)
    <br>
    &nbsp;&nbsp;&nbsp; 407
    <br>
    &nbsp;&nbsp;&nbsp; 408 def _read_rn(reference, rn):
    <br>
    --&gt; 409&nbsp;&nbsp;&nbsp;&nbsp; assert rn[0] == '[' and rn[-1] == ']', "Missing
    brackets %s" % rn
    <br>
    &nbsp;&nbsp;&nbsp; 410&nbsp;&nbsp;&nbsp;&nbsp; reference.number = int(rn[1:-1])
    <br>
    &nbsp;&nbsp;&nbsp; 411
    <br>
    <br>
    AssertionError: Missing brackets [1] {ECO:0000305,
    ECO:0000312|EMBL:AAK11482.1}
    <br>
    <br>
    <br>
    <br>
  </body>
</html>