Commit e778a669 authored by Andreas Tille's avatar Andreas Tille
Browse files

First attempt to port to PyQt5 (not finished yet)

parent c456bd2a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
microbegps (1.0.0-5) UNRELEASED; urgency=medium

  * Port to PyQt5
    Closes: #935345

 -- Andreas Tille <tille@debian.org>  Fri, 06 Sep 2019 10:26:15 +0200

microbegps (1.0.0-4) unstable; urgency=medium

  * Use 2to3 to port to Python3
+2 −2
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (= 12),
               dh-python,
               python3,
               python3-setuptools,
               python3-pyqt4
               python3-pyqt5
Standards-Version: 4.4.0
Vcs-Browser: https://salsa.debian.org/med-team/microbegps
Vcs-Git: https://salsa.debian.org/med-team/microbegps.git
@@ -18,7 +18,7 @@ Architecture: all
Depends: ${misc:Depends},
         ${python3:Depends},
         python3-matplotlib-venn,
         python3-pyqt4
         python3-pyqt5
Description: explorative taxonomic profiling tool for metagenomic data
 MicrobeGPS is a bioinformatics tool for the analysis of metagenomic
 sequencing data. The goal is to profile the composition of metagenomic
+242 −0
Original line number Diff line number Diff line
Description: Port to PyQt5
Bug-Debian: https://bugs.debian.org/935345
Author: Andreas Tille <tille@debian.org>
Last-Update: Fri, 06 Sep 2019 10:26:15 +0200

--- a/setup.py
+++ b/setup.py
@@ -1,9 +1,9 @@
 """ MicrobeGPS setup.py script. Allows direct installation of the tool or creating Python eggs. """
 
 try:
-	import PyQt4
+	import PyQt5
 except ImportError:
-	print('PyQt4 is not installed on your system! Please install PyQt4 first. You can download PyQt4 from http://www.riverbankcomputing.co.uk/software/pyqt/download or use your package manager to install the library.')
+	print('PyQt5 is not installed on your system!')
 	import sys
 	sys.exit()
 
--- a/microbegps/gui.py
+++ b/microbegps/gui.py
@@ -9,7 +9,7 @@ import pkg_resources
 import threading
 import pickle
 
-from PyQt4 import QtGui, QtCore
+from PyQt5 import QtGui, QtCore, QtWidgets
 
 import matplotlib.pyplot as plt
 from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
@@ -79,7 +79,7 @@ First, a subset of reads is selected tha
 ]
 
 
-class Pipeline(QtGui.QWidget):
+class Pipeline(QtWidgets.QWidget):
 	def __init__(self,mainWindow):
 		super(Pipeline, self).__init__()
 		self.mainWindow = mainWindow
@@ -126,13 +126,13 @@ class Pipeline(QtGui.QWidget):
 		sublayout = QtGui.QHBoxLayout()
 		sublayout.addWidget(self.fileNameEdit,stretch=4)
 		sublayout.addWidget(selectButton,stretch=1)
-		subwidget = QtGui.QWidget()
+		subwidget = QtWidgets.QWidget()
 		subwidget.setLayout(sublayout)
 		layout = QtGui.QGridLayout()
 		layout.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)
 		layout.addWidget(QtGui.QLabel('Input Directory'),0,0)
 		layout.addWidget(subwidget,0,1)
-		loadDataWidget = QtGui.QWidget()
+		loadDataWidget = QtWidgets.QWidget()
 		loadDataWidget.setLayout(layout)
 		self.settingsBox.addWidget(loadDataWidget)
 
@@ -167,7 +167,7 @@ class Pipeline(QtGui.QWidget):
 		layout.addRow(QtGui.QLabel('Max. Read Matches'),self.maxMatchesBox)
 		layout.addRow(QtGui.QLabel('Max. Read Mapping Error'),self.maxMappingError)
 		layout.addRow(QtGui.QLabel('Mapping Error Quantile'),self.mappingErrorQuantile)
-		rawFilterWidget = QtGui.QWidget()
+		rawFilterWidget = QtWidgets.QWidget()
 		rawFilterWidget.setLayout(layout)
 		self.settingsBox.addWidget(rawFilterWidget)
 		
@@ -191,12 +191,12 @@ class Pipeline(QtGui.QWidget):
 		sublayout1 = QtGui.QHBoxLayout()
 		sublayout1.addWidget(self.mappingFileEdit,stretch=4)
 		sublayout1.addWidget(selectButton1,stretch=1)
