本文整理汇总了Python中XSDataMXv1.XSDataCrystal类的典型用法代码示例。如果您正苦于以下问题:Python XSDataCrystal类的具体用法?Python XSDataCrystal怎么用?Python XSDataCrystal使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了XSDataCrystal类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testDefaultChemicalComposition
def testDefaultChemicalComposition(self):
edPluginStrategy = self.createPlugin()
from XSDataCommon import XSDataAngle
from XSDataCommon import XSDataLength
from XSDataMXv1 import XSDataSampleCrystalMM
from XSDataMXv1 import XSDataCrystal
from XSDataMXv1 import XSDataCell
xsDataSampleCrystalMM = XSDataSampleCrystalMM()
xsDataCrystal = XSDataCrystal()
xsDataCell = XSDataCell(XSDataAngle(90.0),
XSDataAngle(90.0),
XSDataAngle(90.0),
XSDataLength(78.9),
XSDataLength(95.162),
XSDataLength(104.087))
xsDataCrystal.setCell(xsDataCell)
xsDataSampleCrystalMM.setCrystal(xsDataCrystal)
inumOperators = 4
xsDataSample2 = edPluginStrategy.getDefaultChemicalComposition(xsDataSampleCrystalMM, inumOperators)
strChainType = xsDataSample2.getStructure().getChain()[0].getType()
EDAssert.equal("protein", strChainType.getValue())
示例2: preProcess
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_1.preProcess...")
self.__edPluginIndexing = self.loadPlugin(self.__strPluginIndexingName , "Indexing")
self.__edPluginIntegration = self.loadPlugin(self.__strPluginIntegrationName, "Integration")
self.__edPluginStrategy = self.loadPlugin(self.__strPluginStrategyName , "Strategy")
if (self.__edPluginIndexing is not None):
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_1.preProcess: " + self.__strPluginIndexingName + " Found... setting Data Input")
# create Data Input for indexing
xsDataInputStrategy = self.getDataInput()
xsDataCollection = xsDataInputStrategy.getDataCollection()
xsDataSample = xsDataCollection.getSample()
xsDataSubWedgeList = xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_1.preProcess: No subwedges in input data."
EDVerbose.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
pyStrErrorMessage = "EDPluginControlCharacterisationv1_1.preProcess ERROR: Input flux is negative or close to zero. Execution of characterisation aborted."
EDVerbose.ERROR(pyStrErrorMessage)
self.addErrorMessage(pyStrErrorMessage)
self.setFailure()
xsDataIndexingInput = XSDataIndexingInput()
xsDataIndexingInput.setDataCollection(xsDataCollection)
xsDataIndexingInput.setExperimentalCondition(xsDataExperimentalCondition)
xsDataDiffractionPlan = xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
xsDataIndexingInput.setCrystal(xsDataCrystal)
self.__edPluginIndexing.setDataInput(xsDataIndexingInput)
# Populate characterisation object
self.__xsDataResultCharacterisation = XSDataResultCharacterisation()
self.__xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(xsDataCollection.marshal()))
示例3: preProcess
def preProcess(self, _edObject=None):
EDPluginControl.preProcess(self)
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_3.preProcess")
# Load the plugins
self._edPluginControlIndexingIndicators = self.loadPlugin(self._strPluginControlIndexingIndicators, \
"Indexing")
self._edPluginControlIndexingLabelit = self.loadPlugin(self._strPluginControlIndexingLabelit, \
"IndexingLabelit")
self._edPluginExecEvaluationIndexingMOSFLM = self.loadPlugin(self._strPluginExecEvaluationIndexing, \
"IndexingEvalualtionMOSFLM")
self._edPluginExecEvaluationIndexingLABELIT = self.loadPlugin(self._strPluginExecEvaluationIndexing, \
"IndexingEvalualtionLABELIT")
self._edPluginControlGeneratePrediction = self.loadPlugin(self._strPluginControlGeneratePrediction, \
"GeneratePrediction")
self._edPluginControlIntegration = self.loadPlugin(self._strPluginControlIntegration, \
"Integration")
self._edPluginControlXDSGenerateBackgroundImage = self.loadPlugin(self._strPluginControlXDSGenerateBackgroundImage, \
"ControlXDSGenerateBackgroundImage")
self._edPluginControlStrategy = self.loadPlugin(self._strPluginControlStrategy, \
"Strategy")
if (self._edPluginControlIndexingIndicators is not None):
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_3.preProcess: " + self._strPluginControlIndexingIndicators + " Found... setting Data Input")
# create Data Input for indexing
xsDataInputCharacterisation = self.getDataInput()
self._xsDataCollection = xsDataInputCharacterisation.getDataCollection()
xsDataCrystal = None
xsDataSubWedgeList = self._xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_3.preProcess: No subwedges in input data."
EDVerbose.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
strErrorMessage = "Input flux is negative or close to zero. Execution of characterisation aborted."
EDVerbose.ERROR(strErrorMessage)
self.addErrorMessage("EDPluginControlCharacterisationv1_3.preProcess ERROR: " + strErrorMessage)
#self.addComment(strErrorMessage)
self.setFailure()
xsDataDiffractionPlan = self._xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
self._xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
self._xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCollection, "dataCollection")
if self._xsDataCrystal is not None:
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCrystal, "crystal")
# Populate characterisation object
self._xsDataResultCharacterisation = XSDataResultCharacterisation()
self._xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(self._xsDataCollection.marshal()))
示例4: preProcess
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlCharacterisationv2_0.preProcess...")
self.edPluginIndexing = self.loadPlugin(self.strPluginIndexingName, "Indexing")
self.edPluginIntegration = self.loadPlugin(self.strPluginIntegrationName, "Integration")
self.edPluginStrategy = self.loadPlugin(self.strPluginStrategyName, "Strategy")
if self.edPluginIndexing is not None:
EDVerbose.DEBUG(
"EDPluginControlCharacterisationv2_0.preProcess: "
+ self.strPluginIndexingName
+ " Found... setting Data Input"
)
# create Data Input for indexing
xsDataInputStrategy = self.getDataInput("mxv1InputCharacterisation")[0]
xsDataCollection = xsDataInputStrategy.getDataCollection()
# xsDataSample = xsDataCollection.getSample()
xsDataSubWedgeList = xsDataCollection.getSubWedge()
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
xsDataIndexingInput = XSDataIndexingInput()
xsDataIndexingInput.setDataCollection(xsDataCollection)
xsDataIndexingInput.setExperimentalCondition(xsDataExperimentalCondition)
xsDataDiffractionPlan = xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if xsDataStringForcedSpaceGroup is not None:
xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
xsDataIndexingInput.setCrystal(xsDataCrystal)
self.edPluginIndexing.setDataInput(xsDataIndexingInput)
# Populate characterisation object
self.xsDataResultCharacterisationv2_0 = XSDataResultCharacterisationv2_0()
self.xsDataResultCharacterisation = XSDataResultCharacterisation()
self.xsDataResultCharacterisationv2_0.setMxv1ResultCharacterisation(self.xsDataResultCharacterisation)
self.xsDataResultCharacterisation.setDataCollection(
XSDataCollection.parseString(xsDataCollection.marshal())
)
示例5: generateXSDataIndexingResult
def generateXSDataIndexingResult(_xsDataResultXDSIndexing, _xsDataExperimentalCondition=None):
xsDataIndexingResult = XSDataIndexingResult()
xsDataIndexingSolutionSelected = XSDataIndexingSolutionSelected()
xsDataCrystalSelected = XSDataCrystal()
# xsDataIndexingSolutionSelected.setNumber(XSDataInteger(iIndex))
# xsDataCellSelected = xsDataLabelitSolution.getUnitCell()
spaceGroupName = EDUtilsSymmetry.getMinimumSymmetrySpaceGroupFromBravaisLattice(_xsDataResultXDSIndexing.bravaisLattice.value)
xsDataCrystalSelected = XSDataCrystal()
xsDataSpaceGroupSelected = XSDataSpaceGroup()
xsDataSpaceGroupSelected.setName(XSDataString(spaceGroupName))
xsDataCrystalSelected.setSpaceGroup(xsDataSpaceGroupSelected)
# xsDataCrystalSelected.setCell(xsDataCellSelected)
xsDataCrystalSelected.setMosaicity(XSDataDouble(_xsDataResultXDSIndexing.mosaicity.value))
xsDataCrystalSelected.setCell(XSDataCell.parseString(_xsDataResultXDSIndexing.unitCell.marshal()))
xsDataIndexingSolutionSelected.setCrystal(xsDataCrystalSelected)
xsDataOrientation = XSDataOrientation()
xsDataOrientation.setMatrixA(_xsDataResultXDSIndexing.getAMatrix())
xsDataOrientation.setMatrixU(_xsDataResultXDSIndexing.getUMatrix())
xsDataIndexingSolutionSelected.setOrientation(xsDataOrientation)
xsDataStatisticsIndexing = XSDataStatisticsIndexing()
if (_xsDataExperimentalCondition is not None):
fBeamPositionXOrig = _xsDataExperimentalCondition.getDetector().getBeamPositionX().getValue()
fBeamPositionYOrig = _xsDataExperimentalCondition.getDetector().getBeamPositionY().getValue()
fBeamPositionXNew = _xsDataResultXDSIndexing.getBeamCentreX().getValue()
fBeamPositionYNew = _xsDataResultXDSIndexing.getBeamCentreY().getValue()
xsDataStatisticsIndexing.setBeamPositionShiftX(XSDataLength(fBeamPositionXOrig - fBeamPositionXNew))
xsDataStatisticsIndexing.setBeamPositionShiftY(XSDataLength(fBeamPositionYOrig - fBeamPositionYNew))
xsDataExperimentalConditionRefined = None
if (_xsDataExperimentalCondition is None):
xsDataExperimentalConditionRefined = XSDataExperimentalCondition()
else:
# Copy the incoming experimental condition
xmlExperimentalCondition = _xsDataExperimentalCondition.marshal()
xsDataExperimentalConditionRefined = XSDataExperimentalCondition.parseString(xmlExperimentalCondition)
xsDataDetector = xsDataExperimentalConditionRefined.getDetector()
if (xsDataDetector is None):
xsDataDetector = XSDataDetector()
xsDataDetector.setBeamPositionX(XSDataLength(_xsDataResultXDSIndexing.getBeamCentreX().value))
xsDataDetector.setBeamPositionY(XSDataLength(_xsDataResultXDSIndexing.getBeamCentreY().value))
xsDataDetector.setDistance(_xsDataResultXDSIndexing.getDistance())
xsDataExperimentalConditionRefined.setDetector(xsDataDetector)
xsDataIndexingSolutionSelected.setExperimentalConditionRefined(xsDataExperimentalConditionRefined)
xsDataIndexingResult.setSelectedSolution(xsDataIndexingSolutionSelected)
return xsDataIndexingResult
示例6: testDefaultChemicalComposition
def testDefaultChemicalComposition(self):
edPluginStrategy = self.createPlugin()
xsDataSampleCrystalMM = XSDataSampleCrystalMM()
xsDataCrystal = XSDataCrystal()
xsDataCell = XSDataCell(angle_alpha=XSDataAngle(90.0),
angle_beta=XSDataAngle(90.0),
angle_gamma=XSDataAngle(90.0),
length_a=XSDataLength(78.9),
length_b=XSDataLength(95.162),
length_c=XSDataLength(104.087))
xsDataCrystal.setCell(xsDataCell)
xsDataSampleCrystalMM.setCrystal(xsDataCrystal)
inumOperators = 4
xsDataSample2 = edPluginStrategy.getDefaultChemicalComposition(xsDataSampleCrystalMM, inumOperators)
pyStrChainType = xsDataSample2.getStructure().getChain()[0].getType()
EDAssert.equal("protein", pyStrChainType.getValue())
示例7: EDPluginControlCharacterisationv1_2
class EDPluginControlCharacterisationv1_2(EDPluginControl):
"""
[To be replaced with a description of EDPluginControlTemplatev10]
"""
def __init__(self):
EDPluginControl.__init__(self)
self.setXSDataInputClass(XSDataInputCharacterisation)
self.__strPluginControlIndexingIndicators = "EDPluginControlIndexingIndicatorsv10"
self.__strPluginControlIndexingLabelit = "EDPluginControlIndexingLabelitv10"
self.__strPluginExecEvaluationIndexing = "EDPluginExecEvaluationIndexingv10"
self.__strPluginControlGeneratePrediction = "EDPluginControlGeneratePredictionv10"
self.__strPluginControlIntegration = "EDPluginControlIntegrationv10"
self.__strPluginControlStrategy = "EDPluginControlStrategyv1_2"
self.__edPluginControlIndexingIndicators = None
self.__edPluginControlIndexingLabelit = None
self.__edPluginExecEvaluationIndexingMOSFLM = None
self.__edPluginExecEvaluationIndexingLABELIT = None
self.__edPluginControlGeneratePrediction = None
self.__edPluginControlIntegration = None
self.__edPluginControlStrategy = None
self.__xsDataCollection = None
self.__xsDataResultCharacterisation = None
self.__xsDataIndexingResultMOSFLM = None
self.__xsDataCrystal = None
self.__strCharacterisationShortSummary = ""
self.__strStatusMessage = ""
self.__bDoStrategyCalculation = True
def checkParameters(self):
"""
Checks the mandatory parameters.
"""
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_2.checkParameters")
self.checkMandatoryParameters(self.getDataInput(), "Data Input is None")
self.checkMandatoryParameters(self.getDataInput().getDataCollection(), "dataCollection")
self.checkMandatoryParameters(self.getDataInput().getDataCollection().getDiffractionPlan(), "diffractionPlan")
def preProcess(self, _edObject=None):
EDPluginControl.preProcess(self)
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_2.preProcess")
# Load the plugins
self.__edPluginControlIndexingIndicators = self.loadPlugin(self.__strPluginControlIndexingIndicators, \
"Indexing")
self.__edPluginControlIndexingLabelit = self.loadPlugin(self.__strPluginControlIndexingLabelit, \
"IndexingLabelit")
self.__edPluginExecEvaluationIndexingMOSFLM = self.loadPlugin(self.__strPluginExecEvaluationIndexing, \
"IndexingEvalualtionMOSFLM")
self.__edPluginExecEvaluationIndexingLABELIT = self.loadPlugin(self.__strPluginExecEvaluationIndexing, \
"IndexingEvalualtionLABELIT")
self.__edPluginControlGeneratePrediction = self.loadPlugin(self.__strPluginControlGeneratePrediction, \
"GeneratePrediction")
self.__edPluginControlIntegration = self.loadPlugin(self.__strPluginControlIntegration, \
"Integration")
self.__edPluginControlStrategy = self.loadPlugin(self.__strPluginControlStrategy, \
"Strategy")
if (self.__edPluginControlIndexingIndicators is not None):
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_2.preProcess: " + self.__strPluginControlIndexingIndicators + " Found... setting Data Input")
# create Data Input for indexing
xsDataInputCharacterisation = self.getDataInput()
self.__xsDataCollection = xsDataInputCharacterisation.getDataCollection()
xsDataCrystal = None
xsDataSubWedgeList = self.__xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_2.preProcess: No subwedges in input data."
EDVerbose.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
strErrorMessage = "Input flux is negative or close to zero. Execution of characterisation aborted."
EDVerbose.ERROR(strErrorMessage)
self.addErrorMessage("EDPluginControlCharacterisationv1_2.preProcess ERROR: " + strErrorMessage)
#self.addComment(strErrorMessage)
self.setFailure()
xsDataDiffractionPlan = self.__xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
self.__xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
self.__xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
self.__edPluginControlIndexingIndicators.setDataInput(self.__xsDataCollection, "dataCollection")
if self.__xsDataCrystal is not None:
self.__edPluginControlIndexingIndicators.setDataInput(self.__xsDataCrystal, "crystal")
# Populate characterisation object
self.__xsDataResultCharacterisation = XSDataResultCharacterisation()
self.__xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(self.__xsDataCollection.marshal()))
#.........这里部分代码省略.........
示例8: testSetDataModelInput
#.........这里部分代码省略.........
xsDataGoniostat = XSDataGoniostat()
xsDataGoniostat.setRotationAxis(XSDataString("phi"))
xsExperimentalCondition.setGoniostat(xsDataGoniostat)
xsDataStrategy.setExperimentalCondition(xsExperimentalCondition)
# Best Files
bestFileContentDat = EDUtilsFile.readFile(os.path.join(self.strDataPath, "bestfile.dat"))
xsDataStrategy.setBestFileContentDat(XSDataString(bestFileContentDat))
bestFileContentPar = EDUtilsFile.readFile(os.path.join(self.strDataPath, "bestfile.par"))
xsDataStrategy.setBestFileContentPar(XSDataString(bestFileContentPar))
bestFileContentHKL = EDUtilsFile.readFile(os.path.join(self.strDataPath, "bestfile1.hkl"))
xsDataStrategy.addBestFileContentHKL(XSDataString(bestFileContentHKL))
# Crystal
xsDataSampleCrystalMM = XSDataSampleCrystalMM()
xsDataStructure = XSDataStructure()
xsDataComposition = XSDataChemicalCompositionMM()
xsDataChain = XSDataChain()
xsDataChain.setType(XSDataString("protein"))
xsDataChain.setNumberOfCopies(XSDataDouble(2))
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom1 = XSDataAtom()
xsDataAtom1.setSymbol(XSDataString("Se"))
xsDataAtom1.setNumberOf(XSDataDouble(4))
xsDataAtomicComposition.addAtom(xsDataAtom1)
xsDataChain.setHeavyAtoms(xsDataAtomicComposition)
xsDataChain.setNumberOfMonomers(XSDataDouble(100))
xsDataStructure.addChain(xsDataChain)
xsDataChain2 = XSDataChain()
xsDataChain2.setType(XSDataString("rna"))
xsDataChain2.setNumberOfCopies(XSDataDouble(1))
xsDataChain2.setNumberOfMonomers(XSDataDouble(60))
xsDataStructure.addChain(xsDataChain2)
xsDataLigand = XSDataLigand()
xsDataLigand.setNumberOfCopies(XSDataDouble(2))
xsDataLigand.setNumberOfLightAtoms(XSDataDouble(42))
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom2 = XSDataAtom()
xsDataAtom2.setSymbol(XSDataString("Fe"))
xsDataAtom2.setNumberOf(XSDataDouble(1))
xsDataAtomicComposition.addAtom(xsDataAtom2)
xsDataLigand.setHeavyAtoms(xsDataAtomicComposition)
xsDataStructure.addLigand(xsDataLigand)
xsDataStructure.setNumberOfCopiesInAsymmetricUnit(XSDataDouble(0.25))
xsDataSolvent = XSDataSolvent()
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom3 = XSDataAtom()
xsDataAtom3.setSymbol(XSDataString("Na"))
xsDataAtom3.setConcentration(XSDataDouble(1000))
xsDataAtom4 = XSDataAtom()
xsDataAtom4.setSymbol(XSDataString("Cl"))
xsDataAtom4.setConcentration(XSDataDouble(1000))
xsDataAtomicComposition.addAtom(xsDataAtom3)
xsDataAtomicComposition.addAtom(xsDataAtom4)
xsDataSolvent.setAtoms(xsDataAtomicComposition)
xsDataComposition.setStructure(xsDataStructure)
xsDataComposition.setSolvent(xsDataSolvent)
xsDataSampleCrystalMM.setChemicalComposition(xsDataComposition)
xsDataSampleCrystalMM.setSize(XSDataSize(XSDataLength(0.1), XSDataLength(0.1), XSDataLength(0.1)))
xsDataCrystal = XSDataCrystal()
xsDataCell = XSDataCell(angle_alpha=XSDataAngle(90.0),
angle_beta=XSDataAngle(90.0),
angle_gamma=XSDataAngle(90.0),
length_a=XSDataLength(78.9),
length_b=XSDataLength(95.162),
length_c=XSDataLength(104.087))
xsDataCrystal.setCell(xsDataCell)
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setITNumber(XSDataInteger(16))
xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
xsDataSampleCrystalMM.setSusceptibility(XSDataDouble(1.5))
xsDataStrategy.setCrystalRefined(xsDataCrystal)
xsDataStrategy.setSample(xsDataSampleCrystalMM)
xsDataStrategy.exportToFile(self.strObtainedInputFile)
pyStrExpectedInput = self.readAndParseFile (self.strReferenceInputFile)
pyStrObtainedInput = self.readAndParseFile (self.strObtainedInputFile)
xsDataInputExpected = XSDataInputStrategy.parseString(pyStrExpectedInput)
xsDataInputObtained = XSDataInputStrategy.parseString(pyStrObtainedInput)
EDAssert.equal(xsDataInputExpected.marshal(), xsDataInputObtained.marshal())
示例9: generateXSDataIndexingResult
def generateXSDataIndexingResult(_xsDataResultLabelitIndexing, _xsDataExperimentalCondition=None):
EDVerbose.DEBUG("EDHandlerXSDataLabelitv1_1.generateXSDataIndexingOutput")
xsDataLabelitScreenOutput = _xsDataResultLabelitIndexing.screenOutput
xsDataLabelitMosflmScriptsOutput = _xsDataResultLabelitIndexing.mosflmScriptsOutput
iSelectedSolutionNumber = xsDataLabelitScreenOutput.getSelectedSolutionNumber().getValue()
xsDataIndexingResult = XSDataIndexingResult()
xsDataIndexingSolutionSelected = None
for xsDataLabelitSolution in xsDataLabelitScreenOutput.getLabelitScreenSolution():
xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
edStringSpaceGroupName = EDUtilsSymmetry.getMinimumSymmetrySpaceGroupFromBravaisLattice(xsDataLabelitSolution.getBravaisLattice().getValue())
xsDataSpaceGroup.setName(XSDataString(edStringSpaceGroupName))
xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
xsDataCrystal.setCell(xsDataLabelitSolution.getUnitCell())
xsDataIndexingSolution = XSDataIndexingSolution()
xsDataIndexingSolution.setCrystal(xsDataCrystal)
iIndex = xsDataLabelitSolution.getSolutionNumber().getValue()
xsDataIndexingSolution.setNumber(XSDataInteger(iIndex))
xsDataIndexingResult.addSolution(xsDataIndexingSolution)
if (iIndex == iSelectedSolutionNumber):
xsDataIndexingSolutionSelected = XSDataIndexingSolutionSelected()
xsDataIndexingSolutionSelected.setNumber(XSDataInteger(iIndex))
edStringSelectedSpaceGroupName = edStringSpaceGroupName
xsDataCellSelected = xsDataLabelitSolution.getUnitCell()
fRmsdSelected = xsDataLabelitSolution.getRmsd().getValue()
iNumberOfSpotsSelected = xsDataLabelitSolution.getNumberOfSpots().getValue()
xsDataCrystalSelected = XSDataCrystal()
xsDataSpaceGroupSelected = XSDataSpaceGroup()
xsDataSpaceGroupSelected.setName(XSDataString(edStringSelectedSpaceGroupName))
xsDataSpaceGroupSelected.setITNumber(XSDataInteger(EDUtilsSymmetry.getITNumberFromSpaceGroupName(edStringSelectedSpaceGroupName)))
xsDataCrystalSelected.setSpaceGroup(xsDataSpaceGroupSelected)
xsDataCrystalSelected.setCell(xsDataCellSelected)
xsDataCrystalSelected.setMosaicity(XSDataDouble(xsDataLabelitScreenOutput.getMosaicity().getValue()))
xsDataIndexingSolutionSelected.setCrystal(xsDataCrystalSelected)
xsDataOrientation = XSDataOrientation()
xsDataOrientation.setMatrixA(xsDataLabelitMosflmScriptsOutput.getAMatrix())
xsDataOrientation.setMatrixU(xsDataLabelitMosflmScriptsOutput.getUMatrix())
xsDataIndexingSolutionSelected.setOrientation(xsDataOrientation)
xsDataStatisticsIndexing = XSDataStatisticsIndexing()
if (_xsDataExperimentalCondition is not None):
fBeamPositionXOrig = _xsDataExperimentalCondition.getDetector().getBeamPositionX().getValue()
fBeamPositionYOrig = _xsDataExperimentalCondition.getDetector().getBeamPositionY().getValue()
fBeamPositionXNew = xsDataLabelitScreenOutput.getBeamCentreX().getValue()
fBeamPositionYNew = xsDataLabelitScreenOutput.getBeamCentreY().getValue()
xsDataStatisticsIndexing.setBeamPositionShiftX(XSDataLength(fBeamPositionXOrig - fBeamPositionXNew))
xsDataStatisticsIndexing.setBeamPositionShiftY(XSDataLength(fBeamPositionYOrig - fBeamPositionYNew))
# xsDataStatisticsIndexing.setSpotDeviXSDataLength( dDistanceRefinedationAngular( XSDataAngle( dDeviationAngular ) )
xsDataStatisticsIndexing.setSpotDeviationPositional(XSDataLength(fRmsdSelected))
xsDataStatisticsIndexing.setSpotsUsed(XSDataInteger(iNumberOfSpotsSelected))
xsDataStatisticsIndexing.setSpotsTotal(XSDataInteger(iNumberOfSpotsSelected))
xsDataIndexingSolutionSelected.setStatistics(xsDataStatisticsIndexing)
xsDataExperimentalConditionRefined = None
if (_xsDataExperimentalCondition is None):
xsDataExperimentalConditionRefined = XSDataExperimentalCondition()
else:
# Copy the incoming experimental condition
xmlExperimentalCondition = _xsDataExperimentalCondition.marshal()
xsDataExperimentalConditionRefined = XSDataExperimentalCondition.parseString(xmlExperimentalCondition)
xsDataDetector = xsDataExperimentalConditionRefined.getDetector()
if (xsDataDetector is None):
xsDataDetector = XSDataDetector()
xsDataDetector.setBeamPositionX(xsDataLabelitScreenOutput.getBeamCentreX())
xsDataDetector.setBeamPositionY(xsDataLabelitScreenOutput.getBeamCentreY())
xsDataDetector.setDistance(xsDataLabelitScreenOutput.getDistance())
xsDataExperimentalConditionRefined.setDetector(xsDataDetector)
xsDataIndexingSolutionSelected.setExperimentalConditionRefined(xsDataExperimentalConditionRefined)
xsDataIndexingResult.setSelectedSolution(xsDataIndexingSolutionSelected)
xsDataIndexingResult.setIndexingLogFile(xsDataLabelitScreenOutput.getPathToLogFile())
return xsDataIndexingResult
示例10: testGetXSDataRaddoseInput
def testGetXSDataRaddoseInput(self):
"""
"""
from XSDataCommon import XSDataLength
from XSDataCommon import XSDataWavelength
from XSDataCommon import XSDataFlux
from XSDataCommon import XSDataSize
from XSDataCommon import XSDataDouble
from XSDataCommon import XSDataString
from XSDataCommon import XSDataAngle
from XSDataCommon import XSDataTime
from XSDataCommon import XSDataInteger
from XSDataMXv1 import XSDataBeam
from XSDataMXv1 import XSDataStructure
from XSDataMXv1 import XSDataChain
from XSDataMXv1 import XSDataAtom
from XSDataMXv1 import XSDataLigand
from XSDataMXv1 import XSDataCrystal
from XSDataMXv1 import XSDataSpaceGroup
from XSDataMXv1 import XSDataSampleCrystalMM
from XSDataMXv1 import XSDataChemicalCompositionMM
from XSDataMXv1 import XSDataAtomicComposition
from XSDataMXv1 import XSDataSolvent
from XSDataMXv1 import XSDataCell
from EDHandlerXSDataRaddosev10 import EDHandlerXSDataRaddosev10
EDFactoryPluginStatic.loadModule("XSDataRaddosev10")
from XSDataRaddosev10 import XSDataRaddoseInput
xsDataBeam = XSDataBeam()
xsDataBeam.setSize(XSDataSize(x=XSDataLength(0.1), y=XSDataLength(0.1)))
xsDataBeam.setWavelength(XSDataWavelength(2.41))
xsDataBeam.setFlux(XSDataFlux(1e+12))
xsDataSample = XSDataSampleCrystalMM()
xsDataStructure = XSDataStructure()
xsDataComposition = XSDataChemicalCompositionMM()
xsDataChain = XSDataChain()
xsDataChain.setType(XSDataString("protein"))
xsDataChain.setNumberOfCopies(XSDataDouble(2))
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom1 = XSDataAtom()
xsDataAtom1.setSymbol(XSDataString("Se"))
xsDataAtom1.setNumberOf(XSDataDouble(4))
xsDataAtomicComposition.addAtom(xsDataAtom1)
xsDataAtom2 = XSDataAtom()
xsDataAtom2.setSymbol(XSDataString("S"))
xsDataAtom2.setNumberOf(XSDataDouble(5))
xsDataAtomicComposition.addAtom(xsDataAtom2)
xsDataChain.setHeavyAtoms(xsDataAtomicComposition)
xsDataChain.setNumberOfMonomers(XSDataDouble(100))
xsDataStructure.addChain(xsDataChain)
xsDataChain2 = XSDataChain()
xsDataChain2.setType(XSDataString("rna"))
xsDataChain2.setNumberOfCopies(XSDataDouble(1))
xsDataChain2.setNumberOfMonomers(XSDataDouble(60))
xsDataStructure.addChain(xsDataChain2)
xsDataLigand = XSDataLigand()
xsDataLigand.setNumberOfCopies(XSDataDouble(2))
xsDataLigand.setNumberOfLightAtoms(XSDataDouble(42))
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom3 = XSDataAtom()
xsDataAtom3.setSymbol(XSDataString("Fe"))
xsDataAtom3.setNumberOf(XSDataDouble(1))
xsDataAtomicComposition.addAtom(xsDataAtom3)
xsDataLigand.setHeavyAtoms(xsDataAtomicComposition)
xsDataStructure.addLigand(xsDataLigand)
xsDataStructure.setNumberOfCopiesInAsymmetricUnit(XSDataDouble(0.25))
xsDataSolvent = XSDataSolvent()
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtomNa = XSDataAtom()
xsDataAtomNa.setSymbol(XSDataString("Na"))
xsDataAtomNa.setConcentration(XSDataDouble(1000))
xsDataAtomicComposition.addAtom(xsDataAtomNa)
xsDataAtomCl = XSDataAtom()
xsDataAtomCl.setSymbol(XSDataString("Cl"))
xsDataAtomCl.setConcentration(XSDataDouble(1000))
xsDataAtomicComposition.addAtom(xsDataAtomCl)
xsDataSolvent.setAtoms(xsDataAtomicComposition)
xsDataComposition.setStructure(xsDataStructure)
xsDataComposition.setSolvent(xsDataSolvent)
xsDataSample.setChemicalComposition(xsDataComposition)
xsDataSample.setSize(XSDataSize(XSDataLength(0.1), XSDataLength(0.1), XSDataLength(0.1)))
xsDataCell = XSDataCell(angle_alpha=XSDataAngle(90.0),
angle_beta=XSDataAngle(90.0),
angle_gamma=XSDataAngle(90.0),
length_a=XSDataLength(78.9),
length_b=XSDataLength(95.162),
length_c=XSDataLength(104.087))
xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
#.........这里部分代码省略.........
示例11: EDPluginControlCharacterisationv1_5
#.........这里部分代码省略.........
self.warning(strWarningMessageBanner)
self.warning(strWarningMessage1)
self.warning(strWarningMessage2)
self.warning(strWarningMessageBanner)
self.addWarningMessage(strWarningMessageBanner)
self.addWarningMessage(strWarningMessage1)
self.addWarningMessage(strWarningMessage2)
self.addWarningMessage(strWarningMessageBanner)
self.sendMessageToMXCuBE(strWarningMessage1, "warning")
self.sendMessageToMXCuBE(strWarningMessage2, "warning")
xsDataCrystal = None
xsDataSubWedgeList = self._xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_5.preProcess: No subwedges in input data."
self.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
strErrorMessage = "Input flux is negative or close to zero. Execution of characterisation aborted."
self.ERROR(strErrorMessage)
self.sendMessageToMXCuBE(strErrorMessage, "error")
self.addErrorMessage("EDPluginControlCharacterisationv1_5.preProcess ERROR: " + strErrorMessage)
# self.addComment(strErrorMessage)
self.setFailure()
xsDataDiffractionPlan = self._xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
self._xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
self._xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCollection, "dataCollection")
if self._xsDataCrystal is not None:
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCrystal, "crystal")
# Populate characterisation object
self._xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(self._xsDataCollection.marshal()))
# Load the thumbnail plugins
self._iNoReferenceImages = 0
if not self.isFailure():
for subWedge in xsDataInputCharacterisation.dataCollection.subWedge:
for image in subWedge.image:
self._iNoReferenceImages += 1
edPluginJpeg = self.loadPlugin(self._strPluginGenerateThumbnailName)
xsDataInputMXThumbnail = XSDataInputMXThumbnail()
xsDataInputMXThumbnail.image = XSDataFile(image.path)
xsDataInputMXThumbnail.height = XSDataInteger(1024)
xsDataInputMXThumbnail.width = XSDataInteger(1024)
jpegFilename = os.path.splitext(os.path.basename(image.path.value))[0] + ".jpg"
xsDataInputMXThumbnail.outputPath = XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), jpegFilename)))
edPluginJpeg.dataInput = xsDataInputMXThumbnail
edPluginThumnail = self.loadPlugin(self._strPluginGenerateThumbnailName)
xsDataInputMXThumbnail = XSDataInputMXThumbnail()
xsDataInputMXThumbnail.image = XSDataFile(image.path)
xsDataInputMXThumbnail.height = XSDataInteger(256)
xsDataInputMXThumbnail.width = XSDataInteger(256)
thumbnailFilename = os.path.splitext(os.path.basename(image.path.value))[0] + ".thumbnail.jpg"
xsDataInputMXThumbnail.outputPath = XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), thumbnailFilename)))
edPluginThumnail.dataInput = xsDataInputMXThumbnail
示例12: preProcess
def preProcess(self, _edObject=None):
EDPluginControl.preProcess(self)
self.DEBUG("EDPluginControlCharacterisationv1_5.preProcess")
self._xsDataResultCharacterisation = XSDataResultCharacterisation()
# Load the plugins
self._edPluginControlIndexingIndicators = self.loadPlugin(self._strPluginControlIndexingIndicators, \
"Indexing")
self._edPluginExecEvaluationIndexingLABELIT = self.loadPlugin(self._strPluginExecEvaluationIndexing, \
"IndexingEvalualtionLABELIT")
self._edPluginControlIndexingMOSFLM = self.loadPlugin(self._strPluginControlIndexingMOSFLM, \
"IndexingMOSFLM")
self._edPluginExecEvaluationIndexingMOSFLM = self.loadPlugin(self._strPluginExecEvaluationIndexing, \
"IndexingEvalualtionMOSFLM")
self._edPluginControlGeneratePrediction = self.loadPlugin(self._strPluginControlGeneratePrediction, \
"GeneratePrediction")
self._edPluginControlIntegration = self.loadPlugin(self._strPluginControlIntegration, \
"Integration")
self._edPluginControlXDSGenerateBackgroundImage = self.loadPlugin(self._strPluginControlXDSGenerateBackgroundImage, \
"ControlXDSGenerateBackgroundImage")
self._edPluginControlStrategy = self.loadPlugin(self._strPluginControlStrategy, \
"Strategy")
if self._runKappa:
self._edPluginControlKappa = self.loadPlugin(self._strPluginControlKappaName, "Kappa")
if (self._edPluginControlIndexingIndicators is not None):
self.DEBUG("EDPluginControlCharacterisationv1_5.preProcess: " + self._strPluginControlIndexingIndicators + " Found... setting Data Input")
# create Data Input for indexing
xsDataInputCharacterisation = self.getDataInput()
self._xsDataCollection = xsDataInputCharacterisation.getDataCollection()
# MXSUP-1445: Check if transmission is less than 10% and warn if it's the case
xsDataFirstSubWedge = self._xsDataCollection.getSubWedge()[0]
xsDataBeam = xsDataFirstSubWedge.getExperimentalCondition().getBeam()
if xsDataBeam.getTransmission() is not None:
fTransmission = xsDataBeam.getTransmission().getValue()
if fTransmission < self._fMinTransmission:
strWarningMessageBanner = "^"*80
strWarningMessage1 = "WARNING! Transmission for characterisation set to %.1f %%" % fTransmission
strWarningMessage2 = "Please consider re-characterising with transmission set to 100 %"
self.warning(strWarningMessageBanner)
self.warning(strWarningMessage1)
self.warning(strWarningMessage2)
self.warning(strWarningMessageBanner)
self.addWarningMessage(strWarningMessageBanner)
self.addWarningMessage(strWarningMessage1)
self.addWarningMessage(strWarningMessage2)
self.addWarningMessage(strWarningMessageBanner)
self.sendMessageToMXCuBE(strWarningMessage1, "warning")
self.sendMessageToMXCuBE(strWarningMessage2, "warning")
xsDataCrystal = None
xsDataSubWedgeList = self._xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_5.preProcess: No subwedges in input data."
self.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
strErrorMessage = "Input flux is negative or close to zero. Execution of characterisation aborted."
self.ERROR(strErrorMessage)
self.sendMessageToMXCuBE(strErrorMessage, "error")
self.addErrorMessage("EDPluginControlCharacterisationv1_5.preProcess ERROR: " + strErrorMessage)
# self.addComment(strErrorMessage)
self.setFailure()
xsDataDiffractionPlan = self._xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
self._xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
self._xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCollection, "dataCollection")
if self._xsDataCrystal is not None:
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCrystal, "crystal")
# Populate characterisation object
self._xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(self._xsDataCollection.marshal()))
# Load the thumbnail plugins
self._iNoReferenceImages = 0
if not self.isFailure():
for subWedge in xsDataInputCharacterisation.dataCollection.subWedge:
for image in subWedge.image:
self._iNoReferenceImages += 1
edPluginJpeg = self.loadPlugin(self._strPluginGenerateThumbnailName)
xsDataInputMXThumbnail = XSDataInputMXThumbnail()
xsDataInputMXThumbnail.image = XSDataFile(image.path)
xsDataInputMXThumbnail.height = XSDataInteger(1024)
xsDataInputMXThumbnail.width = XSDataInteger(1024)
jpegFilename = os.path.splitext(os.path.basename(image.path.value))[0] + ".jpg"
xsDataInputMXThumbnail.outputPath = XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), jpegFilename)))
edPluginJpeg.dataInput = xsDataInputMXThumbnail
edPluginThumnail = self.loadPlugin(self._strPluginGenerateThumbnailName)
xsDataInputMXThumbnail = XSDataInputMXThumbnail()
xsDataInputMXThumbnail.image = XSDataFile(image.path)
xsDataInputMXThumbnail.height = XSDataInteger(256)
xsDataInputMXThumbnail.width = XSDataInteger(256)
#.........这里部分代码省略.........
示例13: generateXSDataIndexingResult
def generateXSDataIndexingResult(_xsDataMOSFLMIndexingOutput, _xsDataExperimentalCondition=None):
"""
Translation from XSDataMOSFLMIndexingOutput to XSDataIndexingResult.
"""
EDVerbose.DEBUG("EDHandlerXSDataMOSFLMv10.generateXSDataIndexingOutput")
xsDataMOSFLMBeamPositionRefined = _xsDataMOSFLMIndexingOutput.getRefinedBeam()
xsDataMOSFLMBeamPositionShift = _xsDataMOSFLMIndexingOutput.getBeamShift()
dDeviationAngular = _xsDataMOSFLMIndexingOutput.getDeviationAngular().getValue()
dDeviationPositional = _xsDataMOSFLMIndexingOutput.getDeviationPositional().getValue()
dMosaicityEstimation = _xsDataMOSFLMIndexingOutput.getMosaicityEstimation().getValue()
dDistanceRefined = _xsDataMOSFLMIndexingOutput.getRefinedDistance().getValue()
iSelectedSolution = _xsDataMOSFLMIndexingOutput.getSelectedSolutionNumber().getValue()
iSpotsTotal = _xsDataMOSFLMIndexingOutput.getSpotsTotal().getValue()
iSpotsUsed = _xsDataMOSFLMIndexingOutput.getSpotsUsed().getValue()
xsDataCellRefined = _xsDataMOSFLMIndexingOutput.getRefinedNewmat().getRefinedCell()
xsDataMatrixA = _xsDataMOSFLMIndexingOutput.getRefinedNewmat().getAMatrix()
xsDataMatrixU = _xsDataMOSFLMIndexingOutput.getRefinedNewmat().getUMatrix()
strSelectedSpaceGroupName = _xsDataMOSFLMIndexingOutput.getSelectedSolutionSpaceGroup().getValue()
iSelectedSpaceGroupNumber = _xsDataMOSFLMIndexingOutput.getSelectedSolutionSpaceGroupNumber().getValue()
xsDataIndexingResult = XSDataIndexingResult()
xsDataIndexingSolutionSelected = None
for possibleSolutions in _xsDataMOSFLMIndexingOutput.getPossibleSolutions():
xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(XSDataString(possibleSolutions.getLattice().getValue()))
xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
xsDataCrystal.setCell(possibleSolutions.getCell())
xsDataIndexingSolution = XSDataIndexingSolution()
xsDataIndexingSolution.setCrystal(xsDataCrystal)
iIndex = possibleSolutions.getIndex().getValue()
xsDataIndexingSolution.setNumber(XSDataInteger(iIndex))
xsDataIndexingSolution.setPenalty(XSDataFloat(possibleSolutions.getPenalty().getValue()))
xsDataIndexingResult.addSolution(xsDataIndexingSolution)
if (iIndex == iSelectedSolution):
xsDataIndexingSolutionSelected = XSDataIndexingSolutionSelected()
xsDataIndexingSolutionSelected.setNumber(XSDataInteger(iIndex))
xsDataIndexingSolutionSelected.setPenalty(XSDataFloat(possibleSolutions.getPenalty().getValue()))
xsDataCrystalSelected = XSDataCrystal()
xsDataSpaceGroupSelected = XSDataSpaceGroup()
xsDataSpaceGroupSelected.setName(XSDataString(strSelectedSpaceGroupName))
xsDataSpaceGroupSelected.setITNumber(XSDataInteger(iSelectedSpaceGroupNumber))
xsDataCrystalSelected.setSpaceGroup(xsDataSpaceGroupSelected)
xsDataCrystalSelected.setCell(xsDataCellRefined)
xsDataCrystalSelected.setMosaicity(XSDataDouble(dMosaicityEstimation))
xsDataIndexingSolutionSelected.setCrystal(xsDataCrystalSelected)
xsDataOrientation = XSDataOrientation()
xsDataOrientation.setMatrixA(xsDataMatrixA)
xsDataOrientation.setMatrixU(xsDataMatrixU)
xsDataIndexingSolutionSelected.setOrientation(xsDataOrientation)
xsDataStatisticsIndexing = XSDataStatisticsIndexing()
xsDataStatisticsIndexing.setBeamPositionShiftX(XSDataLength(xsDataMOSFLMBeamPositionShift.getX().getValue()))
xsDataStatisticsIndexing.setBeamPositionShiftY(XSDataLength(xsDataMOSFLMBeamPositionShift.getY().getValue()))
xsDataStatisticsIndexing.setSpotDeviationAngular(XSDataAngle(dDeviationAngular))
xsDataStatisticsIndexing.setSpotDeviationPositional(XSDataLength(dDeviationPositional))
xsDataStatisticsIndexing.setSpotsUsed(XSDataInteger(iSpotsUsed))
xsDataStatisticsIndexing.setSpotsTotal(XSDataInteger(iSpotsTotal))
xsDataIndexingSolutionSelected.setStatistics(xsDataStatisticsIndexing)
xsDataExperimentalConditionRefined = None
if (_xsDataExperimentalCondition is None):
xsDataExperimentalConditionRefined = XSDataExperimentalCondition()
else:
# Copy the incoming experimental condition
xmlExperimentalCondition = _xsDataExperimentalCondition.marshal()
xsDataExperimentalConditionRefined = XSDataExperimentalCondition.parseString(xmlExperimentalCondition)
xsDataDetector = xsDataExperimentalConditionRefined.getDetector()
if (xsDataDetector is None):
xsDataDetector = XSDataDetector()
xsDataDetector.setBeamPositionX(XSDataLength(xsDataMOSFLMBeamPositionRefined.getX().getValue()))
xsDataDetector.setBeamPositionY(XSDataLength(xsDataMOSFLMBeamPositionRefined.getY().getValue()))
xsDataDetector.setDistance(XSDataLength(dDistanceRefined))
xsDataExperimentalConditionRefined.setDetector(xsDataDetector)
xsDataIndexingSolutionSelected.setExperimentalConditionRefined(xsDataExperimentalConditionRefined)
xsDataIndexingResult.setSelectedSolution(xsDataIndexingSolutionSelected)
return xsDataIndexingResult
示例14: preProcess
def preProcess(self, _edObject=None):
EDPluginControl.preProcess(self)
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_3.preProcess")
# Load the plugins
self._edPluginControlIndexingIndicators = self.loadPlugin(self._strPluginControlIndexingIndicators, \
"Indexing")
self._edPluginControlIndexingLabelit = self.loadPlugin(self._strPluginControlIndexingLabelit, \
"IndexingLabelit")
self._edPluginExecEvaluationIndexingMOSFLM = self.loadPlugin(self._strPluginExecEvaluationIndexing, \
"IndexingEvalualtionMOSFLM")
self._edPluginExecEvaluationIndexingLABELIT = self.loadPlugin(self._strPluginExecEvaluationIndexing, \
"IndexingEvalualtionLABELIT")
self._edPluginControlGeneratePrediction = self.loadPlugin(self._strPluginControlGeneratePrediction, \
"GeneratePrediction")
self._edPluginControlIntegration = self.loadPlugin(self._strPluginControlIntegration, \
"Integration")
self._edPluginControlXDSGenerateBackgroundImage = self.loadPlugin(self._strPluginControlXDSGenerateBackgroundImage, \
"ControlXDSGenerateBackgroundImage")
self._edPluginControlStrategy = self.loadPlugin(self._strPluginControlStrategy, \
"Strategy")
if (self._edPluginControlIndexingIndicators is not None):
EDVerbose.DEBUG("EDPluginControlCharacterisationv1_3.preProcess: " + self._strPluginControlIndexingIndicators + " Found... setting Data Input")
# create Data Input for indexing
xsDataInputCharacterisation = self.getDataInput()
self._xsDataCollection = xsDataInputCharacterisation.getDataCollection()
# MXSUP-1445: Check if transmission is less than 10% and warn if it's the case
xsDataFirstSubWedge = self._xsDataCollection.getSubWedge()[0]
xsDataBeam = xsDataFirstSubWedge.getExperimentalCondition().getBeam()
if xsDataBeam.getTransmission() is not None:
fTransmission = xsDataBeam.getTransmission().getValue()
if fTransmission < self._fMinTransmission:
strWarningMessageBanner = "^"*80
strWarningMessage1 = "WARNING! Transmission for characterisation set to %.1f %%" % fTransmission
strWarningMessage2 = "Please consider re-characterising with transmission set to 100 %"
self.warning(strWarningMessageBanner)
self.warning(strWarningMessage1)
self.warning(strWarningMessage2)
self.warning(strWarningMessageBanner)
self.addWarningMessage(strWarningMessageBanner)
self.addWarningMessage(strWarningMessage1)
self.addWarningMessage(strWarningMessage2)
self.addWarningMessage(strWarningMessageBanner)
xsDataCrystal = None
xsDataSubWedgeList = self._xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_3.preProcess: No subwedges in input data."
EDVerbose.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
strErrorMessage = "Input flux is negative or close to zero. Execution of characterisation aborted."
EDVerbose.ERROR(strErrorMessage)
self.addErrorMessage("EDPluginControlCharacterisationv1_3.preProcess ERROR: " + strErrorMessage)
#self.addComment(strErrorMessage)
self.setFailure()
xsDataDiffractionPlan = self._xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
self._xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
self._xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCollection, "dataCollection")
if self._xsDataCrystal is not None:
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCrystal, "crystal")
# Populate characterisation object
self._xsDataResultCharacterisation = XSDataResultCharacterisation()
self._xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(self._xsDataCollection.marshal()))
示例15: EDPluginControlCharacterisationv1_3
#.........这里部分代码省略.........
strWarningMessageBanner = "^"*80
strWarningMessage1 = "WARNING! Transmission for characterisation set to %.1f %%" % fTransmission
strWarningMessage2 = "Please consider re-characterising with transmission set to 100 %"
self.warning(strWarningMessageBanner)
self.warning(strWarningMessage1)
self.warning(strWarningMessage2)
self.warning(strWarningMessageBanner)
self.addWarningMessage(strWarningMessageBanner)
self.addWarningMessage(strWarningMessage1)
self.addWarningMessage(strWarningMessage2)
self.addWarningMessage(strWarningMessageBanner)
xsDataCrystal = None
xsDataSubWedgeList = self._xsDataCollection.getSubWedge()
if ((xsDataSubWedgeList is None) or (xsDataSubWedgeList == [])):
strError = "EDPluginControlCharacterisationv1_3.preProcess: No subwedges in input data."
self.ERROR(strError)
self.setFailure()
else:
xsDataExperimentalCondition = xsDataSubWedgeList[0].getExperimentalCondition()
# Fix for bug 431: if the flux is zero raise an error
xsDataDoubleFlux = xsDataExperimentalCondition.getBeam().getFlux()
if (xsDataDoubleFlux is not None):
if (xsDataDoubleFlux.getValue() < 0.1):
strErrorMessage = "Input flux is negative or close to zero. Execution of characterisation aborted."
self.ERROR(strErrorMessage)
self.addErrorMessage("EDPluginControlCharacterisationv1_3.preProcess ERROR: " + strErrorMessage)
#self.addComment(strErrorMessage)
self.setFailure()
xsDataDiffractionPlan = self._xsDataCollection.getDiffractionPlan()
xsDataStringForcedSpaceGroup = xsDataDiffractionPlan.getForcedSpaceGroup()
if (xsDataStringForcedSpaceGroup is not None):
self._xsDataCrystal = XSDataCrystal()
xsDataSpaceGroup = XSDataSpaceGroup()
xsDataSpaceGroup.setName(xsDataStringForcedSpaceGroup)
self._xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCollection, "dataCollection")
if self._xsDataCrystal is not None:
self._edPluginControlIndexingIndicators.setDataInput(self._xsDataCrystal, "crystal")
# Populate characterisation object
self._xsDataResultCharacterisation = XSDataResultCharacterisation()
self._xsDataResultCharacterisation.setDataCollection(XSDataCollection.parseString(self._xsDataCollection.marshal()))
# Load the thumbnail plugins
for subWedge in xsDataInputCharacterisation.dataCollection.subWedge:
for image in subWedge.image:
edPluginJpeg = self.loadPlugin(self._strPluginGenerateThumbnailName)
xsDataInputMXThumbnail = XSDataInputMXThumbnail()
xsDataInputMXThumbnail.image = XSDataFile(image.path)
xsDataInputMXThumbnail.height = XSDataInteger(1024)
xsDataInputMXThumbnail.width = XSDataInteger(1024)
jpegFilename = os.path.splitext(os.path.basename(image.path.value))[0]+".jpg"
xsDataInputMXThumbnail.outputPath = XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), jpegFilename)))
edPluginJpeg.dataInput = xsDataInputMXThumbnail
edPluginThumnail = self.loadPlugin(self._strPluginGenerateThumbnailName)
xsDataInputMXThumbnail = XSDataInputMXThumbnail()
xsDataInputMXThumbnail.image = XSDataFile(image.path)
xsDataInputMXThumbnail.height = XSDataInteger(256)
xsDataInputMXThumbnail.width = XSDataInteger(256)
thumbnailFilename = os.path.splitext(os.path.basename(image.path.value))[0]+".thumbnail.jpg"
xsDataInputMXThumbnail.outputPath = XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), thumbnailFilename)))
edPluginThumnail.dataInput = xsDataInputMXThumbnail
self._listPluginGenerateThumbnail.append((image, edPluginJpeg, edPluginThumnail))