コード例 #1
0
def functionXMLin(_strFilename):
    """Here we create the XML string to be passed to the EDNA plugin from the input strFilename
    This can / should be modified by the final user
    
    @param _strFilename: full path of the input file
    @type _strFilename: python string representing the path
    @return: string  
    """
    EDVerbose.screen("Starting processing of image %s" % (_strFilename))
    # First check if the filename end with .img or .mccd:
    strXML = None
    if (_strFilename.endswith(".img") or _strFilename.endswith(".mccd") or _strFilename.endswith(".cbf")):
        xsDataInputGridScreening = XSDataInputGridScreening()
        xsDataDiffractionPlan = XSDataDiffractionPlan()
        xsDataDiffractionPlan.setMaxExposureTimePerDataCollection(XSDataTime(EDParallelExecuteGridScreening.fMaxExposureTime))
        xsDataInputGridScreening.setDiffractionPlan(xsDataDiffractionPlan)
        xsDataFile = XSDataFile()
        xsDataFile.setPath(XSDataString(_strFilename))
        xsDataInputGridScreening.setImageFile(xsDataFile)
        if EDParallelExecuteGridScreening.bOnlyImageQualityIndicators:
            xsDataInputGridScreening.setDoOnlyImageQualityIndicators(XSDataBoolean(True))
        if EDParallelExecuteGridScreening.bStoreInISPyB:
            xsDataInputGridScreening.setStoreImageQualityIndicatorsInISPyB(XSDataBoolean(True))
        strXML = xsDataInputGridScreening.marshal()
    else:
        EDVerbose.screen("File name not ending with .img or .mccd - ignored : %s" % _strFilename)
    return strXML
コード例 #2
0
def functionXMLout(_strXMLin, _strXMLout):
    """
    This is an example of XMLout function ... it prints only the name of the file created
    @param _srXMLin: The XML string used to launch the job
    @type _strXMLin: python string with the input XML
    @param _strXMLout: The XML string retrieved  job
    @type _strXMLout: python string with the output XML    
    @return: None     
    """
    xsDataInputGridScreening = XSDataInputGridScreening.parseString(_strXMLin)
    strImagePath = xsDataInputGridScreening.getImageFile().getPath().getValue()
    EDVerbose.screen("Successful processing of image %s" % strImagePath)
    strResultText = "%40s  " % os.path.basename(strImagePath)
    xsDataResultGridScreening = XSDataResultGridScreening.parseString(_strXMLout)
    fileNameParameters = xsDataResultGridScreening.getFileNameParameters()
    if fileNameParameters is None:
        strResultText += "%6s%10s%10s%6s" % ("NA", "NA", "NA","NA")
    else:
        strResultText += "%6s%10s%10s%6s" % (
                        fileNameParameters.getScanId1().getValue(),
                        fileNameParameters.getMotorPosition1().getValue(),
                        fileNameParameters.getMotorPosition2().getValue(),
                        fileNameParameters.getScanId2().getValue(),
                                                )
    imageQualityIndicators = xsDataResultGridScreening.getImageQualityIndicators()
    if imageQualityIndicators is None:
        strResultText += "%6s%6s%6s%6s%10s" % ("NA", "NA", "NA","NA", "NA")
    else:
        strMethod1Res = "%6s" % "NA"
        if imageQualityIndicators.getMethod1Res():
            strMethod1Res = "%6.1f" % imageQualityIndicators.getMethod1Res().getValue()
        strMethod2Res = "%6s" % "NA"
        if imageQualityIndicators.getMethod2Res():
            strMethod2Res = "%6.1f" % imageQualityIndicators.getMethod2Res().getValue()
        strSpotTotal = "%6s" % "NA"
        if imageQualityIndicators.getSpotTotal():
            strSpotTotal = "%6d" % imageQualityIndicators.getSpotTotal().getValue()
        strGoodBraggCandidates = "%6s" % "NA"
        if imageQualityIndicators.getGoodBraggCandidates():
            strGoodBraggCandidates = "%6d" % imageQualityIndicators.getGoodBraggCandidates().getValue()
        strTotalIntegratedSignal = "%10s" % "NA"
        if imageQualityIndicators.getTotalIntegratedSignal():
            strTotalIntegratedSignal = "%10.0f" % imageQualityIndicators.getTotalIntegratedSignal().getValue()
        strResultText += strMethod1Res + strMethod2Res + strSpotTotal + strGoodBraggCandidates + strTotalIntegratedSignal
    if xsDataResultGridScreening.getMosaicity() is None:
        strResultText += "%6s" % "NA"
    else:
        strResultText += "%6.1f" % xsDataResultGridScreening.getMosaicity().getValue()
    if xsDataResultGridScreening.getRankingResolution() is None:
        strResultText += "%6s" % "NA"
    else:
        strResultText += "%6.1f" % xsDataResultGridScreening.getRankingResolution().getValue()
    strResultText += "  " + xsDataResultGridScreening.getComment().getValue()
    writeToResultFile(strResultText)