-		subwidget1 = QtGui.QWidget()
+		subwidget1 = QtWidgets.QWidget()
 		subwidget1.setLayout(sublayout1)
 		sublayout2 = QtGui.QHBoxLayout()
 		sublayout2.addWidget(self.NCBICatalogPath,stretch=4)
 		sublayout2.addWidget(selectButton2,stretch=1)
-		subwidget2 = QtGui.QWidget()
+		subwidget2 = QtWidgets.QWidget()
 		subwidget2.setLayout(sublayout2)
 		layout = QtGui.QGridLayout()
 		layout.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)
@@ -205,7 +205,7 @@ class Pipeline(QtGui.QWidget):
 		layout.addWidget(subwidget1,1,1)
 		layout.addWidget(self.useNCBIFiles,2,0)
 		layout.addWidget(subwidget2,2,1)
-		referenceTableWidget = QtGui.QWidget()
+		referenceTableWidget = QtWidgets.QWidget()
 		referenceTableWidget.setLayout(layout)
 		self.settingsBox.addWidget(referenceTableWidget)
 		
@@ -228,7 +228,7 @@ class Pipeline(QtGui.QWidget):
 		layout.addRow(QtGui.QLabel('Min. Number Unique Reads'),self.minAbsoluteUnique)
 		layout.addRow(QtGui.QLabel('Max. Homogeneity'),self.maxHomogeneity)
 
-		qualFilterWidget = QtGui.QWidget()
+		qualFilterWidget = QtWidgets.QWidget()
 		qualFilterWidget.setLayout(layout)
 		self.settingsBox.addWidget(qualFilterWidget)
 		
@@ -266,7 +266,7 @@ class Pipeline(QtGui.QWidget):
 		layout.addRow(QtGui.QLabel('Coverage Similarity'),self.coverageSimilarity)
 		layout.addRow(QtGui.QLabel('Fraction Shared USR'),self.sharedFractionUSR)
 		layout.addRow(QtGui.QLabel('Fraction Shared Reads'),self.sharedFractionAll)
-		extractUSRWidget = QtGui.QWidget()
+		extractUSRWidget = QtWidgets.QWidget()
 		extractUSRWidget.setLayout(layout)
 		self.settingsBox.addWidget(extractUSRWidget)
 		
@@ -274,7 +274,7 @@ class Pipeline(QtGui.QWidget):
 		self.closeOnFinish = QtGui.QCheckBox('Close this window after visualizing results')
 		layout = QtGui.QVBoxLayout()
 		layout.addWidget(self.closeOnFinish)
-		visualizeWidget = QtGui.QWidget()
+		visualizeWidget = QtWidgets.QWidget()
 		visualizeWidget.setLayout(layout)
 		self.settingsBox.addWidget(visualizeWidget)		
 		
@@ -294,7 +294,7 @@ class Pipeline(QtGui.QWidget):
 		consoleLayout = QtGui.QVBoxLayout()
 		consoleLayout.addWidget(self.progress)
 		consoleLayout.addWidget(self.consoleText)
-		consoleWidget = QtGui.QWidget()
+		consoleWidget = QtWidgets.QWidget()
 		consoleWidget.setLayout(consoleLayout)
 
 		self.runStepBtn = QtGui.QPushButton("Run Step")
@@ -304,7 +304,7 @@ class Pipeline(QtGui.QWidget):
 		buttonLayout = QtGui.QHBoxLayout()
 		buttonLayout.addWidget(self.runStepBtn)
 		buttonLayout.addWidget(self.runPipelineBtn)
-		buttonBar = QtGui.QWidget()
+		buttonBar = QtWidgets.QWidget()
 		buttonBar.setLayout(buttonLayout)
 		
 		gridLayout = QtGui.QGridLayout()
@@ -871,7 +871,7 @@ class Pipeline(QtGui.QWidget):
 		self.sharedFractionAll.setValue(settings.get('fraction_shared_all',0.8))
 
 
-class GPSAnalyzer(QtGui.QMainWindow):
+class GPSAnalyzer(QtWidgets.QMainWindow):
 	def __init__(self):
 		super(GPSAnalyzer, self).__init__()
 		self.initUI()
@@ -901,19 +901,19 @@ class GPSAnalyzer(QtGui.QMainWindow):
 		self.graphicDock = QtGui.QDockWidget('Graphic',self)
 		self.graphicDock.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
 		self.graphicDock.setMinimumSize(450,300)
-		self.graphicDock.setTitleBarWidget(QtGui.QWidget())
+		self.graphicDock.setTitleBarWidget(QtWidgets.QWidget())
 		
 		self.toolsDock = QtGui.QDockWidget('Tools',self)
 		self.toolsDock.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
 		self.toolsDock.setMinimumHeight(150)
 		self.toolsDock.setMaximumHeight(250)
