def notifyRun(vcfPath, vcfAttributes, xAttribute, yAttribute, softFilters, forcedCategoricals, featurePaths): global canceled, splash, window splash = QProgressDialog("Loading %s" % os.path.split(vcfPath)[1], "Cancel", 0, 1000, parent=None) splash.setWindowModality(Qt.WindowModal) splash.setAutoReset(False) splash.setAutoClose(False) splash.show() canceled = False vData = variantData(vcfPath, vcfAttributes, forcedCategoricals) vParams = variantLoadingParameters(passFunction=vData.addVariant, rejectFunction=None, callbackArgs={}, tickFunction=tick, tickInterval=0.1, individualsToInclude=[], individualAppendString="", lociToInclude=None, mask=None, invertMask=False, attributesToInclude=None, attributeAppendString="", skipGenotypeAttributes=True, returnFileObject=False, alleleMatching=allele.STRICT, attemptRepairsWhenComparing=True) try: variantFile.parseVcfFile(vcfPath, vParams) except cancelButtonException: splash.close() window.window.show() return if softFilters == None: softFilters = {} for k in vData.axisLookups.iterkeys(): if k == xAttribute or k == yAttribute: if vData.axisLookups[k].hasNumeric: fivePercent = 0.05*(vData.axisLookups[k].maximum-vData.axisLookups[k].minimum) ranges = [(vData.axisLookups[k].maximum-fivePercent,vData.axisLookups[k].maximum)] else: ranges = None values = [] else: ranges = None values = None softFilters[k] = valueFilter(values=values, ranges=ranges, includeNone=True, includeBlank=True, includeInf=True, includeNaN=True, includeMissing=True, includeAlleleMasked=True, listMode=valueFilter.LIST_INCLUSIVE) intMan = interactionManager(vData,softFilters) # TODO fData = featureData(featurePaths) if canceled: splash.close() window.window.show() return splash.close() appWindow = appWidget(vData,fData,intMan,xAttribute,yAttribute) intMan.setApp(appWindow)
class setupApp: def __init__(self, params): loader = QUiLoader() infile = QFile("gui/ui/Setup.ui") infile.open(QFile.ReadOnly) self.window = loader.load(infile, None) self.loadPrefs() self.window.quitButton.clicked.connect(self.closeApp) self.window.saveButton.clicked.connect(self.savePrefs) self.window.runButton.clicked.connect(self.runSV) self.splash = QProgressDialog("Loading", "Cancel", 0, 100, parent=None) self.splash.setWindowModality(Qt.WindowModal) self.splash.setAutoReset(False) self.splash.setAutoClose(False) self.splash.hide() self.canceled = False self.window.show() self.runningApp = None def loadPrefs(self): infile = open(PREFS_FILE,'r') self.window.textEdit.setPlainText(infile.read()) infile.close() def savePrefs(self): outfile=open(PREFS_FILE,'w') outfile.write(self.window.textEdit.toPlainText()) outfile.close() def showProgressWidget(self, estimate=100, message="Loading..."): self.splash.setLabelText(message) self.splash.setMaximum(estimate) self.splash.setValue(0) self.splash.show() def tickProgressWidget(self, numTicks=1, message=None): if self.canceled: return if message != None: self.splash.setLabelText(message) newValue = min(self.splash.maximum(),numTicks+self.splash.value()) self.splash.setValue(newValue) self.canceled = self.splash.wasCanceled() return self.canceled def runSV(self, params=PREFS_FILE): self.savePrefs() self.window.hide() appPrefs = prefs.generateFromText(self.window.textEdit.toPlainText()) self.showProgressWidget(appPrefs.maxTicks, "Loading files...") self.canceled = False vData = appPrefs.loadDataObjects(callback=self.tickProgressWidget) if self.canceled: self.splash.hide() self.window.show() return self.showProgressWidget(vData.estimateTicks(), "Writing files...") success = vData.dumpVcfFile(path='/Users/Home/Desktop/chr3-seq_parsed.vcf',callback=self.tickProgressWidget) if not success: self.splash.hide() self.window.show() return sys.exit(0) # TODO write to file def closeApp(self): self.window.reject()