Source code for ewoksbm29.tasks.hplc_summary
import os
from typing import Optional
from ..models.dahu import HplcSummaryParameters
from .base.dahu_ispyb import DahuJobWithIspybUpload
[docs]
class DahuHplcSummary(
DahuJobWithIspybUpload,
input_names=["integrated_files"],
optional_input_names=["hplc_summary_parameters"],
):
"""Rebuild the complete chromatogram with basic analysis.
In addition to the inputs from `DahuJobWithIspybUpload`:
Required inputs:
- integrated_files (List[str]): Azimuthally integrated SAXS data.
Optional inputs:
- hplc_summary_parameters (dict): Extra subtract parameters (see `HplcSummaryParameters`).
"""
DAHU_PLUGIN = "bm29.hplc"
DAHU_INPUTS_MODEL = HplcSummaryParameters
PROCESS_NAME = "hplc"
CONFIG_NAME = "hplc-summary"
[docs]
def dahu_parameters_initialize(self) -> dict:
dahu_parameters = super().dahu_parameters_initialize()
integrated_files = self.get_input_value("integrated_files")
if integrated_files:
dahu_parameters["integrated_files"] = integrated_files
return dahu_parameters
[docs]
def dahu_parameters_finalize(self, dahu_parameters: dict) -> None:
integrated_files = self.get_input_value("integrated_files")
output_file = dahu_parameters.get("output_file")
if integrated_files and not output_file:
_, ext = os.path.splitext(integrated_files[0])
output_filename = (
os.path.commonprefix(integrated_files) + ext
) # does not exist
output_file = self.output_filename_from_output_filename(
output_filename, ".h5"
)
dahu_parameters["output_file"] = output_file
hplc_summary_parameters = self.get_input_value("hplc_summary_parameters")
if hplc_summary_parameters:
dahu_parameters.update(hplc_summary_parameters)
super().dahu_parameters_finalize(dahu_parameters)
[docs]
def dahu_parameters_save_path(
self, dahu_parameters: HplcSummaryParameters
) -> Optional[str]:
if dahu_parameters.output_file:
return os.path.splitext(dahu_parameters.output_file)[0] + ".json"
if dahu_parameters.integrated_files:
return self.output_filename_from_output_filename(
dahu_parameters.integrated_files[0], ".json"
)