Source code for ewoksbm29.tasks.subtract

import os

from ..models.dahu import SubtractParameters
from .base.dahu_ispyb import DahuJobWithIspybUpload


[docs] class DahuSubtract( DahuJobWithIspybUpload, input_names=["sample_file", "buffer_files"], optional_input_names=["subtract_parameters"], ): """Subtract average integrated buffer signal from the sample signal. In addition to the inputs from `DahuJobWithIspybUpload`: Required inputs: - sample_file (str): Azimuthally integrated SAXS data. - buffer_files (List[str]): Azimuthally integrated SAXS data of the buffer. Optional inputs: - subtract_parameters (dict): Extra subtract parameters (see `SubtractParameters`). """ DAHU_PLUGIN = "bm29.subtractbuffer" DAHU_INPUTS_MODEL = SubtractParameters PROCESS_NAME = "subtract" CONFIG_NAME = "subtract"
[docs] def dahu_parameters_initialize(self) -> dict: dahu_parameters = super().dahu_parameters_initialize() sample_file = self.get_input_value("sample_file") if sample_file: dahu_parameters["sample_file"] = sample_file buffer_files = self.get_input_value("buffer_files") if buffer_files: dahu_parameters["buffer_files"] = buffer_files return dahu_parameters
[docs] def dahu_parameters_finalize(self, dahu_parameters: dict) -> None: sample_file = dahu_parameters.get("sample_file") output_file = dahu_parameters.get("output_file") if sample_file and not output_file: output_file = self.output_filename_from_output_filename(sample_file, ".h5") dahu_parameters["output_file"] = output_file subtract_parameters = self.get_input_value("subtract_parameters") if subtract_parameters: dahu_parameters.update(subtract_parameters) super().dahu_parameters_finalize(dahu_parameters)
[docs] def dahu_parameters_save_path(self, dahu_parameters: SubtractParameters) -> str: if dahu_parameters.output_file: return os.path.splitext(dahu_parameters.output_file)[0] + ".json" return self.output_filename_from_lima_filename( dahu_parameters.sample_file, ".json" )