From 2caf4c86ec509d00029740525a18a84ed0239fd7 Mon Sep 17 00:00:00 2001 From: Alistair Curd Date: Sun, 31 May 2026 10:26:39 +0100 Subject: [PATCH] Remove redundant variable from config file. --- perpl_models_config.yaml | 10 ------ .../modelling/gen_distance_model_configs.py | 32 ++++++++++++------- src/perpl/run_distance_modelling.py | 6 +++- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/perpl_models_config.yaml b/perpl_models_config.yaml index d8155a1..edab6ba 100644 --- a/perpl_models_config.yaml +++ b/perpl_models_config.yaml @@ -13,16 +13,6 @@ model_direction: xx -# Dimensionality of the space being modelled -## 1 for distances along a single direction -## 2 for distances across a plane -## Not yet implemented for KDE: 3 for distances in a 3D volume -# -## Used to calculate different KDE kernel shapes -## appropriate to different dimensionality -dimension: [1] - - # Limits for distance components in x, y, and z ## ## One use is to restrict modelling to the use of pairs of points diff --git a/src/perpl/modelling/gen_distance_model_configs.py b/src/perpl/modelling/gen_distance_model_configs.py index be0e8e5..bee268c 100644 --- a/src/perpl/modelling/gen_distance_model_configs.py +++ b/src/perpl/modelling/gen_distance_model_configs.py @@ -1,6 +1,7 @@ import copy import datetime import os +import sys from itertools import product import yaml @@ -24,7 +25,6 @@ def gen_configs(config_file, suffix=None): """ # load in configuration - # with open(os.path.join(config_folder, "config.yaml"), "r") as ymlfile: with open(config_file, "r") as ymlfile: config = yaml.safe_load(ymlfile) @@ -44,7 +44,16 @@ def gen_configs(config_file, suffix=None): yaml.dump(config, outfile) # Load in params list - dimension = config["dimension"] + model_direction = config["model_direction"] + if model_direction == "xyz": + dimension = 3 + elif model_direction in ("xy", "xz", "yz"): + dimension = 2 + elif model_direction in ("xx", "yy", "zz"): + dimension = 1 + else: + print(f"model_direction in config file ({model_direction}) is invalid.") + sys.exit(1) backgrounds = config["background"] n_peaks = config["n_peaks"] peak_ampss = config["peak_amps"] @@ -79,7 +88,6 @@ def gen_configs(config_file, suffix=None): # generate all possible model configurations for index, params in enumerate( product( - dimension, backgrounds, n_peaks, peak_ampss, @@ -95,15 +103,15 @@ def gen_configs(config_file, suffix=None): params_upper_copy = copy.deepcopy(params_upper) model_config = { - "dimension": params[0], - "background": params[1], - "n_peaks": params[2], - "peak_amps": params[3], - "dist_ratios": params[4], + "dimension": dimension, + "background": params[0], + "n_peaks": params[1], + "peak_amps": params[2], + "dist_ratios": params[3], "custom_ratios_list": custom_ratios_list, - "repeats": params[5], - "offset": params[6], - "normalise": params[7], + "repeats": params[4], + "offset": params[5], + "normalise": params[6], "params_initial": params_initial_copy, "params_lower": params_lower_copy, "params_upper": params_upper_copy, @@ -119,7 +127,7 @@ def gen_configs(config_file, suffix=None): [params_initial_copy, params_lower_copy, params_upper_copy], strict=True, ): - idx = dist_ratios.index(params[4]) + idx = dist_ratios.index(params[3]) model_config[name]["characteristic_distance_1"] = file[ "characteristic_distance_1" ][idx] diff --git a/src/perpl/run_distance_modelling.py b/src/perpl/run_distance_modelling.py index 6f491ee..bd2c2a9 100644 --- a/src/perpl/run_distance_modelling.py +++ b/src/perpl/run_distance_modelling.py @@ -247,7 +247,7 @@ def main(argv=None): if not (args.fit_histograms or args.fit_kdes or args.no_fitting): parser.error("Must specify at least one of" " --fh, --fkde or -nofit") - print(f"Fit hists: {args.fit_histograms}") + print(f"Fit histograms: {args.fit_histograms}") print(f"Fit KDEs: {args.fit_kdes}") config_file = args.config_file @@ -266,6 +266,10 @@ def main(argv=None): with open(config_file, "r") as ymlfile: config = yaml.safe_load(ymlfile) model_direction = config["model_direction"] + if model_direction not in ("xx", "yy", "zz", "xy", "xz", "yz", "xyz"): + print(f"model_direction in config file ({model_direction}) is invalid.") + print("Exiting.") + sys.exit(1) limits = config["limits"] fitlength_lst = config["fitlength"]