本文整理匯總了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))