diff --git a/CHANGELOG.md b/CHANGELOG.md index c53fbb974..78091e63e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Fix for reflection CIF files containing both merged and unmerged data - New Pointless options to remove lattice centering reflections - Fix to Servalcat report type handling +- Added option to do Tortoize Rama-Z calculation in Refmac & Servalcat pipelines ## [2.4.1] - 2025-10-07 diff --git a/pipelines/prosmart_refmac/script/prosmart_refmac.def.xml b/pipelines/prosmart_refmac/script/prosmart_refmac.def.xml index 076cdadc6..076c6f48c 100644 --- a/pipelines/prosmart_refmac/script/prosmart_refmac.def.xml +++ b/pipelines/prosmart_refmac/script/prosmart_refmac.def.xml @@ -474,6 +474,12 @@ True + + CBoolean + + False + + CBoolean diff --git a/pipelines/prosmart_refmac/script/prosmart_refmac.py b/pipelines/prosmart_refmac/script/prosmart_refmac.py index 7b02e2986..42197e246 100644 --- a/pipelines/prosmart_refmac/script/prosmart_refmac.py +++ b/pipelines/prosmart_refmac/script/prosmart_refmac.py @@ -639,11 +639,15 @@ def finishUp(self, refmacJob): if hasattr(self.container.controlParameters,"VALIDATE_RAMACHANDRAN"): validate_ramachandran = self.container.controlParameters.VALIDATE_RAMACHANDRAN + validate_tortoize = False + if hasattr(self.container.controlParameters,"VALIDATE_TORTOIZE"): + validate_tortoize = self.container.controlParameters.VALIDATE_TORTOIZE + validate_molprobity = False if hasattr(self.container.controlParameters,"VALIDATE_MOLPROBITY"): validate_molprobity = self.container.controlParameters.VALIDATE_MOLPROBITY - if validate_baverage or validate_molprobity or validate_ramachandran or validate_iris: + if validate_baverage or validate_molprobity or validate_ramachandran or validate_tortoize or validate_iris: xml_validation = etree.SubElement(self.xmlroot,"Validation") xml_validation_status = etree.SubElement(xml_validation,"Success") try: @@ -670,6 +674,7 @@ def finishUp(self, refmacJob): self.validate.container.controlParameters.DO_IRIS = validate_iris self.validate.container.controlParameters.DO_BFACT = validate_baverage self.validate.container.controlParameters.DO_RAMA = validate_ramachandran + self.validate.container.controlParameters.DO_TORTOIZE = validate_tortoize self.validate.container.controlParameters.DO_MOLPROBITY = validate_molprobity self.validate.doAsync = False diff --git a/pipelines/prosmart_refmac/script/prosmart_refmac_gui.py b/pipelines/prosmart_refmac/script/prosmart_refmac_gui.py index 1c9e438b2..04245bf77 100644 --- a/pipelines/prosmart_refmac/script/prosmart_refmac_gui.py +++ b/pipelines/prosmart_refmac/script/prosmart_refmac_gui.py @@ -533,9 +533,10 @@ def drawOutput( self ): self.createLine( [ 'subtitle', 'Validation and Analysis' ] ) self.openSubFrame(frame=[True], toggleFunction=[self.ToggleRigidModeOff,['REFINEMENT_MODE']]) - self.createLine( [ 'widget', 'VALIDATE_IRIS', 'label', 'Generate Iris report' ] ) + self.createLine( [ 'widget', 'VALIDATE_IRIS', 'label', 'Generate Iris validation report' ] ) self.createLine( [ 'widget', 'VALIDATE_BAVERAGE', 'label', 'Analyse B-factor distributions' ] ) self.createLine( [ 'widget', 'VALIDATE_RAMACHANDRAN', 'label', 'Generate Ramachandran plots' ] ) + self.createLine( [ 'widget', 'VALIDATE_TORTOIZE', 'label', 'Calculate Rama-Z score using tortoize' ] ) self.createLine( [ 'widget', 'VALIDATE_MOLPROBITY', 'label', 'Run MolProbity to analyse geometry' ] ) #self.createLine( [ 'widget', 'RUN_MOLPROBITY', 'label', 'Run standalone MolProbity (to be deprecated)' ] ) self.closeSubFrame() diff --git a/pipelines/servalcat_pipe/script/servalcat_pipe.def.xml b/pipelines/servalcat_pipe/script/servalcat_pipe.def.xml index 395f370c2..61de86088 100644 --- a/pipelines/servalcat_pipe/script/servalcat_pipe.def.xml +++ b/pipelines/servalcat_pipe/script/servalcat_pipe.def.xml @@ -584,6 +584,12 @@ True + + CBoolean + + True + + CBoolean diff --git a/pipelines/servalcat_pipe/script/servalcat_pipe.py b/pipelines/servalcat_pipe/script/servalcat_pipe.py index ed639b4db..36a277737 100644 --- a/pipelines/servalcat_pipe/script/servalcat_pipe.py +++ b/pipelines/servalcat_pipe/script/servalcat_pipe.py @@ -331,11 +331,15 @@ def multimericValidation(self): if hasattr(self.container.controlParameters,"VALIDATE_RAMACHANDRAN"): validate_ramachandran = self.container.controlParameters.VALIDATE_RAMACHANDRAN + validate_tortoize = False + if hasattr(self.container.controlParameters,"VALIDATE_TORTOIZE"): + validate_tortoize = self.container.controlParameters.VALIDATE_TORTOIZE + validate_molprobity = False if hasattr(self.container.controlParameters,"VALIDATE_MOLPROBITY"): validate_molprobity = self.container.controlParameters.VALIDATE_MOLPROBITY - if validate_iris or validate_baverage or validate_molprobity or validate_ramachandran: + if validate_iris or validate_baverage or validate_molprobity or validate_ramachandran or validate_tortoize: self.validate = self.makePluginObject('validate_protein') self.validate.container.inputData.XYZIN_2.set(self.container.outputData.CIFFILE) self.validate.container.inputData.XYZIN_1.set(self.container.inputData.XYZIN) @@ -355,6 +359,7 @@ def multimericValidation(self): self.validate.container.controlParameters.DO_IRIS.set(validate_iris) self.validate.container.controlParameters.DO_BFACT.set(validate_baverage) self.validate.container.controlParameters.DO_RAMA.set(validate_ramachandran) + self.validate.container.controlParameters.DO_TORTOIZE.set(validate_tortoize) self.validate.container.controlParameters.DO_MOLPROBITY.set(validate_molprobity) self.validate.doAsync = False diff --git a/pipelines/servalcat_pipe/script/servalcat_pipe_gui.py b/pipelines/servalcat_pipe/script/servalcat_pipe_gui.py index 8cbf76b9a..c132e1a28 100644 --- a/pipelines/servalcat_pipe/script/servalcat_pipe_gui.py +++ b/pipelines/servalcat_pipe/script/servalcat_pipe_gui.py @@ -459,6 +459,7 @@ def drawAdvanced( self ): self.openSubFrame(frame=[True]) self.createLine( [ 'widget', 'VALIDATE_IRIS', 'label', 'Generate Iris validation report' ] ) self.createLine( [ 'widget', 'VALIDATE_RAMACHANDRAN', 'label', 'Generate Ramachandran plots' ] ) + self.createLine( [ 'widget', 'VALIDATE_TORTOIZE', 'label', 'Calculate Rama-Z score using tortoize' ] ) self.createLine( [ 'widget', 'VALIDATE_MOLPROBITY', 'label', 'Run MolProbity to analyse geometry' ] ) self.createLine( [ 'widget', 'RUN_ADP_ANALYSIS', 'label', 'Run ADP analysis' ] )