def convert_per_cluster_data(clusters): per_cluster_data_output = {"distributions": [], "country_names": []} per_cluster_data_output_interp = {"distributions": [], "country_names": []} for _, cluster in clusters.items(): display_name = cluster['display_name'] build_name = cluster['build_name'] distribution = [] with open(os.path.join(cluster_tables_path, f"{build_name}_data.json"), "r") as f: json_input = json.load(f) for (country, cluster_data) in json_input.items(): per_cluster_data_output["country_names"] = \ sorted(list(set([country] + per_cluster_data_output["country_names"]))) cluster_data_interp = interpolate_per_cluster_data( cluster_data) update_per_cluster_distribution(cluster_data_interp, country, distribution) per_cluster_data_output["distributions"].append({ 'cluster': display_name, 'distribution': distribution }) return per_cluster_data_output, per_cluster_data_output_interp
def convert_per_cluster_data(clusters): per_cluster_data_output = {"distributions": [], "country_names": []} per_cluster_data_output_interp = {"distributions": [], "country_names": []} for _, cluster in clusters.items(): if cluster["type"] == "do_not_display": continue display_name = cluster["display_name"] build_name = cluster["build_name"] distribution = [] with open(os.path.join(cluster_tables_path, f"{build_name}_data.json"), "r") as f: json_input = json.load(f) for (country, cluster_data) in json_input.items(): per_cluster_data_output["country_names"] = sorted( list( set([country] + per_cluster_data_output["country_names"]))) cluster_data_interp = interpolate_per_cluster_data( cluster_data) update_per_cluster_distribution(cluster_data_interp, country, distribution) distribution.sort(key=lambda d: d['week']) per_cluster_data_output["distributions"].append({ "cluster": display_name, "distribution": distribution }) return per_cluster_data_output, per_cluster_data_output_interp
with open(os.path.join(output_path, "perCountryData.json"), "w") as fh: json.dump(per_country_data_output, fh, indent=2, sort_keys=True) params = { "min_date": min_date, "max_date": max_date, } with open(os.path.join(output_path, "params.json"), "w") as fh: json.dump(params, fh, indent=2, sort_keys=True) per_cluster_data_output, per_cluster_data_output_interp = convert_per_cluster_data( clusters) with open(os.path.join(output_path, "perClusterData.json"), "w") as fh: json.dump(per_cluster_data_output, fh, indent=2, sort_keys=True) clusters = [cluster for _, cluster in clusters.items()] with open(os.path.join(output_path, "clusters.json"), "w") as fh: json.dump({'clusters': clusters}, fh, indent=2, sort_keys=True) mutation_comparison_output = convert_mutation_comparison( mutation_comparison) with open(os.path.join(output_path, "mutationComparison.json"), "w") as fh: json.dump(mutation_comparison_output, fh, indent=2, sort_keys=True) with open(os.path.join(output_path, "countryStyles.json"), "w") as fh: json.dump(country_styles_all, fh, indent=2, sort_keys=True) copyfile( os.path.join(cluster_tables_path, 'perVariant_countries_toPlot.json'), os.path.join(output_path, "countriesToPlot.json"))
def filter_clusters(clusters): return { k: cluster for k, cluster in clusters.items() if should_include(cluster) }