コード例 #3
0
def functionXMLerror(_strXMLin):
    """
    @param _strXMLin: The XML string used to launch the job
    @type _strXMLin: python string with the input XML
    @return: None     
    """
    xsDataInputGridScreening = XSDataInputGridScreening.parseString(_strXMLin)
    strImagePath = xsDataInputGridScreening.getImagePath()[0].getPath().getValue()
    strResultText = os.path.dirname(strImagePath) + " " + os.path.basename(strImagePath) + " "
    strResultText = strResultText + "Processing failed."
    writeToResultFile(strResultText)
    return None
コード例 #4
0
def functionXMLerror(_strXMLin):
    """
    @param _strXMLin: The XML string used to launch the job
    @type _strXMLin: python string with the input XML
    @return: None     
    """
    xsDataInputGridScreening = XSDataInputGridScreening.parseString(_strXMLin)
    strImagePath = xsDataInputGridScreening.getImagePath()[0].getPath().getValue()
    strResultText = os.path.dirname(strImagePath) + " " + os.path.basename(strImagePath) + " "
    strResultText = strResultText + "Processing failed."
    writeToResultFile(strResultText)
    return None
コード例 #5
0
 strPathToTempDir = tempfile.mkdtemp(
     prefix="edna-image-quality-indicators_")
 os.chdir(strPathToTempDir)
 EDVerbose.setLogFileName(os.path.join(strPathToTempDir, "edna.log"))
 # Popolate input data
 EDVerbose.screen("Starting EDNA image quality indicators processing")
 EDVerbose.screen("Arguments: %r" % sys.argv)
 bVerbose = False
 bDebug = False
 listPaths = []
 for iIndex, strArg in enumerate(sys.argv[1:]):
     strarg = strArg.lower()
     if strarg == "--verbose":
         EDVerbose.setVerboseOn()
     elif strarg == "--debug":
         EDVerbose.setVerboseDebugOn()
     if os.path.exists(strArg):
         listPaths.append(os.path.abspath(strArg))
 for strPath in listPaths:
     xsDataInputGridScreening = XSDataInputGridScreening()
     xsDataFile = XSDataFile()
     xsDataFile.setPath(XSDataString(strPath))
     xsDataInputGridScreening.setImageFile(xsDataFile)
     xsDataInputGridScreening.setDoOnlyImageQualityIndicators(
         XSDataBoolean(True))
     xsDataInputGridScreening.setStoreImageQualityIndicatorsInISPyB(
         XSDataBoolean(True))
     edPluginGridScreening = EDFactoryPluginStatic.loadPlugin(
         "EDPluginControlGridScreeningv1_0")
     edPluginGridScreening.setDataInput(xsDataInputGridScreening)
     edPluginGridScreening.executeSynchronous()
コード例 #6
0
from XSDataGridScreeningv1_0 import XSDataInputGridScreening


