Skip to content

Commit

Permalink
If BAD TAXON in GAF: Keep line. Report details. Issue #107
Browse files Browse the repository at this point in the history
  • Loading branch information
dvklopfenstein committed Jul 7, 2018
1 parent 1dcc8ab commit 717dece
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 21 deletions.
92 changes: 92 additions & 0 deletions data/gaf/goa_human_illegal.gaf
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
!gaf-version: 2.1
!
!Generated by GO Central
!Modified for testing illegal GAF lines seen in the field (dvk)
!
!Original header below, sans version:
!
!The set of protein accessions included in this file is based on UniProt reference proteomes, which provide one protein per gene.
!They include the protein sequences annotated in Swiss-Prot or the longest TrEMBL transcript if there is no Swiss-Prot record.
!If a particular protein accession is not annotated with GO, then it will not appear in this file.
!
!Note that the annotation set in this file is filtered in order to reduce redundancy; the full, unfiltered set can be found in
!ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/UNIPROT/goa_uniprot_all.gz
!
!Generated: 2018-04-23 08:59
!GO-version: http://purl.obolibrary.org/obo/go/releases/2018-04-20/extensions/go-plus.owl
!
! merged_from paint_goa_human_valid.gaf:
! merged_from paint_goa_human_valid.gaf: Generated by GO Central
! merged_from paint_goa_human_valid.gaf:
! merged_from paint_goa_human_valid.gaf: Original header below, sans version:
! merged_from paint_goa_human_valid.gaf: Created on Tue May 1 16:04:19 2018.
! merged_from paint_goa_human_valid.gaf: PANTHER version: v.13.1.
! merged_from paint_goa_human_valid.gaf: GO version: 2018-04-25.
UniProtKB A0A024R161 DNAJC25-GNG10 GO:0003924 GO_REF:0000002 IEA InterPro:IPR001770 F Guanine nucleotide-binding protein subunit gamma A0A024R161_HUMAN|DNAJC25-GNG10|hCG_1994888 protein taxon:9606 20180421 InterPro
UniProtKB A0A024R161 DNAJC25-GNG10 GO:0004871 GO_REF:0000038 IEA UniProtKB-KW:KW-0807 F Guanine nucleotide-binding protein subunit gamma A0A024R161_HUMAN|DNAJC25-GNG10|hCG_1994888 protein taxon:9606 20180421 UniProt
UniProtKB A0A024R161 DNAJC25-GNG10 GO:0005834 GO_REF:0000002 IEA InterPro:IPR001770 C Guanine nucleotide-binding protein subunit gamma A0A024R161_HUMAN|DNAJC25-GNG10|hCG_1994888 protein taxon:9606 20180421 InterPro
UniProtKB A0A024R161 DNAJC25-GNG10 GO:0007186 GO_REF:0000002 IEA InterPro:IPR001770|InterPro:IPR015898|InterPro:IPR036284 P Guanine nucleotide-binding protein subunit gamma A0A024R161_HUMAN|DNAJC25-GNG10|hCG_1994888 protein taxon:9606 20180421 InterPro
UniProtKB A0A075B6H7 IGKV3-7 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin kappa variable 3-7 (non-functional) A0A075B6H7_HUMAN|IGKV3-7 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H7 IGKV3-7 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin kappa variable 3-7 (non-functional) A0A075B6H7_HUMAN|IGKV3-7 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H7 IGKV3-7 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin kappa variable 3-7 (non-functional) A0A075B6H7_HUMAN|IGKV3-7 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H8 IGKV1D-42 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin kappa variable 1D-42 (non-functional) A0A075B6H8_HUMAN|IGKV1D-42 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H8 IGKV1D-42 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin kappa variable 1D-42 (non-functional) A0A075B6H8_HUMAN|IGKV1D-42 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H8 IGKV1D-42 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin kappa variable 1D-42 (non-functional) A0A075B6H8_HUMAN|IGKV1D-42 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H9 IGLV4-69 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 4-69 LV469_HUMAN|IGLV4-69 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6H9 IGLV4-69 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 4-69 LV469_HUMAN|IGLV4-69 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H9 IGLV4-69 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 4-69 LV469_HUMAN|IGLV4-69 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6H9 IGLV4-69 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 4-69 LV469_HUMAN|IGLV4-69 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6H9 IGLV4-69 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 4-69 LV469_HUMAN|IGLV4-69 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6H9 IGLV4-69 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 4-69 LV469_HUMAN|IGLV4-69 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I0 IGLV8-61 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 8-61 LV861_HUMAN|IGLV8-61 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I0 IGLV8-61 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 8-61 LV861_HUMAN|IGLV8-61 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I0 IGLV8-61 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 8-61 LV861_HUMAN|IGLV8-61 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I0 IGLV8-61 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 8-61 LV861_HUMAN|IGLV8-61 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I0 IGLV8-61 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 8-61 LV861_HUMAN|IGLV8-61 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I0 IGLV8-61 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 8-61 LV861_HUMAN|IGLV8-61 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I1 IGLV4-60 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 4-60 LV460_HUMAN|IGLV4-60 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I1 IGLV4-60 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 4-60 LV460_HUMAN|IGLV4-60 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I1 IGLV4-60 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 4-60 LV460_HUMAN|IGLV4-60 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I1 IGLV4-60 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 4-60 LV460_HUMAN|IGLV4-60 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I1 IGLV4-60 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 4-60 LV460_HUMAN|IGLV4-60 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I1 IGLV4-60 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 4-60 LV460_HUMAN|IGLV4-60 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I3 IGLV11-55 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 11-55 (non-functional) A0A075B6I3_HUMAN|IGLV11-55 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I3 IGLV11-55 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 11-55 (non-functional) A0A075B6I3_HUMAN|IGLV11-55 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I3 IGLV11-55 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 11-55 (non-functional) A0A075B6I3_HUMAN|IGLV11-55 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I4 IGLV10-54 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 10-54 LVX54_HUMAN|IGLV10-54 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I4 IGLV10-54 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 10-54 LVX54_HUMAN|IGLV10-54 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I4 IGLV10-54 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 10-54 LVX54_HUMAN|IGLV10-54 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I4 IGLV10-54 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 10-54 LVX54_HUMAN|IGLV10-54 protein taxon:9606 20150528 GO_Central
UniProtKB IGLV10-54 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 10-54 LVX54_HUMAN|IGLV10-54 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I4 IGLV10-54 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 10-54 LVX54_HUMAN|IGLV10-54 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I6 IGLV1-50 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 1-50 (non-functional) A0A075B6I6_HUMAN|IGLV1-50 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I6 IGLV1-50 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 1-50 (non-functional) A0A075B6I6_HUMAN|IGLV1-50 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I6 IGLV1-50 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 1-50 (non-functional) A0A075B6I6_HUMAN|IGLV1-50 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I7 IGLV5-48 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 5-48 (non-functional) A0A075B6I7_HUMAN|IGLV5-48 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I7 IGLV5-48 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 5-48 (non-functional) A0A075B6I7_HUMAN|IGLV5-48 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I7 IGLV5-48 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 5-48 (non-functional) A0A075B6I7_HUMAN|IGLV5-48 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I9 IGLV7-46 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 7-46 LV746_HUMAN|IGLV7-46 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I9 IGLV7-46 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 7-46 LV746_HUMAN|IGLV7-46 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I9 IGLV7-46 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 7-46 LV746_HUMAN|IGLV7-46 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I9 IGLV7-46 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 7-46 LV746_HUMAN|IGLV7-46 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6I9 IGLV7-46 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 7-46 LV746_HUMAN|IGLV7-46 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6I9 IGLV7-46 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 7-46 LV746_HUMAN|IGLV7-46 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J1 IGLV5-37 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 5-37 LV537_HUMAN|IGLV5-37 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J1 IGLV5-37 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 5-37 LV537_HUMAN|IGLV5-37 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J1 IGLV5-37 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 5-37 LV537_HUMAN|IGLV5-37 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J1 IGLV5-37 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 5-37 LV537_HUMAN|IGLV5-37 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J1 IGLV5-37 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 5-37 LV537_HUMAN|IGLV5-37 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J1 IGLV5-37 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 5-37 LV537_HUMAN|IGLV5-37 protein NCBITaxon: 20150528 GO_Central
UniProtKB A0A075B6J2 IGLV2-33 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 2-33 (non-functional) A0A075B6J2_HUMAN|IGLV2-33 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J2 IGLV2-33 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 2-33 (non-functional) A0A075B6J2_HUMAN|IGLV2-33 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J2 IGLV2-33 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 2-33 (non-functional) A0A075B6J2_HUMAN|IGLV2-33 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J6 IGLV3-22 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 3-22 LV322_HUMAN|IGLV3-22 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J6 IGLV3-22 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 3-22 LV322_HUMAN|IGLV3-22 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J6 IGLV3-22 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 3-22 LV322_HUMAN|IGLV3-22 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J6 IGLV3-22 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 3-22 LV322_HUMAN|IGLV3-22 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J6 IGLV3-22 GO:0005886 GO_REF:0000039 IEA UniProtKB-SubCell:SL-0039 C Immunoglobulin lambda variable 3-22 LV322_HUMAN|IGLV3-22 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J6 IGLV3-22 GO:0006955 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 3-22 LV322_HUMAN|IGLV3-22 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J9 IGLV2-18 GO:0002250 GO_REF:0000037 IEA UniProtKB-KW:KW-1064 P Immunoglobulin lambda variable 2-18 LV218_HUMAN|IGLV2-18 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J9 IGLV2-18 GO:0002377 PAINT_REF:23267 IBA PANTHER:PTN000587099 P Immunoglobulin lambda variable 2-18 LV218_HUMAN|IGLV2-18 protein taxon:9606 20150528 GO_Central
UniProtKB A0A075B6J9 IGLV2-18 GO:0003823 GO_REF:0000037 IEA UniProtKB-KW:KW-0394 F Immunoglobulin lambda variable 2-18 LV218_HUMAN|IGLV2-18 protein taxon:9606 20180421 UniProt
UniProtKB A0A075B6J9 IGLV2-18 GO:0005615 PAINT_REF:23267 IBA PANTHER:PTN000587099 C Immunoglobulin lambda variable 2-18 LV218_HUMAN|IGLV2-18 protein taxon:9606 20150528 GO_Central
60 changes: 39 additions & 21 deletions goatools/anno/gaf_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def _init_assn(self, fin_gaf, hdr_only, prt):
# Read data
if datobj is not None and line[0] != '!':
# print(lnum, line)
ntgaf, b_err = datobj.get_ntgaf(line, lnum)
ntgaf = datobj.get_ntgaf(line, lnum)
if ntgaf is not None:
nts.append(ntgaf)
else:
Expand All @@ -115,7 +115,8 @@ def _init_assn(self, fin_gaf, hdr_only, prt):
datobj.prt_line_detail(prt, line)
sys.exit(1)
# GAF file has been read
datobj.prt_read_summary(prt, fin_gaf, nts)
if prt:
datobj.prt_read_summary(prt, fin_gaf, nts)
self.datobj = datobj
return self.evobj.sort_nts(nts, 'Evidence_Code')

