From 1891033a617f59eabc1f3627d79184ec5b97b827 Mon Sep 17 00:00:00 2001 From: gadorlhiac Date: Mon, 13 May 2024 12:26:07 -0700 Subject: [PATCH] SKL Outline for Phenix EMMA Task --- lute/io/models/sfx_solve.py | 45 +++++++++++++++++++++++++++++++++++++ lute/managed_tasks.py | 5 +++++ 2 files changed, 50 insertions(+) diff --git a/lute/io/models/sfx_solve.py b/lute/io/models/sfx_solve.py index a6435947..5806f97e 100644 --- a/lute/io/models/sfx_solve.py +++ b/lute/io/models/sfx_solve.py @@ -348,3 +348,48 @@ def validate_instructions_file(cls, in_file: str, values: Dict[str, Any]) -> str prefix: str = shelxc_cmd.split()[1] return f"{prefix}_fa" return in_file + + +class RunPhenixEMMA(ThirdPartyParameters): + """Phenix's Euclidian Model Matching. + + Superimposes two structure solutions to derive a consensus. + + More information is availble at: + https://phenix-online.org/documentation/reference/emma.html + """ + + executable: str = Field( + "/sdf/group/lcls/ds/tools/phenix/phenix-1.16-3549/build/bin/phenix.emma", + description="Phenix EMMA program for model comparison.", + flag_type="", + ) + unit_cell: Optional[str] = Field( + description=( + "Unit cell parameters listed as a comma-separated list.\n" + "Listed as: a,b,c,al,be,ga" + ), + flag_type="--", + ) + space_group: Optional[str] = Field( + description="Space group symbol, e.g. P212121.", + flag_type="--", + ) + symmetry_file: Optional[str] = Field( + description="External file with symmetry information.", + rename_param="symmetry", + flag_type="--", + ) + tolerance: Optional[float] = Field( + description="Match tolerance for comparison.", flag_type="--" + ) + diffraction_index_equivalent: Optional[bool] = Field( + description="Use only if models are diffraction-index equivalent.", + flag_type="--", + ) + reference_coords: str = Field( + "", description="Reference coordinates to compare with.", flag_type="" + ) + other_coords: str = Field( + "", description="Other coordinates to compare with.", flag_type="" + ) diff --git a/lute/managed_tasks.py b/lute/managed_tasks.py index 4764a0c7..28096132 100644 --- a/lute/managed_tasks.py +++ b/lute/managed_tasks.py @@ -40,3 +40,8 @@ SHELXDEditor: Executor = Executor("EditSHELXDInstructions") SHELXDRunner: Executor = Executor("RunSHELXD") SHELXDRunner.shell_source("/sdf/group/lcls/ds/tools/ccp4-8.0/bin/ccp4.setup-sh") + +PhenixEMMARunner: Executor = Executor("RunPhenixEMMA") +PhenixEMMARunner.shell_source( + "/sdf/group/lcls/ds/tools/phenix/phenix-1.16-3549/phenix_env.sh" +)