From 0b1c9a8116b7f833bfd33b779ca6c0ba4e7c728e Mon Sep 17 00:00:00 2001 From: Valerio Arnaboldi Date: Mon, 16 Jul 2018 08:52:59 -0700 Subject: [PATCH] new script to diff json reports generate diffs between json reports for curator testing --- diff_json_reports.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 diff_json_reports.py diff --git a/diff_json_reports.py b/diff_json_reports.py new file mode 100755 index 0000000..215d831 --- /dev/null +++ b/diff_json_reports.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import argparse +import json + + +def main(): + parser = argparse.ArgumentParser(description="Create diff file between reports in json format") + parser.add_argument('reports', metavar='report_file', type=str, nargs=2, help='report file to diff') + + args = parser.parse_args() + + old_report = args.reports[0] + new_report = args.reports[1] + + old_gene_descs = {} + diff_descs = [] + + with open(old_report, 'r') as f: + old_report_data = json.load(f)["data"] + for genedesc in old_report_data: + old_gene_descs[genedesc["gene_id"]] = genedesc + + with open(new_report, 'r') as f: + new_report_data = json.load(f)["data"] + + for genedesc in new_report_data: + if genedesc["description"] != old_gene_descs[genedesc["gene_id"]]["description"]: + diff_descs.append(genedesc) + + print(json.dumps(diff_descs, indent=True)) + + +if __name__ == '__main__': + main()