if __name__ == '__main__':
    strPathToTempDir = tempfile.mkdtemp(prefix="edna-image-quality-indicators_")
    os.chdir(strPathToTempDir)
    EDVerbose.setLogFileName(os.path.join(strPathToTempDir, "edna.log"))
    # Popolate input data
    EDVerbose.screen("Starting EDNA image quality indicators processing")
    EDVerbose.screen("Arguments: %r" % sys.argv)
    bVerbose = False
    bDebug = False
    listPaths = []
    for iIndex, strArg in enumerate(sys.argv[1:]):
        strarg = strArg.lower()
        if strarg == "--verbose":
            EDVerbose.setVerboseOn()
        elif strarg == "--debug":
            EDVerbose.setVerboseDebugOn()
        if os.path.exists(strArg):
            listPaths.append(os.path.abspath(strArg))
    for strPath in listPaths:
        xsDataInputGridScreening = XSDataInputGridScreening()
        xsDataFile = XSDataFile()
        xsDataFile.setPath(XSDataString(strPath))
        xsDataInputGridScreening.setImageFile(xsDataFile)
        xsDataInputGridScreening.setDoOnlyImageQualityIndicators(XSDataBoolean(True))
        xsDataInputGridScreening.setStoreImageQualityIndicatorsInISPyB(XSDataBoolean(True))
        edPluginGridScreening = EDFactoryPluginStatic.loadPlugin("EDPluginControlGridScreeningv1_0")
        edPluginGridScreening.setDataInput(xsDataInputGridScreening)
        edPluginGridScreening.executeSynchronous()
コード例 #7
0
def functionXMLin(_strFilename):
    """Here we create the XML string to be passed to the EDNA plugin from the input strFilename
    This can / should be modified by the final user
    
    @param _strFilename: full path of the input file
    @type _strFilename: python string representing the path
    @return: string  
    """
    EDVerbose.screen("Starting processing of image %s" % (_strFilename))
    # First check if the filename end with .img or .mccd:
    strXML = None
    if (_strFilename.endswith(".img") or _strFilename.endswith(".mccd")
            or _strFilename.endswith(".cbf")):
        xsDataInputGridScreening = XSDataInputGridScreening()
        xsDataDiffractionPlan = XSDataDiffractionPlan()
        xsDataDiffractionPlan.setMaxExposureTimePerDataCollection(
            XSDataTime(EDParallelExecuteGridScreening.fMaxExposureTime))
        xsDataInputGridScreening.setDiffractionPlan(xsDataDiffractionPlan)
        xsDataFile = XSDataFile()
        xsDataFile.setPath(XSDataString(_strFilename))
        xsDataInputGridScreening.setImageFile(xsDataFile)
        if EDParallelExecuteGridScreening.bOnlyImageQualityIndicators:
            xsDataInputGridScreening.setDoOnlyImageQualityIndicators(
                XSDataBoolean(True))
        if EDParallelExecuteGridScreening.bStoreInISPyB:
            xsDataInputGridScreening.setStoreImageQualityIndicatorsInISPyB(
                XSDataBoolean(True))
        if EDParallelExecuteGridScreening.bDoOnlyIntegrationWithXMLOutput:
            xsDataInputGridScreening.setDoOnlyIntegrationWithXMLOutput(
                XSDataBoolean(True))
        strXML = xsDataInputGridScreening.marshal()
    else:
        EDVerbose.screen(
            "File name not ending with .img or .mccd - ignored : %s" %
            _strFilename)
    return strXML
コード例 #8
0
 def testCheckParameters(self):
     strXMLInput = self.readAndParseFile(self.strPathToReferenceInput)
     xsDataInput = XSDataInputGridScreening.parseString(strXMLInput)
     edPluginExecCharacterisation = self.createPlugin()
     edPluginExecCharacterisation.setDataInput(xsDataInput)
     edPluginExecCharacterisation.checkParameters()
 def testCheckParameters(self):
     strXMLInput = self.readAndParseFile(self.strPathToReferenceInput)
     xsDataInput = XSDataInputGridScreening.parseString(strXMLInput)
     edPluginExecCharacterisation = self.createPlugin()
     edPluginExecCharacterisation.setDataInput(xsDataInput)
     edPluginExecCharacterisation.checkParameters()