Exemplo n.º 1
0
def populate_SW_exon_alignments(protein_list):
    
    logger = Logger.Instance()
    alignment_logger = logger.get_logger('alignment')
    
    for protein_id in protein_list:
        try:
            if FileUtilities.read_status_file(protein_id)['ENSEMBL_EXON_RETRIEVAL'] == 'FAILED' or FileUtilities.read_status_file(protein_id)['REF_SP_DB_FORMATTING'] == 'FAILED':
                print "ABORTING {0} SW_EXON: some resources have FAILED stats!".format(protein_id)
                FileUtilities.update_entry_in_status_file(protein_id, 'SW_EXON_ALIGNMENT', 'FAILED')
                continue
        except KeyError:
            FileUtilities.update_entry_in_status_file(protein_id, 'SW_EXON_ALIGNMENT', 'FAILED')
            alignment_logger.error ("{0},Keys missing in the .status file (ENSEMBL_EXON_RETRIEVAL / REF_SP_DB_FORMATTING)".format(protein_id))
        try:
            if FileUtilities.read_status_file(protein_id)['SW_EXON_ALIGNMENT'] == 'OK':
                print "SKIPPING {0} SW_EXONs: .status file -> OK!".format(protein_id)
                continue
        except KeyError:
            pass
        print "ALIGNING SW_EXON: {0}".format(protein_id)
        if Alignments.generate_SW_exon_alignments2(protein_id):
            FileUtilities.update_entry_in_status_file(protein_id, 'SW_EXON_ALIGNMENT', 'OK')
        else:
            FileUtilities.update_entry_in_status_file(protein_id, 'SW_EXON_ALIGNMENT', 'PARTIAL')