Expand Down Expand Up @@ -215,9 +216,9 @@ def _get_ntgaf(self, flds, num_flds, lnum):
db_synonym = self._rd_fld_vals("DB_Synonym", flds[10], is_set)
taxons = self._rd_fld_vals("Taxon", flds[12], is_list, 1, 2)
if not self._chk_qty_eq_1(flds):
return None, "IGNORED ILLEGAL GAF LINE"
return None
# Additional Formatting
taxons = self._do_taxons(taxons)
taxons = self._do_taxons(taxons, flds, lnum)
self._chk_qualifier(qualifiers)
# Create list of values
gafvals = [
Expand Down Expand Up @@ -249,7 +250,7 @@ def _get_ntgaf(self, flds, num_flds, lnum):
gafvals.append(self._rd_fld_vals("Gene_Product_Form_ID", flds[16], is_set))
else:
gafvals.append(None)
return self.ntgafobj._make(gafvals), None
return self.ntgafobj._make(gafvals)

@staticmethod
def _rd_fld_vals(name, val, set_list_ft=True, qty_min=0, qty_max=None):
Expand Down Expand Up @@ -293,41 +294,58 @@ def _chk_qty_eq_1(self, flds):
return False # Check failed
return True # Check passed

@staticmethod
def _do_taxons(taxons):
def _do_taxons(self, taxons, flds, lnum):
"""Taxon"""
taxons_str = [v.split(':')[1] for v in taxons] # strip "taxon:"
taxons_int = [int(s) for s in taxons_str if s]
# taxons = [int(v[6:]) for v in taxons] # strip "taxon:"
num_taxons = len(taxons_int)
if taxons_int:
assert num_taxons == 1 or num_taxons == 2
else:
self.illegal_lines['ILLEGAL TAXON'].append((lnum, "\t".join(flds)))
return taxons_int

def prt_read_summary(self, prt, fin_gaf, nts):
"""Print a summary about the GAF file that was read."""
fout_log = self._prt_details_illegal_gaf(fin_gaf) if self.ignored else None
if prt is not None:
prt.write(" READ {N:9,} associations: {FIN}\n".format(N=len(nts), FIN=fin_gaf))
prt.write(" READ {N:9,} associations: {FIN}\n".format(N=len(nts), FIN=fin_gaf))
# If there are illegal GAF lines ...
if self.ignored or self.illegal_lines:
# Get summary of error types and their counts
errcnts = []
if self.ignored:
prt.write(" IGNORED {N:9,} associations: {FIN}\n".format(N=len(self.ignored), FIN=fout_log))

def _prt_details_illegal_gaf(self, fin_gaf):
errcnts.append(" {N:9,} IGNORED associations\n".format(N=len(self.ignored)))
if self.illegal_lines:
for err_name, errors in self.illegal_lines.items():
errcnts.append(" {N:9,} {ERROR}\n".format(N=len(errors), ERROR=err_name))
# Save error details into a log file
fout_log = self._wrlog_details_illegal_gaf(fin_gaf, errcnts)
prt.write(" WROTE GAF ERROR LOG: {LOG}:\n".format(LOG=fout_log))
for err_cnt in errcnts:
sys.stdout.write(err_cnt)

def _wrlog_details_illegal_gaf(self, fin_gaf, err_cnts):
"""Print details regarding illegal GAF lines seen to a log file."""
fout_log = "{}.log".format(fin_gaf)
gaf_base = os.path.basename(fin_gaf)
with open(fout_log, 'w') as prt:
prt.write("ILLEGAL GAF ERROR SUMMARY:\n\n")
for err_cnt in err_cnts:
prt.write(err_cnt)
prt.write("\n\nILLEGAL GAF ERROR DETAILS:\n\n")
for lnum, line in self.ignored:
self.prt_ignore_line(prt, fin_gaf, line, lnum)
prt.write("**WARNING: GAF LINE IGNORED: {FIN}[{LNUM}]:\n{L}\n".format(
FIN=gaf_base, L=line, LNUM=lnum))
self.prt_line_detail(prt, line)
prt.write("\n")
prt.write("\n\n")
for error, lines in self.illegal_lines.items():
for lnum, line in lines:
prt.write("**WARNING: GAF LINE ILLEGAL({ERR}): {FIN}[{LNUM}]:\n{L}\n".format(
ERR=error, FIN=gaf_base, L=line, LNUM=lnum))
self.prt_line_detail(prt, line)
prt.write("\n\n")
return fout_log

@staticmethod
def prt_ignore_line(prt, fin_gaf, line, lnum):
"""Print a message saying that we are ignoring an association line."""
prt.write("**WARNING: BADLY FORMATTED LINE. IGNORED {FIN}[{LNUM}]:\n{L}\n".format(
FIN=os.path.basename(fin_gaf), L=line, LNUM=lnum))


class GafHdr(object):
"""Used to build a GAF header."""
Expand Down

0 comments on commit 717dece

Please sign in to comment.