# Copyright 2008 by Peter Cock.  All rights reserved.
#
# This code is part of the Biopython distribution and governed by its
# license.  Please see the LICENSE file that should have been included
# as part of this package.

"""Bio.SeqIO support for the "phd" file format.

PHD files are output by PHRED and used by PHRAP and CONSED.

You are expected to use this module via the Bio.SeqIO functions.
See also the underlying Bio.Sequencing.Phd module."""

from Bio.SeqRecord import SeqRecord
from Bio.Sequencing import Phd
    
#This is a generator function!
def PhdIterator(handle) :
    """Returns SeqRecord objects from a PHD file.

    This uses the Bio.Sequencing.Phy module to do the hard work.
    """

    for phd_record in Phd.Iterator(handle, Phd.RecordParser()) :
        #Convert the PHY record into a SeqRecord...
        seq_record = SeqRecord(phd_record.seq,
                               id = phd_record.file_name,
                               name = phd_record.file_name)
        #Just re-use the comments dictionary as the SeqRecord's annotations
        seq_record.annotations = phd_record.comments
        yield seq_record 
    #All done

if __name__ == "__main__" :
    print "Quick self test"
    handle = open("../../Tests/Phd/Phd1")
    for record in PhdIterator(handle) :
        print record
    handle.close()
    print "Done"
        
    
