From 1ebb80c286087133195cc0efb621a7fd01f11be4 Mon Sep 17 00:00:00 2001 From: amyjaynethompson <52806925+amyjaynethompson@users.noreply.github.com> Date: Tue, 15 Sep 2026 10:12:49 +0100 Subject: [PATCH 1/2] add small molecule as possible reprocessing parameter --- src/dlstbx/services/trigger.py | 3 +++ src/dlstbx/wrapper/xia2_multiplex.py | 6 ++++++ src/dlstbx/wrapper/xia2_multiplex_filtering.py | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/src/dlstbx/services/trigger.py b/src/dlstbx/services/trigger.py index bfe986ea4..8c6f31c60 100644 --- a/src/dlstbx/services/trigger.py +++ b/src/dlstbx/services/trigger.py @@ -250,6 +250,7 @@ class MultiplexReprocessingParameters(pydantic.BaseModel): dcid: int = pydantic.Field(gt=0) wavelength: Optional[float] = pydantic.Field(default=None, gt=0) spacegroup: Optional[str] = None + small_molecule: Optional[bool] = None automatic: Optional[bool] = False comment: Optional[str] = None wavelength_tolerance: float = pydantic.Field(default=1e-4, ge=0) @@ -2311,6 +2312,7 @@ def trigger_multiplex_reprocessing( - dcid: the dataCollectionId for the given data collection - wavelength: wavelength of data collection - spacegroup: space group for processing + - small_molecule: whether or not the data should be processed using small molecule space groups / shelx output files - wavelength_tolerance: tolerance for selecting datasets with same wavelength - comment: a comment to be stored in the ProcessingJob.comment field - automatic: boolean value passed to ProcessingJob.automatic field @@ -2388,6 +2390,7 @@ def trigger_multiplex_reprocessing( "cchalf_filtering_method", "image_group_size", "sd_cutoff", + "small_molecule", ) for param_name, param_value in parameters: diff --git a/src/dlstbx/wrapper/xia2_multiplex.py b/src/dlstbx/wrapper/xia2_multiplex.py index ba084e463..f25fa43ae 100644 --- a/src/dlstbx/wrapper/xia2_multiplex.py +++ b/src/dlstbx/wrapper/xia2_multiplex.py @@ -295,9 +295,13 @@ def is_final_result(final_file: pathlib.Path) -> bool: ".sca": None, ".bib": "log", ".phil": "log", + ".hkl": None, + ".ins": None, } keep = { "scaled.mtz": "result", + "scaled.ins": "result", + "scaled.hkl": "result", "scaled_unmerged.mtz": "result", "scaled.expt": "result", "scaled.refl": "result", @@ -484,6 +488,8 @@ def is_final_result(final_file: pathlib.Path) -> bool: "scaled.mtz", "xia2.multiplex.html", "xia2.multiplex.log", + "scaled.hkl", + "scaled.ins", ) ) else 2 diff --git a/src/dlstbx/wrapper/xia2_multiplex_filtering.py b/src/dlstbx/wrapper/xia2_multiplex_filtering.py index 83baff961..76060deb5 100644 --- a/src/dlstbx/wrapper/xia2_multiplex_filtering.py +++ b/src/dlstbx/wrapper/xia2_multiplex_filtering.py @@ -141,6 +141,7 @@ def construct_commandline(self, params, multiplex_directory): "spacegroup", "anomalous", "absorption_level", + "small_molecule", # This will be taken from the parent phil } translation = { "d_min": "resolution.d_min", @@ -256,9 +257,13 @@ def is_final_result(final_file: pathlib.Path) -> bool: ".mtz": None, ".html": "log", ".sca": None, + ".ins": None, + ".hkl": None, } keep = { "filtered.mtz": "result", + "filtered.ins": "result", + "filtered.hkl": "result", "filtered_unmerged.mtz": "result", "filtered.expt": "result", "filtered.refl": "result", @@ -392,6 +397,8 @@ def is_final_result(final_file: pathlib.Path) -> bool: "filtered.mtz", "xia2.multiplex_filtering.html", "xia2.multiplex_filtering.log", + "filtered.ins", + "filtered.hkl", ) ) else 2 From 4c3175229753bac29d63beeee7018976404bb3a4 Mon Sep 17 00:00:00 2001 From: amyjaynethompson <52806925+amyjaynethompson@users.noreply.github.com> Date: Fri, 23 Oct 2026 13:48:49 +0100 Subject: [PATCH 2/2] add CIF as well (capability recently merged into xia2) --- src/dlstbx/wrapper/xia2_multiplex.py | 3 +++ src/dlstbx/wrapper/xia2_multiplex_filtering.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/dlstbx/wrapper/xia2_multiplex.py b/src/dlstbx/wrapper/xia2_multiplex.py index f25fa43ae..7bdd973d0 100644 --- a/src/dlstbx/wrapper/xia2_multiplex.py +++ b/src/dlstbx/wrapper/xia2_multiplex.py @@ -297,11 +297,13 @@ def is_final_result(final_file: pathlib.Path) -> bool: ".phil": "log", ".hkl": None, ".ins": None, + ".cif": None, } keep = { "scaled.mtz": "result", "scaled.ins": "result", "scaled.hkl": "result", + "scaled.cif": "result", "scaled_unmerged.mtz": "result", "scaled.expt": "result", "scaled.refl": "result", @@ -490,6 +492,7 @@ def is_final_result(final_file: pathlib.Path) -> bool: "xia2.multiplex.log", "scaled.hkl", "scaled.ins", + "scaled.cif", ) ) else 2 diff --git a/src/dlstbx/wrapper/xia2_multiplex_filtering.py b/src/dlstbx/wrapper/xia2_multiplex_filtering.py index 76060deb5..12855f5a3 100644 --- a/src/dlstbx/wrapper/xia2_multiplex_filtering.py +++ b/src/dlstbx/wrapper/xia2_multiplex_filtering.py @@ -259,11 +259,13 @@ def is_final_result(final_file: pathlib.Path) -> bool: ".sca": None, ".ins": None, ".hkl": None, + ".cif": None, } keep = { "filtered.mtz": "result", "filtered.ins": "result", "filtered.hkl": "result", + "filtered.cif": "result", "filtered_unmerged.mtz": "result", "filtered.expt": "result", "filtered.refl": "result", @@ -399,6 +401,7 @@ def is_final_result(final_file: pathlib.Path) -> bool: "xia2.multiplex_filtering.log", "filtered.ins", "filtered.hkl", + "filtered.cif", ) ) else 2