Exemple #1
0
	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)
Exemple #2
0
	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()
Exemple #3
0
	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
Exemple #4
0
    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)
Exemple #5
0
	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)
Exemple #6
0
	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)
Exemple #7
0
    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 = {}
Exemple #8
0
	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={}
Exemple #9
0
	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)
Exemple #10
0
    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)
Exemple #11
0
	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)
Exemple #12
0
    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)
Exemple #13
0
    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" )
Exemple #15
0
	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)
Exemple #16
0
    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)
Exemple #17
0
	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()
Exemple #18
0
	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)
Exemple #19
0
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())
Exemple #20
0
    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()
Exemple #21
0
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())
Exemple #22
0
	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)
Exemple #23
0
	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)
Exemple #24
0
	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
Exemple #25
0
			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_())

Exemple #26
0
		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"

	
Exemple #27
0
        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()
Exemple #28
0
        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_())
Exemple #29
0
        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_())
Exemple #30
0
		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" )
Exemple #31
0
		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_())

Exemple #32
0
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__ = ""
Exemple #33
0
		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_())

Exemple #34
0
			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_())

Exemple #35
0
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__=""
Exemple #36
0
            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_())
Exemple #37
0
			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_())

Exemple #38
0
    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
Exemple #39
0
		# 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_())

Exemple #40
0
    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)
Exemple #41
0
		_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()

Exemple #42
0
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__ = ""
Exemple #43
0
	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
Exemple #44
0
    # 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_())
Exemple #45
0
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__=""