@@ -125,7 +125,7 @@ def reduce(allele, locus, column_name):
125125 print (e )
126126 message = f"Failed reducing '{ locus_allele } ' in column { column_name } "
127127 print (message )
128- failure_summary_messages .append (message )
128+ failed_to_reduce_alleles .append (( column_name , locus_allele ) )
129129 return allele
130130 # print(f"reduced to '{reduced_allele}'")
131131 if reduced_allele :
@@ -210,7 +210,7 @@ if __name__ == '__main__':
210210 header = 0 , dtype = str ,
211211 keep_default_na = False )
212212
213- failure_summary_messages = []
213+ failed_to_reduce_alleles = []
214214 # Reduce each of the specified columns
215215 for column in ard_config ["columns_to_reduce_in_csv" ]:
216216 if verbose :
@@ -245,12 +245,20 @@ if __name__ == '__main__':
245245 out_file_name = f"{ ard_config ['out_csv_filename' ] + '.gz' if ard_config ['apply_compression' ] else '' } "
246246 df .to_csv (out_file_name , index = False , compression = ard_config ["apply_compression" ])
247247
248- if len (failure_summary_messages ) == 0 :
248+ if len (failed_to_reduce_alleles ) == 0 :
249249 print ("No Errors" , file = sys .stderr )
250250 else :
251251 print ("Summary" , file = sys .stderr )
252252 print ("-------" , file = sys .stderr )
253- for message in failure_summary_messages :
254- print ("\t " , message , file = sys .stderr )
253+ print (f"{ len (failed_to_reduce_alleles )} alleles failed to reduce." , file = sys .stderr )
254+ print ("| Column Name | Allele | Did you mean ? " , file = sys .stderr )
255+ print ("| --------------- | ---------------- | ------------------------- " , file = sys .stderr )
256+ for column_name , locus_allele in failed_to_reduce_alleles :
257+ similar_allele_names = pyard .db .similar_alleles (ard .db_connection , locus_allele )
258+ if similar_allele_names :
259+ similar_allele_names = "," .join (sorted (similar_allele_names , reverse = True ))
260+ else :
261+ similar_allele_names = 'NA'
262+ print (f"| { column_name :15} | { locus_allele :16} | { similar_allele_names } " , file = sys .stderr )
255263 # Done
256264 print (f"Saved result to file:{ out_file_name } " )
0 commit comments