def loadHDF52EICs(self): #need qualifier to wipe out old one.... msgTitle = 'Overwrite existing EIC set' overWriteStr = 'Clear current EIC and load a new set?' if self.__askConfirm__(msgTitle, overWriteStr): fileName = str(self.LFDialog()) if fileName != None: self.eicClass = EIC() t1 = time.clock() self.eicClass.loadHDF5(fileName) t2 = time.clock() - t1 self.RoutputTE.append('HDF5 Read Time: %.4f seconds' % t2) self.updateGUI()
def run(self): if self.ready: try: t1 = time.clock() # self.Rliblist = ['xcms'] # self.Rlibs = self.initRlibs(self.Rliblist) #sys.stdout = StdOutFaker(self) r = ro.r #a = r('cdfpath = system.file("cdf", package = "faahKO")') #cdfpath = ri.globalEnv.get("cdfpath") #r('cdffiles = list.files(cdfpath, recursive = TRUE, full.names = TRUE)') #r('cdffiles = cdffiles[1:3]') #cdffiles = ri.globalEnv.get("cdffiles") self.add2ROutput(self.fileList) time.sleep(0.5) rfileList = ri.StrSexpVector(self.fileList) xset = r.xcmsSet(rfileList, step=self.matchedFilterParams['step'], mzdiff=self.matchedFilterParams['mzdiff'], snthresh=self.matchedFilterParams['snthresh']) ri.globalEnv["xset"] = xset # if self.maxMZ != None: # print type(self.maxMZ) # r('xset@peaks <- xset@peaks[xset@peaks[,"mz"] < %.2f, ]'%self.maxMZ) # self.emitUpdate('max m/z truncated at %.2f\n'%self.maxMZ) xset = r.group(xset, bw=self.groupParams['bw'], mzwid=self.groupParams['mzwid'], minfrac=self.groupParams['minfrac'], max=self.groupParams['max']) self.emitUpdate('\n\nXSET') self.emitUpdate(str(xset) + '\n') #ri.setWriteConsole(self.setRString) time.sleep(0.5) # if self.retcorParams['plottype'] != None: ## print self.retcorParams['plottype']self.retcorParams['plottype'] # r.png(file=self.imageName) # r('dev.off') if self.useRetCor: xset2 = r.retcor(xset, family=self.retcorParams['f'], plottype=self.retcorParams['plottype'], missing=self.retcorParams['missing'], extra=self.retcorParams['extra'], span=self.retcorParams['span']) if self.retcorParams['plottype'] == 'mdevden': r.savePlot(file=self.imageName, type='png') r('dev.off()') elif self.retcorParams['plottype'] == 'deviation': r.savePlot(file=self.imageName, type='png') r('dev.off()') else: xset2 = xset retCorStr = "Retention Time Alignment Not Used in Processing!\n" self.emitUpdate(retCorStr) ri.globalEnv["xset2"] = xset2 self.emitUpdate('\n\nXSET2') self.emitUpdate(str(xset2) + '\n') time.sleep(0.5) xset2 = r.group(xset2, bw=self.groupParams['bw'], mzwid=self.groupParams['mzwid'], minfrac=self.groupParams['minfrac'], max=self.groupParams['max']) xset3 = r.fillPeaks(xset2) self.emitUpdate('\n\nXSET3') self.emitUpdate(str(xset3) + '\n') time.sleep(0.5) ri.globalEnv["xset3"] = xset3 # gt = r.group(xset3, bw=self.groupParams['bw'], # mzwid=self.groupParams['mzwid'], # minfrac=self.groupParams['minfrac'], # max=self.groupParams['max']) tsidx = r.groupnames(xset3) ri.globalEnv["tsidx"] = tsidx eicmax = r.length(tsidx) eic = r.getEIC(xset3, rtrange=self.rtWidth, groupidx=tsidx, rt=self.corType) # print self.buf eicClass = EIC(eic) self.emit(QtCore.SIGNAL("xcmsGetEIC(PyQt_PyObject)"), eicClass) # self.emit(QtCore.SIGNAL("xcmsSet(PyQt_PyObject)"),xset2) #if this is False then the peak table without the filled peaks will be returned and written to csv if self.fillPeaksOK: self.emit(QtCore.SIGNAL("xcmsSet(PyQt_PyObject)"), xset3) else: self.emit(QtCore.SIGNAL("xcmsSet(PyQt_PyObject)"), xset2) t2 = time.clock() self.emitUpdate('\nProcessing Time: %s seconds' % t2) # self.updateGUI() sys.stdout = sys.__stdout__ # ri.endr() except: self.stop() sys.stdout = sys.__stdout__ exceptionType, exceptionValue, exceptionTraceback = sys.exc_info( ) traceback.print_exception(exceptionType, exceptionValue, exceptionTraceback, file=sys.stdout) # print 'Error saving figure data' errorMsg = "Sorry: %s\n\n:%s\n%s\n" % ( exceptionType, exceptionValue, exceptionTraceback) # if self.parent != None: # return QtGui.QMessageBox.warning(self.parent, "R Source Error", errorMsg) print errorMsg self.emitUpdate(errorMsg) else: print "Parameters not set or there is an error"