def __init__(self, parent = None): super(AdvancedSettingsDialog, self).__init__(parent) uic.loadUi(resource_path("advancedSettingsDialog.ui"), self) self._positionWindow() mosaicSyntaxHighlight.mosaicSyntaxHighlight( self.advancedSettingsTextEdit, resource_path("mosaicgui/highlight-spec/json.json") ) QtCore.QObject.connect(self.cancelPushButton, QtCore.SIGNAL("clicked()"), self.OnCancel) QtCore.QObject.connect(self.savePushButton, QtCore.SIGNAL("clicked()"), self.OnSave)
def __init__(self, parent = None): super(AboutDialog, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"statisticsview.ui"), self) uic.loadUi(resource_path("aboutdialog.ui"), self) self.setWindowTitle("") self.iconLabel.setPixmap( QtGui.QPixmap(resource_path("icons/icon_100px.png")).scaled(100,100) ) self._positionWindow() self._setVersion()
def OnAggregateUsage(self): try: with open(resource_path("mosaic/utilities/.ga"), "r") as garead: gac = json.load(garead) gac["gaenable"] = str(self.actionAggregate_Usage.isChecked()) with open(resource_path("mosaic/utilities/.ga"), "w") as gawrite: json.dump(gac, gawrite, indent=4, sort_keys=True) except: pass
def __init__(self, parent=None): super(AdvancedSettingsDialog, self).__init__(parent) uic.loadUi(resource_path("advancedSettingsDialog.ui"), self) self._positionWindow() mosaicSyntaxHighlight.mosaicSyntaxHighlight( self.advancedSettingsTextEdit, resource_path("mosaicgui/highlight-spec/json.json")) QtCore.QObject.connect(self.cancelPushButton, QtCore.SIGNAL("clicked()"), self.OnCancel) QtCore.QObject.connect(self.savePushButton, QtCore.SIGNAL("clicked()"), self.OnSave)
def __init__(self, parent = None): super(AnalysisLogDialog, self).__init__(parent) uic.loadUi( resource_path("consoleDialog.ui"), self) self._positionWindow() self.idleTimer=QtCore.QTimer() self.idleTimer.start(5000) self.logFileTimeStamp=0.0 mosaicSyntaxHighlight.mosaicSyntaxHighlight( self.consoleLogTextEdit, resource_path("mosaicgui/highlight-spec/log.json") ) # Idle processing QtCore.QObject.connect(self.idleTimer, QtCore.SIGNAL('timeout()'), self.OnAppIdle)
def __init__(self, parent = None): self.v=[] super(StatisticsWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"statisticsview.ui"), self) uic.loadUi(resource_path("statisticsview.ui"), self) self._positionWindow() self.idleTimer=QtCore.QTimer() self.idleTimer.start(3000) self.queryString="select AbsEventStart from metadata where ProcessingStatus='normal' order by AbsEventStart ASC" self.queryData=[] self.totalEvents=0 self.elapsedTime=0.0 self.qWorker=None self.qThread=QtCore.QThread() # Set QLabel properties self.neventsLabel.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) self.errorrateLabel.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) self.caprateLabel.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)
def __init__(self, parent=None): self.v = [] super(TrajectoryWindow, self).__init__(parent) uic.loadUi(resource_path("trajviewui.ui"), self) # Add a toolbar the matplolib widget self.mpl_hist.addToolbar() self._positionWindow() QtCore.QObject.connect(self.nextBtn, QtCore.SIGNAL("clicked()"), self.OnNextButton) self.nextBtn.setArrowType(QtCore.Qt.RightArrow) self.trajData = "" self.trajDataDenoise = "" # Set a counter for number of updates self.blockSize = 0.25 self.nUpdate = 0 self.nPoints = 0 self.dataLoaded = False # Temp vars self.mu_line = None self.thr_line = None self.IOObject = None self.DenoiseIOObj = None self.IOArgs = {}
def __init__(self, parent = None): self.v=[] super(TrajectoryWindow, self).__init__(parent) uic.loadUi(resource_path("trajviewui.ui"), self) # Add a toolbar the matplolib widget self.mpl_hist.addToolbar() self._positionWindow() QtCore.QObject.connect(self.nextBtn, QtCore.SIGNAL("clicked()"), self.OnNextButton) self.nextBtn.setArrowType(QtCore.Qt.RightArrow) self.trajData="" self.trajDataDenoise="" # Set a counter for number of updates self.blockSize=0.25 self.nUpdate=0 self.nPoints=0 self.dataLoaded=False # Temp vars self.mu_line = None self.thr_line = None self.IOObject=None self.DenoiseIOObj=None self.IOArgs={}
def __init__(self, parent = None): self.v=[] super(FitEventWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"fiteventsview.ui"), self) uic.loadUi(resource_path("fiteventsview.ui"), self) self._positionWindow() self.eventIndex=0 # Limit the number of events to 10000 self.viewerLimit=10000 self.queryString="" self.queryData=[] self.queryDatabase=None self.EndOfData=False self.idleTimer=QtCore.QTimer() self.idleTimer.start(3000) # setup hash tables used in this class self._setupdict() QtCore.QObject.connect(self.nextEventToolButton, QtCore.SIGNAL("clicked()"), self.OnNextButton) QtCore.QObject.connect(self.previousEventToolButton, QtCore.SIGNAL("clicked()"), self.OnPreviousButton) QtCore.QObject.connect(self.eventIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnEventIndexLineEditChange) QtCore.QObject.connect(self.eventIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnEventIndexLineEditChange) QtCore.QObject.connect(self.eventIndexHorizontalSlider, QtCore.SIGNAL('valueChanged ( int )'), self.OnEventIndexSliderChange)
def __init__(self, parent=None): super(AnalysisLogDialog, self).__init__(parent) uic.loadUi(resource_path("consoleDialog.ui"), self) self._positionWindow() self.idleTimer = QtCore.QTimer() self.idleTimer.start(5000) self.logFileTimeStamp = 0.0 mosaicSyntaxHighlight.mosaicSyntaxHighlight( self.consoleLogTextEdit, resource_path("mosaicgui/highlight-spec/log.json")) # Idle processing QtCore.QObject.connect(self.idleTimer, QtCore.SIGNAL('timeout()'), self.OnAppIdle)
def __init__(self, parent = None): self.v=[] super(BlockDepthWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"blockdepthview.ui"), self) uic.loadUi(resource_path("blockdepthview.ui"), self) self._positionWindow() self.queryInterval=15 self.lastQueryTime=round(time.time()) self.idleTimer=QtCore.QTimer() self.idleTimer.start(5000) # self.processeEventsTimer=QtCore.QTimer() # self.processeEventsTimer.start(500) # and BlockDepth between 0 and 1 self.queryString="select BlockDepth from metadata where ProcessingStatus='normal'and ResTime > 0.025" self.queryData=[] self.queryError=False self.lastGoodQueryString="" self.queryRunning=False self.qWorker=None self.qThread=QtCore.QThread() self.queryCompleter=None self.nBins=500 self.binsSpinBox.setValue(self.nBins) # Set the default text in the Filter LineEdit self.sqlQueryLineEdit.setCompleterValues([]) self.sqlQueryLineEdit.setText("ResTime > 0.025") self.maxLevel=5 self.levelHorizontalSlider.setValue(self.maxLevel) # add a status bar sb=QtGui.QStatusBar() self.statusBarHorizontalLayout.addWidget(sb) self.statusBarHorizontalLayout.setMargin(0) self.statusBarHorizontalLayout.setSpacing(0) self.statusbarLine.hide() QtCore.QObject.connect(self.updateButton, QtCore.SIGNAL('clicked()'), self.OnUpdateButton) QtCore.QObject.connect(self.sqlQueryLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnQueryTextChange) QtCore.QObject.connect(self.binsSpinBox, QtCore.SIGNAL('valueChanged ( int )'), self.OnBinsChange) QtCore.QObject.connect(self.levelHorizontalSlider, QtCore.SIGNAL('valueChanged ( int )'), self.OnlevelSliderChange) QtCore.QObject.connect(self.peakDetectCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnPeakDetect)
def __init__(self, parent=None): self.v = [] super(FitEventWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"fiteventsview.ui"), self) uic.loadUi(resource_path("fiteventsview.ui"), self) self._positionWindow() self.eventIndex = 0 # Limit the number of events to 10000 self.viewerLimit = 10000 self.queryString = "" self.queryData = [] self.queryDatabase = None self.EndOfData = False self.idleTimer = QtCore.QTimer() self.idleTimer.start(3000) self.updateDataOnIdle = True # setup error descriptions self.errText = err.errors() # setup hash tables used in this class self._setupdict() self._columnhead = [ u"\u3008i\u2C7C\u27E9/\u3008i\u2080\u27E9", u"t\u2C7C (\u00B5s)" ] self.tableModel = FitViewModel(self, [['N/A'], ['N/A']], [self._columnhead, ['1']]) self.fitStatesTableView.setModel(self.tableModel) QtCore.QObject.connect(self.nextEventToolButton, QtCore.SIGNAL("clicked()"), self.OnNextButton) QtCore.QObject.connect(self.previousEventToolButton, QtCore.SIGNAL("clicked()"), self.OnPreviousButton) QtCore.QObject.connect(self.eventIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnEventIndexLineEditChange) QtCore.QObject.connect(self.eventIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnEventIndexLineEditChange) QtCore.QObject.connect(self.eventIndexHorizontalSlider, QtCore.SIGNAL('valueChanged ( int )'), self.OnEventIndexSliderChange) QtCore.QObject.connect(self.eventParamsCheckBox, QtCore.SIGNAL('stateChanged( int )'), self.OnEventParamsCheckboxState)
def __init__(self, parent=None): super(AdvancedSettingsDialog, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"advancedSettingsDialog.ui"), self) uic.loadUi(resource_path("advancedSettingsDialog.ui"), self) # self.setupUi(self) self._positionWindow() QtCore.QObject.connect(self.cancelPushButton, QtCore.SIGNAL("clicked()"), self.OnCancel) QtCore.QObject.connect(self.savePushButton, QtCore.SIGNAL("clicked()"), self.OnSave)
def __init__(self): super(QMainWindow, self).__init__() font = QFont() font.setFamily( "Monaco" ) font.setPointSize( 14 ) editor = QTextEdit() editor.setFont( font ) mosaicSyntaxHighlight( editor, resource_path('mosaicgui/highlight-spec/json.json') ) self.setCentralWidget( editor ) self.setWindowTitle( "Syntax Highlighting Test" )
def __init__(self, parent = None): super(AnalysisLogDialog, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"consoleDialog.ui"), self) uic.loadUi( resource_path("consoleDialog.ui"), self) # self.setupUi(self) self._positionWindow() self.idleTimer=QtCore.QTimer() self.idleTimer.start(5000) self.logFileTimeStamp=0.0 # Idle processing QtCore.QObject.connect(self.idleTimer, QtCore.SIGNAL('timeout()'), self.OnAppIdle)
def __init__(self, parent=None): super(AnalysisLogDialog, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"consoleDialog.ui"), self) uic.loadUi(resource_path("consoleDialog.ui"), self) # self.setupUi(self) self._positionWindow() self.idleTimer = QtCore.QTimer() self.idleTimer.start(5000) self.logFileTimeStamp = 0.0 # Idle processing QtCore.QObject.connect(self.idleTimer, QtCore.SIGNAL('timeout()'), self.OnAppIdle)
def __init__(self, parent = None): super(FileViewWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"statisticsview.ui"), self) uic.loadUi(resource_path("fileview.ui"), self) self._positionWindow() self.idleTimer=QtCore.QTimer() self.idleTimer.start(3000) self.queryString="select filename, fileformat, modifiedtime from processedfiles" self.queryData=[] self.tableModel = FileViewModel(self, [['N/A','N/A','N/A']], ['File Name', 'File Type', 'Last Modified']) self.fileTableView.setModel(self.tableModel) self.qWorker=None self.qThread=QtCore.QThread()
def __init__(self, parent = None): self.v=[] super(FitEventWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"fiteventsview.ui"), self) uic.loadUi(resource_path("fiteventsview.ui"), self) self._positionWindow() self.eventIndex=0 # Limit the number of events to 10000 self.viewerLimit=10000 self.queryString="" self.queryData=[] self.queryDatabase=None self.EndOfData=False self.idleTimer=QtCore.QTimer() self.idleTimer.start(3000) self.updateDataOnIdle=True # setup error descriptions self.errText=err.errors() # setup hash tables used in this class self._setupdict() self._columnhead=[u"\u3008i\u2C7C\u27E9/\u3008i\u2080\u27E9", u"t\u2C7C (\u00B5s)"] self.tableModel = FitViewModel(self, [['N/A'], ['N/A']], [self._columnhead,['1']]) self.fitStatesTableView.setModel(self.tableModel) QtCore.QObject.connect(self.nextEventToolButton, QtCore.SIGNAL("clicked()"), self.OnNextButton) QtCore.QObject.connect(self.previousEventToolButton, QtCore.SIGNAL("clicked()"), self.OnPreviousButton) QtCore.QObject.connect(self.eventIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnEventIndexLineEditChange) QtCore.QObject.connect(self.eventIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnEventIndexLineEditChange) QtCore.QObject.connect(self.eventIndexHorizontalSlider, QtCore.SIGNAL('valueChanged ( int )'), self.OnEventIndexSliderChange) QtCore.QObject.connect(self.eventParamsCheckBox, QtCore.SIGNAL('stateChanged( int )'), self.OnEventParamsCheckboxState)
def _gaCredentialCache(): logger = mlog.mosaicLogging().getLogger(name=__name__) ga_cache = resource_path("mosaic/utilities/.ga") try: gaModTime = datetime.fromtimestamp(os.stat(ga_cache).st_mtime) gaExpireAge = timedelta(hours=24) gaAge = datetime.today() - gaModTime if gaAge > gaExpireAge: logger.debug(_d("GA settings cache has expired.")) _getGASettings(ga_cache) else: logger.debug(_d("GA settings cache found. gaAge={0}", gaAge)) except: logger.debug(_d("GA settings are not cached.")) _getGASettings(ga_cache) with open(ga_cache, 'r') as ga: return json.loads(ga.read())
def __init__(self, parent=None): super(FileViewWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"statisticsview.ui"), self) uic.loadUi(resource_path("fileview.ui"), self) self._positionWindow() self.idleTimer = QtCore.QTimer() self.idleTimer.start(3000) self.queryString = "select filename, fileformat, modifiedtime from processedfiles" self.queryData = [] self.tableModel = FileViewModel( self, [['N/A', 'N/A', 'N/A']], ['File Name', 'File Type', 'Last Modified']) self.fileTableView.setModel(self.tableModel) self.qWorker = None self.qThread = QtCore.QThread()
def _gaCredentialCache(): logger=mlog.mosaicLogging().getLogger(name=__name__) ga_cache=resource_path("mosaic/utilities/.ga") try: gaModTime = datetime.fromtimestamp(os.stat(ga_cache).st_mtime) gaExpireAge=timedelta(hours=24) gaAge=datetime.today() - gaModTime if gaAge > gaExpireAge: logger.debug(_d("GA settings cache has expired.")) _getGASettings(ga_cache) else: logger.debug(_d("GA settings cache found. gaAge={0}", gaAge)) except: logger.debug(_d("GA settings are not cached.")) _getGASettings(ga_cache) with open(ga_cache, 'r') as ga: return json.loads(ga.read())
def __init__(self, parent = None): self.v=[] super(CSVExportWindow, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"fiteventsview.ui"), self) uic.loadUi(resource_path("csvexportview.ui"), self) self._positionWindow() self.queryString="" self.queryData=[] self.dbFieldsGroupBox.setEnabled(True) self.advancedCheckBox.setChecked(False) self.advancedGroupBox.setHidden(True) QtCore.QObject.connect(self.cancelButton, QtCore.SIGNAL("clicked()"), self.OnCancel) QtCore.QObject.connect(self.exportButton, QtCore.SIGNAL("clicked()"), self.OnExport) QtCore.QObject.connect(self.advancedCheckBox, QtCore.SIGNAL("clicked(bool)"), self.OnAdvancedChecked)
def __init__(self, parent = None): super(settingsview, self).__init__(parent) # uic.loadUi(os.path.join(os.path.dirname(os.path.abspath(__file__)),"SettingsWindow.ui"), self) uic.loadUi(resource_path("SettingsWindow.ui"), self) # self.setupUi(self) self.setMenuBar(self.menubar) self._positionWindow() self.updateDialogs=False self.analysisRunning=False self.dataFilterDenoise=False # setup handles and data structs for other application windows self.trajViewerWindow = mosaicgui.trajview.trajview.TrajectoryWindow(parent=self) self.advancedSettingsDialog = mosaicgui.advancedsettings.advancedsettings.AdvancedSettingsDialog(parent=self) self.consoleLog = mosaicgui.consolelog.consolelog.AnalysisLogDialog(parent=self) self.blockDepthWindow = mosaicgui.blockdepthview.blockdepthview.BlockDepthWindow(parent=self) self.statisticsView = mosaicgui.statisticsview.statisticsview.StatisticsWindow(parent=self) self.fitEventsView = mosaicgui.fiteventsview.fiteventsview.FitEventWindow(parent=self) self.aboutDialog = mosaicgui.aboutdialog.aboutdialog.AboutDialog(parent=self) self.showBlockDepthWindow=False self.showFitEventsWindow=False self.ShowTrajectory=True # redirect stdout and stderr # sys.stdout = redirectSTDOUT( edit=self.consoleLog.consoleLogTextEdit, out=sys.stdout, color=QtGui.QColor(0,0,0) ) # sys.stderr = redirectSTDOUT( edit=self.consoleLog.consoleLogTextEdit, out=sys.stderr, color=QtGui.QColor(255,0,0) ) # # Always show the console log # self.consoleLog.show() # self.consoleLog.raise_() # Setup and initialize the data model for the settings view self.analysisDataModel=mosaicgui.datamodel.guiDataModel() # temp keys self.analysisDataModel["lastMeanOpenCurr"]=-1. self.analysisDataModel["lastSDOpenCurr"]=-1. # default settings self._updateControls() # Setup validators self.startIndexLineEdit.setValidator( QtGui.QDoubleValidator(0, 999999,2, self) ) self.endIndexLineEdit.setValidator( QtGui.QDoubleValidator(0, 999999,2, self) ) # Set the default processing algorithm to stepResponse self.processingAlgorithmComboBox.setCurrentIndex( 0 ) # Connect signals and slots # Data settings signals QtCore.QObject.connect(self.datPathToolButton, QtCore.SIGNAL('clicked()'), self.OnSelectPath) QtCore.QObject.connect(self.datPathLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnDataPathChange) QtCore.QObject.connect(self.datTypeComboBox, QtCore.SIGNAL('currentIndexChanged(const QString &)'), self.OnDataTypeChange) QtCore.QObject.connect(self.dcOffsetDoubleSpinBox, QtCore.SIGNAL('valueChanged ( double )'), self.OnDataOffsetChange) QtCore.QObject.connect(self.startIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnDataStartIndexChange) QtCore.QObject.connect(self.endIndexLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnDataEndIndexChange) # Baseline detection signals QtCore.QObject.connect(self.baselineAutoCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnBaselineAutoCheckbox) QtCore.QObject.connect(self.baselineBlockSizeDoubleSpinBox, QtCore.SIGNAL('valueChanged ( double )'), self.OnBlockSizeChangeSpinbox) QtCore.QObject.connect(self.baselineMeanLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnBaselineMeanChange) QtCore.QObject.connect(self.baselineSDLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnBaselineSDChange) # Event partition signals QtCore.QObject.connect(self.ThresholdDoubleSpinBox, QtCore.SIGNAL('valueChanged ( double )'), self.OnThresholdChange) QtCore.QObject.connect(self.partitionThresholdHorizontalSlider, QtCore.SIGNAL('valueChanged ( int )'), self.OnThresholdChange) # Misc signals QtCore.QObject.connect(self.advancedModeCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnAdvancedMode) QtCore.QObject.connect(self.writeEventsCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnWriteEvents) QtCore.QObject.connect(self.parallelCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnParallelProcessing) QtCore.QObject.connect(self.parallelCoresSpinBox, QtCore.SIGNAL('valueChanged ( int )'), self.OnParallelProcessing) QtCore.QObject.connect(self.processingAlgorithmComboBox, QtCore.SIGNAL('currentIndexChanged(const QString &)'), self.OnProcessingAlgoChange) # Plots signals QtCore.QObject.connect(self.plotBlockDepthHistCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnPlotBlockDepth) QtCore.QObject.connect(self.plotEventFitsCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnPlotFitEvent) # View Menu signals QtCore.QObject.connect(self.actionAdvanced_Settings_Mode, QtCore.SIGNAL('triggered()'), self.OnAdvancedModeMenuAction) QtCore.QObject.connect(self.actionTrajectory_Viewer, QtCore.SIGNAL('triggered()'), self.OnShowTrajectoryViewer) QtCore.QObject.connect(self.actionBlockade_Depth_Histogram, QtCore.SIGNAL('triggered()'), self.OnShowBlockDepthViewer) QtCore.QObject.connect(self.actionEvent_Fits, QtCore.SIGNAL('triggered()'), self.OnShowFitEventsViewer) QtCore.QObject.connect(self.actionStatistics, QtCore.SIGNAL('triggered()'), self.OnShowStatisticsWindow) QtCore.QObject.connect(self.actionAnalysis_Log, QtCore.SIGNAL('triggered()'), self.OnShowConsoleLog) # Help Menu signals QtCore.QObject.connect(self.actionMOSAIC_Help, QtCore.SIGNAL('triggered()'), self.OnShowHelp) # Dialog signals and slots QtCore.QObject.connect(self.trajViewerWindow.waveletLevelSpinBox, QtCore.SIGNAL('valueChanged ( int )'), self.OnWaveletLevelChange) QtCore.QObject.connect(self.trajViewerWindow.denoiseCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnTrajDenoise) QtCore.QObject.connect(self.advancedSettingsDialog, QtCore.SIGNAL('rejected()'), self.OnAdvancedModeCancel) QtCore.QObject.connect(self.advancedSettingsDialog, QtCore.SIGNAL('accepted()'), self.OnAdvancedModeSave) QtCore.QObject.connect(self.blockDepthWindow, QtCore.SIGNAL('rejected()'), self.OnBlockDepthWindowClose)
def _updateControls(self): self.updateDialogs=False model=self.analysisDataModel datidx= { "QDF" : self.datTypeComboBox.findText("QDF"), "ABF" : self.datTypeComboBox.findText("ABF"), "BIN" : self.datTypeComboBox.findText("BIN"), "TSV" : self.datTypeComboBox.findText("TSV") } path=model["DataFilesPath"] if len(glob.glob(format_path( str(path)+'/*qdf') )) > 0: self.datTypeComboBox.setCurrentIndex( datidx["QDF"] ) model["filter"]="*.qdf" elif len(glob.glob( format_path(str(path)+'/*abf') )) > 0: self.datTypeComboBox.setCurrentIndex( datidx["ABF"] ) model["filter"]="*.abf" elif len(glob.glob( format_path(str(path)+'/*bin') )) > 0: self.datTypeComboBox.setCurrentIndex( datidx["BIN"] ) model["filter"]="*.bin" elif len(glob.glob( format_path(str(path)+'/*dat') )) > 0: self.datTypeComboBox.setCurrentIndex( datidx["BIN"] ) model["filter"]="*.dat" elif len(glob.glob( format_path(str(path)+'/*tsv') )) > 0: self.datTypeComboBox.setCurrentIndex( datidx["TSV"] ) model["filter"]="*.tsv" elif len(glob.glob( format_path(str(path)+'/*txt') )) > 0: self.datTypeComboBox.setCurrentIndex( datidx["TSV"] ) model["filter"]="*.txt" # store the data type in the trajviewer data struct model["DataFilesType"] = str(self.datTypeComboBox.currentText()) self.startIndexLineEdit.setText(str(model["start"])) if model["end"]==-1: self.endIndexLineEdit.setText("") else: self.endIndexLineEdit.setText(str(model["end"])) self.dcOffsetDoubleSpinBox.setValue(model["dcOffset"]) if float(model["meanOpenCurr"]) == -1. or float(model["sdOpenCurr"]) == -1.: self.baselineAutoCheckBox.setChecked(True) self.OnBaselineAutoCheckbox(True) # Manually disable baseline mean and SD controls self.baselineMeanLineEdit.setText("") self.baselineSDLineEdit.setText("") self.baselineMeanLineEdit.setPlaceholderText("<auto>") self.baselineSDLineEdit.setPlaceholderText("<auto>") self.baselineMeanLineEdit.setEnabled(False) self.baselineSDLineEdit.setEnabled(False) else: # Populate baseline parameters self.baselineAutoCheckBox.setChecked(False) self.OnBaselineAutoCheckbox(False) self.baselineMeanLineEdit.setText(str(model["meanOpenCurr"])) self.baselineSDLineEdit.setText(str(model["sdOpenCurr"])) self.baselineBlockSizeDoubleSpinBox.setValue(float(model["blockSizeSec"])) # Manually enable baseline mean and SD controls self.baselineMeanLineEdit.setEnabled(True) self.baselineSDLineEdit.setEnabled(True) # Populate EventSegment parameters self._setThreshold(float(model["meanOpenCurr"]), float(model["sdOpenCurr"]), float(model["eventThreshold"])) # Populate misc parameters self.writeEventsCheckBox.setChecked(int(model["writeEventTS"])) # Populate plot widgets self.plotEventFitsCheckBox.setEnabled(int(model["writeEventTS"])) # check if parallel is available # try: # import zmq # self.parallelCheckBox.setChecked(int(model["parallelProc"])) # self.parallelCoresSpinBox.setValue(multiprocessing.cpu_count()-int(model["reserveNCPU"])) # except ImportError: # self.parallelCheckBox.hide() # self.parallelCoresSpinBox.hide() # self.parallelCoresLabel.hide() self.parallelCheckBox.hide() self.parallelCoresSpinBox.hide() self.parallelCoresLabel.hide() procidx= {} for v in self.analysisDataModel.eventProcessingAlgoKeys.keys(): procidx[v]=self.processingAlgorithmComboBox.findText(v) self.processingAlgorithmComboBox.setCurrentIndex( procidx[self.analysisDataModel.EventProcessingAlgorithmLabel()] ) # If an advanced mode dialog exists, update its settings if self.advancedSettingsDialog: if self.dataFilterDenoise: fltr=self.analysisDataModel["FilterAlgorithm"] else: fltr=None self.advancedSettingsDialog.updateSettingsString( model.GenerateSettingsView( eventPartitionAlgo=str(self.partitionAlgorithmComboBox.currentText()), eventProcessingAlgo=str(self.processingAlgorithmComboBox.currentText()), dataFilterAlgo=fltr ) ) # If the trajviewer is initialized, update the denoising settings if self.trajViewerWindow: self.trajViewerWindow.waveletLevelSpinBox.setValue(int(self.analysisDataModel["level"])) # Hide Rfb and Cfb for QDF files [control.hide() for control in [self.RfbLabel, self.qdfRfbLineEdit, self.RfbUnitsLabel, self.CfbLabel, self.qdfCfbLineEdit, self.CfbUnitsLabel]] # Set ga toggle. try: with open(resource_path("mosaic/utilities/.ga"), "r") as garead: gac = json.load(garead) if eval(gac["gauimode"]): self.actionAggregate_Usage.setVisible(True) else: self.actionAggregate_Usage.setVisible(False) if eval(gac["gaenable"]): self.actionAggregate_Usage.setChecked(True) else: self.actionAggregate_Usage.setChecked(False) except: self.actionAggregate_Usage.setVisible(False) self.updateDialogs=True
checkboxlayout.addWidget( cb ) def _exportCSV(self): try: return self.queryDatabase.exportToCSV( self._genquery() ) except: raise def _genquery(self): if self.advancedCheckBox.isChecked(): basequery = str(self.sqlQueryLineEdit.text()) else: cols=', '.join([ str(cb.text()) for cb in self.dbFieldsGroupBox.children()[1:] if cb.isChecked() ]) basequery = "select "+cols+" from metadata" return basequery if __name__ == '__main__': # dbfile=resource_path('eventMD-PEG29-Reference.sqlite') dbfile=resource_path('eventMD-PEG28-cusumLevelAnalysis.sqlite') # dbfile=resource_path('eventMD-PEG28-stepResponseAnalysis.sqlite') app = QtGui.QApplication(sys.argv) dmw = CSVExportWindow() dmw.openDBFile(dbfile, 500) dmw.show() dmw.raise_() sys.exit(app.exec_())
elif key == "FB Capacitance": if val.endswith("pF"): return float(val.rstrip("pF"))*1E-12 elif key == "Sample Rate": if val.endswith("KHz"): return float(val.rstrip("KHz"))*1E3 return val def pop(self, key, default): try: return self[key] except KeyError: return default if __name__ == "__main__": from mosaic.utilities.resource_path import resource_path s=EBSStateFileDict(resource_path('SingleChan-0001_state.txt')) print s print print print 'FB Resistance =', float(s['FB Resistance'])/1e9, "GOhm" print 'FB Capacitance =', float(s['FB Capacitance'])/1e-12, "pF" print 'Sample Rate (Hz) = ', int(s['Sample Rate (Hz)'])/1e6, "MHz"
return json.loads(ga.read()) def _getGASettings(ga_cache): logger = mlog.mosaicLogging().getLogger(name=__name__) try: req = urllib2.Request(mosaic.DocumentationURL + ".ga") streamHandler = urllib2.build_opener() stream = streamHandler.open(req) with open(ga_cache, 'w') as ga: ga.write(stream.read()) logger.debug(_d("Cached GA settings to {0}.", ga_cache)) except: logger.debug(_d("An error occured when trying to cache GA settings.")) ga_cache = resource_path("mosaic/utilities/.ga") _getGASettings(ga_cache) @registerRun def foo(): print "foo" if __name__ == '__main__': foo()
self.data = sorted(self.data, key=operator.itemgetter(col)) if order == QtCore.Qt.DescendingOrder: self.data.reverse() self.emit(QtCore.SIGNAL("layoutChanged()")) def update(self, header, data): self.header = header self.data = data self.emit(QtCore.SIGNAL("layoutChanged()")) if __name__ == '__main__': from mosaicgui.mplwidget import update_rcParams update_rcParams() dbfile = resource_path('eventMD-PEG28-cusumLevelAnalysis.sqlite') # dbfile=resource_path('eventMD-PEG28-ADEPT2State.sqlite') # dbfile=resource_path('eventMD-tempMSA.sqlite') app = QtGui.QApplication(sys.argv) dmw = FitEventWindow() dmw.openDBFile(dbfile, 500) dmw.show() dmw.raise_() sys.exit(app.exec_())
self.setGeometry(405, 555, 640, 200) # SLOTS def OnSave(self): pass def OnCancel(self): self.reject() def OnAppIdle(self): try: self.consoleLogTextEdit.clear() self.consoleLogTextEdit.setText( self.queryDatabase.readAnalysisLog()) except AttributeError: pass except OSError: pass except OperationalError: pass if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dmw = AnalysisLogDialog() dmw.openDBFile(resource_path("eventMD-PEG28-cusumLevelAnalysis.sqlite")) dmw.show() dmw.raise_() sys.exit(app.exec_())
return ', '.join(sqlstring) def _datalist(self, data): # recidx=self._generateRecordKey() d=data_record( self.colNames, data, self.colNames_t ) return tuple( [ d[col] for col in self.colNames ] ) def _decoderecord(self, colnames, colnames_t, rec): d=data_record( colnames, rec, colnames_t ) return [ d[col] for col in colnames ] if __name__=="__main__": try: c=sqlite3MDIO() c.openDB(resource_path('data/eventMD-PEG28-ADEPT2State.sqlite')) c.logger.debug('test') q=c.queryDB( "select TimeSeries from metadata limit 100, 200" ) print "Results:", len(q) print c.readSettings() print c.readAnalysisLog() print c.readAnalysisInfo() # print zip( c.mdColumnNames, c.mdColumnTypes ) print # print [ c for c in zip( c.mdColumnNames, c.mdColumnTypes ) if c[1] != 'REAL_LIST' ] # c.exportToCSV( "select * from metadata" ) print c.csvString( "select ProcessingStatus, BlockDepth from metadata limit 5" )
if self.elapsedTime < oneMin: elaptime=str(round(self.elapsedTime, 2)) + " s" # elif self.elapsedTime > 60 and self.elapsedTime < 600: else: m=int(self.elapsedTime/oneMin) s=int(self.elapsedTime%oneMin) elaptime=str(m) + " min " + str(s) + " s" # else: # elaptime=str(round(self.elapsedTime/60., 1)) + " min" return elaptime def _fitfunc(self, t, a, tau): return a * np.exp(-t/tau) def OnAppIdle(self): if not self.queryRunning: self._updatequery() if __name__ == '__main__': # dbfile=resource_path('eventMD-PEG29-Reference.sqlite') dbfile=resource_path('eventMD-tempMSA.sqlite') app = QtGui.QApplication(sys.argv) dmw = StatisticsWindow() dmw.openDBFile(dbfile) dmw.show() dmw.raise_() sys.exit(app.exec_())
import subprocess from mosaic.utilities.resource_path import resource_path try: __version__ = subprocess.check_output( ['git', 'describe', '--abbrev=0', '--match', 'v*', 'HEAD'], stderr=subprocess.STDOUT).strip().lstrip('v') except: __version__ = "" try: if not __version__: with open(resource_path('version-hash'), 'r') as f: __version__ = f.read().strip() except: __version__ = "" try: __mweb_version__ = subprocess.check_output( ['git', 'describe', '--abbrev=0', '--match', 'mwebv*', 'HEAD'], stderr=subprocess.STDOUT).strip().lstrip('mwebv') except: __mweb_version__ = "" try: if not __mweb_version__: with open(resource_path('mweb-version-hash'), 'r') as f: __mweb_version__ = f.read().strip() except: __mweb_version__ = ""
screen = QtGui.QDesktopWidget().screenGeometry() self.setGeometry(405, 555, 640, 200) # SLOTS def OnSave(self): pass def OnCancel(self): self.reject() def OnAppIdle(self): try: self.consoleLogTextEdit.clear() self.consoleLogTextEdit.setText( self.queryDatabase.readAnalysisLog() ) except AttributeError: pass except OSError: pass except OperationalError: pass if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dmw = AnalysisLogDialog() dmw.openDBFile(resource_path("eventMD-PEG28-cusumLevelAnalysis.sqlite")) dmw.show() dmw.raise_() sys.exit(app.exec_())
for line in logstr.split('\n'): if re.search("Total = ", line): wtime=float(line.split()[2]) # if re.search("Time per event = ", line): # timeperevent=str(line.split()[4]) return wtime else: return "" def OnAppIdle(self): if not self.updateDataOnIdle: return if self.isHidden(): return if not self.queryRunning: self._updatequery() if __name__ == '__main__': dbfile=resource_path('eventMD-PEG28-stepResponseAnalysis.sqlite') # dbfile=resource_path('eventMD-tempMSA.sqlite') app = QtGui.QApplication(sys.argv) dmw = StatisticsWindow() dmw.openDBFile(dbfile, updateOnIdle=False) dmw.show() dmw.raise_() sys.exit(app.exec_())
import subprocess from mosaic.utilities.resource_path import resource_path try: __version__=subprocess.check_output(['git', 'describe', '--abbrev=0', '--match', 'v*', 'HEAD'], stderr=subprocess.STDOUT).strip().lstrip('v') except: __version__="" try: if not __version__: with open( resource_path('version-hash'), 'r' ) as f: __version__=f.read().strip() except: __version__="" try: __mweb_version__=subprocess.check_output(['git', 'describe', '--abbrev=0', '--match', 'mwebv*', 'HEAD'], stderr=subprocess.STDOUT).strip().lstrip('mwebv') except: __mweb_version__="" try: if not __mweb_version__: with open( resource_path('mweb-version-hash'), 'r' ) as f: __mweb_version__=f.read().strip() except: __mweb_version__="" try: __build__=subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD'], stderr=subprocess.STDOUT).strip() except: __build__=""
for line in logstr.split('\n'): if re.search("Total = ", line): wtime = float(line.split()[2]) # if re.search("Time per event = ", line): # timeperevent=str(line.split()[4]) return wtime else: return "" def OnAppIdle(self): if not self.updateDataOnIdle: return if self.isHidden(): return if not self.queryRunning: self._updatequery() if __name__ == '__main__': dbfile = resource_path('eventMD-PEG28-stepResponseAnalysis.sqlite') # dbfile=resource_path('eventMD-tempMSA.sqlite') app = QtGui.QApplication(sys.argv) dmw = StatisticsWindow() dmw.openDBFile(dbfile, updateOnIdle=False) dmw.show() dmw.raise_() sys.exit(app.exec_())
self.updateButton.setEnabled(False) self.updateButton.setText("Updating...") self._updatequery() def OnBinsChange(self, value): self.nBins=int(value) self.update_graph() def OnAppIdle(self): t1=round(time.time()) if not self.queryRunning and t1-self.lastQueryTime >= self.queryInterval: # self.lastQueryTime=t1 self._updatequery() def OnProcessEvents(self): pass # QtGui.QApplication.sendPostedEvents() if __name__ == '__main__': dbfile=resource_path('eventMD-PEG29-Reference.sqlite') # dbfile=resource_path('tempMSA.sqlite') app = QtGui.QApplication(sys.argv) dmw = BlockDepthWindow() dmw.openDBFile(dbfile) dmw.show() dmw.raise_() sys.exit(app.exec_())
def update_graph(self): try: q = self.queryData[self.eventIndex] fs = self.FskHz # time-series data datasign = float(np.sign(np.mean(q[1]))) ydat = datasign * np.array(q[1], dtype='float64') xdat = np.arange(0, float((len(q[1])) / fs), float(1 / fs))[:len(ydat)] np.seterr(invalid='ignore', over='ignore', under='ignore') # fit function data if str(q[0]) == "normal" or str(q[0]).startswith('w'): c = '#%02x%02x%02x' % (72, 91, 144) cf = '#%02x%02x%02x' % (50, 50, 47) cs = '#%02x%02x%02x' % (170, 41, 45) self.mpl_hist.canvas.ax.cla() self.mpl_hist.canvas.ax.hold(True) self.mpl_hist.canvas.ax.plot(xdat, ydat, linestyle='None', marker='o', markersize=8, markeredgecolor='None', alpha=0.6) if self.fitFuncHnd: xfit = np.arange(0, float((len(q[1])) / fs), float(1 / (100 * fs))) yfit = self.fitFuncHnd(*eval(self.fitFuncArgs)) self.mpl_hist.canvas.ax.plot(xfit, yfit, linestyle='-', linewidth='2.0') if self.stepFuncHnd: xstep = np.arange(0, float((len(q[1])) / fs), float(1 / (100 * fs))) ystep = self.stepFuncHnd(*eval(self.stepFuncArgs)) self.mpl_hist.canvas.ax.plot(xstep, ystep, linestyle='--', color='k', linewidth='2.0') # Warning if str(q[0]).startswith('w'): self.errIcon.setText( "<html><img height='24' width='24' src='" + resource_path("icons/warning-128.png") + "'></html>") self.errLabel.setText(self.errText[str(q[0])]) else: self.errIcon.setText(str("")) self.errLabel.setText(str("")) header, data = self._bdTable(*eval(self.bdFuncArgs)) self.tableModel.update(header, data) self.fitStatesTableView.resizeColumnsToContents() else: # Error self.mpl_hist.canvas.ax.cla() self.mpl_hist.canvas.ax.plot(xdat, ydat, linestyle='None', marker='o', color='r', markersize=8, markeredgecolor='none', alpha=0.6) self.errIcon.setText( "<html><img height='24' width='24' src='" + resource_path("icons/error-128.png") + "'></html>") self.errLabel.setText(self.errText[str(q[0])]) self.tableModel.update([self._columnhead, ['1']], [['N/A'], ['N/A']]) self._ticks(5) ilabel = {-1: '-i', 1: 'i'}[int(datasign)] self.mpl_hist.canvas.ax.set_xlabel('t (ms)', fontsize=12) self.mpl_hist.canvas.ax.set_ylabel(ilabel + ' (pA)', fontsize=12) self.mpl_hist.canvas.draw() self.eventIndexLineEdit.setText(str(self.eventIndex)) if self.EndOfData: limittxt = " (at viewer limit)" else: limittxt = "" self.setWindowTitle("Event Viewer: " + str(self.eventIndex) + "/" + str(len(self.queryData) - 1) + limittxt) except ValueError: self.EndOfData = True except IndexError: pass except: raise
# self.move( (-screen.width()/2)+200, -screen.height()/2 ) # SLOTS def OnSave(self): # self.accept() pass def OnCancel(self): self.reject() def OnAppIdle(self): try: self.consoleLogTextEdit.clear() self.consoleLogTextEdit.setText( self.queryDatabase.readAnalysisLog() ) except AttributeError: pass except OSError: pass except OperationalError: pass if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dmw = AnalysisLogDialog() dmw.openDBFile(resource_path("eventMD-PEG29-Reference.sqlite")) dmw.show() dmw.raise_() sys.exit(app.exec_())
def __init__(self, parent=None): super(settingsview, self).__init__(parent) uic.loadUi(resource_path("SettingsWindow.ui"), self) self.setMenuBar(self.menubar) self._positionWindow() self.updateDialogs = False self.analysisRunning = False self.dataFilterDenoise = False # setup handles and data structs for other application windows self.trajViewerWindow = mosaicgui.trajview.trajview.TrajectoryWindow( parent=self) self.advancedSettingsDialog = mosaicgui.advancedsettings.advancedsettings.AdvancedSettingsDialog( parent=self) self.consoleLog = mosaicgui.consolelog.consolelog.AnalysisLogDialog( parent=self) self.processedFiles = mosaicgui.fileview.fileview.FileViewWindow( parent=self) self.blockDepthWindow = mosaicgui.blockdepthview.blockdepthview.BlockDepthWindow( parent=self) self.statisticsView = mosaicgui.statisticsview.statisticsview.StatisticsWindow( parent=self) self.fitEventsView = mosaicgui.fiteventsview.fiteventsview.FitEventWindow( parent=self) self.exportView = mosaicgui.csvexportview.csvexportview.CSVExportWindow( parent=self) self.aboutDialog = mosaicgui.aboutdialog.aboutdialog.AboutDialog( parent=self) self.showBlockDepthWindow = False self.showFitEventsWindow = False self.ShowTrajectory = True # redirect stdout and stderr # sys.stdout = redirectSTDOUT( edit=self.consoleLog.consoleLogTextEdit, out=sys.stdout, color=QtGui.QColor(0,0,0) ) # sys.stderr = redirectSTDOUT( edit=self.consoleLog.consoleLogTextEdit, out=sys.stderr, color=QtGui.QColor(255,0,0) ) # # Always show the console log # self.consoleLog.show() # self.consoleLog.raise_() # Setup and initialize the data model for the settings view self.analysisDataModel = mosaicgui.datamodel.guiDataModel() # temp keys self.analysisDataModel["lastMeanOpenCurr"] = -1. self.analysisDataModel["lastSDOpenCurr"] = -1. # default settings self._updateControls() # Setup validators self.startIndexLineEdit.setValidator( QtGui.QDoubleValidator(0, 999999, 2, self)) self.endIndexLineEdit.setValidator( QtGui.QDoubleValidator(0, 999999, 2, self)) # Set the default processing algorithm to stepResponse self.processingAlgorithmComboBox.setCurrentIndex(0) # Connect signals and slots # Data settings signals QtCore.QObject.connect(self.datPathToolButton, QtCore.SIGNAL('clicked()'), self.OnSelectPath) QtCore.QObject.connect(self.datPathLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnDataPathChange) QtCore.QObject.connect( self.datTypeComboBox, QtCore.SIGNAL('currentIndexChanged(const QString &)'), self.OnDataTypeChange) QtCore.QObject.connect(self.dcOffsetDoubleSpinBox, QtCore.SIGNAL('valueChanged ( double )'), self.OnDataOffsetChange) QtCore.QObject.connect(self.startIndexLineEdit, QtCore.SIGNAL('editingFinished()'), self.OnDataStartIndexChange) QtCore.QObject.connect( self.endIndexLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnDataEndIndexChange) # Baseline detection signals QtCore.QObject.connect(self.baselineAutoCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnBaselineAutoCheckbox) QtCore.QObject.connect(self.baselineBlockSizeDoubleSpinBox, QtCore.SIGNAL('valueChanged ( double )'), self.OnBlockSizeChangeSpinbox) QtCore.QObject.connect( self.baselineMeanLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnBaselineMeanChange) QtCore.QObject.connect( self.baselineSDLineEdit, QtCore.SIGNAL('textChanged ( const QString & )'), self.OnBaselineSDChange) # Event partition signals QtCore.QObject.connect(self.ThresholdDoubleSpinBox, QtCore.SIGNAL('valueChanged ( double )'), self.OnThresholdChange) QtCore.QObject.connect(self.partitionThresholdHorizontalSlider, QtCore.SIGNAL('valueChanged ( int )'), self.OnThresholdChange) # Misc signals QtCore.QObject.connect(self.advancedModeButton, QtCore.SIGNAL('clicked()'), self.OnAdvancedMode) QtCore.QObject.connect(self.writeEventsCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnWriteEvents) QtCore.QObject.connect(self.parallelCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnParallelProcessing) QtCore.QObject.connect(self.parallelCoresSpinBox, QtCore.SIGNAL('valueChanged ( int )'), self.OnParallelProcessing) QtCore.QObject.connect( self.processingAlgorithmComboBox, QtCore.SIGNAL('currentIndexChanged(const QString &)'), self.OnProcessingAlgoChange) # Plots signals QtCore.QObject.connect(self.plotBlockDepthHistCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnPlotBlockDepth) QtCore.QObject.connect(self.plotEventFitsCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnPlotFitEvent) # View Menu signals QtCore.QObject.connect(self.actionAdvanced_Settings_Mode, QtCore.SIGNAL('triggered()'), self.OnAdvancedModeMenuAction) QtCore.QObject.connect(self.actionTrajectory_Viewer, QtCore.SIGNAL('triggered()'), self.OnShowTrajectoryViewer) QtCore.QObject.connect(self.actionBlockade_Depth_Histogram, QtCore.SIGNAL('triggered()'), self.OnShowBlockDepthViewer) QtCore.QObject.connect(self.actionEvent_Fits, QtCore.SIGNAL('triggered()'), self.OnShowFitEventsViewer) QtCore.QObject.connect(self.actionStatistics, QtCore.SIGNAL('triggered()'), self.OnShowStatisticsWindow) QtCore.QObject.connect(self.actionAnalysis_Log, QtCore.SIGNAL('triggered()'), self.OnShowConsoleLog) QtCore.QObject.connect(self.actionProcessed_Files, QtCore.SIGNAL('triggered()'), self.OnShowProcessedFiles) # Help Menu signals QtCore.QObject.connect(self.actionMOSAIC_Help, QtCore.SIGNAL('triggered()'), self.OnShowHelp) QtCore.QObject.connect(self.actionAggregate_Usage, QtCore.SIGNAL('triggered()'), self.OnAggregateUsage) # Dialog signals and slots QtCore.QObject.connect(self.trajViewerWindow.waveletLevelSpinBox, QtCore.SIGNAL('valueChanged ( int )'), self.OnWaveletLevelChange) QtCore.QObject.connect(self.trajViewerWindow.denoiseCheckBox, QtCore.SIGNAL('clicked(bool)'), self.OnTrajDenoise) QtCore.QObject.connect(self.advancedSettingsDialog, QtCore.SIGNAL('rejected()'), self.OnAdvancedModeCancel) QtCore.QObject.connect(self.advancedSettingsDialog, QtCore.SIGNAL('accepted()'), self.OnAdvancedModeSave) QtCore.QObject.connect(self.blockDepthWindow, QtCore.SIGNAL('rejected()'), self.OnBlockDepthWindowClose)
_getGASettings(ga_cache) with open(ga_cache, 'r') as ga: return json.loads(ga.read()) def _getGASettings(ga_cache): logger=mlog.mosaicLogging().getLogger(name=__name__) try: req=urllib2.Request(mosaic.DocumentationURL+".ga") streamHandler=urllib2.build_opener() stream=streamHandler.open(req) with open(ga_cache, 'w') as ga: ga.write( stream.read() ) logger.debug(_d("Cached GA settings to {0}.", ga_cache)) except: logger.debug(_d("An error occured when trying to cache GA settings.")) ga_cache=resource_path("mosaic/utilities/.ga") _getGASettings(ga_cache) @registerRun def foo(): print "foo" if __name__ == '__main__': foo()
import subprocess from mosaic.utilities.resource_path import resource_path __version__ = "1.3" try: __build__ = subprocess.check_output( ['git', 'rev-parse', '--short', 'HEAD'], stderr=subprocess.STDOUT).strip() except: __build__ = "" try: if not __build__: with open(resource_path('commit-hash'), 'r') as f: __build__ = f.read().strip() except: __build__ = ""
def update_graph(self): try: q=self.queryData[self.eventIndex] fs=self.FskHz # time-series data datasign=float(np.sign(np.mean(q[1]))) ydat=datasign*np.array(q[1], dtype='float64') xdat=np.arange(0,float((len(q[1]))/fs), float(1/fs))[:len(ydat)] np.seterr(invalid='ignore', over='ignore', under='ignore') # fit function data if str(q[0])=="normal" or str(q[0]).startswith('w'): c='#%02x%02x%02x' % (72,91,144) cf='#%02x%02x%02x' % (50,50,47) cs='#%02x%02x%02x' % (170,41,45) self.mpl_hist.canvas.ax.cla() self.mpl_hist.canvas.ax.hold(True) self.mpl_hist.canvas.ax.plot( xdat, ydat, linestyle='None', marker='o', markersize=8, markeredgecolor='None', alpha=0.6) if self.fitFuncHnd: xfit=np.arange(0,float((len(q[1]))/fs), float(1/(100*fs))) yfit=self.fitFuncHnd( *eval(self.fitFuncArgs) ) self.mpl_hist.canvas.ax.plot( xfit, yfit, linestyle='-', linewidth='2.0') if self.stepFuncHnd: xstep=np.arange(0,float((len(q[1]))/fs), float(1/(100*fs))) ystep=self.stepFuncHnd( *eval(self.stepFuncArgs) ) self.mpl_hist.canvas.ax.plot( xstep, ystep, linestyle='--', color='k', linewidth='2.0') # Warning if str(q[0]).startswith('w'): self.errIcon.setText("<html><img height='24' width='24' src='"+resource_path("icons/warning-128.png")+"'></html>") self.errLabel.setText(self.errText[str(q[0])]) else: self.errIcon.setText(str("")) self.errLabel.setText(str("")) header, data=self._bdTable(*eval(self.bdFuncArgs)) self.tableModel.update( header, data ) self.fitStatesTableView.resizeColumnsToContents() else: # Error self.mpl_hist.canvas.ax.cla() self.mpl_hist.canvas.ax.plot( xdat, ydat, linestyle='None', marker='o', color='r', markersize=8, markeredgecolor='none', alpha=0.6) self.errIcon.setText("<html><img height='24' width='24' src='"+resource_path("icons/error-128.png")+"'></html>") self.errLabel.setText(self.errText[str(q[0])]) self.tableModel.update( [self._columnhead,['1']], [['N/A'], ['N/A']] ) self._ticks(5) ilabel={-1:'-i', 1:'i'}[int(datasign)] self.mpl_hist.canvas.ax.set_xlabel('t (ms)', fontsize=12) self.mpl_hist.canvas.ax.set_ylabel(ilabel+' (pA)', fontsize=12) self.mpl_hist.canvas.draw() self.eventIndexLineEdit.setText(str(self.eventIndex)) if self.EndOfData: limittxt=" (at viewer limit)" else: limittxt="" self.setWindowTitle( "Event Viewer: " + str(self.eventIndex) + "/" + str(len(self.queryData)-1) + limittxt) except ValueError: self.EndOfData=True except IndexError: pass except: raise
# SLOTS def OnSave(self): # self.accept() pass def OnCancel(self): self.reject() def OnAppIdle(self): try: self.consoleLogTextEdit.clear() self.consoleLogTextEdit.setText( self.queryDatabase.readAnalysisLog()) except AttributeError: pass except OSError: pass except OperationalError: pass if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dmw = AnalysisLogDialog() dmw.openDBFile(resource_path("eventMD-PEG29-Reference.sqlite")) dmw.show() dmw.raise_() sys.exit(app.exec_())
import subprocess from mosaic.utilities.resource_path import resource_path __version__="1.3" try: __build__=subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD'], stderr=subprocess.STDOUT).strip() except: __build__="" try: if not __build__: with open( resource_path('commit-hash'), 'r' ) as f: __build__=f.read().strip() except: __build__=""