def testSetDataModelInput(self): """ A test for whether we can obtain the expected XML by setting a certain input for the plugin. """ edPluginISPyB = self.createPlugin() xsPluginItemISPyB = self.getPluginConfiguration(os.path.join(self.getPluginTestsDataHome(), "XSConfiguration.xml")) edPluginISPyB.setConfiguration(xsPluginItemISPyB) edPluginISPyB.configure() # Create XSDataISPyB objects xsDataISPyBImage = XSDataISPyBImage() xsDataISPyBImage.setFileName(XSDataString("test.img")) xsDataISPyBImage.setFileLocation(XSDataString("/tmp")) xsDataISPyBScreening = XSDataISPyBScreening() xsDataISPyBScreening.setProgramVersion(XSDataString("EDNA Prototype")) xsDataISPyBScreeningInput = XSDataISPyBScreeningInput() xsDataISPyBScreeningInput.setBeamX(XSDataDouble(10.4)) xsDataISPyBScreeningInput.setBeamY(XSDataDouble(2.31)) xsDataISPyBScreeningInput.setRmsErrorLimits(XSDataDouble(0.8)) xsDataISPyBScreeningInput.setMinimumFractionIndexed(XSDataDouble(0.4)) xsDataISPyBScreeningInput.setMaximumFractionRejected(XSDataDouble(0.45)) xsDataISPyBScreeningInput.setMinimumSignalToNoise(XSDataDouble(0.56)) xsDataISPyBScreeningOutput = XSDataISPyBScreeningOutput() xsDataISPyBScreeningOutput.setStatusDescription(XSDataString("It's just fine.")) xsDataISPyBScreeningOutput.setMosaicity(XSDataDouble(0.25)) xsDataISPyBScreeningOutput.setBeamShiftX(XSDataDouble (0.141)) xsDataISPyBScreeningOutput.setBeamShiftY(XSDataDouble (0.156)) xsDataISPyBScreeningOutputLattice = XSDataISPyBScreeningOutputLattice() xsDataISPyBScreeningOutputLattice.setSpaceGroup(XSDataString("P222")) xsDataISPyBScreeningStrategy = XSDataISPyBScreeningStrategy() xsDataISPyBScreeningStrategy.setPhiStart(XSDataDouble(0)) xsDataISPyBScreeningStrategy.setPhiEnd(XSDataDouble(20)) xsDataISPyBScreeningStrategy.setRotation(XSDataDouble(1)) xsDataISPyBScreeningStrategy.setProgram(XSDataString("EDNA")) xsDataISPyBScreeningStrategy.setAnomalous(XSDataBoolean(1)) xsDataISPyBScreeningStrategyWedge = XSDataISPyBScreeningStrategyWedge() xsDataISPyBScreeningStrategyWedge.setWedgeNumber(XSDataInteger(1)) xsDataISPyBScreeningStrategyWedge.setResolution(XSDataDouble(2.1)) xsDataISPyBScreeningStrategyWedge.setCompleteness(XSDataDouble(90)) xsDataISPyBScreeningStrategyWedge.setMultiplicity(XSDataDouble(1.5)) xsDataISPyBScreeningStrategyWedge.setDoseTotal(XSDataDouble(40.5)) xsDataISPyBScreeningStrategyWedge.setNumberOfImages(XSDataInteger(130)) xsDataISPyBScreeningStrategySubWedge = XSDataISPyBScreeningStrategySubWedge() xsDataISPyBScreeningStrategySubWedge.setSubWedgeNumber(XSDataInteger(1)) xsDataISPyBScreeningStrategySubWedge.setRotationAxis(XSDataString("Omega")) xsDataISPyBScreeningStrategySubWedge.setAxisStart(XSDataDouble(0.0)) xsDataISPyBScreeningStrategySubWedge.setAxisEnd(XSDataDouble(90.0)) xsDataISPyBScreeningStrategySubWedge.setExposureTime(XSDataDouble(0.5)) xsDataISPyBScreeningStrategySubWedge.setTransmission(XSDataDouble(100.0)) xsDataISPyBScreeningStrategySubWedge.setNumberOfImages(XSDataInteger(130)) xsDataISPyBScreeningStrategyWedgeContainer = XSDataISPyBScreeningStrategyWedgeContainer() xsDataISPyBScreeningStrategyWedgeContainer.setScreeningStrategyWedge(xsDataISPyBScreeningStrategyWedge) xsDataISPyBScreeningStrategyWedgeContainer.getScreeningStrategySubWedge().append(xsDataISPyBScreeningStrategySubWedge) xsDataISPyBScreeningStrategyContainer = XSDataISPyBScreeningStrategyContainer() xsDataISPyBScreeningStrategyContainer.setScreeningStrategy(xsDataISPyBScreeningStrategy) xsDataISPyBScreeningStrategyContainer.getScreeningStrategyWedgeContainer().append(xsDataISPyBScreeningStrategyWedgeContainer) xsDataISPyBScreeningOutputContainer = XSDataISPyBScreeningOutputContainer() xsDataISPyBScreeningOutputContainer.setScreeningOutput(xsDataISPyBScreeningOutput) xsDataISPyBScreeningOutputContainer.getScreeningOutputLattice().append(xsDataISPyBScreeningOutputLattice) xsDataISPyBScreeningOutputContainer.getScreeningStrategyContainer().append(xsDataISPyBScreeningStrategyContainer) xsDataISPyBScreeningRank = XSDataISPyBScreeningRank() xsDataISPyBScreeningRank.setRankValue(XSDataDouble(1.4)) xsDataISPyBScreeningRank.setRankInformation(XSDataString("This is the only one")) xsDataISPyBScreeningRankSet = XSDataISPyBScreeningRankSet() xsDataISPyBScreeningRankSet.setRankEngine(XSDataString("ISPyB")) xsDataISPyBScreeningFile = XSDataISPyBScreeningFile() xsDataISPyBScreeningFile.setFileType(XSDataString("log")) xsDataISPyBScreeningFile.setDescription(XSDataString("Output log file")) # Write XSDataISPyB objects to files xsDataISPyBScreening.outputFile(self.__strObtainedScreening) xsDataISPyBScreeningInput.outputFile(self.__strObtainedScreeningInput) xsDataISPyBScreeningOutputContainer.outputFile(self.__strObtainedScreeningOutputContainer) xsDataISPyBScreeningRank.outputFile(self.__strObtainedScreeningRank) xsDataISPyBScreeningRankSet.outputFile(self.__strObtainedScreeningRankSet) xsDataISPyBScreeningFile.outputFile(self.__strObtainedScreeningFile) # Compare screening strInputScreeningExpected = self.readAndParseFile(self.__strReferenceInputScreening) xsDataScreeningExpected = XSDataInputISPyB.parseString(strInputScreeningExpected) strXMLScreeningExpected = xsDataScreeningExpected.marshal() strScreeningObtained = self.readAndParseFile(self.__strObtainedScreening) xsDataScreeningObtained = XSDataInputISPyB.parseString(strScreeningObtained) strXMLScreeningObtained = xsDataScreeningObtained.marshal() EDAssert.equal(strXMLScreeningExpected, strXMLScreeningObtained) #Compare screeningInput strInputScreeningInputExpected = self.readAndParseFile(self.__strReferenceInputScreeningInput) xsDataScreeningInputExpected = XSDataInputISPyB.parseString(strInputScreeningInputExpected) strXMLScreeningInputExpected = xsDataScreeningInputExpected.marshal() strScreeningInputObtained = self.readAndParseFile(self.__strObtainedScreeningInput) xsDataScreeningInputObtained = XSDataInputISPyB.parseString(strScreeningInputObtained) strXMLScreeningInputObtained = xsDataScreeningInputObtained.marshal() EDAssert.equal(strXMLScreeningInputExpected, strXMLScreeningInputObtained) #Compare screeningOutputContainer strInputScreeningOutputContainerExpected = self.readAndParseFile(self.__strReferenceInputScreeningOutputContainer) xsDataScreeningOutputContainerExpected = XSDataInputISPyB.parseString(strInputScreeningOutputContainerExpected) strXMLScreeningOutputContainerExpected = xsDataScreeningOutputContainerExpected.marshal() strScreeningOutputContainerObtained = self.readAndParseFile(self.__strObtainedScreeningOutputContainer) xsDataScreeningOutputContainerObtained = XSDataInputISPyB.parseString(strScreeningOutputContainerObtained) strXMLScreeningOutputContainerObtained = xsDataScreeningOutputContainerObtained.marshal() EDAssert.equal(strXMLScreeningOutputContainerExpected, strXMLScreeningOutputContainerObtained) #Compare screeningRank strInputScreeningRankExpected = self.readAndParseFile(self.__strReferenceInputScreeningRank) xsDataScreeningRankExpected = XSDataInputISPyB.parseString(strInputScreeningRankExpected) strXMLScreeningRankExpected = xsDataScreeningRankExpected.marshal() strScreeningRankObtained = self.readAndParseFile(self.__strObtainedScreeningRank) xsDataScreeningRankObtained = XSDataInputISPyB.parseString(strScreeningRankObtained) strXMLScreeningRankObtained = xsDataScreeningRankObtained.marshal() EDAssert.equal(strXMLScreeningRankExpected, strXMLScreeningRankObtained) #Compare screeningRankSet strInputScreeningRankSetExpected = self.readAndParseFile(self.__strReferenceInputScreeningRankSet) xsDataScreeningRankSetExpected = XSDataInputISPyB.parseString(strInputScreeningRankSetExpected) strXMLScreeningRankSetExpected = xsDataScreeningRankSetExpected.marshal() strScreeningRankSetObtained = self.readAndParseFile(self.__strObtainedScreeningRankSet) xsDataScreeningRankSetObtained = XSDataInputISPyB.parseString(strScreeningRankSetObtained) strXMLScreeningRankSetObtained = xsDataScreeningRankSetObtained.marshal() EDAssert.equal(strXMLScreeningRankSetExpected, strXMLScreeningRankSetObtained) #Compare screeningFile strInputScreeningFileExpected = self.readAndParseFile(self.__strReferenceInputScreeningFile) xsDataScreeningFileExpected = XSDataInputISPyB.parseString(strInputScreeningFileExpected) strXMLScreeningFileExpected = xsDataScreeningFileExpected.marshal() strScreeningFileObtained = self.readAndParseFile(self.__strObtainedScreeningFile) xsDataScreeningFileObtained = XSDataInputISPyB.parseString(strScreeningFileObtained) strXMLScreeningFileObtained = xsDataScreeningFileObtained.marshal() EDAssert.equal(strXMLScreeningFileExpected, strXMLScreeningFileObtained) self.cleanUp(edPluginISPyB)
def generateXSDataISPyBScreeningOutputContainer(_xsDataInputControlISPyB, _strStatusMessage=None): """ """ EDFactoryPluginStatic.loadModule("XSDataISPyBv1_2") from XSDataISPyBv1_2 import XSDataISPyBScreeningOutputContainer from XSDataISPyBv1_2 import XSDataISPyBScreeningOutput from XSDataISPyBv1_2 import XSDataISPyBScreeningOutputLattice from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategyContainer from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategyWedgeContainer from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategy from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategyWedge from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategySubWedge from XSDataISPyBv1_2 import XSDataDouble from XSDataISPyBv1_2 import XSDataInteger from XSDataISPyBv1_2 import XSDataBoolean from XSDataISPyBv1_2 import XSDataString import math EDFactoryPluginStatic.loadModule("EDHandlerXSDataCommon") # Needed for getting kappa and phi from EDHandlerXSDataCommon import EDHandlerXSDataCommon # xsDataISPyBScreeningOutputContainer = XSDataISPyBScreeningOutputContainer() xsDataISPyBScreeningOutput = XSDataISPyBScreeningOutput() xsDataISPyBScreeningOutputContainer.setScreeningOutput(xsDataISPyBScreeningOutput) xsDataResultCharacterisationv2_0 = _xsDataInputControlISPyB.getCharacterisationResult() xsDataResultCharacterisation = xsDataResultCharacterisationv2_0.getMxv1ResultCharacterisation() xsDataResultStrategySuggested = xsDataResultCharacterisationv2_0.getSuggestedStrategy() # Determine whether anomalous data: bAnomalousData = None #xsDataCollection = xsDataResultCharacterisation.getDataCollection() xsDataCollection = EDHandlerXSDataISPyBv2_0.getDataCollectionFromSuggestedStrategy(xsDataResultCharacterisationv2_0) if (xsDataCollection is not None): xsDataDiffractionPlan = xsDataCollection.getDiffractionPlan() if (xsDataDiffractionPlan is not None): if (xsDataDiffractionPlan.getAnomalousData() is not None): bAnomalousData = xsDataDiffractionPlan.getAnomalousData().getValue() # Indexing information (populate xsDataISPyBScreeningOutputContainer, xsDataIPSyBScreeningOutput and xsDataISPyBScreeningOutputLattice) bSuccessfulIndexing = False xsDataIndexingResult = xsDataResultCharacterisation.getIndexingResult() if (xsDataIndexingResult is not None): xsDataIndexingSolutionSelected = xsDataIndexingResult.getSelectedSolution() if (xsDataIndexingSolutionSelected is not None): bSuccessfulIndexing = True xsDataStatisticsIndexing = xsDataIndexingSolutionSelected.getStatistics() if (xsDataStatisticsIndexing is not None): fBeamPositionShiftX = xsDataStatisticsIndexing.getBeamPositionShiftX().getValue() fBeamPositionShiftY = xsDataStatisticsIndexing.getBeamPositionShiftY().getValue() xsDataISPyBScreeningOutput.setBeamShiftX(XSDataDouble(fBeamPositionShiftX)) xsDataISPyBScreeningOutput.setBeamShiftY(XSDataDouble(fBeamPositionShiftY)) fSpotDeviationAngular = xsDataStatisticsIndexing.getSpotDeviationAngular().getValue() fSpotDeviationPositional = xsDataStatisticsIndexing.getSpotDeviationPositional().getValue() xsDataISPyBScreeningOutput.setSpotDeviationR(XSDataDouble(fSpotDeviationPositional)) xsDataISPyBScreeningOutput.setSpotDeviationTheta(XSDataDouble(fSpotDeviationAngular)) if ((xsDataStatisticsIndexing.getSpotsTotal() is not None) and (xsDataStatisticsIndexing.getSpotsUsed is not None)): iSpotsTotal = xsDataStatisticsIndexing.getSpotsTotal().getValue() iSpotsUsed = xsDataStatisticsIndexing.getSpotsUsed().getValue() xsDataISPyBScreeningOutput.setNumSpotsFound(XSDataInteger(iSpotsTotal)) xsDataISPyBScreeningOutput.setNumSpotsUsed(XSDataInteger(iSpotsUsed)) xsDataISPyBScreeningOutput.setNumSpotsRejected(XSDataInteger(iSpotsTotal - iSpotsUsed)) xsDataCrystal = xsDataIndexingSolutionSelected.getCrystal() xsDataISPyBScreeningOutput.setMosaicityEstimated(XSDataBoolean(False)) if (xsDataCrystal is not None): if (xsDataCrystal.getMosaicity() is not None): fMosaicity = xsDataCrystal.getMosaicity().getValue() xsDataISPyBScreeningOutput.setMosaicity(XSDataDouble(fMosaicity)) xsDataISPyBScreeningOutput.setMosaicityEstimated(XSDataBoolean(True)) xsDataCell = xsDataCrystal.getCell() if (xsDataCell is not None): fLength_a = xsDataCell.getLength_a().getValue() fLength_b = xsDataCell.getLength_b().getValue() fLength_c = xsDataCell.getLength_c().getValue() fAngle_alpha = xsDataCell.getAngle_alpha().getValue() fAngle_beta = xsDataCell.getAngle_beta().getValue() fAngle_gamma = xsDataCell.getAngle_gamma().getValue() xsDataISPyBScreeningOutputLattice = XSDataISPyBScreeningOutputLattice() xsDataISPyBScreeningOutputContainer.getScreeningOutputLattice().append(xsDataISPyBScreeningOutputLattice) xsDataISPyBScreeningOutputLattice.setUnitCell_a(XSDataDouble(fLength_a)) xsDataISPyBScreeningOutputLattice.setUnitCell_b(XSDataDouble(fLength_b)) xsDataISPyBScreeningOutputLattice.setUnitCell_c(XSDataDouble(fLength_c)) xsDataISPyBScreeningOutputLattice.setUnitCell_alpha(XSDataDouble(fAngle_alpha)) xsDataISPyBScreeningOutputLattice.setUnitCell_beta(XSDataDouble(fAngle_beta)) xsDataISPyBScreeningOutputLattice.setUnitCell_gamma(XSDataDouble(fAngle_gamma)) xsDataSpaceGroup = xsDataCrystal.getSpaceGroup() if (xsDataSpaceGroup is not None): pyStrSpaceGroupName = xsDataSpaceGroup.getName().getValue() xsDataISPyBScreeningOutputLattice.setSpaceGroup(XSDataString(pyStrSpaceGroupName)) if (bSuccessfulIndexing): if _strStatusMessage == None: xsDataISPyBScreeningOutput.setStatusDescription(XSDataString("Indexing successful")) else: xsDataISPyBScreeningOutput.setStatusDescription(XSDataString(_strStatusMessage)) xsDataISPyBScreeningOutput.setScreeningSuccess(XSDataBoolean(True)) else: if _strStatusMessage == None: xsDataISPyBScreeningOutput.setStatusDescription(XSDataString("Indexing failed")) else: xsDataISPyBScreeningOutput.setStatusDescription(XSDataString(_strStatusMessage)) xsDataISPyBScreeningOutput.setScreeningSuccess(XSDataBoolean(False)) # Strategy information (populate xsDataISPyBScreeningStrategyContainer, xsDataISPyBScreeningStrategyWedge, xsDataISPyBScreeningStrategySubWedge) xsDataResultStrategy = xsDataResultStrategySuggested # xsDataResultCharacterisation.getStrategyResult() xsDataISPyBScreeningStrategyContainer = XSDataISPyBScreeningStrategyContainer() xsDataISPyBScreeningStrategy = XSDataISPyBScreeningStrategy() xsDataISPyBScreeningStrategyContainer.setScreeningStrategy(xsDataISPyBScreeningStrategy) xsDataISPyBScreeningOutputContainer.getScreeningStrategyContainer().append(xsDataISPyBScreeningStrategyContainer) fAccumulatedExposureTime = 0.0 if (bAnomalousData is not None): xsDataISPyBScreeningStrategy.setAnomalous(XSDataBoolean(bAnomalousData)) else: xsDataISPyBScreeningStrategy.setAnomalous(XSDataBoolean(False)) xsDataISPyBScreeningStrategy.setProgram(XSDataString("STAC")) if (xsDataResultStrategy is not None): lXSDataCollectionPlan = xsDataResultStrategy.getCollectionPlan() if (lXSDataCollectionPlan is not None): for xsDataCollectionPlan in lXSDataCollectionPlan: iCollectionPlanNumber = xsDataCollectionPlan.getCollectionPlanNumber().getValue() #strCollectionPlanComment = None #if (xsDataCollectionPlan.getComment() is not None): # strCollectionPlanComment = xsDataCollectionPlan.getComment().getValue() fCompleteness = None fMultiplicity = None fResolution = None fRankingResolution = None fTransmission = None iWedgeNumberOfImages = 0 fWedgeDoseTotal = 0.0 xsDataStrategySummary = xsDataCollectionPlan.getStrategySummary() if (xsDataStrategySummary is not None): if (xsDataStrategySummary.getCompleteness() is not None): fCompleteness = xsDataStrategySummary.getCompleteness().getValue() if (xsDataStrategySummary.getRedundancy() is not None): fMultiplicity = xsDataStrategySummary.getRedundancy().getValue() if (xsDataStrategySummary.getResolution() is not None): fResolution = xsDataStrategySummary.getResolution().getValue() if (xsDataStrategySummary.getRankingResolution() is not None): fRankingResolution = xsDataStrategySummary.getRankingResolution().getValue() xsDataISPyBScreeningStrategy.setRankingResolution(XSDataDouble(fRankingResolution)) xsDataISPyBScreeningStrategyWedgeContainer = XSDataISPyBScreeningStrategyWedgeContainer() xsDataISPyBScreeningStrategyWedge = XSDataISPyBScreeningStrategyWedge() xsDataISPyBScreeningStrategyWedgeContainer.setScreeningStrategyWedge(xsDataISPyBScreeningStrategyWedge) xsDataISPyBScreeningStrategyContainer.getScreeningStrategyWedgeContainer().append(xsDataISPyBScreeningStrategyWedgeContainer) xsDataISPyBScreeningStrategyWedge.setWedgeNumber(XSDataInteger(iCollectionPlanNumber)) xsDataISPyBScreeningStrategyWedge.setCompleteness(XSDataDouble(fCompleteness)) xsDataISPyBScreeningStrategyWedge.setMultiplicity(XSDataDouble(fMultiplicity)) xsDataISPyBScreeningStrategyWedge.setResolution(XSDataDouble(fResolution)) # Find kappa and phi xsDataStringComment = xsDataCollectionPlan.getComment() xsDataDoubleOmega = EDHandlerXSDataCommon.getElements(xsDataStringComment, "OMEGA=") xsDataDoubleKappa = EDHandlerXSDataCommon.getElements(xsDataStringComment, "KAPPA=") xsDataDoublePhi = EDHandlerXSDataCommon.getElements(xsDataStringComment, "PHI=") xsDataISPyBScreeningStrategyWedge.setKappa(xsDataDoubleKappa) xsDataISPyBScreeningStrategyWedge.setPhi(xsDataDoublePhi) xsDataCollectionStrategy = xsDataCollectionPlan.getCollectionStrategy() if (xsDataCollectionStrategy is not None): lXSDataSubWedge = xsDataCollectionStrategy.getSubWedge() if (lXSDataSubWedge is not None): for xsDataSubWedge in lXSDataSubWedge: iSubWedgeNumber = xsDataSubWedge.getSubWedgeNumber().getValue() fPhiStart = xsDataSubWedge.getExperimentalCondition().getGoniostat().getRotationAxisStart().getValue() fPhiEnd = xsDataSubWedge.getExperimentalCondition().getGoniostat().getRotationAxisEnd().getValue() fRotation = xsDataSubWedge.getExperimentalCondition().getGoniostat().getOscillationWidth().getValue() fExposureTime = xsDataSubWedge.getExperimentalCondition().getBeam().getExposureTime().getValue() fAccumulatedExposureTime += fExposureTime xsDataDoubleTransmission = xsDataSubWedge.getExperimentalCondition().getBeam().getTransmission() if (xsDataDoubleTransmission is not None): fTransmission = xsDataDoubleTransmission.getValue() else: fTransmission = None if (not xsDataSubWedge.getExperimentalCondition().getBeam().getFlux() is None): fFlux = xsDataSubWedge.getExperimentalCondition().getBeam().getFlux().getValue() else: fFlux = None iNumberOfImages = int(math.ceil((fPhiEnd - fPhiStart) / fRotation)) xsDataISPyBScreeningStrategySubWedge = XSDataISPyBScreeningStrategySubWedge() xsDataISPyBScreeningStrategyWedgeContainer.getScreeningStrategySubWedge().append(xsDataISPyBScreeningStrategySubWedge) xsDataISPyBScreeningStrategySubWedge.setSubWedgeNumber(XSDataInteger(iSubWedgeNumber)) xsDataISPyBScreeningStrategySubWedge.setAxisStart(XSDataDouble(fPhiStart)) xsDataISPyBScreeningStrategySubWedge.setAxisEnd(XSDataDouble(fPhiEnd)) xsDataISPyBScreeningStrategySubWedge.setRotationAxis(XSDataString("Omega")) xsDataISPyBScreeningStrategySubWedge.setOscillationRange(XSDataDouble(fRotation)) xsDataISPyBScreeningStrategySubWedge.setExposureTime(XSDataDouble(fExposureTime)) if (fTransmission is not None): xsDataISPyBScreeningStrategySubWedge.setTransmission(XSDataDouble(fTransmission)) xsDataISPyBScreeningStrategySubWedge.setNumberOfImages(XSDataInteger(iNumberOfImages)) iWedgeNumberOfImages += iNumberOfImages if (fFlux is not None): xsDataISPyBScreeningStrategySubWedge.setDoseTotal(XSDataDouble(fFlux)) fWedgeDoseTotal += fFlux if (fCompleteness is not None): xsDataISPyBScreeningStrategySubWedge.setCompleteness(XSDataDouble(fCompleteness)) if (fMultiplicity is not None): xsDataISPyBScreeningStrategySubWedge.setMultiplicity(XSDataDouble(fMultiplicity)) if (fResolution is not None): xsDataISPyBScreeningStrategySubWedge.setResolution(XSDataDouble(fResolution)) xsDataISPyBScreeningStrategyWedge.setNumberOfImages(XSDataInteger(iWedgeNumberOfImages)) xsDataISPyBScreeningStrategyWedge.setDoseTotal(XSDataDouble(fWedgeDoseTotal)) xsDataISPyBScreeningStrategy.setExposureTime(XSDataDouble(fAccumulatedExposureTime)) return xsDataISPyBScreeningOutputContainer
def generateXSDataISPyBScreeningOutputContainer(_xsDataInputControlISPyB, _strStatusMessage=None): """ """ EDFactoryPluginStatic.loadModule("XSDataISPyBv1_2") from XSDataISPyBv1_2 import XSDataISPyBScreeningOutputContainer from XSDataISPyBv1_2 import XSDataISPyBScreeningOutput from XSDataISPyBv1_2 import XSDataISPyBScreeningOutputLattice from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategyContainer from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategyWedgeContainer from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategy from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategyWedge from XSDataISPyBv1_2 import XSDataISPyBScreeningStrategySubWedge from XSDataISPyBv1_2 import XSDataDouble from XSDataISPyBv1_2 import XSDataInteger from XSDataISPyBv1_2 import XSDataBoolean from XSDataISPyBv1_2 import XSDataString import math xsDataISPyBScreeningOutputContainer = XSDataISPyBScreeningOutputContainer( ) xsDataISPyBScreeningOutput = XSDataISPyBScreeningOutput() xsDataISPyBScreeningOutputContainer.setScreeningOutput( xsDataISPyBScreeningOutput) xsDataResultCharacterisation = _xsDataInputControlISPyB.getCharacterisationResult( ) # Determine whether anomalous data: bAnomalousData = None xsDataCollection = xsDataResultCharacterisation.getDataCollection() if (xsDataCollection is not None): xsDataDiffractionPlan = xsDataCollection.getDiffractionPlan() if (xsDataDiffractionPlan is not None): if (xsDataDiffractionPlan.getAnomalousData() is not None): bAnomalousData = xsDataDiffractionPlan.getAnomalousData( ).getValue() # Indexing information (populate xsDataISPyBScreeningOutputContainer, xsDataIPSyBScreeningOutput and xsDataISPyBScreeningOutputLattice) bSuccessfulIndexing = False xsDataIndexingResult = xsDataResultCharacterisation.getIndexingResult() if (xsDataIndexingResult is not None): xsDataIndexingSolutionSelected = xsDataIndexingResult.getSelectedSolution( ) if (xsDataIndexingSolutionSelected is not None): bSuccessfulIndexing = True xsDataStatisticsIndexing = xsDataIndexingSolutionSelected.getStatistics( ) if (xsDataStatisticsIndexing is not None): fBeamPositionShiftX = xsDataStatisticsIndexing.getBeamPositionShiftX( ).getValue() fBeamPositionShiftY = xsDataStatisticsIndexing.getBeamPositionShiftY( ).getValue() xsDataISPyBScreeningOutput.setBeamShiftX( XSDataDouble(fBeamPositionShiftX)) xsDataISPyBScreeningOutput.setBeamShiftY( XSDataDouble(fBeamPositionShiftY)) if xsDataStatisticsIndexing.getSpotDeviationAngular( ) is not None: fSpotDeviationAngular = xsDataStatisticsIndexing.getSpotDeviationAngular( ).getValue() xsDataISPyBScreeningOutput.setSpotDeviationTheta( XSDataDouble(fSpotDeviationAngular)) if xsDataStatisticsIndexing.getSpotDeviationPositional( ) is not None: fSpotDeviationPositional = xsDataStatisticsIndexing.getSpotDeviationPositional( ).getValue() xsDataISPyBScreeningOutput.setSpotDeviationR( XSDataDouble(fSpotDeviationPositional)) if ((xsDataStatisticsIndexing.getSpotsTotal() is not None) and (xsDataStatisticsIndexing.getSpotsUsed is not None)): iSpotsTotal = xsDataStatisticsIndexing.getSpotsTotal( ).getValue() iSpotsUsed = xsDataStatisticsIndexing.getSpotsUsed( ).getValue() xsDataISPyBScreeningOutput.setNumSpotsFound( XSDataInteger(iSpotsTotal)) xsDataISPyBScreeningOutput.setNumSpotsUsed( XSDataInteger(iSpotsUsed)) xsDataISPyBScreeningOutput.setNumSpotsRejected( XSDataInteger(iSpotsTotal - iSpotsUsed)) xsDataCrystal = xsDataIndexingSolutionSelected.getCrystal() xsDataISPyBScreeningOutput.setMosaicityEstimated( XSDataBoolean(False)) if (xsDataCrystal is not None): if (xsDataCrystal.getMosaicity() is not None): fMosaicity = xsDataCrystal.getMosaicity().getValue() xsDataISPyBScreeningOutput.setMosaicity( XSDataDouble(fMosaicity)) xsDataISPyBScreeningOutput.setMosaicityEstimated( XSDataBoolean(True)) xsDataCell = xsDataCrystal.getCell() if (xsDataCell is not None): fLength_a = xsDataCell.getLength_a().getValue() fLength_b = xsDataCell.getLength_b().getValue() fLength_c = xsDataCell.getLength_c().getValue() fAngle_alpha = xsDataCell.getAngle_alpha().getValue() fAngle_beta = xsDataCell.getAngle_beta().getValue() fAngle_gamma = xsDataCell.getAngle_gamma().getValue() xsDataISPyBScreeningOutputLattice = XSDataISPyBScreeningOutputLattice( ) xsDataISPyBScreeningOutputContainer.getScreeningOutputLattice( ).append(xsDataISPyBScreeningOutputLattice) xsDataISPyBScreeningOutputLattice.setUnitCell_a( XSDataDouble(fLength_a)) xsDataISPyBScreeningOutputLattice.setUnitCell_b( XSDataDouble(fLength_b)) xsDataISPyBScreeningOutputLattice.setUnitCell_c( XSDataDouble(fLength_c)) xsDataISPyBScreeningOutputLattice.setUnitCell_alpha( XSDataDouble(fAngle_alpha)) xsDataISPyBScreeningOutputLattice.setUnitCell_beta( XSDataDouble(fAngle_beta)) xsDataISPyBScreeningOutputLattice.setUnitCell_gamma( XSDataDouble(fAngle_gamma)) xsDataSpaceGroup = xsDataCrystal.getSpaceGroup() if (xsDataSpaceGroup is not None): pyStrSpaceGroupName = xsDataSpaceGroup.getName( ).getValue() xsDataISPyBScreeningOutputLattice.setSpaceGroup( XSDataString(pyStrSpaceGroupName)) if (bSuccessfulIndexing): if _strStatusMessage == None: xsDataISPyBScreeningOutput.setStatusDescription( XSDataString("Indexing successful")) else: xsDataISPyBScreeningOutput.setStatusDescription( XSDataString(_strStatusMessage)) xsDataISPyBScreeningOutput.setScreeningSuccess(XSDataBoolean(True)) else: if _strStatusMessage == None: xsDataISPyBScreeningOutput.setStatusDescription( XSDataString("Indexing failed")) else: xsDataISPyBScreeningOutput.setStatusDescription( XSDataString(_strStatusMessage)) xsDataISPyBScreeningOutput.setScreeningSuccess( XSDataBoolean(False)) # Strategy information (populate xsDataISPyBScreeningStrategyContainer, xsDataISPyBScreeningStrategyWedge, xsDataISPyBScreeningStrategySubWedge) xsDataResultStrategy = xsDataResultCharacterisation.getStrategyResult() xsDataISPyBScreeningStrategyContainer = XSDataISPyBScreeningStrategyContainer( ) xsDataISPyBScreeningStrategy = XSDataISPyBScreeningStrategy() xsDataISPyBScreeningStrategyContainer.setScreeningStrategy( xsDataISPyBScreeningStrategy) xsDataISPyBScreeningOutputContainer.getScreeningStrategyContainer( ).append(xsDataISPyBScreeningStrategyContainer) fAccumulatedExposureTime = 0.0 if (bAnomalousData is not None): xsDataISPyBScreeningStrategy.setAnomalous( XSDataBoolean(bAnomalousData)) else: xsDataISPyBScreeningStrategy.setAnomalous(XSDataBoolean(False)) xsDataISPyBScreeningStrategy.setProgram(XSDataString("BEST")) if (xsDataResultStrategy is not None): lXSDataCollectionPlan = xsDataResultStrategy.getCollectionPlan() if (lXSDataCollectionPlan is not None): for xsDataCollectionPlan in lXSDataCollectionPlan: iCollectionPlanNumber = xsDataCollectionPlan.getCollectionPlanNumber( ).getValue() #strCollectionPlanComment = None #if (xsDataCollectionPlan.getComment() is not None): # strCollectionPlanComment = xsDataCollectionPlan.getComment().getValue() fCompleteness = None fMultiplicity = None fResolution = None fRankingResolution = None fTransmission = None iWedgeNumberOfImages = 0 fWedgeDoseTotal = 0.0 xsDataStrategySummary = xsDataCollectionPlan.getStrategySummary( ) if (xsDataStrategySummary is not None): if (xsDataStrategySummary.getCompleteness() is not None): fCompleteness = xsDataStrategySummary.getCompleteness( ).getValue() if (xsDataStrategySummary.getRedundancy() is not None): fMultiplicity = xsDataStrategySummary.getRedundancy( ).getValue() if (xsDataStrategySummary.getResolution() is not None): fResolution = xsDataStrategySummary.getResolution( ).getValue() if (xsDataStrategySummary.getRankingResolution() is not None): fRankingResolution = xsDataStrategySummary.getRankingResolution( ).getValue() xsDataISPyBScreeningStrategy.setRankingResolution( XSDataDouble(fRankingResolution)) xsDataISPyBScreeningStrategyWedgeContainer = XSDataISPyBScreeningStrategyWedgeContainer( ) xsDataISPyBScreeningStrategyWedge = XSDataISPyBScreeningStrategyWedge( ) xsDataISPyBScreeningStrategyWedgeContainer.setScreeningStrategyWedge( xsDataISPyBScreeningStrategyWedge) xsDataISPyBScreeningStrategyContainer.getScreeningStrategyWedgeContainer( ).append(xsDataISPyBScreeningStrategyWedgeContainer) xsDataISPyBScreeningStrategyWedge.setWedgeNumber( XSDataInteger(iCollectionPlanNumber)) xsDataISPyBScreeningStrategyWedge.setCompleteness( XSDataDouble(fCompleteness)) xsDataISPyBScreeningStrategyWedge.setMultiplicity( XSDataDouble(fMultiplicity)) xsDataISPyBScreeningStrategyWedge.setResolution( XSDataDouble(fResolution)) xsDataCollectionStrategy = xsDataCollectionPlan.getCollectionStrategy( ) if (xsDataCollectionStrategy is not None): lXSDataSubWedge = xsDataCollectionStrategy.getSubWedge( ) if (lXSDataSubWedge is not None): for xsDataSubWedge in lXSDataSubWedge: iSubWedgeNumber = xsDataSubWedge.getSubWedgeNumber( ).getValue() fPhiStart = xsDataSubWedge.getExperimentalCondition( ).getGoniostat().getRotationAxisStart( ).getValue() fPhiEnd = xsDataSubWedge.getExperimentalCondition( ).getGoniostat().getRotationAxisEnd().getValue( ) fRotation = xsDataSubWedge.getExperimentalCondition( ).getGoniostat().getOscillationWidth( ).getValue() fExposureTime = xsDataSubWedge.getExperimentalCondition( ).getBeam().getExposureTime().getValue() fAccumulatedExposureTime += fExposureTime fTransmission = xsDataSubWedge.getExperimentalCondition( ).getBeam().getTransmission().getValue() if (not xsDataSubWedge. getExperimentalCondition().getBeam( ).getFlux() is None): fFlux = xsDataSubWedge.getExperimentalCondition( ).getBeam().getFlux().getValue() else: fFlux = None iNumberOfImages = int( math.ceil( (fPhiEnd - fPhiStart) / fRotation)) xsDataISPyBScreeningStrategySubWedge = XSDataISPyBScreeningStrategySubWedge( ) xsDataISPyBScreeningStrategyWedgeContainer.getScreeningStrategySubWedge( ).append(xsDataISPyBScreeningStrategySubWedge) xsDataISPyBScreeningStrategySubWedge.setSubWedgeNumber( XSDataInteger(iSubWedgeNumber)) xsDataISPyBScreeningStrategySubWedge.setAxisStart( XSDataDouble(fPhiStart)) xsDataISPyBScreeningStrategySubWedge.setAxisEnd( XSDataDouble(fPhiEnd)) xsDataISPyBScreeningStrategySubWedge.setRotationAxis( XSDataString("Omega")) xsDataISPyBScreeningStrategySubWedge.setOscillationRange( XSDataDouble(fRotation)) xsDataISPyBScreeningStrategySubWedge.setExposureTime( XSDataDouble(fExposureTime)) xsDataISPyBScreeningStrategySubWedge.setTransmission( XSDataDouble(fTransmission)) xsDataISPyBScreeningStrategySubWedge.setNumberOfImages( XSDataInteger(iNumberOfImages)) iWedgeNumberOfImages += iNumberOfImages if (fFlux is not None): xsDataISPyBScreeningStrategySubWedge.setDoseTotal( XSDataDouble(fFlux)) fWedgeDoseTotal += fFlux if (fCompleteness is not None): xsDataISPyBScreeningStrategySubWedge.setCompleteness( XSDataDouble(fCompleteness)) if (fMultiplicity is not None): xsDataISPyBScreeningStrategySubWedge.setMultiplicity( XSDataDouble(fMultiplicity)) if (fResolution is not None): xsDataISPyBScreeningStrategySubWedge.setResolution( XSDataDouble(fResolution)) xsDataISPyBScreeningStrategyWedge.setNumberOfImages( XSDataInteger(iWedgeNumberOfImages)) xsDataISPyBScreeningStrategyWedge.setDoseTotal( XSDataDouble(fWedgeDoseTotal)) xsDataISPyBScreeningStrategy.setExposureTime( XSDataDouble(fAccumulatedExposureTime)) return xsDataISPyBScreeningOutputContainer
def testSetDataModelInput(self): """ A test for whether we can obtain the expected XML by setting a certain input for the plugin. """ edPluginISPyB = self.createPlugin() xsPluginItemISPyB = self.getPluginConfiguration( os.path.join(self.getPluginTestsDataHome(), "XSConfiguration.xml")) edPluginISPyB.setConfiguration(xsPluginItemISPyB) edPluginISPyB.configure() # Create XSDataISPyB objects xsDataISPyBImage = XSDataISPyBImage() xsDataISPyBImage.setFileName(XSDataString("test.img")) xsDataISPyBImage.setFileLocation(XSDataString("/tmp")) xsDataISPyBScreening = XSDataISPyBScreening() xsDataISPyBScreening.setProgramVersion(XSDataString("EDNA Prototype")) xsDataISPyBScreeningInput = XSDataISPyBScreeningInput() xsDataISPyBScreeningInput.setBeamX(XSDataDouble(10.4)) xsDataISPyBScreeningInput.setBeamY(XSDataDouble(2.31)) xsDataISPyBScreeningInput.setRmsErrorLimits(XSDataDouble(0.8)) xsDataISPyBScreeningInput.setMinimumFractionIndexed(XSDataDouble(0.4)) xsDataISPyBScreeningInput.setMaximumFractionRejected( XSDataDouble(0.45)) xsDataISPyBScreeningInput.setMinimumSignalToNoise(XSDataDouble(0.56)) xsDataISPyBScreeningOutput = XSDataISPyBScreeningOutput() xsDataISPyBScreeningOutput.setStatusDescription( XSDataString("It's just fine.")) xsDataISPyBScreeningOutput.setMosaicity(XSDataDouble(0.25)) xsDataISPyBScreeningOutput.setBeamShiftX(XSDataDouble(0.141)) xsDataISPyBScreeningOutput.setBeamShiftY(XSDataDouble(0.156)) xsDataISPyBScreeningOutputLattice = XSDataISPyBScreeningOutputLattice() xsDataISPyBScreeningOutputLattice.setSpaceGroup(XSDataString("P222")) xsDataISPyBScreeningStrategy = XSDataISPyBScreeningStrategy() xsDataISPyBScreeningStrategy.setPhiStart(XSDataDouble(0)) xsDataISPyBScreeningStrategy.setPhiEnd(XSDataDouble(20)) xsDataISPyBScreeningStrategy.setRotation(XSDataDouble(1)) xsDataISPyBScreeningStrategy.setProgram(XSDataString("EDNA")) xsDataISPyBScreeningStrategy.setAnomalous(XSDataBoolean(1)) xsDataISPyBScreeningStrategyWedge = XSDataISPyBScreeningStrategyWedge() xsDataISPyBScreeningStrategyWedge.setWedgeNumber(XSDataInteger(1)) xsDataISPyBScreeningStrategyWedge.setResolution(XSDataDouble(2.1)) xsDataISPyBScreeningStrategyWedge.setCompleteness(XSDataDouble(90)) xsDataISPyBScreeningStrategyWedge.setMultiplicity(XSDataDouble(1.5)) xsDataISPyBScreeningStrategyWedge.setDoseTotal(XSDataDouble(40.5)) xsDataISPyBScreeningStrategyWedge.setNumberOfImages(XSDataInteger(130)) xsDataISPyBScreeningStrategySubWedge = XSDataISPyBScreeningStrategySubWedge( ) xsDataISPyBScreeningStrategySubWedge.setSubWedgeNumber( XSDataInteger(1)) xsDataISPyBScreeningStrategySubWedge.setRotationAxis( XSDataString("Omega")) xsDataISPyBScreeningStrategySubWedge.setAxisStart(XSDataDouble(0.0)) xsDataISPyBScreeningStrategySubWedge.setAxisEnd(XSDataDouble(90.0)) xsDataISPyBScreeningStrategySubWedge.setExposureTime(XSDataDouble(0.5)) xsDataISPyBScreeningStrategySubWedge.setTransmission( XSDataDouble(100.0)) xsDataISPyBScreeningStrategySubWedge.setNumberOfImages( XSDataInteger(130)) xsDataISPyBScreeningStrategyWedgeContainer = XSDataISPyBScreeningStrategyWedgeContainer( ) xsDataISPyBScreeningStrategyWedgeContainer.setScreeningStrategyWedge( xsDataISPyBScreeningStrategyWedge) xsDataISPyBScreeningStrategyWedgeContainer.getScreeningStrategySubWedge( ).append(xsDataISPyBScreeningStrategySubWedge) xsDataISPyBScreeningStrategyContainer = XSDataISPyBScreeningStrategyContainer( ) xsDataISPyBScreeningStrategyContainer.setScreeningStrategy( xsDataISPyBScreeningStrategy) xsDataISPyBScreeningStrategyContainer.getScreeningStrategyWedgeContainer( ).append(xsDataISPyBScreeningStrategyWedgeContainer) xsDataISPyBScreeningOutputContainer = XSDataISPyBScreeningOutputContainer( ) xsDataISPyBScreeningOutputContainer.setScreeningOutput( xsDataISPyBScreeningOutput) xsDataISPyBScreeningOutputContainer.getScreeningOutputLattice().append( xsDataISPyBScreeningOutputLattice) xsDataISPyBScreeningOutputContainer.getScreeningStrategyContainer( ).append(xsDataISPyBScreeningStrategyContainer) xsDataISPyBScreeningRank = XSDataISPyBScreeningRank() xsDataISPyBScreeningRank.setRankValue(XSDataDouble(1.4)) xsDataISPyBScreeningRank.setRankInformation( XSDataString("This is the only one")) xsDataISPyBScreeningRankSet = XSDataISPyBScreeningRankSet() xsDataISPyBScreeningRankSet.setRankEngine(XSDataString("ISPyB")) xsDataISPyBScreeningFile = XSDataISPyBScreeningFile() xsDataISPyBScreeningFile.setFileType(XSDataString("log")) xsDataISPyBScreeningFile.setDescription( XSDataString("Output log file")) # Write XSDataISPyB objects to files xsDataISPyBScreening.outputFile(self.__strObtainedScreening) xsDataISPyBScreeningInput.outputFile(self.__strObtainedScreeningInput) xsDataISPyBScreeningOutputContainer.outputFile( self.__strObtainedScreeningOutputContainer) xsDataISPyBScreeningRank.outputFile(self.__strObtainedScreeningRank) xsDataISPyBScreeningRankSet.outputFile( self.__strObtainedScreeningRankSet) xsDataISPyBScreeningFile.outputFile(self.__strObtainedScreeningFile) # Compare screening strInputScreeningExpected = self.readAndParseFile( self.__strReferenceInputScreening) xsDataScreeningExpected = XSDataInputISPyB.parseString( strInputScreeningExpected) strXMLScreeningExpected = xsDataScreeningExpected.marshal() strScreeningObtained = self.readAndParseFile( self.__strObtainedScreening) xsDataScreeningObtained = XSDataInputISPyB.parseString( strScreeningObtained) strXMLScreeningObtained = xsDataScreeningObtained.marshal() EDAssert.equal(strXMLScreeningExpected, strXMLScreeningObtained) #Compare screeningInput strInputScreeningInputExpected = self.readAndParseFile( self.__strReferenceInputScreeningInput) xsDataScreeningInputExpected = XSDataInputISPyB.parseString( strInputScreeningInputExpected) strXMLScreeningInputExpected = xsDataScreeningInputExpected.marshal() strScreeningInputObtained = self.readAndParseFile( self.__strObtainedScreeningInput) xsDataScreeningInputObtained = XSDataInputISPyB.parseString( strScreeningInputObtained) strXMLScreeningInputObtained = xsDataScreeningInputObtained.marshal() EDAssert.equal(strXMLScreeningInputExpected, strXMLScreeningInputObtained) #Compare screeningOutputContainer strInputScreeningOutputContainerExpected = self.readAndParseFile( self.__strReferenceInputScreeningOutputContainer) xsDataScreeningOutputContainerExpected = XSDataInputISPyB.parseString( strInputScreeningOutputContainerExpected) strXMLScreeningOutputContainerExpected = xsDataScreeningOutputContainerExpected.marshal( ) strScreeningOutputContainerObtained = self.readAndParseFile( self.__strObtainedScreeningOutputContainer) xsDataScreeningOutputContainerObtained = XSDataInputISPyB.parseString( strScreeningOutputContainerObtained) strXMLScreeningOutputContainerObtained = xsDataScreeningOutputContainerObtained.marshal( ) EDAssert.equal(strXMLScreeningOutputContainerExpected, strXMLScreeningOutputContainerObtained) #Compare screeningRank strInputScreeningRankExpected = self.readAndParseFile( self.__strReferenceInputScreeningRank) xsDataScreeningRankExpected = XSDataInputISPyB.parseString( strInputScreeningRankExpected) strXMLScreeningRankExpected = xsDataScreeningRankExpected.marshal() strScreeningRankObtained = self.readAndParseFile( self.__strObtainedScreeningRank) xsDataScreeningRankObtained = XSDataInputISPyB.parseString( strScreeningRankObtained) strXMLScreeningRankObtained = xsDataScreeningRankObtained.marshal() EDAssert.equal(strXMLScreeningRankExpected, strXMLScreeningRankObtained) #Compare screeningRankSet strInputScreeningRankSetExpected = self.readAndParseFile( self.__strReferenceInputScreeningRankSet) xsDataScreeningRankSetExpected = XSDataInputISPyB.parseString( strInputScreeningRankSetExpected) strXMLScreeningRankSetExpected = xsDataScreeningRankSetExpected.marshal( ) strScreeningRankSetObtained = self.readAndParseFile( self.__strObtainedScreeningRankSet) xsDataScreeningRankSetObtained = XSDataInputISPyB.parseString( strScreeningRankSetObtained) strXMLScreeningRankSetObtained = xsDataScreeningRankSetObtained.marshal( ) EDAssert.equal(strXMLScreeningRankSetExpected, strXMLScreeningRankSetObtained) #Compare screeningFile strInputScreeningFileExpected = self.readAndParseFile( self.__strReferenceInputScreeningFile) xsDataScreeningFileExpected = XSDataInputISPyB.parseString( strInputScreeningFileExpected) strXMLScreeningFileExpected = xsDataScreeningFileExpected.marshal() strScreeningFileObtained = self.readAndParseFile( self.__strObtainedScreeningFile) xsDataScreeningFileObtained = XSDataInputISPyB.parseString( strScreeningFileObtained) strXMLScreeningFileObtained = xsDataScreeningFileObtained.marshal() EDAssert.equal(strXMLScreeningFileExpected, strXMLScreeningFileObtained) self.cleanUp(edPluginISPyB)