def process(self, _edObject=None): EDPluginControl.process(self) self.DEBUG("EDPluginBioSaxsReduceFileSeriev1_0.process") if self.bSkipProcess: return for oneRaw, oneCor, oneInt, oneCrv, oneLog in zip(self.lstRawImg, self.lstCorImg, self.lstIntImg, self.lstIntCrv, self.lstLogFil): pluginProcessOneFile = self.loadPlugin(self.__strControlledPluginProcessOneFile) xsd = XSDataInputBioSaxsProcessOneFilev1_0(integratedCurve=oneCrv, integratedImage=oneInt, normalizedImage=oneCor, rawImageSize=self.rawImageSize, experimentSetup=self.experimentSetup, sample=self.sample, rawImage=oneRaw, logFile=oneLog) pluginProcessOneFile.dataInput = xsd pluginProcessOneFile.connectSUCCESS(self.doSuccessExecProcessOneFile) pluginProcessOneFile.connectFAILURE(self.doFailureExecProcessOneFile) pluginProcessOneFile.execute() self.synchronizePlugins() self.lstCurves.sort() xsdMerge = XSDataInputBioSaxsSmartMergev1_0() xsdMerge.absoluteFidelity = self.dataInput.absoluteFidelity xsdMerge.relativeFidelity = self.dataInput.relativeFidelity xsdMerge.inputCurves = [XSDataFile(XSDataString(i)) for i in self.lstCurves] xsdMerge.mergedCurve = XSDataFile(XSDataString(self.strMergedCurve)) edPluginExecSmartMerge = self.loadPlugin(self.__strControlledPluginSmartMerge) edPluginExecSmartMerge.dataInput = xsdMerge edPluginExecSmartMerge.connectSUCCESS(self.doSuccessExecSmartMerge) edPluginExecSmartMerge.connectFAILURE(self.doFailureExecSmartMerge) edPluginExecSmartMerge.executeSynchronous()
def testCheckParameters(self): """ complex type XSDataInputBioSaxsSmartMergev1_0 extends XSDataInput { inputFile: XSDataFile [] absoluteFidelity: XSDataDouble optional relativeFidelity: XSDataDouble optional mergedCurve: XSDataFile """ xsDataInput = XSDataInputBioSaxsSmartMergev1_0() xsDataInput.inputCurves = [XSDataFile()] xsDataInput.absoluteFidelity = XSDataDouble() xsDataInput.relativeFidelity = XSDataDouble() xsDataInput.mergedCurve = XSDataFile() edPluginExecBioSaxsSmartMerge = self.createPlugin() edPluginExecBioSaxsSmartMerge.setDataInput(xsDataInput) edPluginExecBioSaxsSmartMerge.checkParameters()
keys = runs.keys() keys.sort() working_dir = "smart_merge-%s" % time.strftime("%Y%m%d-%H%M%S") base_dir = os.getcwd() os.makedirs(working_dir) os.chdir(working_dir) for run in keys: dico = runs[run][0] common_base = os.sep.join((dico["dirname"], "_".join(dico["basename"].split("_")[:-1]))) + "_" outFile = common_base + "ave.dat" subdir = os.path.join(os.path.dirname(dico["dirname"]), "ednaSub") if not subdir: os.makedirs(subdir) subFile = os.path.join(subdir, os.path.basename(common_base) + "sub.dat") xsd = XSDataInputBioSaxsSmartMergev1_0(mergedCurve=XSDataFile(XSDataString(outFile)), subtractedCurve = XSDataFile(XSDataString(subFile)), absoluteFidelity=rdabs, relativeFidelity=rdrel) if filerange: xsd.inputCurves = [XSDataFile(XSDataString(os.sep.join((dico["dirname"], dico["basename"])))) for dico in runs[run] if dico["frame"] in filerange ] else: xsd.inputCurves = [XSDataFile(XSDataString(os.sep.join((dico["dirname"], dico["basename"])))) for dico in runs[run] ] reprocess.startJob(xsd) print("All %i jobs queued after %.3fs" % (len(args), time.time() - reprocess.startTime)) reprocess.join() if yappi: yappi.stop() print("All %i jobs processed after %.3fs" % (len(args), time.time() - reprocess.startTime))
if (idx is not None) and (idx in filerange): listInFiles.append(os.path.abspath(fn)) else: listInFiles.append(os.path.abspath(fn)) if not outFile: outFile = os.path.join(os.path.dirname(filenames[0]), common_base + "ave.dat") if not subFile: subdir = os.path.join( os.path.dirname(os.path.dirname(filenames[0])), "ednaSub") if not subdir: os.makedirs(subdir) subFile = os.path.join(subdir, common_base + "sub.dat") xsd = XSDataInputBioSaxsSmartMergev1_0( mergedCurve=XSDataFile(XSDataString(outFile))) xsd.subtractedCurve = XSDataFile(XSDataString(subFile)) if rdabs: xsd.absoluteFidelity = XSDataDouble(rdabs) if rdrel: xsd.relativeFidelity = XSDataDouble(rdrel) xsd.inputCurves = [XSDataFile(XSDataString(i)) for i in listInFiles] myXML = xsd.marshal() t1 = time.time() pid = edna.startJob([plugin, myXML]) deltat = time.time() - t1 totaltime += deltat listjobs.append(pid) print("%s | Total Time:\t%.3fs /Tango %.3fs\tLast Tango:\t%.3f" % (pid, time.time() - t0, totaltime, deltat)) else: