#!/usr/bin/env python
# Jacob Joseph
# July 9, 2007
# Write a list of identifiers used in each family

from DurandDB import blastq

class familylist:
    def __init__(self):
        self.b_class = blastq.blastq()

    def fetch_seqs( self):
        q = """SELECT family_abbrev, primary_acc
FROM family_member
JOIN family USING (family_id)
JOIN prot_seq_version USING (seq_id)"""

        self.b_class.dbw.execute( q)
        return self.b_class.dbw.fetchall()

    def fetch_seqs_panther( self):
        q = """SELECT family.abbrev, fa_descr.descr
        FROM family_member
        JOIN family USING (family_id)
        JOIN family_set USING (fam_set_id)
        JOIN fa_descr USING (seq_id)
        WHERE family_set.name='ppod_20_cleanqfo2'
        ORDER BY family.abbrev"""

        return self.b_class.dbw.fetchall(q)

    def write_file( self):
        dbret = self.fetch_seqs_panther()

        fd = open('curated_set_panther7.0.dat', 'w')
        for (family_abbrev, acc) in dbret:
            print >> fd, "%s %s" % (acc, family_abbrev)
        fd.close()

if __name__ == "__main__":
    df = familylist()
    df.write_file()
    
