Mercurial > repos > sanbi-uwc > summarize_poliovirus_alignment
comparison summarize_alignment.py @ 0:7e49c6b19f5e draft
planemo upload commit a99e10fec2fac5aae70974c977eb3b362a1a8429
| author | sanbi-uwc |
|---|---|
| date | Tue, 19 Jul 2022 11:47:08 +0000 |
| parents | |
| children | 5c8dfc4d9d68 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:7e49c6b19f5e |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 import argparse | |
| 4 import json | |
| 5 | |
| 6 def comma_split(args: str) -> list[str]: | |
| 7 return args.split(",") | |
| 8 | |
| 9 | |
| 10 if __name__ == "__main__": | |
| 11 parser = argparse.ArgumentParser() | |
| 12 parser.add_argument("--summary_output_filename", help="Path to summary output file") | |
| 13 parser.add_argument("--variant_list_outputs", nargs="+") | |
| 14 parser.add_argument("--datasets", nargs="+") | |
| 15 args = parser.parse_args() | |
| 16 | |
| 17 summary_output = open(args.summary_output_filename, "w") | |
| 18 for i, json_filename in enumerate(args.datasets): | |
| 19 alignment_summary = json.load(open(json_filename)) | |
| 20 mismatch_list = ";".join( | |
| 21 [ | |
| 22 ":".join([str(part) for part in el[1:]]) | |
| 23 for el in alignment_summary["mismatch_list"] | |
| 24 ] | |
| 25 ) | |
| 26 print( | |
| 27 alignment_summary["sample_name"], | |
| 28 alignment_summary["best_reference"], | |
| 29 alignment_summary["mismatches"], | |
| 30 round(alignment_summary["quality"], 2), | |
| 31 mismatch_list, | |
| 32 sep="\t", | |
| 33 file=summary_output, | |
| 34 ) | |
| 35 variant_list_output = open(args.variant_list_outputs[i], "w") | |
| 36 print('genome pos', 'VP1 pos', 'ref', 'sequence', sep='\t', file=variant_list_output) | |
| 37 for variant in alignment_summary["mismatch_list"]: | |
| 38 print("\t".join([str(el) for el in variant]), file=variant_list_output) | |
| 39 variant_list_output.close() |
