本文整理汇总了Python中XSDataMXv1.XSDataSampleCrystalMM类的典型用法代码示例。如果您正苦于以下问题:Python XSDataSampleCrystalMM类的具体用法?Python XSDataSampleCrystalMM怎么用?Python XSDataSampleCrystalMM使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了XSDataSampleCrystalMM类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: 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())
示例3: createInputCharacterisationFromSubWedges
def createInputCharacterisationFromSubWedges(self):
self.DEBUG("EDPluginControlInterfacev1_3.createInputCharacterisationFromSubWedges")
xsDataResultSubWedgeAssemble = self.edPluginControlSubWedgeAssemble.getDataOutput()
self.xsDataInputCharacterisation = XSDataInputCharacterisation()
xsDataCollection = XSDataCollection()
# Default exposure time (for the moment, this value should be
# possible to read from the command line)
if self.xsDataDiffractionPlan is None:
self.xsDataDiffractionPlan = XSDataDiffractionPlan()
if (not xsDataResultSubWedgeAssemble is None):
pyListSubWedge = xsDataResultSubWedgeAssemble.getSubWedge()
xsDataCollection.setSubWedge(pyListSubWedge)
for xsDataSubWedge in pyListSubWedge:
if (self.strComplexity is not None):
self.xsDataDiffractionPlan.setComplexity(XSDataString(self.strComplexity))
if (self.fFlux is not None):
xsDataSubWedge.getExperimentalCondition().getBeam().setFlux(XSDataFlux(self.fFlux))
if (self.fBeamSizeX is not None) and (self.fBeamSizeY is not None):
xsDataSize = XSDataSize()
xsDataSize.setX(XSDataLength(self.fBeamSizeX))
xsDataSize.setY(XSDataLength(self.fBeamSizeY))
xsDataSubWedge.getExperimentalCondition().getBeam().setSize(xsDataSize)
if (self.fApertureSize is not None):
xsDataSubWedge.getExperimentalCondition().getBeam().setApertureSize(XSDataLength(self.fApertureSize))
if (self.fBeamPosX is not None):
xsDataSubWedge.getExperimentalCondition().getDetector().setBeamPositionX(XSDataLength(self.fBeamPosX))
if (self.fBeamPosY is not None):
xsDataSubWedge.getExperimentalCondition().getDetector().setBeamPositionY(XSDataLength(self.fBeamPosY))
if (self.fMinExposureTimePerImage is not None):
xsDataSubWedge.getExperimentalCondition().getBeam().setMinExposureTimePerImage(XSDataTime(self.fMinExposureTimePerImage))
if (self.fTransmission is not None):
xsDataSubWedge.getExperimentalCondition().getBeam().setTransmission(XSDataDouble(self.fTransmission))
if (self.fWavelength is not None):
xsDataSubWedge.getExperimentalCondition().getBeam().setWavelength(XSDataWavelength(self.fWavelength))
if self.fMinOscillationWidth != None:
xsDataSubWedge.getExperimentalCondition().getGoniostat().setMinOscillationWidth(XSDataAngle(self.fMinOscillationWidth))
if self.fMaxOscillationSpeed != None:
xsDataSubWedge.getExperimentalCondition().getGoniostat().setMaxOscillationSpeed(XSDataAngularSpeed(self.fMaxOscillationSpeed))
if (self.strForcedSpaceGroup is not None):
self.xsDataDiffractionPlan.setForcedSpaceGroup(XSDataString(self.strForcedSpaceGroup))
self.xsDataDiffractionPlan.setAnomalousData(XSDataBoolean(self.bAnomalousData))
self.xsDataDiffractionPlan.setMaxExposureTimePerDataCollection(XSDataTime(self.fMaxExposureTimePerDataCollection))
if (self.strStrategyOption is not None):
self.xsDataDiffractionPlan.setStrategyOption(XSDataString(self.strStrategyOption))
xsDataCollection.setDiffractionPlan(self.xsDataDiffractionPlan)
if self.xsDataSample is not None:
xsDataCollection.setSample(XSDataSampleCrystalMM.parseString(self.xsDataSample.marshal()))
self.xsDataInputCharacterisation.setDataCollection(xsDataCollection)
示例4: preProcess
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess...")
self.__edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput().getSample()
if(xsDataSampleCrystalMM is None):
self.__xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self.__xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput().getCrystalRefined()
if(xsDataCrystal is not None):
self.__xsDataSampleCopy.setCrystal(xsDataCrystal)
# Raddose is enabled only if the beam flux is set
if(self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None):
warningMessage = EDMessage.WARNING_CANNOT_USE_PLUGIN_03 % ('EDPluginControlStrategyv10.preProcess', self.__strPluginRaddoseName, "Beam Flux not set")
EDVerbose.warning(warningMessage)
self.addWarningMessage(warningMessage)
else:
self.__edPluginRaddose = self.loadPlugin(self.__strPluginRaddoseName)
if (self.__edPluginRaddose is not None):
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess: " + self.__strPluginRaddoseName + " Found... setting Data Input")
strFileSymop = os.path.join(self.getSymopHome(), "symop.lib")
xsDataStringSpaceGroup = self.getDataInput().getDiffractionPlan().getForcedSpaceGroup()
# Space Group has been forced
# Prepare chemical composition calculation with the forced Space Group (Space Group Name)
if(xsDataStringSpaceGroup is not None):
strSpaceGroup = xsDataStringSpaceGroup.getValue()
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess: Forced Space Group Found: " + strSpaceGroup)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(strSpaceGroup, strFileSymop)
except Exception, detail:
errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginControlStrategyv10.preProcess', "Problem to calculate Number of symmetry operators", detail)
EDVerbose.error(errorMessage)
self.addErrorMessage(errorMessage)
raise RuntimeError, errorMessage
# Space Group has NOT been forced
else:
xsDataStringSpaceGroup = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getName()
if (xsDataStringSpaceGroup is not None):
# Prepare chemical composition calculation with the Space Group calculated by indexing (Space Group Name)
strSpaceGroupName = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getName().getValue()
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess: Space Group IT Name found by indexing: " + strSpaceGroupName)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(strSpaceGroupName, strFileSymop)
except Exception, detail:
errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginControlStrategyv10.preProcess', "Problem to calculate Number of symmetry operators", detail)
EDVerbose.error(errorMessage)
self.addErrorMessage(errorMessage)
raise RuntimeError, errorMessage
else:
# Prepare chemical composition calculation with the Space Group calculated by indexing (Space Group IT number)
strSpaceGroupITNumber = str(self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getITNumber().getValue())
示例5: EDPluginControlStrategyv10
class EDPluginControlStrategyv10(EDPluginControl):
"""
The Plugin that controls the strategy step
"""
def __init__ (self):
EDPluginControl.__init__(self)
self.__strPluginRaddoseName = "EDPluginRaddosev10"
self.__oedPluginRaddose = None
self.__oedHandlerXSDataRaddose = None
self.__strPluginBestName = "EDPluginBestv10"
self.__edPluginBest = None
self.__edHandlerXSDataBest = None
self.__strCONF_SYMOP_HOME = "symopHome"
# Default value for the location of the symop table
self.__strSymopHome = "/opt/pxsoft/ccp4-6.0.2/lib/data"
self.__xsDataSampleCopy = None
# For default chemical composition
self.__fAverageAminoAcidVolume = 135.49
self.__fAverageCrystalSolventContent = 0.47
self.__fAverageSulfurContentPerAminoacid = 0.05
self.__fAverageSulfurConcentration = 314
self.setXSDataInputClass(XSDataStrategyInput)
def setSymopHome(self, _strSymopHome):
self.__strSymopHome = _strSymopHome
def getSymopHome(self):
return self.__strSymopHome
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess...")
self.__edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput().getSample()
if(xsDataSampleCrystalMM is None):
self.__xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self.__xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput().getCrystalRefined()
if(xsDataCrystal is not None):
self.__xsDataSampleCopy.setCrystal(xsDataCrystal)
# Raddose is enabled only if the beam flux is set
if(self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None):
warningMessage = EDMessage.WARNING_CANNOT_USE_PLUGIN_03 % ('EDPluginControlStrategyv10.preProcess', self.__strPluginRaddoseName, "Beam Flux not set")
EDVerbose.warning(warningMessage)
self.addWarningMessage(warningMessage)
else:
self.__edPluginRaddose = self.loadPlugin(self.__strPluginRaddoseName)
if (self.__edPluginRaddose is not None):
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess: " + self.__strPluginRaddoseName + " Found... setting Data Input")
strFileSymop = os.path.join(self.getSymopHome(), "symop.lib")
xsDataStringSpaceGroup = self.getDataInput().getDiffractionPlan().getForcedSpaceGroup()
# Space Group has been forced
# Prepare chemical composition calculation with the forced Space Group (Space Group Name)
if(xsDataStringSpaceGroup is not None):
strSpaceGroup = xsDataStringSpaceGroup.getValue()
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess: Forced Space Group Found: " + strSpaceGroup)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(strSpaceGroup, strFileSymop)
except Exception, detail:
errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginControlStrategyv10.preProcess', "Problem to calculate Number of symmetry operators", detail)
EDVerbose.error(errorMessage)
self.addErrorMessage(errorMessage)
raise RuntimeError, errorMessage
# Space Group has NOT been forced
else:
xsDataStringSpaceGroup = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getName()
if (xsDataStringSpaceGroup is not None):
# Prepare chemical composition calculation with the Space Group calculated by indexing (Space Group Name)
strSpaceGroupName = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getName().getValue()
EDVerbose.DEBUG("EDPluginControlStrategyv10.preProcess: Space Group IT Name found by indexing: " + strSpaceGroupName)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(strSpaceGroupName, strFileSymop)
except Exception, detail:
errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginControlStrategyv10.preProcess', "Problem to calculate Number of symmetry operators", detail)
EDVerbose.error(errorMessage)
self.addErrorMessage(errorMessage)
#.........这里部分代码省略.........
示例6: EDPluginControlStrategyv1_2
class EDPluginControlStrategyv1_2(EDPluginControl):
"""
The Plugin that controls the strategy step
"""
def __init__ (self):
"""
"""
EDPluginControl.__init__(self)
self.setXSDataInputClass(XSDataInputStrategy)
self._strPluginRaddoseName = "EDPluginRaddosev10"
self._edPluginRaddose = None
self._edHandlerXSDataRaddose = None
self._strPluginBestName = "EDPluginBestv1_2"
self._edPluginBest = None
self._edHandlerXSDataBest = None
self._strPluginPlotGleName = "EDPluginExecPlotGlev1_0"
self._edPluginPlotGle = None
self._strCONF_SYMOP_HOME = "symopHome"
# Default value for the location of the symop table
self._strSymopHome = None
self._xsDataSampleCopy = None
# For default chemical composition
self._fAverageAminoAcidVolume = 135.49
self._fAverageCrystalSolventContent = 0.47
self._fAverageSulfurContentPerAminoacid = 0.05
self._fAverageSulfurConcentration = 314
# This varaible determines if Raddose should be executed or not
self._bEstimateRadiationDamage = None
# Raddose log file
self.xsDataFileRaddoseLog = None
def setSymopHome(self, _strSymopHome):
self._strSymopHome = _strSymopHome
def getSymopHome(self):
return self._strSymopHome
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlStrategyv1_2.preProcess...")
self._edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput().getSample()
if(xsDataSampleCrystalMM is None):
self._xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self._xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput().getCrystalRefined()
if(xsDataCrystal is not None):
self._xsDataSampleCopy.setCrystal(xsDataCrystal)
# Load the Best plugin
self._edPluginBest = self.loadPlugin(self._strPluginBestName)
self._edPluginBest.setBaseDirectory(self.getWorkingDirectory())
self._edPluginBest.setBaseName(self._strPluginBestName)
# Load the plot gle plugin
self._edPluginPlotGle = self.loadPlugin(self._strPluginPlotGleName)
# Check if radiation damage estimation is required or not in the diffraction plan
xsDataDiffractionPlan = self.getDataInput().getDiffractionPlan()
if xsDataDiffractionPlan is not None:
if xsDataDiffractionPlan.getEstimateRadiationDamage():
if xsDataDiffractionPlan.getEstimateRadiationDamage().getValue():
# Yes, is requested
self._bEstimateRadiationDamage = True
else:
# No, is explicitly not requested
self._bEstimateRadiationDamage = False
elif xsDataDiffractionPlan.getStrategyOption() is not None:
if xsDataDiffractionPlan.getStrategyOption().getValue().find("-DamPar") != -1:
# The "-DamPar" option requires estimation of radiation damage
self._bEstimateRadiationDamage = True
# Check if we know what to do with radiation damage
if self._bEstimateRadiationDamage is None:
# "Force" the estimation of radiation damage if the flux is present
if self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None:
strWarningMessage = "EDPluginControlStrategyv1_2: Missing flux input - cannot estimate radiation damage."
EDVerbose.WARNING(strWarningMessage)
self.addWarningMessage(strWarningMessage)
self._bEstimateRadiationDamage = False
#.........这里部分代码省略.........
示例7: testSetDataModelInput
def testSetDataModelInput(self):
edPluginStrategy = self.createPlugin()
strPathToTestConfigFile = os.path.join(self.getPluginTestsDataHome(), "XSConfiguration_ESRF.xml")
edConfiguration = EDConfiguration(strPathToTestConfigFile)
dictItem = edConfiguration.get(edPluginStrategy.getPluginName())
edPluginStrategy.setConfig(dictItem)
edPluginStrategy.configure()
xsDataStrategy = XSDataInputStrategy()
# Beam
xsExperimentalCondition = XSDataExperimentalCondition()
xsBeam = XSDataBeam()
xsBeam.setFlux(XSDataFlux(1e+12))
xsBeam.setWavelength(XSDataWavelength(2.41))
xsBeam.setSize(XSDataSize(x=XSDataLength(0.1), y=XSDataLength(0.1)))
xsBeam.setExposureTime(XSDataTime(1))
xsExperimentalCondition.setBeam(xsBeam)
# Detector and Exposure Time
xsDataDetector = XSDataDetector()
xsDataDetector.setType(XSDataString("q210-2x"))
xsExperimentalCondition.setDetector(xsDataDetector)
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)))
#.........这里部分代码省略.........
示例8: testSetDataModelInput
def testSetDataModelInput(self):
from XSDataCCP4iv1_1 import XSDataInputCCP4i
xsDataInputCCP4i = XSDataInputCCP4i()
# Beam
from XSDataCommon import XSDataFlux
from XSDataCommon import XSDataSize
from XSDataCommon import XSDataLength
from XSDataCommon import XSDataFloat
from XSDataMXv1 import XSDataBeam
from XSDataMXv1 import XSDataExperimentalCondition
xsExperimentalCondition = XSDataExperimentalCondition()
xsBeam = XSDataBeam()
xsBeam.setFlux(XSDataFlux(1e+12))
xsBeam.setSize(XSDataSize(XSDataLength(0.1), XSDataLength(0.1)))
xsBeam.setMinExposureTimePerImage(XSDataFloat(0.1))
xsExperimentalCondition.setBeam(xsBeam)
# Goniostat
from XSDataCommon import XSDataSpeed
from XSDataCommon import XSDataAngle
from XSDataMXv1 import XSDataGoniostat
xsDataGoniostat = XSDataGoniostat()
xsDataGoniostat.setMaxOscillationSpeed(XSDataSpeed(0.2))
xsDataGoniostat.setMinOscillationWidth(XSDataAngle(0.1))
xsExperimentalCondition.setGoniostat(xsDataGoniostat)
xsDataInputCCP4i.setExperimentalCondition(xsExperimentalCondition)
# Sample
from XSDataCommon import XSDataString
from XSDataCommon import XSDataFloat
from XSDataCommon import XSDataString
from XSDataMXv1 import XSDataStructure
from XSDataMXv1 import XSDataChain
from XSDataMXv1 import XSDataAtom
from XSDataMXv1 import XSDataLigand
from XSDataMXv1 import XSDataSampleCrystalMM
from XSDataMXv1 import XSDataChemicalCompositionMM
from XSDataMXv1 import XSDataAtomicComposition
from XSDataMXv1 import XSDataSolvent
xsDataSampleCrystalMM = XSDataSampleCrystalMM()
xsDataStructure = XSDataStructure()
xsDataComposition = XSDataChemicalCompositionMM()
xsDataChain = XSDataChain()
xsDataChain.setType(XSDataString("protein"))
xsDataChain.setNumberOfCopies(XSDataFloat(2))
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom1 = XSDataAtom()
xsDataAtom1.setSymbol(XSDataString("Se"))
xsDataAtom1.setNumberOf(XSDataFloat(4))
xsDataAtomicComposition.addAtom(xsDataAtom1)
xsDataChain.setHeavyAtoms(xsDataAtomicComposition)
xsDataChain.setNumberOfMonomers(XSDataFloat(100))
xsDataStructure.addChain(xsDataChain)
xsDataChain2 = XSDataChain()
xsDataChain2.setType(XSDataString("rna"))
xsDataChain2.setNumberOfCopies(XSDataFloat(1))
xsDataChain2.setNumberOfMonomers(XSDataFloat(60))
xsDataStructure.addChain(xsDataChain2)
xsDataLigand = XSDataLigand()
xsDataLigand.setNumberOfCopies(XSDataFloat(2))
xsDataLigand.setNumberOfLightAtoms(XSDataFloat(42))
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom2 = XSDataAtom()
xsDataAtom2.setSymbol(XSDataString("Fe"))
xsDataAtom2.setNumberOf(XSDataFloat(1))
xsDataAtomicComposition.addAtom(xsDataAtom2)
xsDataLigand.setHeavyAtoms(xsDataAtomicComposition)
xsDataStructure.addLigand(xsDataLigand)
xsDataStructure.setNumberOfCopiesInAsymmetricUnit(XSDataFloat(0.25))
xsDataSolvent = XSDataSolvent()
xsDataAtomicComposition = XSDataAtomicComposition()
xsDataAtom3 = XSDataAtom()
xsDataAtom3.setSymbol(XSDataString("Na"))
xsDataAtom3.setConcentration(XSDataFloat(1000))
xsDataAtom4 = XSDataAtom()
xsDataAtom4.setSymbol(XSDataString("Cl"))
xsDataAtom4.setConcentration(XSDataFloat(1000))
xsDataAtomicComposition.addAtom(xsDataAtom3)
xsDataAtomicComposition.addAtom(xsDataAtom4)
xsDataSolvent.setAtoms(xsDataAtomicComposition)
xsDataComposition.setStructure(xsDataStructure)
xsDataComposition.setSolvent(xsDataSolvent)
xsDataSampleCrystalMM.setChemicalComposition(xsDataComposition)
#.........这里部分代码省略.........
示例9: EDPluginControlKappaStrategyv2_0
class EDPluginControlKappaStrategyv2_0(EDPluginControl):
"""
The Plugin that controls the strategy step
"""
def __init__ (self):
EDPluginControl.__init__(self)
#self.setXSDataInputClass(EDList)
self.setRequiredToHaveConfiguration(True)
self.strPluginRaddoseName = "EDPluginRaddosev10"
self.edPluginRaddose = None
self.edHandlerXSDataRaddose = None
self.strPluginBestName = "EDPluginBestv1_2"
self.edPluginBest = None
from EDHandlerXSDataBestv1_2 import EDHandlerXSDataBestv1_2
self.edHandlerXSDataBest = EDHandlerXSDataBestv1_2()
self.strPluginAlignmentName = "EDPluginSTACAlignmentv2_0"
self.edPluginAlignment = None
self.edHandlerXSDataAlignment = None
self.strPluginKappaStrategyName = "EDPluginSTACStrategyv2_0"
self.edPluginKappaStrategy = None
self.edHandlerXSDataKappaStrategy = None
self.setXSDataInputClass(XSDataInputStrategy, "mxv1InputStrategy")
EDFactoryPluginStatic.loadModule("XSDataMXv2")
import XSDataMXv2
self.setXSDataInputClass(XSDataMXv2.XSDataCollection, "mxv2DataCollection")
import XSDataMXv1
self.setXSDataInputClass(XSDataMXv1.XSDataIndexingResult, "mxv1IndexingResult")
#disable kappa by default
self.KappaStrategy = 0
self.strCONF_SYMOP_HOME = "symopHome"
# Default value for the location of the symop table
self.strSymopHome = os.path.normpath("/opt/pxsoft/ccp4-6.0.2/lib/data")
self.xsDataSampleCopy = None
# For default chemical composition
self.fAverageAminoAcidVolume = 135.49
self.fAverageCrystalSolventContent = 0.47
self.fAverageSulfurContentPerAminoacid = 0.05
self.fAverageSulfurConcentration = 314
def setSymopHome(self, _strSymopHome):
self.strSymopHome = _strSymopHome
def getSymopHome(self):
return self.strSymopHome
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlKappaStrategyv2_0.preProcess...")
self.edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput("mxv1InputStrategy")[0].getSample()
if(xsDataSampleCrystalMM is None):
self.xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self.xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput("mxv1InputStrategy")[0].getCrystalRefined()
if(xsDataCrystal is not None):
self.xsDataSampleCopy.setCrystal(xsDataCrystal)
# Raddose is enabled only if the beam flux is set
if(self.getDataInput("mxv1InputStrategy")[0].getExperimentalCondition().getBeam().getFlux() is None):
strWarningMessage = EDMessage.WARNING_CANNOT_USE_PLUGIN_03 % ('EDPluginControlKappaStrategyv2_0.preProcess', self.strPluginRaddoseName, "Beam Flux not set")
EDVerbose.warning(strWarningMessage)
self.addWarningMessage(strWarningMessage)
else:
self.edPluginRaddose = self.loadPlugin(self.strPluginRaddoseName)
if (self.edPluginRaddose is not None):
EDVerbose.DEBUG("EDPluginControlKappaStrategyv2_0.preProcess: " + self.strPluginRaddoseName + " Found... setting Data Input")
strFileSymop = os.path.join(self.getSymopHome(), "symop.lib")
xsDataStringSpaceGroup = self.getDataInput("mxv1InputStrategy")[0].getDiffractionPlan().getForcedSpaceGroup()
# Space Group has been forced
# Prepare chemical composition calculation with the forced Space Group (Space Group Name)
strNumOperators = None
strSpaceGroup = None
if(xsDataStringSpaceGroup is not None):
#.........这里部分代码省略.........
示例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: EDPluginControlStrategyv1_2
class EDPluginControlStrategyv1_2(EDPluginControl):
"""
The Plugin that controls the strategy step
"""
def __init__(self):
"""
"""
EDPluginControl.__init__(self)
self.setXSDataInputClass(XSDataInputStrategy)
self._strPluginRaddoseName = "EDPluginRaddosev10"
self._edPluginRaddose = None
self._edHandlerXSDataRaddose = None
self._strPluginBestName = "EDPluginBestv1_2"
self._edPluginBest = None
self._edHandlerXSDataBest = None
self._strPluginPlotGleName = "EDPluginExecPlotGlev1_1"
self._edPluginPlotGle = None
self._strCONF_SYMOP_HOME = "symopHome"
# Default value for the location of the symop table
self._strSymopHome = None
self._xsDataSampleCopy = None
# For default chemical composition
self._fAverageAminoAcidVolume = 135.49
self._fAverageCrystalSolventContent = 0.47
self._fAverageSulfurContentPerAminoacid = 0.05
self._fAverageSulfurConcentration = 314
# This varaible determines if Raddose should be executed or not
self._bEstimateRadiationDamage = None
# Raddose log file
self.xsDataFileRaddoseLog = None
self.roundUpToEven100 = False
def setSymopHome(self, _strSymopHome):
self._strSymopHome = _strSymopHome
def getSymopHome(self):
return self._strSymopHome
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
self.DEBUG("EDPluginControlStrategyv1_2.preProcess...")
self._edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput().getSample()
if xsDataSampleCrystalMM is None:
self._xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self._xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput().getCrystalRefined()
if xsDataCrystal is not None:
self._xsDataSampleCopy.setCrystal(xsDataCrystal)
# Load the Best plugin
self._edPluginBest = self.loadPlugin(self._strPluginBestName)
self._edPluginBest.setBaseDirectory(self.getWorkingDirectory())
self._edPluginBest.setBaseName(self._strPluginBestName)
# Load the plot gle plugin
self._edPluginPlotGle = self.loadPlugin(self._strPluginPlotGleName)
# Check if radiation damage estimation is required or not in the diffraction plan
xsDataDiffractionPlan = self.getDataInput().getDiffractionPlan()
if xsDataDiffractionPlan is not None:
if xsDataDiffractionPlan.getEstimateRadiationDamage():
if xsDataDiffractionPlan.getEstimateRadiationDamage().getValue():
# Yes, is requested
self._bEstimateRadiationDamage = True
else:
# No, is explicitly not requested
self._bEstimateRadiationDamage = False
elif xsDataDiffractionPlan.getStrategyOption() is not None:
if xsDataDiffractionPlan.getStrategyOption().getValue().find("-DamPar") != -1:
# The "-DamPar" option requires estimation of radiation damage
self._bEstimateRadiationDamage = True
# Check if we know what to do with radiation damage
if self._bEstimateRadiationDamage is None:
# "Force" the estimation of radiation damage if the flux is present
if self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None:
strWarningMessage = (
"EDPluginControlStrategyv1_2: Missing flux input - cannot estimate radiation damage."
)
self.WARNING(strWarningMessage)
self.addWarningMessage(strWarningMessage)
#.........这里部分代码省略.........
示例12: preProcess
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
self.DEBUG("EDPluginControlStrategyv1_2.preProcess...")
self._edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput().getSample()
if xsDataSampleCrystalMM is None:
self._xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self._xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput().getCrystalRefined()
if xsDataCrystal is not None:
self._xsDataSampleCopy.setCrystal(xsDataCrystal)
# Load the Best plugin
self._edPluginBest = self.loadPlugin(self._strPluginBestName)
self._edPluginBest.setBaseDirectory(self.getWorkingDirectory())
self._edPluginBest.setBaseName(self._strPluginBestName)
# Load the plot gle plugin
self._edPluginPlotGle = self.loadPlugin(self._strPluginPlotGleName)
# Check if radiation damage estimation is required or not in the diffraction plan
xsDataDiffractionPlan = self.getDataInput().getDiffractionPlan()
if xsDataDiffractionPlan is not None:
if xsDataDiffractionPlan.getEstimateRadiationDamage():
if xsDataDiffractionPlan.getEstimateRadiationDamage().getValue():
# Yes, is requested
self._bEstimateRadiationDamage = True
else:
# No, is explicitly not requested
self._bEstimateRadiationDamage = False
elif xsDataDiffractionPlan.getStrategyOption() is not None:
if xsDataDiffractionPlan.getStrategyOption().getValue().find("-DamPar") != -1:
# The "-DamPar" option requires estimation of radiation damage
self._bEstimateRadiationDamage = True
# Check if we know what to do with radiation damage
if self._bEstimateRadiationDamage is None:
# "Force" the estimation of radiation damage if the flux is present
if self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None:
strWarningMessage = (
"EDPluginControlStrategyv1_2: Missing flux input - cannot estimate radiation damage."
)
self.WARNING(strWarningMessage)
self.addWarningMessage(strWarningMessage)
self._bEstimateRadiationDamage = False
else:
self._bEstimateRadiationDamage = True
if self._bEstimateRadiationDamage:
if self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None:
strErrorMessage = "EDPluginControlStrategyv1_2: Missing flux input. Cannot estimate radiation damage"
self.ERROR(strErrorMessage)
self.addErrorMessage(strErrorMessage)
self.setFailure()
if not self.isFailure():
self._edPluginRaddose = self.loadPlugin(self._strPluginRaddoseName)
if self._edPluginRaddose is not None:
self.DEBUG(
"EDPluginControlStrategyv1_2.preProcess: "
+ self._strPluginRaddoseName
+ " Found... setting Data Input"
)
strFileSymop = os.path.join(self.getSymopHome(), "symop.lib")
xsDataStringSpaceGroup = self.getDataInput().getDiffractionPlan().getForcedSpaceGroup()
# Space Group has been forced
# Prepare chemical composition calculation with the forced Space Group (Space Group Name)
bSpaceGroupForced = False
if xsDataStringSpaceGroup is not None:
strSpaceGroup = xsDataStringSpaceGroup.getValue().upper().replace(" ", "")
if strSpaceGroup != "":
self.DEBUG("EDPluginControlStrategyv1_2.preProcess: Forced Space Group Found: " + strSpaceGroup)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(
strSpaceGroup, strFileSymop
)
bSpaceGroupForced = True
except Exception as detail:
strErrorMessage = "EDPluginControlStrategyv1_2: Problem to calculate Number of symmetry operators: {0}".format(
detail
)
self.error(strErrorMessage)
self.addErrorMessage(strErrorMessage)
raise RuntimeError(strErrorMessage)
if not bSpaceGroupForced:
# Space Group has NOT been forced
xsDataStringSpaceGroup = self._xsDataSampleCopy.getCrystal().getSpaceGroup().getName()
if xsDataStringSpaceGroup is not None:
#.........这里部分代码省略.........
示例13: preProcess
def preProcess(self, _edObject=None):
"""
Gets the Configuration Parameters, if found, overrides default parameters
"""
EDPluginControl.preProcess(self, _edObject)
EDVerbose.DEBUG("EDPluginControlStrategyv1_2.preProcess...")
self.__edPluginRaddose = None
xsDataSampleCrystalMM = self.getDataInput().getSample()
if(xsDataSampleCrystalMM is None):
self.__xsDataSampleCopy = XSDataSampleCrystalMM()
else:
strXmlStringDataSample = xsDataSampleCrystalMM.marshal()
self.__xsDataSampleCopy = XSDataSampleCrystalMM.parseString(strXmlStringDataSample)
xsDataCrystal = self.getDataInput().getCrystalRefined()
if(xsDataCrystal is not None):
self.__xsDataSampleCopy.setCrystal(xsDataCrystal)
# Load the Best plugin
self.__edPluginBest = self.loadPlugin(self.__strPluginBestName)
self.__edPluginBest.setBaseDirectory(self.getWorkingDirectory())
self.__edPluginBest.setBaseName(self.__strPluginBestName)
# Check if radiation damage estimation is required or not in the diffraction plan
xsDataDiffractionPlan = self.getDataInput().getDiffractionPlan()
if xsDataDiffractionPlan is not None:
if xsDataDiffractionPlan.getEstimateRadiationDamage():
if xsDataDiffractionPlan.getEstimateRadiationDamage().getValue():
# Yes, is requested
self.__bEstimateRadiationDamage = True
else:
# No, is explicitly not requested
self.__bEstimateRadiationDamage = False
elif xsDataDiffractionPlan.getStrategyOption() is not None:
if xsDataDiffractionPlan.getStrategyOption().getValue().find("-DamPar") != -1:
# The "-DamPar" option requires estimation of radiation damage
self.__bEstimateRadiationDamage = True
# Check if we know what to do with radiation damage
if self.__bEstimateRadiationDamage is None:
# "Force" the estimation of radiation damage if the flux is present
if self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None:
strWarningMessage = "EDPluginControlStrategyv1_2: Missing flux input - cannot estimate radiation damage."
EDVerbose.WARNING(strWarningMessage)
self.addWarningMessage(strWarningMessage)
self.__bEstimateRadiationDamage = False
else:
self.__bEstimateRadiationDamage = True
if self.__bEstimateRadiationDamage:
if self.getDataInput().getExperimentalCondition().getBeam().getFlux() is None:
strErrorMessage = "EDPluginControlStrategyv1_2: Missing flux input. Cannot estimate radiation damage"
EDVerbose.ERROR(strErrorMessage)
self.addErrorMessage(strErrorMessage)
self.setFailure()
if not self.isFailure():
self.__edPluginRaddose = self.loadPlugin(self.__strPluginRaddoseName)
if (self.__edPluginRaddose is not None):
EDVerbose.DEBUG("EDPluginControlStrategyv1_2.preProcess: " + self.__strPluginRaddoseName + " Found... setting Data Input")
strFileSymop = os.path.join(self.getSymopHome(), "symop.lib")
xsDataStringSpaceGroup = self.getDataInput().getDiffractionPlan().getForcedSpaceGroup()
# Space Group has been forced
# Prepare chemical composition calculation with the forced Space Group (Space Group Name)
if(xsDataStringSpaceGroup is not None):
strSpaceGroup = xsDataStringSpaceGroup.getValue().upper()
EDVerbose.DEBUG("EDPluginControlStrategyv1_2.preProcess: Forced Space Group Found: " + strSpaceGroup)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(strSpaceGroup, strFileSymop)
except Exception, detail:
strErrorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginControlStrategyv1_2.preProcess', "Problem to calculate Number of symmetry operators", detail)
EDVerbose.error(strErrorMessage)
self.addErrorMessage(strErrorMessage)
raise RuntimeError, strErrorMessage
# Space Group has NOT been forced
else:
xsDataStringSpaceGroup = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getName()
if (xsDataStringSpaceGroup is not None):
# Prepare chemical composition calculation with the Space Group calculated by indexing (Space Group Name)
strSpaceGroupName = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getName().getValue()
EDVerbose.DEBUG("EDPluginControlStrategyv1_2.preProcess: Space Group IT Name found by indexing: " + strSpaceGroupName)
try:
strNumOperators = EDUtilsSymmetry.getNumberOfSymmetryOperatorsFromSpaceGroupName(strSpaceGroupName, strFileSymop)
except Exception, detail:
strErrorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginControlStrategyv1_2.preProcess', "Problem to calculate Number of symmetry operators", detail)
EDVerbose.error(strErrorMessage)
self.addErrorMessage(strErrorMessage)
raise RuntimeError, strErrorMessage
else:
# Prepare chemical composition calculation with the Space Group calculated by indexing (Space Group IT number)
iSpaceGroupITNumber = self.__xsDataSampleCopy.getCrystal().getSpaceGroup().getITNumber().getValue()
EDVerbose.DEBUG("EDPluginControlStrategyv1_2.preProcess: Space Group IT Number Found by indexing: %d" % iSpaceGroupITNumber)
try:
#.........这里部分代码省略.........