From d171a090982df331c30ca4fb51cc171380e90d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20H=C3=A9risson?= Date: Fri, 20 Dec 2024 13:19:17 +0100 Subject: [PATCH] fix(calibrator): yields in ref file --- icfree/learner/calibrator.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/icfree/learner/calibrator.py b/icfree/learner/calibrator.py index da4704f..d984a10 100644 --- a/icfree/learner/calibrator.py +++ b/icfree/learner/calibrator.py @@ -165,6 +165,11 @@ def calculate_yields_if_missing(data: pd.DataFrame, jove_plus_line: int, jove_mi print("Yield columns already exist. Skipping yield calculation.") return data +def validate_reference_file(ref_data: pd.DataFrame): + """Ensure the reference file has Yield columns.""" + if not any('Yield' in col for col in ref_data.columns): + raise ValueError("Reference file must contain 'Yield' columns. Please ensure the reference file is properly formatted.") + if __name__ == "__main__": # Set up argument parsing parser = argparse.ArgumentParser(description='Calculate yield based on fluorescence data and optionally apply calibration.') @@ -183,12 +188,16 @@ def calculate_yields_if_missing(data: pd.DataFrame, jove_plus_line: int, jove_mi input_data = load_data(args.file) ref_data = load_data(args.ref_file) + # Validate that the reference file has "Yield" columns + try: + validate_reference_file(ref_data) + except ValueError as e: + print(f"Error: {e}") + exit(1) + # Calculate yields if missing in the input file input_data = calculate_yields_if_missing(input_data, args.jove_plus, args.jove_minus) - # Calculate yields if missing in the reference file - ref_data = calculate_yields_if_missing(ref_data, args.jove_plus, args.jove_minus) - # Detect component columns component_columns = detect_component_columns(input_data)