diff --git a/dap/algos/spiana.py b/dap/algos/spiana.py index 65cc56b..d68369f 100644 --- a/dap/algos/spiana.py +++ b/dap/algos/spiana.py @@ -3,13 +3,23 @@ def calc_spi_analysis(results): if "spi_limit" not in results: return - if len(results["spi_limit"]) != 2: + spi_limit = results["spi_limit"] + + if len(spi_limit) != 2: + return + + if "roi_intensities_normalised" not in results: + return + + roi_intensities_normalised = results["roi_intensities_normalised"] + + if len(roi_intensities_normalised) < 2: return number_of_spots = 0 - if results["roi_intensities_normalised"][0] >= results["spi_limit"][0]: + if roi_intensities_normalised[0] >= spi_limit[0]: number_of_spots += 25 - if results["roi_intensities_normalised"][1] >= results["spi_limit"][1]: + if roi_intensities_normalised[1] >= spi_limit[1]: number_of_spots += 50 results["number_of_spots"] = number_of_spots diff --git a/dap/worker.py b/dap/worker.py index cb3fb7b..561018d 100644 --- a/dap/worker.py +++ b/dap/worker.py @@ -206,7 +206,7 @@ def work(backend_address, accumulator_host, accumulator_port, visualisation_host # SPI analysis do_spi_analysis = results.get("do_spi_analysis", False) - if do_spi_analysis and "roi_intensities_normalised" in results and len(results["roi_intensities_normalised"]) >= 2: + if do_spi_analysis: calc_spi_analysis(results) # in case all needed parameters are present, make peakfinding