-		self.toolsDock.setTitleBarWidget(QtGui.QWidget())
+		self.toolsDock.setTitleBarWidget(QtWidgets.QWidget())
 
 		self.consoleDock = QtGui.QDockWidget('Console',self)
 		self.consoleDock.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
 		self.consoleDock.setMinimumHeight(150)
 		self.consoleDock.setMaximumHeight(450)
-		self.consoleDock.setTitleBarWidget(QtGui.QWidget())
+		self.consoleDock.setTitleBarWidget(QtWidgets.QWidget())
 		
 		self.addDockWidget(QtCore.Qt.RightDockWidgetArea,self.graphicDock)
 		self.addDockWidget(QtCore.Qt.RightDockWidgetArea,self.toolsDock)
@@ -966,7 +966,7 @@ class GPSAnalyzer(QtGui.QMainWindow):
 		toolsGrid.addWidget(self.exportFigureQuality,1,1)
 		toolsGrid.addWidget(showPipelineBtn,2,0)
 
-		toolsWidget = QtGui.QWidget()
+		toolsWidget = QtWidgets.QWidget()
 		toolsWidget.setLayout(toolsGrid)
 		
 		self.toolsTab = QtGui.QTabWidget()
@@ -1734,7 +1734,7 @@ the LICENSE file shipped with this softw
 		self.treeView.scrollToItem(sel)
 		
 def main():
-	app = QtGui.QApplication(sys.argv)
+	app = QtWidgets.QApplication(sys.argv)
 	GPSAnalyzer() 
 	app.exec_()	
 
--- a/microbegps/modules/composition_analysis.py
+++ b/microbegps/modules/composition_analysis.py
@@ -1,4 +1,4 @@
-from PyQt4 import QtGui
+from PyQt5 import QtGui, QtWidgets
 import matplotlib.pyplot as plt
 
 class GPSModule:
@@ -56,7 +56,7 @@ class GPSModule:
 		tabGrid.addWidget(self.getFromTree, 3,1)
 		tabGrid.addWidget(self.taxSelectedText,4,0)
 		tabGrid.addWidget(self.showComposition,4,1)
-		tabWidget = QtGui.QWidget()
+		tabWidget = QtWidgets.QWidget()
 		tabWidget.setLayout(tabGrid)
 		tabWidget.helpText = self.helpText
 		
--- a/microbegps/modules/export_table.py
+++ b/microbegps/modules/export_table.py
@@ -1,4 +1,4 @@
-from PyQt4 import QtGui
+from PyQt5 import QtGui, QtWidgets
 from os import linesep
 from microbegps import taxonomy
 
@@ -57,7 +57,7 @@ class GPSModule:
 		tabGrid.addWidget(self.genomeValidity,4,1)
 		tabGrid.addWidget(self.homogeneity,5,0)
 		tabGrid.addWidget(self.mappingError,5,1)
-		tabWidget = QtGui.QWidget()
+		tabWidget = QtWidgets.QWidget()
 		tabWidget.setLayout(tabGrid)
 		tabWidget.helpText = self.helpText
 		
--- a/microbegps/modules/search_tab.py
+++ b/microbegps/modules/search_tab.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-from PyQt4 import QtGui
+from PyQt5 import QtGui, QtWidgets
 
 class GPSModule:
 	""" This GPS Module implements a search tab, that allows the user to
@@ -24,7 +24,7 @@ class GPSModule:
 		searchGrid.addWidget(self.searchBtn, 0,1)
 		searchGrid.addWidget(self.searchRes, 1,0,1,2)
 		
-		searchWidget = QtGui.QWidget()
+		searchWidget = QtWidgets.QWidget()
 		searchWidget.setLayout(searchGrid)
 		
 		GPS.toolsTab.addTab(searchWidget,"Search")
@@ -54,4 +54,4 @@ class GPSModule:
 		self.GPS.treeView.setCurrentItem(sel)
 		self.GPS.treeView.expand(self.GPS.treeView.currentIndex())
 		self.GPS.treeView.scrollToItem(self.GPS.treeView.currentItem())
-		self.GPS.tree_item_clicked_handler(self.GPS.treeView.currentItem(),0)
\ No newline at end of file
+		self.GPS.tree_item_clicked_handler(self.GPS.treeView.currentItem(),0)
+1 −0
Original line number Diff line number Diff line
2to3.patch
PyQt5.patch