# Bio.SeqIO.PirIO module

Bio.SeqIO support for the “pir” (aka PIR or NBRF) file format.

This module is for reading and writing PIR or NBRF format files as SeqRecord objects.

You are expected to use this module via the Bio.SeqIO functions, or if the file contains a sequence alignment, optionally via Bio.AlignIO instead.

This format was introduced for the Protein Information Resource (PIR), a project of the National Biomedical Research Foundation (NBRF). The PIR database itself is now part of UniProt.

The file format is described online at: http://www.ebi.ac.uk/help/pir_frame.html http://www.cmbi.kun.nl/bioinf/tools/crab_pir.html (currently down)

An example file in this format would be:

    >P1;CRAB_ANAPL
    ALPHA CRYSTALLIN B CHAIN (ALPHA(B)-CRYSTALLIN).
      MDITIHNPLI RRPLFSWLAP SRIFDQIFGE HLQESELLPA SPSLSPFLMR
      SPIFRMPSWL ETGLSEMRLE KDKFSVNLDV KHFSPEELKV KVLGDMVEIH
      GKHEERQDEH GFIAREFNRK YRIPADVDPL TITSSLSLDG VLTVSAPRKQ
      SDVPERSIPI TREEKPAIAG AQRK*

    >P1;CRAB_BOVIN
    ALPHA CRYSTALLIN B CHAIN (ALPHA(B)-CRYSTALLIN).
      MDIAIHHPWI RRPFFPFHSP SRLFDQFFGE HLLESDLFPA STSLSPFYLR
      PPSFLRAPSW IDTGLSEMRL EKDRFSVNLD VKHFSPEELK VKVLGDVIEV
      HGKHEERQDE HGFISREFHR KYRIPADVDP LAITSSLSSD GVLTVNGPRK
      QASGPERTIP ITREEKPAVT AAPKK*

Or, an example of a multiple sequence alignment:

    >P1;S27231
    rhodopsin - northern leopard frog
    MNGTEGPNFY IPMSNKTGVV RSPFDYPQYY LAEPWKYSVL AAYMFLLILL GLPINFMTLY
    VTIQHKKLRT PLNYILLNLG VCNHFMVLCG FTITMYTSLH GYFVFGQTGC YFEGFFATLG
    GEIALWSLVV LAIERYIVVC KPMSNFRFGE NHAMMGVAFT WIMALACAVP PLFGWSRYIP
    EGMQCSCGVD YYTLKPEVNN ESFVIYMFVV HFLIPLIIIS FCYGRLVCTV KEAAAQQQES
    ATTQKAEKEV TRMVIIMVIF FLICWVPYAY VAFYIFTHQG SEFGPIFMTV PAFFAKSSAI
    YNPVIYIMLN KQFRNCMITT LCCGKNPFGD DDASSAATSK TEATSVSTSQ VSPA*

    >P1;I51200
    rhodopsin - African clawed frog
    MNGTEGPNFY VPMSNKTGVV RSPFDYPQYY LAEPWQYSAL AAYMFLLILL GLPINFMTLF
    VTIQHKKLRT PLNYILLNLV FANHFMVLCG FTVTMYTSMH GYFIFGPTGC YIEGFFATLG
    GEVALWSLVV LAVERYIVVC KPMANFRFGE NHAIMGVAFT WIMALSCAAP PLFGWSRYIP
    EGMQCSCGVD YYTLKPEVNN ESFVIYMFIV HFTIPLIVIF FCYGRLLCTV KEAAAQQQES
    LTTQKAEKEV TRMVVIMVVF FLICWVPYAY VAFYIFTHQG SNFGPVFMTV PAFFAKSSAI
    YNPVIYIVLN KQFRNCLITT LCCGKNPFGD EDGSSAATSK TEASSVSSSQ VSPA*

    >P1;JN0120
    rhodopsin - Japanese lamprey
    MNGTEGDNFY VPFSNKTGLA RSPYEYPQYY LAEPWKYSAL AAYMFFLILV GFPVNFLTLF
    VTVQHKKLRT PLNYILLNLA MANLFMVLFG FTVTMYTSMN GYFVFGPTMC SIEGFFATLG
    GEVALWSLVV LAIERYIVIC KPMGNFRFGN THAIMGVAFT WIMALACAAP PLVGWSRYIP
    EGMQCSCGPD YYTLNPNFNN ESYVVYMFVV HFLVPFVIIF FCYGRLLCTV KEAAAAQQES
    ASTQKAEKEV TRMVVLMVIG FLVCWVPYAS VAFYIFTHQG SDFGATFMTL PAFFAKSSAL
    YNPVIYILMN KQFRNCMITT LCCGKNPLGD DE-SGASTSKT EVSSVSTSPV SPA*

