Exemple #1
0
 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()
Exemple #2
0
    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"