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()