As with the FASTA format, each record starts with a line beginning with “>” character. There is then a two letter sequence type (P1, F1, DL, DC, RL, RC, or XX), a semi colon, and the identification code. The second like is free text description. The remaining lines contain the sequence itself, terminating in an asterisk. Space separated blocks of ten letters as shown above are typical.

Sequence codes and their meanings:

  - P1 - Protein (complete)

  - F1 - Protein (fragment)

  - D1 - DNA (e.g. EMBOSS seqret output)

  - DL - DNA (linear)

  - DC - DNA (circular)

  - RL - RNA (linear)

  - RC - RNA (circular)

  - N3 - tRNA

  - N1 - Other functional RNA

  - XX - Unknown

class Bio.SeqIO.PirIO.PirIterator(source)

  Bases: `SequenceIterator`

  Parser for PIR files.

  modes = 't'
  __init__(source)

    Iterate over a PIR file and yield SeqRecord objects.

    source - file-like object or a path to a file.

    Examples

        >>> with open("NBRF/DMB_prot.pir") as handle:
        ...    for record in PirIterator(handle):
        ...        print("%s length %i" % (record.id, len(record)))
        HLA:HLA00489 length 263
        HLA:HLA00490 length 94
        HLA:HLA00491 length 94
        HLA:HLA00492 length 80
        HLA:HLA00493 length 175
        HLA:HLA01083 length 188

  __next__()

    Iterate over the records in the PIR file.

  __abstractmethods__ = frozenset({})
  __annotations__ = {}
  __firstlineno__ = 110
  __parameters__ = ()
  __static_attributes__ = ('_line',)

class Bio.SeqIO.PirIO.PirWriter(handle, wrap=60, record2title=None, code=None)

  Bases: `SequenceWriter`

  Class to write PIR format files.

  modes = 't'
  __init__(handle, wrap=60, record2title=None, code=None)

    Create a PIR writer.

    Arguments:

      - handle - Handle to an output file, e.g. as returned by open(filename, “w”)

      - wrap - Optional line length used to wrap sequence lines. Defaults to wrapping the sequence at 60 characters Use zero (or None) for no wrapping, giving a single long line for the sequence.

      - record2title - Optional function to return the text to be used for the title line of each record. By default a combination of the record.id, record.name and record.description is used.

      - code - Optional sequence code must be one of P1, F1, D1, DL, DC, RL, RC, N3 and XX. By default None is used, which means auto detection based on the molecule type in the record annotation.

    You can either use:

        handle = open(filename, "w")
        writer = PirWriter(handle)
        writer.write_file(myRecords)
        handle.close()

    Or, follow the sequential file writer system, for example:

        handle = open(filename, "w")
        writer = PirWriter(handle)
        ...
        Multiple writer.write_record() and/or writer.write_records() calls
        ...
        handle.close()

  __abstractmethods__ = frozenset({})
  __annotations__ = {}
  __firstlineno__ = 180
  __parameters__ = ()
  __static_attributes__ = ('code', 'record2title', 'wrap')
  write_record(record)

    Write a single PIR record to the file.

Biopython v: 1.85

Versions
  Previous
  Latest
  Develop

Biopython Project
  Homepage
  On GitHub