def createDataInputCharacterisationFromDataSets(self, _pyListXSDataCCP4iDataSet): """ This method takes as input a list of ccp4i data sets. Each data set can contain several paths to image files. It runs the EDPluginControlSubWedgeAssemble plugin to read the experimental information from the image headers and then creates a single XSDataInputCharacterisation object. """ EDVerbose.DEBUG( "EDPluginControlCCP4iv1_1.createDataInputCharacterisationFromDataSets" ) xsDataInputCharacterisation = None # We might have to run the plugin several times edActionCluster = EDActionCluster() pyListPluginControlSubWedgeAssemble = [] # Prepare the action cluster iIndex = 1 for xsDataCCP4iDataSet in _pyListXSDataCCP4iDataSet: edPluginControlSubWedgeAssemble = self.loadPlugin( self.__strPluginControlSubWedgeAssembleName, "SubWedgeAssemble-%02d" % iIndex) edPluginControlSubWedgeAssemble.connectSUCCESS( self.doSuccessActionSubWedgeAssemble) edPluginControlSubWedgeAssemble.connectFAILURE( self.doFailureActionSubWedgeAssemble) # Prepare the input for the sub wedge assemble plugin xsDataInputSubWedgeAssemble = XSDataInputSubWedgeAssemble() for xsDataImageFile in xsDataCCP4iDataSet.getImageFile(): xsDataInputSubWedgeAssemble.addFile(xsDataImageFile) edPluginControlSubWedgeAssemble.setDataInput( xsDataInputSubWedgeAssemble) pyListPluginControlSubWedgeAssemble.append( edPluginControlSubWedgeAssemble) self.addPluginToActionCluster(edPluginControlSubWedgeAssemble) iIndex += 1 # Run the action cluster synchronously self.executeActionCluster() self.synchronizeActionCluster() # Recuperate the output for edPluginControlSubWedgeAssemble in pyListPluginControlSubWedgeAssemble: if (edPluginControlSubWedgeAssemble.isFailure()): self.setFailure() else: xsDataResultSubWedgeAssemble = edPluginControlSubWedgeAssemble.getDataOutput( ) for xsDataSubWedge in xsDataResultSubWedgeAssemble.getSubWedge( ): # Instantiate the xsDataInputCharacterisation object if it's not already done. xsDataCollection = None if (xsDataInputCharacterisation is None): xsDataInputCharacterisation = XSDataInputCharacterisation( ) else: xsDataCollection = xsDataInputCharacterisation.getDataCollection( ) if (xsDataCollection is None): xsDataCollection = XSDataCollection() xsDataCollection.addSubWedge(xsDataSubWedge) xsDataInputCharacterisation.setDataCollection( xsDataCollection) return xsDataInputCharacterisation
def createInputCharacterisationFromImageHeaders(self, _edPlugin): self.DEBUG("EDPluginControlInterfacev1_3.createInputCharacterisationFromImageHeaders") xsDataInputSubWedgeAssemble = XSDataInputSubWedgeAssemble() for xsDataStringImagePath in self.listImagePaths: xsDataFile = XSDataFile() xsDataFile.setPath(xsDataStringImagePath) xsDataInputSubWedgeAssemble.addFile(xsDataFile) _edPlugin.setDataInput(xsDataInputSubWedgeAssemble) _edPlugin.executeSynchronous()
def createInputCharacterisationFromImageHeaders(self, _edPlugin): self.DEBUG("EDPluginControlInterfacev1_2.createInputCharacterisationFromImageHeaders") xsDataInputSubWedgeAssemble = XSDataInputSubWedgeAssemble() for xsDataStringImagePath in self.listImagePaths: xsDataFile = XSDataFile() xsDataFile.setPath(xsDataStringImagePath) xsDataInputSubWedgeAssemble.addFile(xsDataFile) _edPlugin.setDataInput(xsDataInputSubWedgeAssemble) _edPlugin.executeSynchronous()
def createDataInputCharacterisationFromDataSets(self, _pyListXSDataCCP4iDataSet): """ This method takes as input a list of ccp4i data sets. Each data set can contain several paths to image files. It runs the EDPluginControlSubWedgeAssemble plugin to read the experimental information from the image headers and then creates a single XSDataInputCharacterisation object. """ EDVerbose.DEBUG("EDPluginControlCCP4iv1_1.createDataInputCharacterisationFromDataSets") xsDataInputCharacterisation = None # We might have to run the plugin several times edActionCluster = EDActionCluster() pyListPluginControlSubWedgeAssemble = [] # Prepare the action cluster iIndex = 1 for xsDataCCP4iDataSet in _pyListXSDataCCP4iDataSet: edPluginControlSubWedgeAssemble = self.loadPlugin(self.__strPluginControlSubWedgeAssembleName, "SubWedgeAssemble-%02d" % iIndex) edPluginControlSubWedgeAssemble.connectSUCCESS(self.doSuccessActionSubWedgeAssemble) edPluginControlSubWedgeAssemble.connectFAILURE(self.doFailureActionSubWedgeAssemble) # Prepare the input for the sub wedge assemble plugin xsDataInputSubWedgeAssemble = XSDataInputSubWedgeAssemble() for xsDataImageFile in xsDataCCP4iDataSet.getImageFile(): xsDataInputSubWedgeAssemble.addFile(xsDataImageFile) edPluginControlSubWedgeAssemble.setDataInput(xsDataInputSubWedgeAssemble) pyListPluginControlSubWedgeAssemble.append(edPluginControlSubWedgeAssemble) self.addPluginToActionCluster(edPluginControlSubWedgeAssemble) iIndex += 1 # Run the action cluster synchronously self.executeActionCluster() self.synchronizeActionCluster() # Recuperate the output for edPluginControlSubWedgeAssemble in pyListPluginControlSubWedgeAssemble: if (edPluginControlSubWedgeAssemble.isFailure()): self.setFailure() else: xsDataResultSubWedgeAssemble = edPluginControlSubWedgeAssemble.getDataOutput() for xsDataSubWedge in xsDataResultSubWedgeAssemble.getSubWedge(): # Instantiate the xsDataInputCharacterisation object if it's not already done. xsDataCollection = None if (xsDataInputCharacterisation is None): xsDataInputCharacterisation = XSDataInputCharacterisation() else: xsDataCollection = xsDataInputCharacterisation.getDataCollection() if (xsDataCollection is None): xsDataCollection = XSDataCollection() xsDataCollection.addSubWedge(xsDataSubWedge) xsDataInputCharacterisation.setDataCollection(xsDataCollection) return xsDataInputCharacterisation