From b525ae8588449a0d9c79a65050be87e88ff32994 Mon Sep 17 00:00:00 2001 From: Qing <44231502+byemaxx@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:30:22 -0500 Subject: [PATCH 1/6] Merged jekyll-gh-pages.yml from main to dev --- .github/workflows/jekyll-gh-pages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml index 2e5be1f..a2fbff7 100644 --- a/.github/workflows/jekyll-gh-pages.yml +++ b/.github/workflows/jekyll-gh-pages.yml @@ -41,7 +41,7 @@ jobs: - name: Convert Markdown to HTML run: | - python < Date: Fri, 29 Nov 2024 11:27:31 -0500 Subject: [PATCH 2/6] - Change: API updated to 4 - New: Added an option to plot the upset plot. --- Docs/ChangeLog.md | 7 + metax/gui/main_gui.py | 36 +- metax/gui/metax_gui/main_window.ui | 1648 +++++++++++++------------ metax/gui/metax_gui/ui_main_window.py | 808 ++++++------ metax/taxafunc_ploter/basic_plot.py | 68 +- metax/utils/version.py | 4 +- pyproject.toml | 1 + requirements.txt | 3 +- 8 files changed, 1414 insertions(+), 1161 deletions(-) diff --git a/Docs/ChangeLog.md b/Docs/ChangeLog.md index 8f99a51..0a419c3 100644 --- a/Docs/ChangeLog.md +++ b/Docs/ChangeLog.md @@ -1,3 +1,10 @@ +# Version: 1.119.0 +## Date: 2024-11-28 +### Changes: +- Change: API updated to 4 +- New: Added an option to plot the upset plot. + + # Version: 1.118.4 ## Date: 2024-11-26 ### Changes: diff --git a/metax/gui/main_gui.py b/metax/gui/main_gui.py index 78d3b80..e8a396b 100644 --- a/metax/gui/main_gui.py +++ b/metax/gui/main_gui.py @@ -377,6 +377,7 @@ def __init__(self, MainWindow): self.pushButton_plot_basic_treemap.clicked.connect(lambda: self.plot_basic_info_sns('treemap')) self.pushButton_plot_basic_sankey.clicked.connect(lambda: self.plot_basic_info_sns('sankey')) self.pushButton_basic_plot_number_bar.clicked.connect(lambda: self.plot_basic_info_sns('num_bar')) + self.pushButton_basic_plot_upset.clicked.connect(lambda: self.plot_basic_info_sns('upset')) # change event for checkBox_pca_if_show_lable self.comboBox_table4pca.currentIndexChanged.connect(self.change_event_checkBox_basic_plot_table) @@ -3082,6 +3083,7 @@ def enable_multi_button(self, state=True): list_button = [ self.pushButton_plot_pca_sns, self.pushButton_basic_plot_number_bar, + self.pushButton_basic_plot_upset, self.pushButton_plot_corr, self.pushButton_plot_box_sns, self.pushButton_anova_test, @@ -4261,6 +4263,24 @@ def plot_peptide_num_in_func(self): def plot_basic_info_sns(self, method:str ='pca'): + """ + Plot basic information using seaborn based on the specified method. + Parameters: + method (str): The method to use for plotting. Options include: + - 'pca': Principal Component Analysis (PCA) plot. + - 'pca_3d': 3D PCA plot. + - 'box': Box plot. + - 'corr': Correlation plot. + - 'alpha_div': Alpha diversity plot. + - 'beta_div': Beta diversity plot. + - 'sunburst': Sunburst chart. + - 'treemap': Treemap chart. + - 'sankey': Sankey diagram. + - 'num_bar': Number bar plot. + - 'upset': Upset plot. + Returns: + None + """ def get_title_by_table_name(self, table_name): taxa = (self.tfa.taxa_level or 'Taxa').capitalize() func = self.tfa.func_name or 'Functions' @@ -4432,10 +4452,24 @@ def get_title_by_table_name(self, table_name): show_label = show_label, rename_sample = rename_sample, legend_col_num=legend_col_num, sub_meta = sub_meta) + elif method == 'upset': + plot_sample = self.checkBox_basic_plot_number_plot_sample.isChecked() + show_percentages = self.checkBox_basic_plot_upset_show_percentage.isChecked() + min_subset_size = self.spinBox_basic_plot_upset_min_subset.value() + max_subset_rank = self.spinBox_basic_plot_upset_max_rank.value() + BasicPlot(self.tfa).plot_upset(df = df, title_name = title_name, show_label = show_label, + width=width, height=height, font_size=font_size, + plot_sample = plot_sample, sub_meta = sub_meta, + rename_sample = rename_sample, show_percentages = show_percentages, + min_subset_size = min_subset_size, max_subset_rank = max_subset_rank) + except IndexError: + QMessageBox.warning(self.MainWindow, 'Warning', 'The index is out of range! Please check the settings.') + except Exception: error_message = traceback.format_exc() + simplified_message = "An unexpected error occurred. Please check the logs for details." self.logger.write_log(f'plot_basic_info_sns error: {error_message}', 'e') - QMessageBox.warning(self.MainWindow, 'Error', f'{error_message}') + QMessageBox.warning(self.MainWindow, 'Error', simplified_message) # differential analysis diff --git a/metax/gui/metax_gui/main_window.ui b/metax/gui/metax_gui/main_window.ui index 68359a1..b30acb1 100644 --- a/metax/gui/metax_gui/main_window.ui +++ b/metax/gui/metax_gui/main_window.ui @@ -6,8 +6,8 @@ 0 0 - 1122 - 816 + 991 + 746 @@ -46,7 +46,7 @@ Qt::LeftToRight - 2 + 3 false @@ -245,8 +245,8 @@ 0 0 - 528 - 595 + 462 + 521 @@ -1454,26 +1454,6 @@ Basic Plot - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - Show Plotting Parameter - - - @@ -1481,60 +1461,343 @@ - - - - - 16777215 - 300 - - - - Plotting Parameter - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - true - - - - - 0 - 0 - 1016 - 232 - + + + + + + Counts + + + + + + + Taxa Overview + + + + + + + + 0 + 0 + + + + PCA + + + + + + + false + + + Correlation Heatmap + + + + + + + false + + + + 0 + 0 + + + + PCA + + + + + + + false + + + + 0 + 0 + + + + 3D PCA + + + + + + + Intensity + + + + + + + Diversity + + + + + + + + 0 + 0 + + + + Sankey + + + + + + + false + + + Alpha Diversity + + + + + + + false + + + Beta Diversity + + + + + + + false + + + TreeMap + + + + + + + false + + + Sunburst + + + + + + + false + + + Sankey + + + + + + + false + + + Box + + + + + + + false + + + UpSet + + + + + + + false + + + Bar + + + + + + + + + + + + + + + + + 0 + 0 + - - - - - - - - 0 - 0 - - + + In Condition + + + + + + + false + + + + 0 + 0 + + + + + + + + + + false + + + + + + + + + + + + 0 + 0 + + + + Groups + + + true + + + + + + + + 0 + 0 + + + + Samples + + + + + + + + + + + + + 16777215 + 300 + + + + Plotting Parameter + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + true + + + + + 0 + 0 + 885 + 237 + + + + + + + + + false + + + + 0 + 0 + + - + Adjust label text to reduce overlap - Font Size + Adjust Labels + + + + + + + + + + + + 0 + 0 + + + + The number of columns in the legend, set 0 to hide + + + Legend Cols Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -1542,32 +1805,25 @@ - + - 1 - - - 999 + 0 - 10 + 1 - - - - - + - + 0 0 - Beta Diversity + Theme Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -1575,55 +1831,10 @@ - - - true + + + false - - - braycurtis - - - - - jaccard - - - - - euclidean - - - - - manhattan - - - - - canberra - - - - - chebyshev - - - - - dice - - - - - hamming - - - - - yule - - @@ -1699,38 +1910,6 @@ - - - - - 0 - 0 - - - - false - - - - - - Plot Samples - - - - - - - - 75 - true - - - - general - - - @@ -1812,30 +1991,76 @@ - - - - - - Show All Labels - - - - - - - X - - - - - - - Y - - - - + + + + + 0 + 0 + + + + + 75 + true + + + + Counts Plot + + + + + + + + 75 + true + + + + Sunburst + + + + + + + + 0 + 0 + + + + show Fliers + + + + + + + + 75 + true + + + + general + + + + + + + + 0 + 0 + + + + Plot Samples + + @@ -1888,31 +2113,50 @@ - - + + + + + 75 + true + + + + Scatter Plot + + + + + - + 0 0 + + + 75 + true + + - show Fliers + Diversity - - + + - + - + 0 0 - Width + Beta Diversity Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -1920,31 +2164,74 @@ - - - - 0 - 0 - - - - 1 - - - 10 + + + true + + + braycurtis + + + + + jaccard + + + + + euclidean + + + + + manhattan + + + + + canberra + + + + + chebyshev + + + + + dice + + + + + hamming + + + + + yule + + + + + + - + - + 0 0 + + + - Height + Font Size Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -1952,76 +2239,51 @@ - - - - 0 - 0 - - + 1 + + 999 + - 8 + 10 - - + + 0 0 - - Plot Samples - - - - - - - - 0 - 0 - - - - - 150 - 0 - + + false - - - 75 - true - + + - Correlation Heatmap + Plot Samples - - + + - + 0 0 - - The number of columns in the legend, set 0 to hide - - Legend Cols + Width Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -2029,17 +2291,23 @@ - + + + + 0 + 0 + + - 0 + 1 - 1 + 10 - + 0 @@ -2047,7 +2315,7 @@ - Theme + Height Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -2055,423 +2323,221 @@ - - - false - - - - - - - - - - - false - + 0 0 - - Adjust label text to reduce overlap + + 1 - - Adjust Labels + + 8 - - - - - 0 - 0 - - - - - 75 - true - - - - Bar Plot - - - - - - - - 75 - true - - - - Sunburst - - - - - 75 - true - - - - Box Plot - - - - - - - - 0 - 0 - - - - - 75 - true - - - - Diversity - - - - - - - - - - 0 - 0 - - - - Cluster - - - true - - - - - - - - 0 - 0 - - - - Theme - - - - - - - - - - - - - 75 - true - - - - Scatter Plot - - - - - - - - - false - - - Show All Lables for Sunburst - - - true - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - - - - In Condition - - - - - - - false - - - - 0 - 0 - - - - - - - - - - false - - - - - - - - - - - - 0 - 0 - - - - Groups - - - true - - - - - - - - 0 - 0 - - - - Samples - - - - - - - - - - - - - - Bar of Counts - - - - - - - Taxa Overview - - - - - - - - 0 - 0 - - - - PCA - - - - - - - false - - - Correlation Heatmap - - - - - - - false - - - - 0 - 0 - - - - PCA - - - - - - - false - - - - 0 - 0 - - - - 3D PCA - - - - - - - Correlation - - - - - - - Diversity - - - - - - - - 0 - 0 - - - - Sankey - - - - - - - false - - - Bar - - - - - - - false - - - Box - - - - - - - false - - - Alpha Diversity - - - - - - - false - - - Beta Diversity - - - - - - - false - - - TreeMap - - - - - - - false - - - Sunburst - - - - - - - false - - - Sankey - - - - + + 75 + true + + + + Box Plot + + + + + + + + + Show All Labels + + + + + + + X + + + + + + + Y + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 75 + true + + + + Correlation Heatmap + + + + + + + + + false + + + Show All Lables for Sunburst + + + true + + + + + + + + + + + + 0 + 0 + + + + Cluster + + + true + + + + + + + + 0 + 0 + + + + Theme + + + + + + + + + + + + + + + 0 + 0 + + + + UpSet + + + + + + + false + + + + 0 + 0 + + + + Show Percentages + + + + + + + + 0 + 0 + + + + Min Subset Size + + + + + + + 1 + + + 99999 + + + 1 + + + 1 + + + + + + + Max Rank + + + + + + + 999 + + + + + + + + + + + @@ -2584,6 +2650,26 @@ + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + Show Plotting Parameter + + + @@ -3806,7 +3892,7 @@ 0 0 - 1020 + 872 128 @@ -5712,8 +5798,8 @@ 0 0 - 996 - 164 + 865 + 95 @@ -7493,8 +7579,8 @@ 0 0 - 1016 - 166 + 885 + 92 @@ -9314,8 +9400,8 @@ 0 0 - 1016 - 179 + 885 + 128 @@ -10448,8 +10534,8 @@ 0 0 - 1122 - 21 + 991 + 23 @@ -10655,12 +10741,12 @@ setEnabled(bool) - 161 - 151 + 159 + 115 - 255 - 153 + 159 + 115 @@ -10671,12 +10757,12 @@ setEnabled(bool) - 161 - 151 + 159 + 115 - 421 - 153 + 159 + 115 @@ -10751,12 +10837,12 @@ setEnabled(bool) - 63 - 100 + 76 + 131 - 70 - 100 + 83 + 131 @@ -10767,12 +10853,12 @@ setEnabled(bool) - 63 - 100 + 76 + 131 - 77 - 101 + 90 + 131 @@ -10783,12 +10869,12 @@ setEnabled(bool) - 168 - 181 + 190 + 168 - 267 - 182 + 357 + 170 @@ -10831,12 +10917,12 @@ setEnabled(bool) - 562 - 173 + 137 + 109 - 770 - 174 + 137 + 109 @@ -10847,12 +10933,12 @@ setEnabled(bool) - 562 - 173 + 137 + 109 - 978 - 174 + 137 + 109 @@ -10863,12 +10949,12 @@ setEnabled(bool) - 1056 - 503 + 925 + 490 - 335 - 540 + 359 + 527 @@ -10879,12 +10965,12 @@ setEnabled(bool) - 1056 - 503 + 925 + 490 - 335 - 669 + 359 + 661 @@ -10895,12 +10981,12 @@ setEnabled(bool) - 1056 - 503 + 925 + 490 - 845 - 542 + 747 + 529 @@ -10911,12 +10997,12 @@ setEnabled(bool) - 168 - 181 + 190 + 168 - 478 - 182 + 522 + 170 @@ -10927,12 +11013,12 @@ setEnabled(bool) - 669 - 585 + 332 + 140 - 1012 - 585 + 332 + 140 @@ -10943,12 +11029,12 @@ setDisabled(bool) - 212 - 180 + 149 + 156 - 76 - 95 + 89 + 126 @@ -10979,8 +11065,8 @@ 99 - 227 - 100 + 209 + 114 @@ -10991,12 +11077,12 @@ setEnabled(bool) - 147 - 151 + 156 + 114 - 244 - 153 + 156 + 114 @@ -11007,12 +11093,12 @@ setEnabled(bool) - 147 - 151 + 156 + 114 - 447 - 153 + 156 + 114 @@ -11023,8 +11109,8 @@ setVisible(bool) - 74 - 417 + 87 + 404 132 @@ -11040,11 +11126,11 @@ 77 - 112 + 114 121 - 114 + 116 @@ -11055,12 +11141,12 @@ setVisible(bool) - 88 - 520 + 99 + 110 - 121 - 601 + 128 + 110 @@ -11071,8 +11157,8 @@ setVisible(bool) - 77 - 134 + 88 + 127 111 @@ -11087,12 +11173,12 @@ setVisible(bool) - 77 - 112 + 75 + 98 - 121 - 114 + 119 + 100 @@ -11103,12 +11189,12 @@ setVisible(bool) - 64 - 543 + 75 + 129 - 132 - 604 + 119 + 101 @@ -11123,8 +11209,8 @@ 117 - 121 - 114 + 119 + 100 @@ -11135,12 +11221,12 @@ setVisible(bool) - 66 - 491 + 53 + 98 - 132 - 568 + 119 + 100 @@ -11151,12 +11237,12 @@ setEnabled(bool) - 915 - 141 + 128 + 104 - 971 - 142 + 78 + 104 @@ -11167,12 +11253,12 @@ setEnabled(bool) - 915 - 141 + 128 + 104 - 1044 - 141 + 128 + 104 @@ -11183,8 +11269,8 @@ setDisabled(bool) - 813 - 153 + 147 + 140 98 @@ -11199,12 +11285,28 @@ setVisible(bool) - 79 - 234 + 77 + 52 + + + 99 + 55 + + + + + checkBox_pca_if_show_lable + toggled(bool) + checkBox_basic_plot_upset_show_percentage + setEnabled(bool) + + + 800 + 487 - 101 - 267 + 825 + 575 diff --git a/metax/gui/metax_gui/ui_main_window.py b/metax/gui/metax_gui/ui_main_window.py index f4a0cfc..99aed14 100644 --- a/metax/gui/metax_gui/ui_main_window.py +++ b/metax/gui/metax_gui/ui_main_window.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'c:\Users\Qing\OneDrive - University of Ottawa\code\TaxaFunc\MetaX\metax\gui\metax_gui\main_window.ui' +# Form implementation generated from reading ui file 'c:\Users\max\OneDrive - University of Ottawa\code\TaxaFunc\MetaX\metax\gui\metax_gui\main_window.ui' # # Created by: PyQt5 UI code generator 5.15.9 # @@ -14,7 +14,7 @@ class Ui_metaX_main(object): def setupUi(self, metaX_main): metaX_main.setObjectName("metaX_main") - metaX_main.resize(1122, 816) + metaX_main.resize(991, 746) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -147,7 +147,7 @@ def setupUi(self, metaX_main): self.toolBox_2.setMaximumSize(QtCore.QSize(1677, 16777215)) self.toolBox_2.setObjectName("toolBox_2") self.page_2 = QtWidgets.QWidget() - self.page_2.setGeometry(QtCore.QRect(0, 0, 528, 595)) + self.page_2.setGeometry(QtCore.QRect(0, 0, 462, 521)) self.page_2.setObjectName("page_2") self.gridLayout_27 = QtWidgets.QGridLayout(self.page_2) self.gridLayout_27.setObjectName("gridLayout_27") @@ -713,24 +713,149 @@ def setupUi(self, metaX_main): self.tab_12.setObjectName("tab_12") self.gridLayout_26 = QtWidgets.QGridLayout(self.tab_12) self.gridLayout_26.setObjectName("gridLayout_26") - self.line_10 = QtWidgets.QFrame(self.tab_12) - self.line_10.setFrameShape(QtWidgets.QFrame.HLine) - self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_10.setObjectName("line_10") - self.gridLayout_26.addWidget(self.line_10, 3, 0, 1, 3) - self.checkBox_show_basic_plot_settings = QtWidgets.QCheckBox(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_show_basic_plot_settings.sizePolicy().hasHeightForWidth()) - self.checkBox_show_basic_plot_settings.setSizePolicy(sizePolicy) - self.checkBox_show_basic_plot_settings.setObjectName("checkBox_show_basic_plot_settings") - self.gridLayout_26.addWidget(self.checkBox_show_basic_plot_settings, 10, 0, 1, 1) self.line_7 = QtWidgets.QFrame(self.tab_12) self.line_7.setFrameShape(QtWidgets.QFrame.HLine) self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken) self.line_7.setObjectName("line_7") self.gridLayout_26.addWidget(self.line_7, 1, 0, 1, 3) + self.gridLayout_54 = QtWidgets.QGridLayout() + self.gridLayout_54.setObjectName("gridLayout_54") + self.label_170 = QtWidgets.QLabel(self.tab_12) + self.label_170.setObjectName("label_170") + self.gridLayout_54.addWidget(self.label_170, 2, 0, 1, 1) + self.label_172 = QtWidgets.QLabel(self.tab_12) + self.label_172.setObjectName("label_172") + self.gridLayout_54.addWidget(self.label_172, 4, 0, 1, 1) + self.label_121 = QtWidgets.QLabel(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_121.sizePolicy().hasHeightForWidth()) + self.label_121.setSizePolicy(sizePolicy) + self.label_121.setObjectName("label_121") + self.gridLayout_54.addWidget(self.label_121, 0, 0, 1, 1) + self.pushButton_plot_corr = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_corr.setEnabled(False) + self.pushButton_plot_corr.setObjectName("pushButton_plot_corr") + self.gridLayout_54.addWidget(self.pushButton_plot_corr, 1, 1, 1, 1) + self.pushButton_plot_pca_sns = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_pca_sns.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_plot_pca_sns.sizePolicy().hasHeightForWidth()) + self.pushButton_plot_pca_sns.setSizePolicy(sizePolicy) + self.pushButton_plot_pca_sns.setObjectName("pushButton_plot_pca_sns") + self.gridLayout_54.addWidget(self.pushButton_plot_pca_sns, 0, 1, 1, 1) + self.pushButton_plot_pca_js = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_pca_js.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_plot_pca_js.sizePolicy().hasHeightForWidth()) + self.pushButton_plot_pca_js.setSizePolicy(sizePolicy) + self.pushButton_plot_pca_js.setObjectName("pushButton_plot_pca_js") + self.gridLayout_54.addWidget(self.pushButton_plot_pca_js, 0, 2, 1, 1) + self.label_119 = QtWidgets.QLabel(self.tab_12) + self.label_119.setObjectName("label_119") + self.gridLayout_54.addWidget(self.label_119, 1, 0, 1, 1) + self.label_171 = QtWidgets.QLabel(self.tab_12) + self.label_171.setObjectName("label_171") + self.gridLayout_54.addWidget(self.label_171, 3, 0, 1, 1) + self.label_173 = QtWidgets.QLabel(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_173.sizePolicy().hasHeightForWidth()) + self.label_173.setSizePolicy(sizePolicy) + self.label_173.setObjectName("label_173") + self.gridLayout_54.addWidget(self.label_173, 5, 0, 1, 1) + self.pushButton_plot_alpha_div = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_alpha_div.setEnabled(False) + self.pushButton_plot_alpha_div.setObjectName("pushButton_plot_alpha_div") + self.gridLayout_54.addWidget(self.pushButton_plot_alpha_div, 3, 1, 1, 1) + self.pushButton_plot_beta_div = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_beta_div.setEnabled(False) + self.pushButton_plot_beta_div.setObjectName("pushButton_plot_beta_div") + self.gridLayout_54.addWidget(self.pushButton_plot_beta_div, 3, 2, 1, 1) + self.pushButton_plot_basic_treemap = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_basic_treemap.setEnabled(False) + self.pushButton_plot_basic_treemap.setObjectName("pushButton_plot_basic_treemap") + self.gridLayout_54.addWidget(self.pushButton_plot_basic_treemap, 4, 1, 1, 1) + self.pushButton_plot_sunburst = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_sunburst.setEnabled(False) + self.pushButton_plot_sunburst.setObjectName("pushButton_plot_sunburst") + self.gridLayout_54.addWidget(self.pushButton_plot_sunburst, 4, 2, 1, 1) + self.pushButton_plot_basic_sankey = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_basic_sankey.setEnabled(False) + self.pushButton_plot_basic_sankey.setObjectName("pushButton_plot_basic_sankey") + self.gridLayout_54.addWidget(self.pushButton_plot_basic_sankey, 5, 1, 1, 1) + self.pushButton_plot_box_sns = QtWidgets.QPushButton(self.tab_12) + self.pushButton_plot_box_sns.setEnabled(False) + self.pushButton_plot_box_sns.setObjectName("pushButton_plot_box_sns") + self.gridLayout_54.addWidget(self.pushButton_plot_box_sns, 1, 2, 1, 1) + self.pushButton_basic_plot_upset = QtWidgets.QPushButton(self.tab_12) + self.pushButton_basic_plot_upset.setEnabled(False) + self.pushButton_basic_plot_upset.setObjectName("pushButton_basic_plot_upset") + self.gridLayout_54.addWidget(self.pushButton_basic_plot_upset, 2, 2, 1, 1) + self.pushButton_basic_plot_number_bar = QtWidgets.QPushButton(self.tab_12) + self.pushButton_basic_plot_number_bar.setEnabled(False) + self.pushButton_basic_plot_number_bar.setObjectName("pushButton_basic_plot_number_bar") + self.gridLayout_54.addWidget(self.pushButton_basic_plot_number_bar, 2, 1, 1, 1) + self.gridLayout_26.addLayout(self.gridLayout_54, 4, 0, 1, 3) + self.gridLayout_77 = QtWidgets.QGridLayout() + self.gridLayout_77.setObjectName("gridLayout_77") + self.verticalLayout_basic_pca_group = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_pca_group.setObjectName("verticalLayout_basic_pca_group") + self.gridLayout_77.addLayout(self.verticalLayout_basic_pca_group, 0, 2, 1, 1) + self.horizontalLayout_36 = QtWidgets.QHBoxLayout() + self.horizontalLayout_36.setObjectName("horizontalLayout_36") + self.checkBox_basic_in_condtion = QtWidgets.QCheckBox(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_basic_in_condtion.sizePolicy().hasHeightForWidth()) + self.checkBox_basic_in_condtion.setSizePolicy(sizePolicy) + self.checkBox_basic_in_condtion.setObjectName("checkBox_basic_in_condtion") + self.horizontalLayout_36.addWidget(self.checkBox_basic_in_condtion) + self.comboBox_basic_condition_meta = QtWidgets.QComboBox(self.tab_12) + self.comboBox_basic_condition_meta.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_basic_condition_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_condition_meta.setSizePolicy(sizePolicy) + self.comboBox_basic_condition_meta.setObjectName("comboBox_basic_condition_meta") + self.horizontalLayout_36.addWidget(self.comboBox_basic_condition_meta) + self.horizontalLayout_68 = QtWidgets.QHBoxLayout() + self.horizontalLayout_68.setObjectName("horizontalLayout_68") + self.comboBox_basic_condition_group = QtWidgets.QComboBox(self.tab_12) + self.comboBox_basic_condition_group.setEnabled(False) + self.comboBox_basic_condition_group.setObjectName("comboBox_basic_condition_group") + self.horizontalLayout_68.addWidget(self.comboBox_basic_condition_group) + self.horizontalLayout_36.addLayout(self.horizontalLayout_68) + self.gridLayout_77.addLayout(self.horizontalLayout_36, 0, 1, 1, 1) + self.radioButton_basic_pca_group = QtWidgets.QRadioButton(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.radioButton_basic_pca_group.sizePolicy().hasHeightForWidth()) + self.radioButton_basic_pca_group.setSizePolicy(sizePolicy) + self.radioButton_basic_pca_group.setChecked(True) + self.radioButton_basic_pca_group.setObjectName("radioButton_basic_pca_group") + self.gridLayout_77.addWidget(self.radioButton_basic_pca_group, 0, 0, 1, 1) + self.radioButton_basic_pca_sample = QtWidgets.QRadioButton(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.radioButton_basic_pca_sample.sizePolicy().hasHeightForWidth()) + self.radioButton_basic_pca_sample.setSizePolicy(sizePolicy) + self.radioButton_basic_pca_sample.setObjectName("radioButton_basic_pca_sample") + self.gridLayout_77.addWidget(self.radioButton_basic_pca_sample, 1, 0, 1, 1) + self.verticalLayout_basic_pca_sample = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_pca_sample.setObjectName("verticalLayout_basic_pca_sample") + self.gridLayout_77.addLayout(self.verticalLayout_basic_pca_sample, 1, 1, 1, 2) + self.gridLayout_26.addLayout(self.gridLayout_77, 2, 0, 1, 3) self.groupBox_basic_plot = QtWidgets.QGroupBox(self.tab_12) self.groupBox_basic_plot.setMaximumSize(QtCore.QSize(16777215, 300)) self.groupBox_basic_plot.setObjectName("groupBox_basic_plot") @@ -746,54 +871,52 @@ def setupUi(self, metaX_main): self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtWidgets.QWidget() - self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 1016, 232)) + self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 885, 237)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.gridLayout_34 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents) self.gridLayout_34.setObjectName("gridLayout_34") - self.horizontalLayout_33 = QtWidgets.QHBoxLayout() - self.horizontalLayout_33.setObjectName("horizontalLayout_33") - self.label_107 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + self.horizontalLayout_79 = QtWidgets.QHBoxLayout() + self.horizontalLayout_79.setObjectName("horizontalLayout_79") + self.checkBox_pca_if_adjust_pca_label = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox_pca_if_adjust_pca_label.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_107.sizePolicy().hasHeightForWidth()) - self.label_107.setSizePolicy(sizePolicy) - self.label_107.setToolTip("") - self.label_107.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.label_107.setObjectName("label_107") - self.horizontalLayout_33.addWidget(self.label_107) - self.spinBox_basic_pca_label_font_size = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) - self.spinBox_basic_pca_label_font_size.setMinimum(1) - self.spinBox_basic_pca_label_font_size.setMaximum(999) - self.spinBox_basic_pca_label_font_size.setProperty("value", 10) - self.spinBox_basic_pca_label_font_size.setObjectName("spinBox_basic_pca_label_font_size") - self.horizontalLayout_33.addWidget(self.spinBox_basic_pca_label_font_size) - self.gridLayout_34.addLayout(self.horizontalLayout_33, 1, 1, 1, 1) - self.horizontalLayout_4 = QtWidgets.QHBoxLayout() - self.horizontalLayout_4.setObjectName("horizontalLayout_4") - self.label_118 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.checkBox_pca_if_adjust_pca_label.sizePolicy().hasHeightForWidth()) + self.checkBox_pca_if_adjust_pca_label.setSizePolicy(sizePolicy) + self.checkBox_pca_if_adjust_pca_label.setObjectName("checkBox_pca_if_adjust_pca_label") + self.horizontalLayout_79.addWidget(self.checkBox_pca_if_adjust_pca_label) + self.gridLayout_34.addLayout(self.horizontalLayout_79, 3, 1, 1, 1) + self.horizontalLayout_25 = QtWidgets.QHBoxLayout() + self.horizontalLayout_25.setObjectName("horizontalLayout_25") + self.label_159 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_118.sizePolicy().hasHeightForWidth()) - self.label_118.setSizePolicy(sizePolicy) - self.label_118.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.label_118.setObjectName("label_118") - self.horizontalLayout_4.addWidget(self.label_118) - self.comboBox_beta_div_method = QtWidgets.QComboBox(self.scrollAreaWidgetContents) - self.comboBox_beta_div_method.setEnabled(True) - self.comboBox_beta_div_method.setObjectName("comboBox_beta_div_method") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.comboBox_beta_div_method.addItem("") - self.horizontalLayout_4.addWidget(self.comboBox_beta_div_method) - self.gridLayout_34.addLayout(self.horizontalLayout_4, 7, 2, 1, 1) + sizePolicy.setHeightForWidth(self.label_159.sizePolicy().hasHeightForWidth()) + self.label_159.setSizePolicy(sizePolicy) + self.label_159.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_159.setObjectName("label_159") + self.horizontalLayout_25.addWidget(self.label_159) + self.spinBox_basic_legend_col_num = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) + self.spinBox_basic_legend_col_num.setMinimum(0) + self.spinBox_basic_legend_col_num.setProperty("value", 1) + self.spinBox_basic_legend_col_num.setObjectName("spinBox_basic_legend_col_num") + self.horizontalLayout_25.addWidget(self.spinBox_basic_legend_col_num) + self.label_151 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_151.sizePolicy().hasHeightForWidth()) + self.label_151.setSizePolicy(sizePolicy) + self.label_151.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_151.setObjectName("label_151") + self.horizontalLayout_25.addWidget(self.label_151) + self.comboBox_basic_theme = QtWidgets.QComboBox(self.scrollAreaWidgetContents) + self.comboBox_basic_theme.setEditable(False) + self.comboBox_basic_theme.setObjectName("comboBox_basic_theme") + self.horizontalLayout_25.addWidget(self.comboBox_basic_theme) + self.gridLayout_34.addLayout(self.horizontalLayout_25, 0, 2, 1, 1) self.horizontalLayout_10 = QtWidgets.QHBoxLayout() self.horizontalLayout_10.setObjectName("horizontalLayout_10") self.label_117 = QtWidgets.QLabel(self.scrollAreaWidgetContents) @@ -820,23 +943,6 @@ def setupUi(self, metaX_main): self.comboBox_alpha_div_method.addItem("") self.horizontalLayout_10.addWidget(self.comboBox_alpha_div_method) self.gridLayout_34.addLayout(self.horizontalLayout_10, 7, 1, 1, 1) - self.checkBox_basic_plot_number_plot_sample = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_basic_plot_number_plot_sample.sizePolicy().hasHeightForWidth()) - self.checkBox_basic_plot_number_plot_sample.setSizePolicy(sizePolicy) - self.checkBox_basic_plot_number_plot_sample.setAcceptDrops(False) - self.checkBox_basic_plot_number_plot_sample.setToolTip("") - self.checkBox_basic_plot_number_plot_sample.setObjectName("checkBox_basic_plot_number_plot_sample") - self.gridLayout_34.addWidget(self.checkBox_basic_plot_number_plot_sample, 5, 1, 1, 1) - self.label_122 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_122.setFont(font) - self.label_122.setObjectName("label_122") - self.gridLayout_34.addWidget(self.label_122, 0, 0, 1, 1) self.line_15 = QtWidgets.QFrame(self.scrollAreaWidgetContents) self.line_15.setFrameShape(QtWidgets.QFrame.HLine) self.line_15.setFrameShadow(QtWidgets.QFrame.Sunken) @@ -877,18 +983,48 @@ def setupUi(self, metaX_main): self.spinBox_basic_dot_size.setObjectName("spinBox_basic_dot_size") self.horizontalLayout_63.addWidget(self.spinBox_basic_dot_size) self.gridLayout_34.addLayout(self.horizontalLayout_63, 3, 2, 1, 1) - self.horizontalLayout_5 = QtWidgets.QHBoxLayout() - self.horizontalLayout_5.setObjectName("horizontalLayout_5") - self.label_129 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - self.label_129.setObjectName("label_129") - self.horizontalLayout_5.addWidget(self.label_129) - self.checkBox_corr_show_all_labels_x = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) - self.checkBox_corr_show_all_labels_x.setObjectName("checkBox_corr_show_all_labels_x") - self.horizontalLayout_5.addWidget(self.checkBox_corr_show_all_labels_x) - self.checkBox_corr_show_all_labels_y = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) - self.checkBox_corr_show_all_labels_y.setObjectName("checkBox_corr_show_all_labels_y") - self.horizontalLayout_5.addWidget(self.checkBox_corr_show_all_labels_y) - self.gridLayout_34.addLayout(self.horizontalLayout_5, 4, 2, 1, 1) + self.label_155 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_155.sizePolicy().hasHeightForWidth()) + self.label_155.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_155.setFont(font) + self.label_155.setObjectName("label_155") + self.gridLayout_34.addWidget(self.label_155, 5, 0, 1, 1) + self.label_137 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_137.setFont(font) + self.label_137.setObjectName("label_137") + self.gridLayout_34.addWidget(self.label_137, 8, 0, 1, 1) + self.checkBox_box_if_show_fliers = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_box_if_show_fliers.sizePolicy().hasHeightForWidth()) + self.checkBox_box_if_show_fliers.setSizePolicy(sizePolicy) + self.checkBox_box_if_show_fliers.setObjectName("checkBox_box_if_show_fliers") + self.gridLayout_34.addWidget(self.checkBox_box_if_show_fliers, 6, 2, 1, 1) + self.label_122 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_122.setFont(font) + self.label_122.setObjectName("label_122") + self.gridLayout_34.addWidget(self.label_122, 0, 0, 1, 1) + self.checkBox_box_plot_samples = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_box_plot_samples.sizePolicy().hasHeightForWidth()) + self.checkBox_box_plot_samples.setSizePolicy(sizePolicy) + self.checkBox_box_plot_samples.setObjectName("checkBox_box_plot_samples") + self.gridLayout_34.addWidget(self.checkBox_box_plot_samples, 6, 1, 1, 1) self.horizontalLayout_34 = QtWidgets.QHBoxLayout() self.horizontalLayout_34.setObjectName("horizontalLayout_34") self.checkBox_pca_if_show_group_name_in_label = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) @@ -913,14 +1049,79 @@ def setupUi(self, metaX_main): self.checkBox_pca_if_show_lable.setObjectName("checkBox_pca_if_show_lable") self.horizontalLayout_34.addWidget(self.checkBox_pca_if_show_lable) self.gridLayout_34.addLayout(self.horizontalLayout_34, 1, 2, 1, 1) - self.checkBox_box_if_show_fliers = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.label_179 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_179.setFont(font) + self.label_179.setObjectName("label_179") + self.gridLayout_34.addWidget(self.label_179, 3, 0, 1, 1) + self.label_167 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_167.sizePolicy().hasHeightForWidth()) + self.label_167.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_167.setFont(font) + self.label_167.setObjectName("label_167") + self.gridLayout_34.addWidget(self.label_167, 7, 0, 1, 1) + self.horizontalLayout_4 = QtWidgets.QHBoxLayout() + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.label_118 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_118.sizePolicy().hasHeightForWidth()) + self.label_118.setSizePolicy(sizePolicy) + self.label_118.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_118.setObjectName("label_118") + self.horizontalLayout_4.addWidget(self.label_118) + self.comboBox_beta_div_method = QtWidgets.QComboBox(self.scrollAreaWidgetContents) + self.comboBox_beta_div_method.setEnabled(True) + self.comboBox_beta_div_method.setObjectName("comboBox_beta_div_method") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.comboBox_beta_div_method.addItem("") + self.horizontalLayout_4.addWidget(self.comboBox_beta_div_method) + self.gridLayout_34.addLayout(self.horizontalLayout_4, 7, 2, 1, 1) + self.horizontalLayout_33 = QtWidgets.QHBoxLayout() + self.horizontalLayout_33.setObjectName("horizontalLayout_33") + self.label_107 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_107.sizePolicy().hasHeightForWidth()) + self.label_107.setSizePolicy(sizePolicy) + self.label_107.setToolTip("") + self.label_107.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_107.setObjectName("label_107") + self.horizontalLayout_33.addWidget(self.label_107) + self.spinBox_basic_pca_label_font_size = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) + self.spinBox_basic_pca_label_font_size.setMinimum(1) + self.spinBox_basic_pca_label_font_size.setMaximum(999) + self.spinBox_basic_pca_label_font_size.setProperty("value", 10) + self.spinBox_basic_pca_label_font_size.setObjectName("spinBox_basic_pca_label_font_size") + self.horizontalLayout_33.addWidget(self.spinBox_basic_pca_label_font_size) + self.gridLayout_34.addLayout(self.horizontalLayout_33, 1, 1, 1, 1) + self.checkBox_basic_plot_number_plot_sample = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_box_if_show_fliers.sizePolicy().hasHeightForWidth()) - self.checkBox_box_if_show_fliers.setSizePolicy(sizePolicy) - self.checkBox_box_if_show_fliers.setObjectName("checkBox_box_if_show_fliers") - self.gridLayout_34.addWidget(self.checkBox_box_if_show_fliers, 6, 2, 1, 1) + sizePolicy.setHeightForWidth(self.checkBox_basic_plot_number_plot_sample.sizePolicy().hasHeightForWidth()) + self.checkBox_basic_plot_number_plot_sample.setSizePolicy(sizePolicy) + self.checkBox_basic_plot_number_plot_sample.setAcceptDrops(False) + self.checkBox_basic_plot_number_plot_sample.setToolTip("") + self.checkBox_basic_plot_number_plot_sample.setObjectName("checkBox_basic_plot_number_plot_sample") + self.gridLayout_34.addWidget(self.checkBox_basic_plot_number_plot_sample, 5, 1, 1, 1) self.horizontalLayout_32 = QtWidgets.QHBoxLayout() self.horizontalLayout_32.setObjectName("horizontalLayout_32") self.label_94 = QtWidgets.QLabel(self.scrollAreaWidgetContents) @@ -962,88 +1163,6 @@ def setupUi(self, metaX_main): self.spinBox_basic_pca_height.setObjectName("spinBox_basic_pca_height") self.horizontalLayout_32.addWidget(self.spinBox_basic_pca_height) self.gridLayout_34.addLayout(self.horizontalLayout_32, 0, 1, 1, 1) - self.checkBox_box_plot_samples = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_box_plot_samples.sizePolicy().hasHeightForWidth()) - self.checkBox_box_plot_samples.setSizePolicy(sizePolicy) - self.checkBox_box_plot_samples.setObjectName("checkBox_box_plot_samples") - self.gridLayout_34.addWidget(self.checkBox_box_plot_samples, 6, 1, 1, 1) - self.label_168 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_168.sizePolicy().hasHeightForWidth()) - self.label_168.setSizePolicy(sizePolicy) - self.label_168.setMinimumSize(QtCore.QSize(150, 0)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_168.setFont(font) - self.label_168.setObjectName("label_168") - self.gridLayout_34.addWidget(self.label_168, 4, 0, 1, 1) - self.horizontalLayout_25 = QtWidgets.QHBoxLayout() - self.horizontalLayout_25.setObjectName("horizontalLayout_25") - self.label_159 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_159.sizePolicy().hasHeightForWidth()) - self.label_159.setSizePolicy(sizePolicy) - self.label_159.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.label_159.setObjectName("label_159") - self.horizontalLayout_25.addWidget(self.label_159) - self.spinBox_basic_legend_col_num = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) - self.spinBox_basic_legend_col_num.setMinimum(0) - self.spinBox_basic_legend_col_num.setProperty("value", 1) - self.spinBox_basic_legend_col_num.setObjectName("spinBox_basic_legend_col_num") - self.horizontalLayout_25.addWidget(self.spinBox_basic_legend_col_num) - self.label_151 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_151.sizePolicy().hasHeightForWidth()) - self.label_151.setSizePolicy(sizePolicy) - self.label_151.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.label_151.setObjectName("label_151") - self.horizontalLayout_25.addWidget(self.label_151) - self.comboBox_basic_theme = QtWidgets.QComboBox(self.scrollAreaWidgetContents) - self.comboBox_basic_theme.setEditable(False) - self.comboBox_basic_theme.setObjectName("comboBox_basic_theme") - self.horizontalLayout_25.addWidget(self.comboBox_basic_theme) - self.gridLayout_34.addLayout(self.horizontalLayout_25, 0, 2, 1, 1) - self.horizontalLayout_79 = QtWidgets.QHBoxLayout() - self.horizontalLayout_79.setObjectName("horizontalLayout_79") - self.checkBox_pca_if_adjust_pca_label = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) - self.checkBox_pca_if_adjust_pca_label.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_pca_if_adjust_pca_label.sizePolicy().hasHeightForWidth()) - self.checkBox_pca_if_adjust_pca_label.setSizePolicy(sizePolicy) - self.checkBox_pca_if_adjust_pca_label.setObjectName("checkBox_pca_if_adjust_pca_label") - self.horizontalLayout_79.addWidget(self.checkBox_pca_if_adjust_pca_label) - self.gridLayout_34.addLayout(self.horizontalLayout_79, 3, 1, 1, 1) - self.label_155 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_155.sizePolicy().hasHeightForWidth()) - self.label_155.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_155.setFont(font) - self.label_155.setObjectName("label_155") - self.gridLayout_34.addWidget(self.label_155, 5, 0, 1, 1) - self.label_137 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_137.setFont(font) - self.label_137.setObjectName("label_137") - self.gridLayout_34.addWidget(self.label_137, 8, 0, 1, 1) self.label_169 = QtWidgets.QLabel(self.scrollAreaWidgetContents) font = QtGui.QFont() font.setBold(True) @@ -1051,18 +1170,39 @@ def setupUi(self, metaX_main): self.label_169.setFont(font) self.label_169.setObjectName("label_169") self.gridLayout_34.addWidget(self.label_169, 6, 0, 1, 1) - self.label_167 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + self.horizontalLayout_5 = QtWidgets.QHBoxLayout() + self.horizontalLayout_5.setObjectName("horizontalLayout_5") + self.label_129 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + self.label_129.setObjectName("label_129") + self.horizontalLayout_5.addWidget(self.label_129) + self.checkBox_corr_show_all_labels_x = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox_corr_show_all_labels_x.setObjectName("checkBox_corr_show_all_labels_x") + self.horizontalLayout_5.addWidget(self.checkBox_corr_show_all_labels_x) + self.checkBox_corr_show_all_labels_y = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox_corr_show_all_labels_y.setObjectName("checkBox_corr_show_all_labels_y") + self.horizontalLayout_5.addWidget(self.checkBox_corr_show_all_labels_y) + self.gridLayout_34.addLayout(self.horizontalLayout_5, 4, 2, 1, 1) + self.label_168 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_167.sizePolicy().hasHeightForWidth()) - self.label_167.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(self.label_168.sizePolicy().hasHeightForWidth()) + self.label_168.setSizePolicy(sizePolicy) + self.label_168.setMinimumSize(QtCore.QSize(0, 0)) font = QtGui.QFont() font.setBold(True) font.setWeight(75) - self.label_167.setFont(font) - self.label_167.setObjectName("label_167") - self.gridLayout_34.addWidget(self.label_167, 7, 0, 1, 1) + self.label_168.setFont(font) + self.label_168.setObjectName("label_168") + self.gridLayout_34.addWidget(self.label_168, 4, 0, 1, 1) + self.horizontalLayout_20 = QtWidgets.QHBoxLayout() + self.horizontalLayout_20.setObjectName("horizontalLayout_20") + self.checkBox_sunburst_show_all_lables = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox_sunburst_show_all_lables.setEnabled(False) + self.checkBox_sunburst_show_all_lables.setChecked(True) + self.checkBox_sunburst_show_all_lables.setObjectName("checkBox_sunburst_show_all_lables") + self.horizontalLayout_20.addWidget(self.checkBox_sunburst_show_all_lables) + self.gridLayout_34.addLayout(self.horizontalLayout_20, 8, 1, 1, 1) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.checkBox_corr_cluster = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) @@ -1086,158 +1226,51 @@ def setupUi(self, metaX_main): self.comboBox_basic_corr_cmap.setObjectName("comboBox_basic_corr_cmap") self.horizontalLayout_3.addWidget(self.comboBox_basic_corr_cmap) self.gridLayout_34.addLayout(self.horizontalLayout_3, 4, 1, 1, 1) - self.label_179 = QtWidgets.QLabel(self.scrollAreaWidgetContents) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_179.setFont(font) - self.label_179.setObjectName("label_179") - self.gridLayout_34.addWidget(self.label_179, 3, 0, 1, 1) - self.horizontalLayout_20 = QtWidgets.QHBoxLayout() - self.horizontalLayout_20.setObjectName("horizontalLayout_20") - self.checkBox_sunburst_show_all_lables = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) - self.checkBox_sunburst_show_all_lables.setEnabled(False) - self.checkBox_sunburst_show_all_lables.setChecked(True) - self.checkBox_sunburst_show_all_lables.setObjectName("checkBox_sunburst_show_all_lables") - self.horizontalLayout_20.addWidget(self.checkBox_sunburst_show_all_lables) - self.gridLayout_34.addLayout(self.horizontalLayout_20, 8, 1, 1, 1) - self.scrollArea.setWidget(self.scrollAreaWidgetContents) - self.gridLayout_40.addWidget(self.scrollArea, 0, 0, 1, 1) - self.gridLayout_26.addWidget(self.groupBox_basic_plot, 12, 0, 1, 3) - self.gridLayout_77 = QtWidgets.QGridLayout() - self.gridLayout_77.setObjectName("gridLayout_77") - self.verticalLayout_basic_pca_group = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_pca_group.setObjectName("verticalLayout_basic_pca_group") - self.gridLayout_77.addLayout(self.verticalLayout_basic_pca_group, 0, 2, 1, 1) - self.horizontalLayout_36 = QtWidgets.QHBoxLayout() - self.horizontalLayout_36.setObjectName("horizontalLayout_36") - self.checkBox_basic_in_condtion = QtWidgets.QCheckBox(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_basic_in_condtion.sizePolicy().hasHeightForWidth()) - self.checkBox_basic_in_condtion.setSizePolicy(sizePolicy) - self.checkBox_basic_in_condtion.setObjectName("checkBox_basic_in_condtion") - self.horizontalLayout_36.addWidget(self.checkBox_basic_in_condtion) - self.comboBox_basic_condition_meta = QtWidgets.QComboBox(self.tab_12) - self.comboBox_basic_condition_meta.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_condition_meta.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_condition_meta.setSizePolicy(sizePolicy) - self.comboBox_basic_condition_meta.setObjectName("comboBox_basic_condition_meta") - self.horizontalLayout_36.addWidget(self.comboBox_basic_condition_meta) - self.horizontalLayout_68 = QtWidgets.QHBoxLayout() - self.horizontalLayout_68.setObjectName("horizontalLayout_68") - self.comboBox_basic_condition_group = QtWidgets.QComboBox(self.tab_12) - self.comboBox_basic_condition_group.setEnabled(False) - self.comboBox_basic_condition_group.setObjectName("comboBox_basic_condition_group") - self.horizontalLayout_68.addWidget(self.comboBox_basic_condition_group) - self.horizontalLayout_36.addLayout(self.horizontalLayout_68) - self.gridLayout_77.addLayout(self.horizontalLayout_36, 0, 1, 1, 1) - self.radioButton_basic_pca_group = QtWidgets.QRadioButton(self.tab_12) + self.horizontalLayout_105 = QtWidgets.QHBoxLayout() + self.horizontalLayout_105.setObjectName("horizontalLayout_105") + self.label_207 = QtWidgets.QLabel(self.scrollAreaWidgetContents) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_basic_pca_group.sizePolicy().hasHeightForWidth()) - self.radioButton_basic_pca_group.setSizePolicy(sizePolicy) - self.radioButton_basic_pca_group.setChecked(True) - self.radioButton_basic_pca_group.setObjectName("radioButton_basic_pca_group") - self.gridLayout_77.addWidget(self.radioButton_basic_pca_group, 0, 0, 1, 1) - self.radioButton_basic_pca_sample = QtWidgets.QRadioButton(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_basic_pca_sample.sizePolicy().hasHeightForWidth()) - self.radioButton_basic_pca_sample.setSizePolicy(sizePolicy) - self.radioButton_basic_pca_sample.setObjectName("radioButton_basic_pca_sample") - self.gridLayout_77.addWidget(self.radioButton_basic_pca_sample, 1, 0, 1, 1) - self.verticalLayout_basic_pca_sample = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_pca_sample.setObjectName("verticalLayout_basic_pca_sample") - self.gridLayout_77.addLayout(self.verticalLayout_basic_pca_sample, 1, 1, 1, 2) - self.gridLayout_26.addLayout(self.gridLayout_77, 2, 0, 1, 3) - self.gridLayout_54 = QtWidgets.QGridLayout() - self.gridLayout_54.setObjectName("gridLayout_54") - self.label_170 = QtWidgets.QLabel(self.tab_12) - self.label_170.setObjectName("label_170") - self.gridLayout_54.addWidget(self.label_170, 2, 0, 1, 1) - self.label_172 = QtWidgets.QLabel(self.tab_12) - self.label_172.setObjectName("label_172") - self.gridLayout_54.addWidget(self.label_172, 4, 0, 1, 1) - self.label_121 = QtWidgets.QLabel(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Maximum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_121.sizePolicy().hasHeightForWidth()) - self.label_121.setSizePolicy(sizePolicy) - self.label_121.setObjectName("label_121") - self.gridLayout_54.addWidget(self.label_121, 0, 0, 1, 1) - self.pushButton_plot_corr = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_corr.setEnabled(False) - self.pushButton_plot_corr.setObjectName("pushButton_plot_corr") - self.gridLayout_54.addWidget(self.pushButton_plot_corr, 1, 1, 1, 1) - self.pushButton_plot_pca_sns = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_pca_sns.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_plot_pca_sns.sizePolicy().hasHeightForWidth()) - self.pushButton_plot_pca_sns.setSizePolicy(sizePolicy) - self.pushButton_plot_pca_sns.setObjectName("pushButton_plot_pca_sns") - self.gridLayout_54.addWidget(self.pushButton_plot_pca_sns, 0, 1, 1, 1) - self.pushButton_plot_pca_js = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_pca_js.setEnabled(False) + sizePolicy.setHeightForWidth(self.label_207.sizePolicy().hasHeightForWidth()) + self.label_207.setSizePolicy(sizePolicy) + self.label_207.setObjectName("label_207") + self.horizontalLayout_105.addWidget(self.label_207) + self.checkBox_basic_plot_upset_show_percentage = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox_basic_plot_upset_show_percentage.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_plot_pca_js.sizePolicy().hasHeightForWidth()) - self.pushButton_plot_pca_js.setSizePolicy(sizePolicy) - self.pushButton_plot_pca_js.setObjectName("pushButton_plot_pca_js") - self.gridLayout_54.addWidget(self.pushButton_plot_pca_js, 0, 2, 1, 1) - self.label_119 = QtWidgets.QLabel(self.tab_12) - self.label_119.setObjectName("label_119") - self.gridLayout_54.addWidget(self.label_119, 1, 0, 1, 1) - self.label_171 = QtWidgets.QLabel(self.tab_12) - self.label_171.setObjectName("label_171") - self.gridLayout_54.addWidget(self.label_171, 3, 0, 1, 1) - self.label_173 = QtWidgets.QLabel(self.tab_12) + sizePolicy.setHeightForWidth(self.checkBox_basic_plot_upset_show_percentage.sizePolicy().hasHeightForWidth()) + self.checkBox_basic_plot_upset_show_percentage.setSizePolicy(sizePolicy) + self.checkBox_basic_plot_upset_show_percentage.setObjectName("checkBox_basic_plot_upset_show_percentage") + self.horizontalLayout_105.addWidget(self.checkBox_basic_plot_upset_show_percentage) + self.label_206 = QtWidgets.QLabel(self.scrollAreaWidgetContents) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_173.sizePolicy().hasHeightForWidth()) - self.label_173.setSizePolicy(sizePolicy) - self.label_173.setObjectName("label_173") - self.gridLayout_54.addWidget(self.label_173, 5, 0, 1, 1) - self.pushButton_basic_plot_number_bar = QtWidgets.QPushButton(self.tab_12) - self.pushButton_basic_plot_number_bar.setEnabled(False) - self.pushButton_basic_plot_number_bar.setObjectName("pushButton_basic_plot_number_bar") - self.gridLayout_54.addWidget(self.pushButton_basic_plot_number_bar, 2, 1, 1, 1) - self.pushButton_plot_box_sns = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_box_sns.setEnabled(False) - self.pushButton_plot_box_sns.setObjectName("pushButton_plot_box_sns") - self.gridLayout_54.addWidget(self.pushButton_plot_box_sns, 2, 2, 1, 1) - self.pushButton_plot_alpha_div = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_alpha_div.setEnabled(False) - self.pushButton_plot_alpha_div.setObjectName("pushButton_plot_alpha_div") - self.gridLayout_54.addWidget(self.pushButton_plot_alpha_div, 3, 1, 1, 1) - self.pushButton_plot_beta_div = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_beta_div.setEnabled(False) - self.pushButton_plot_beta_div.setObjectName("pushButton_plot_beta_div") - self.gridLayout_54.addWidget(self.pushButton_plot_beta_div, 3, 2, 1, 1) - self.pushButton_plot_basic_treemap = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_basic_treemap.setEnabled(False) - self.pushButton_plot_basic_treemap.setObjectName("pushButton_plot_basic_treemap") - self.gridLayout_54.addWidget(self.pushButton_plot_basic_treemap, 4, 1, 1, 1) - self.pushButton_plot_sunburst = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_sunburst.setEnabled(False) - self.pushButton_plot_sunburst.setObjectName("pushButton_plot_sunburst") - self.gridLayout_54.addWidget(self.pushButton_plot_sunburst, 4, 2, 1, 1) - self.pushButton_plot_basic_sankey = QtWidgets.QPushButton(self.tab_12) - self.pushButton_plot_basic_sankey.setEnabled(False) - self.pushButton_plot_basic_sankey.setObjectName("pushButton_plot_basic_sankey") - self.gridLayout_54.addWidget(self.pushButton_plot_basic_sankey, 5, 1, 1, 1) - self.gridLayout_26.addLayout(self.gridLayout_54, 4, 0, 1, 3) + sizePolicy.setHeightForWidth(self.label_206.sizePolicy().hasHeightForWidth()) + self.label_206.setSizePolicy(sizePolicy) + self.label_206.setObjectName("label_206") + self.horizontalLayout_105.addWidget(self.label_206) + self.spinBox_basic_plot_upset_min_subset = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) + self.spinBox_basic_plot_upset_min_subset.setMinimum(1) + self.spinBox_basic_plot_upset_min_subset.setMaximum(99999) + self.spinBox_basic_plot_upset_min_subset.setSingleStep(1) + self.spinBox_basic_plot_upset_min_subset.setProperty("value", 1) + self.spinBox_basic_plot_upset_min_subset.setObjectName("spinBox_basic_plot_upset_min_subset") + self.horizontalLayout_105.addWidget(self.spinBox_basic_plot_upset_min_subset) + self.label_208 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + self.label_208.setObjectName("label_208") + self.horizontalLayout_105.addWidget(self.label_208) + self.spinBox_basic_plot_upset_max_rank = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) + self.spinBox_basic_plot_upset_max_rank.setMaximum(999) + self.spinBox_basic_plot_upset_max_rank.setObjectName("spinBox_basic_plot_upset_max_rank") + self.horizontalLayout_105.addWidget(self.spinBox_basic_plot_upset_max_rank) + self.gridLayout_34.addLayout(self.horizontalLayout_105, 5, 2, 1, 1) + self.scrollArea.setWidget(self.scrollAreaWidgetContents) + self.gridLayout_40.addWidget(self.scrollArea, 0, 0, 1, 1) + self.gridLayout_26.addWidget(self.groupBox_basic_plot, 12, 0, 1, 3) self.horizontalLayout_35 = QtWidgets.QHBoxLayout() self.horizontalLayout_35.setObjectName("horizontalLayout_35") self.label_70 = QtWidgets.QLabel(self.tab_12) @@ -1300,6 +1333,19 @@ def setupUi(self, metaX_main): self.horizontalLayout_6.addWidget(self.comboBox_sub_meta_pca) self.horizontalLayout_35.addLayout(self.horizontalLayout_6) self.gridLayout_26.addLayout(self.horizontalLayout_35, 0, 0, 1, 2) + self.line_10 = QtWidgets.QFrame(self.tab_12) + self.line_10.setFrameShape(QtWidgets.QFrame.HLine) + self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_10.setObjectName("line_10") + self.gridLayout_26.addWidget(self.line_10, 3, 0, 1, 3) + self.checkBox_show_basic_plot_settings = QtWidgets.QCheckBox(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_show_basic_plot_settings.sizePolicy().hasHeightForWidth()) + self.checkBox_show_basic_plot_settings.setSizePolicy(sizePolicy) + self.checkBox_show_basic_plot_settings.setObjectName("checkBox_show_basic_plot_settings") + self.gridLayout_26.addWidget(self.checkBox_show_basic_plot_settings, 10, 0, 1, 1) self.tabWidget_4.addTab(self.tab_12, "") self.tab_13 = QtWidgets.QWidget() self.tab_13.setObjectName("tab_13") @@ -1967,7 +2013,7 @@ def setupUi(self, metaX_main): self.scrollArea_cross_heatmap_settings.setWidgetResizable(True) self.scrollArea_cross_heatmap_settings.setObjectName("scrollArea_cross_heatmap_settings") self.scrollAreaWidgetContents_3 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_3.setGeometry(QtCore.QRect(0, 0, 1020, 128)) + self.scrollAreaWidgetContents_3.setGeometry(QtCore.QRect(0, 0, 872, 128)) self.scrollAreaWidgetContents_3.setObjectName("scrollAreaWidgetContents_3") self.gridLayout_38 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_3) self.gridLayout_38.setObjectName("gridLayout_38") @@ -2902,7 +2948,7 @@ def setupUi(self, metaX_main): self.scrollArea_3.setWidgetResizable(True) self.scrollArea_3.setObjectName("scrollArea_3") self.scrollAreaWidgetContents_4 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 996, 164)) + self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 865, 95)) self.scrollAreaWidgetContents_4.setObjectName("scrollAreaWidgetContents_4") self.gridLayout_68 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_4) self.gridLayout_68.setObjectName("gridLayout_68") @@ -3848,7 +3894,7 @@ def setupUi(self, metaX_main): self.scrollArea_5.setWidgetResizable(True) self.scrollArea_5.setObjectName("scrollArea_5") self.scrollAreaWidgetContents_6 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 1016, 166)) + self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 885, 92)) self.scrollAreaWidgetContents_6.setObjectName("scrollAreaWidgetContents_6") self.gridLayout_57 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_6) self.gridLayout_57.setObjectName("gridLayout_57") @@ -4857,7 +4903,7 @@ def setupUi(self, metaX_main): self.scrollArea_7.setWidgetResizable(True) self.scrollArea_7.setObjectName("scrollArea_7") self.scrollAreaWidgetContents_8 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_8.setGeometry(QtCore.QRect(0, 0, 1016, 179)) + self.scrollAreaWidgetContents_8.setGeometry(QtCore.QRect(0, 0, 885, 128)) self.scrollAreaWidgetContents_8.setObjectName("scrollAreaWidgetContents_8") self.gridLayout_66 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_8) self.gridLayout_66.setObjectName("gridLayout_66") @@ -5426,7 +5472,7 @@ def setupUi(self, metaX_main): self.statusbar.setObjectName("statusbar") metaX_main.setStatusBar(self.statusbar) self.menuBar = QtWidgets.QMenuBar(metaX_main) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 1122, 21)) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 991, 23)) self.menuBar.setObjectName("menuBar") self.menuTools = QtWidgets.QMenu(self.menuBar) self.menuTools.setObjectName("menuTools") @@ -5492,7 +5538,7 @@ def setupUi(self, metaX_main): self.retranslateUi(metaX_main) self.stackedWidget.setCurrentIndex(0) - self.tabWidget_TaxaFuncAnalyzer.setCurrentIndex(2) + self.tabWidget_TaxaFuncAnalyzer.setCurrentIndex(3) self.toolBox_2.setCurrentIndex(0) self.tabWidget_4.setCurrentIndex(0) self.tabWidget_3.setCurrentIndex(3) @@ -5540,6 +5586,7 @@ def setupUi(self, metaX_main): self.checkBox_set_taxa_func_split_func.clicked['bool'].connect(self.checkBox_set_taxa_func_split_func_share_intensity.setEnabled) # type: ignore self.checkBox_tflink_plot_mean.clicked['bool'].connect(self.comboBox_tflink_sub_meta.setDisabled) # type: ignore self.checkBox_show_advanced_annotator_settings.toggled['bool'].connect(self.groupBox_peptide_annotator_settings.setVisible) # type: ignore + self.checkBox_pca_if_show_lable.toggled['bool'].connect(self.checkBox_basic_plot_upset_show_percentage.setEnabled) # type: ignore QtCore.QMetaObject.connectSlotsByName(metaX_main) metaX_main.setTabOrder(self.comboBox_taxa_level_to_stast, self.toolButton_meta_table_help) metaX_main.setTabOrder(self.toolButton_meta_table_help, self.comboBox_function_to_stast) @@ -5684,19 +5731,32 @@ def retranslateUi(self, metaX_main): self.checkBox_set_otf_taxa_and_func_only_from_otf.setToolTip(_translate("metaX_main", "If chceked, the taxa table and functions table would be only generated from the OTFs table rather than all the taxa at the selected level and all functions of the selected type and threshold.")) self.checkBox_set_otf_taxa_and_func_only_from_otf.setText(_translate("metaX_main", "Create Taxa and Functions only from OTFs")) self.tabWidget_TaxaFuncAnalyzer.setTabText(self.tabWidget_TaxaFuncAnalyzer.indexOf(self.tab_set_taxa_func), _translate("metaX_main", "Set TaxaFunc")) - self.checkBox_show_basic_plot_settings.setText(_translate("metaX_main", "Show Plotting Parameter")) + self.label_170.setText(_translate("metaX_main", "Counts")) + self.label_172.setText(_translate("metaX_main", "Taxa Overview")) + self.label_121.setText(_translate("metaX_main", "PCA")) + self.pushButton_plot_corr.setText(_translate("metaX_main", "Correlation Heatmap")) + self.pushButton_plot_pca_sns.setText(_translate("metaX_main", "PCA")) + self.pushButton_plot_pca_js.setText(_translate("metaX_main", "3D PCA")) + self.label_119.setText(_translate("metaX_main", "Intensity")) + self.label_171.setText(_translate("metaX_main", "Diversity")) + self.label_173.setText(_translate("metaX_main", "Sankey")) + self.pushButton_plot_alpha_div.setText(_translate("metaX_main", "Alpha Diversity")) + self.pushButton_plot_beta_div.setText(_translate("metaX_main", "Beta Diversity")) + self.pushButton_plot_basic_treemap.setText(_translate("metaX_main", "TreeMap")) + self.pushButton_plot_sunburst.setText(_translate("metaX_main", "Sunburst")) + self.pushButton_plot_basic_sankey.setText(_translate("metaX_main", "Sankey")) + self.pushButton_plot_box_sns.setText(_translate("metaX_main", "Box")) + self.pushButton_basic_plot_upset.setText(_translate("metaX_main", "UpSet")) + self.pushButton_basic_plot_number_bar.setText(_translate("metaX_main", "Bar")) + self.checkBox_basic_in_condtion.setText(_translate("metaX_main", "In Condition")) + self.radioButton_basic_pca_group.setText(_translate("metaX_main", "Groups")) + self.radioButton_basic_pca_sample.setText(_translate("metaX_main", "Samples")) self.groupBox_basic_plot.setTitle(_translate("metaX_main", "Plotting Parameter")) - self.label_107.setText(_translate("metaX_main", "Font Size")) - self.label_118.setText(_translate("metaX_main", "Beta Diversity")) - self.comboBox_beta_div_method.setItemText(0, _translate("metaX_main", "braycurtis")) - self.comboBox_beta_div_method.setItemText(1, _translate("metaX_main", "jaccard")) - self.comboBox_beta_div_method.setItemText(2, _translate("metaX_main", "euclidean")) - self.comboBox_beta_div_method.setItemText(3, _translate("metaX_main", "manhattan")) - self.comboBox_beta_div_method.setItemText(4, _translate("metaX_main", "canberra")) - self.comboBox_beta_div_method.setItemText(5, _translate("metaX_main", "chebyshev")) - self.comboBox_beta_div_method.setItemText(6, _translate("metaX_main", "dice")) - self.comboBox_beta_div_method.setItemText(7, _translate("metaX_main", "hamming")) - self.comboBox_beta_div_method.setItemText(8, _translate("metaX_main", "yule")) + self.checkBox_pca_if_adjust_pca_label.setToolTip(_translate("metaX_main", "Adjust label text to reduce overlap")) + self.checkBox_pca_if_adjust_pca_label.setText(_translate("metaX_main", "Adjust Labels")) + self.label_159.setToolTip(_translate("metaX_main", "The number of columns in the legend, set 0 to hide")) + self.label_159.setText(_translate("metaX_main", "Legend Cols")) + self.label_151.setText(_translate("metaX_main", "Theme")) self.label_117.setText(_translate("metaX_main", "Alpha Diversity")) self.checkBox_alpha_div_plot_all_samples.setText(_translate("metaX_main", "Plot Samples")) self.comboBox_alpha_div_method.setItemText(0, _translate("metaX_main", "shannon")) @@ -5707,56 +5767,47 @@ def retranslateUi(self, metaX_main): self.comboBox_alpha_div_method.setItemText(5, _translate("metaX_main", "fisher_alpha")) self.comboBox_alpha_div_method.setItemText(6, _translate("metaX_main", "dominance")) self.comboBox_alpha_div_method.setItemText(7, _translate("metaX_main", "menhinick")) - self.checkBox_basic_plot_number_plot_sample.setText(_translate("metaX_main", "Plot Samples")) - self.label_122.setText(_translate("metaX_main", "general")) self.label_116.setToolTip(_translate("metaX_main", "Transparency of labes")) self.label_116.setText(_translate("metaX_main", "Transparency")) self.label_160.setToolTip(_translate("metaX_main", "Dots size for PCA and Beta Diversity")) self.label_160.setText(_translate("metaX_main", "Dot Size")) - self.label_129.setText(_translate("metaX_main", "Show All Labels")) - self.checkBox_corr_show_all_labels_x.setText(_translate("metaX_main", "X")) - self.checkBox_corr_show_all_labels_y.setText(_translate("metaX_main", "Y")) + self.label_155.setText(_translate("metaX_main", "Counts Plot")) + self.label_137.setText(_translate("metaX_main", "Sunburst")) + self.checkBox_box_if_show_fliers.setText(_translate("metaX_main", "show Fliers")) + self.label_122.setText(_translate("metaX_main", "general")) + self.checkBox_box_plot_samples.setText(_translate("metaX_main", "Plot Samples")) self.checkBox_pca_if_show_group_name_in_label.setToolTip(_translate("metaX_main", "Add group name to Sample names")) self.checkBox_pca_if_show_group_name_in_label.setText(_translate("metaX_main", "Rename Samples")) self.checkBox_pca_if_show_lable.setToolTip(_translate("metaX_main", "Show label text in diagram")) self.checkBox_pca_if_show_lable.setText(_translate("metaX_main", "Show Labels")) - self.checkBox_box_if_show_fliers.setText(_translate("metaX_main", "show Fliers")) + self.label_179.setText(_translate("metaX_main", "Scatter Plot")) + self.label_167.setText(_translate("metaX_main", "Diversity")) + self.label_118.setText(_translate("metaX_main", "Beta Diversity")) + self.comboBox_beta_div_method.setItemText(0, _translate("metaX_main", "braycurtis")) + self.comboBox_beta_div_method.setItemText(1, _translate("metaX_main", "jaccard")) + self.comboBox_beta_div_method.setItemText(2, _translate("metaX_main", "euclidean")) + self.comboBox_beta_div_method.setItemText(3, _translate("metaX_main", "manhattan")) + self.comboBox_beta_div_method.setItemText(4, _translate("metaX_main", "canberra")) + self.comboBox_beta_div_method.setItemText(5, _translate("metaX_main", "chebyshev")) + self.comboBox_beta_div_method.setItemText(6, _translate("metaX_main", "dice")) + self.comboBox_beta_div_method.setItemText(7, _translate("metaX_main", "hamming")) + self.comboBox_beta_div_method.setItemText(8, _translate("metaX_main", "yule")) + self.label_107.setText(_translate("metaX_main", "Font Size")) + self.checkBox_basic_plot_number_plot_sample.setText(_translate("metaX_main", "Plot Samples")) self.label_94.setText(_translate("metaX_main", "Width")) self.label_101.setText(_translate("metaX_main", "Height")) - self.checkBox_box_plot_samples.setText(_translate("metaX_main", "Plot Samples")) - self.label_168.setText(_translate("metaX_main", "Correlation Heatmap")) - self.label_159.setToolTip(_translate("metaX_main", "The number of columns in the legend, set 0 to hide")) - self.label_159.setText(_translate("metaX_main", "Legend Cols")) - self.label_151.setText(_translate("metaX_main", "Theme")) - self.checkBox_pca_if_adjust_pca_label.setToolTip(_translate("metaX_main", "Adjust label text to reduce overlap")) - self.checkBox_pca_if_adjust_pca_label.setText(_translate("metaX_main", "Adjust Labels")) - self.label_155.setText(_translate("metaX_main", "Bar Plot")) - self.label_137.setText(_translate("metaX_main", "Sunburst")) self.label_169.setText(_translate("metaX_main", "Box Plot")) - self.label_167.setText(_translate("metaX_main", "Diversity")) + self.label_129.setText(_translate("metaX_main", "Show All Labels")) + self.checkBox_corr_show_all_labels_x.setText(_translate("metaX_main", "X")) + self.checkBox_corr_show_all_labels_y.setText(_translate("metaX_main", "Y")) + self.label_168.setText(_translate("metaX_main", "Correlation Heatmap")) + self.checkBox_sunburst_show_all_lables.setText(_translate("metaX_main", "Show All Lables for Sunburst")) self.checkBox_corr_cluster.setText(_translate("metaX_main", "Cluster")) self.label_192.setText(_translate("metaX_main", "Theme")) - self.label_179.setText(_translate("metaX_main", "Scatter Plot")) - self.checkBox_sunburst_show_all_lables.setText(_translate("metaX_main", "Show All Lables for Sunburst")) - self.checkBox_basic_in_condtion.setText(_translate("metaX_main", "In Condition")) - self.radioButton_basic_pca_group.setText(_translate("metaX_main", "Groups")) - self.radioButton_basic_pca_sample.setText(_translate("metaX_main", "Samples")) - self.label_170.setText(_translate("metaX_main", "Bar of Counts")) - self.label_172.setText(_translate("metaX_main", "Taxa Overview")) - self.label_121.setText(_translate("metaX_main", "PCA")) - self.pushButton_plot_corr.setText(_translate("metaX_main", "Correlation Heatmap")) - self.pushButton_plot_pca_sns.setText(_translate("metaX_main", "PCA")) - self.pushButton_plot_pca_js.setText(_translate("metaX_main", "3D PCA")) - self.label_119.setText(_translate("metaX_main", "Correlation")) - self.label_171.setText(_translate("metaX_main", "Diversity")) - self.label_173.setText(_translate("metaX_main", "Sankey")) - self.pushButton_basic_plot_number_bar.setText(_translate("metaX_main", "Bar")) - self.pushButton_plot_box_sns.setText(_translate("metaX_main", "Box")) - self.pushButton_plot_alpha_div.setText(_translate("metaX_main", "Alpha Diversity")) - self.pushButton_plot_beta_div.setText(_translate("metaX_main", "Beta Diversity")) - self.pushButton_plot_basic_treemap.setText(_translate("metaX_main", "TreeMap")) - self.pushButton_plot_sunburst.setText(_translate("metaX_main", "Sunburst")) - self.pushButton_plot_basic_sankey.setText(_translate("metaX_main", "Sankey")) + self.label_207.setText(_translate("metaX_main", "UpSet")) + self.checkBox_basic_plot_upset_show_percentage.setText(_translate("metaX_main", "Show Percentages")) + self.label_206.setText(_translate("metaX_main", "Min Subset Size")) + self.label_208.setText(_translate("metaX_main", "Max Rank")) self.label_70.setText(_translate("metaX_main", "Table")) self.comboBox_table4pca.setItemText(0, _translate("metaX_main", "Taxa")) self.comboBox_table4pca.setItemText(1, _translate("metaX_main", "Functions")) @@ -5765,6 +5816,7 @@ def retranslateUi(self, metaX_main): self.label_146.setText(_translate("metaX_main", "Meta")) self.label_142.setText(_translate("metaX_main", "Sub Meta ")) self.comboBox_sub_meta_pca.setItemText(0, _translate("metaX_main", "None")) + self.checkBox_show_basic_plot_settings.setText(_translate("metaX_main", "Show Plotting Parameter")) self.tabWidget_4.setTabText(self.tabWidget_4.indexOf(self.tab_12), _translate("metaX_main", "Basic Plot")) self.label_80.setText(_translate("metaX_main", "Table")) self.comboBox_basic_table.setItemText(0, _translate("metaX_main", "Taxa")) diff --git a/metax/taxafunc_ploter/basic_plot.py b/metax/taxafunc_ploter/basic_plot.py index bf85fe9..9105f2b 100644 --- a/metax/taxafunc_ploter/basic_plot.py +++ b/metax/taxafunc_ploter/basic_plot.py @@ -6,7 +6,7 @@ import numpy as np import pandas as pd from adjustText import adjust_text - +from upsetplot import plot as upset_plot from .get_distinct_colors import GetDistinctColors class BasicPlot: @@ -599,11 +599,67 @@ def create_df_plot_group(df, sub_meta): # plt.close() return ax - def plot_distribution_sns(self, df, title_name = 'Table', width=10, height=8, font_size = 10, - theme:str = 'Auto', plot_sample = False, show_label = True, - rename_sample:bool = False, legend_col_num: int | None = None, - sub_meta:str|None = 'None', bins:int = 10): - pass + def plot_upset(self, df, title_name='Table', width=12, height=6, font_size=10, + plot_sample=False, sub_meta: str | None = 'None', show_label=True, + rename_sample: bool = False, show_percentages: bool = False, + min_subset_size = None, max_subset_rank = None): + """ + Plot an UpSet plot for the input dataframe, following the correct input format. + """ + + df = df.copy() + + if plot_sample: + # Create a binary matrix (boolean format) with samples as groups + df_binary = (df > 0).astype(bool) + df_binary['id'] = df_binary.index # Add an 'id' column for items + + if rename_sample: + renamed_columns = {} + for sample in df.columns: + group = self.tfa.get_group_of_a_sample(sample) + renamed_columns[sample] = f"{sample} ({group})" + df_binary.rename(columns=renamed_columns, inplace=True) + + else: + # Group the samples by group or subgroup + group_dict = {} + for sample in df.columns: + group = self.tfa.get_group_of_a_sample(sample) + if sub_meta not in ['None', None]: + subgroup = self.tfa.get_group_of_a_sample(sample, sub_meta) + group = f"{group} ({subgroup})" + + if group not in group_dict: + group_dict[group] = [] + group_dict[group].append(sample) + + # Create a binary matrix for the groups + group_values = { + group: (df[samples].sum(axis=1) > 0).astype(bool) + for group, samples in group_dict.items() + } + df_binary = pd.DataFrame(group_values) + df_binary['id'] = df_binary.index # Add an 'id' column for items + + try: + # Set the groups as index and ensure boolean values + upset_data = df_binary.set_index([col for col in df_binary.columns if col != 'id']) + + # Plot UpSet + fig = plt.figure(figsize=(width, height)) + plt.rcParams.update({'font.size': font_size}) + upset_plot(upset_data, fig = fig, show_counts=show_label, show_percentages=show_percentages if show_label else False, + element_size=None, min_subset_size=min_subset_size, max_subset_rank=max_subset_rank if max_subset_rank != 0 else None) + + plt.suptitle(f"UpSet of {title_name}", fontsize=font_size + 2, fontweight='bold') + plt.tight_layout() + plt.show() + + except Exception as e: + plt.close('all') + raise e + def plot_items_corr_heatmap( self, diff --git a/metax/utils/version.py b/metax/utils/version.py index be738a0..9b7a9f6 100644 --- a/metax/utils/version.py +++ b/metax/utils/version.py @@ -1,2 +1,2 @@ -__version__ = '1.118.4' -API_version = '3' \ No newline at end of file +__version__ = '1.119.0' +API_version = '4' \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index f93cf8a..d051cb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,7 @@ dependencies = [ "statsmodels", "seaborn>=0.13.2", "numba>=0.60.0", + "UpSetPlot>=0.9.0 ] [project.scripts] diff --git a/requirements.txt b/requirements.txt index 9938c02..77d3ca8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,4 +21,5 @@ openpyxl pyproject-toml>=0.0.10 statsmodels seaborn>=0.13.2 -numba>=0.60.0 \ No newline at end of file +numba>=0.60.0 +UpSetPlot>=0.9.0 \ No newline at end of file From 30be91b8598c63dbacc4d877307bfdd37d8dda63 Mon Sep 17 00:00:00 2001 From: Qing <44231502+byemaxx@users.noreply.github.com> Date: Fri, 29 Nov 2024 12:39:54 -0500 Subject: [PATCH 3/6] - New: Added UpSet plot for basic selection plot part. --- Docs/ChangeLog.md | 6 + README.md | 2 +- metax/gui/main_gui.py | 16 +- metax/gui/metax_gui/main_window.ui | 878 +++++++++++++++----------- metax/gui/metax_gui/ui_main_window.py | 468 ++++++++------ metax/taxafunc_ploter/basic_plot.py | 7 +- metax/utils/version.py | 2 +- pyproject.toml | 2 +- 8 files changed, 807 insertions(+), 574 deletions(-) diff --git a/Docs/ChangeLog.md b/Docs/ChangeLog.md index 0a419c3..6fc1a41 100644 --- a/Docs/ChangeLog.md +++ b/Docs/ChangeLog.md @@ -1,3 +1,9 @@ +# Version: 1.119.1 +## Date: 2024-11-29 +### Changes: +- New: Added UpSet plot for basic selection plot part. + + # Version: 1.119.0 ## Date: 2024-11-28 ### Changes: diff --git a/README.md b/README.md index d5d03d0..263bda4 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ The Tools in OTF Analyzer ![compostion](https://github.com/byemaxx/MetaX/raw/main/Docs/MetaX_Cookbook.assets/composition.png) -## OTFs Examples +## OTF Examples Linking Taxa and Functions in different levels of the hierarchy, and various functional categories. e.g., **Species-KO**, **Genus-CAZy**, **Phylum-EC**, etc. Lots of visualization tools can be selected. diff --git a/metax/gui/main_gui.py b/metax/gui/main_gui.py index e8a396b..f51da5d 100644 --- a/metax/gui/main_gui.py +++ b/metax/gui/main_gui.py @@ -393,6 +393,7 @@ def __init__(self, MainWindow): self.pushButton_basic_bar_plot.clicked.connect(lambda: self.plot_basic_list('bar')) self.pushButton_basic_heatmap_get_table.clicked.connect(lambda: self.plot_basic_list('get_table')) self.pushButton_basic_heatmap_sankey_plot.clicked.connect(lambda: self.plot_basic_list('sankey')) + self.pushButton_basic_heatmap_plot_upset.clicked.connect(lambda: self.plot_basic_list('upset')) self.pushButton_basic_heatmap_add_a_list.clicked.connect(self.add_a_list_to_heatmap) self.comboBox_basic_heatmap_selection_list.add_all_searched.connect(self.add_all_searched_basic_heatmap_to_list) self.comboBox_basic_table.currentIndexChanged.connect(self.change_event_comboBox_basic_heatmap_table) @@ -3110,6 +3111,7 @@ def enable_multi_button(self, state=True): self.pushButton_basic_heatmap_plot, self.pushButton_basic_bar_plot, self.pushButton_basic_heatmap_get_table, + self.pushButton_basic_heatmap_plot_upset, self.pushButton_basic_heatmap_sankey_plot, self.pushButton_basic_heatmap_add_top, self.pushButton_co_expr_plot, @@ -3736,7 +3738,19 @@ def plot_basic_list(self, plot_type='heatmap'): sub_meta=sub_meta, plot_mean=plot_mean, show_legend=self.checkBox_basic_bar_show_legend.isChecked()) self.save_and_show_js_plot(pic, title) - + + elif plot_type == 'upset': + show_percentages = self.checkBox_basic_heatmap_plot_upset_show_percentage.isChecked() + min_subset_size = self.spinBox_basic_heatmap_plot_upset_min_subset.value() + max_subset_rank = self.spinBox_basic_heatmap_plot_upset_max_rank.value() + BasicPlot(self.tfa).plot_upset(df = df, title_name = table_name, show_label = True, + width=width, height=height, font_size=font_size, + plot_sample = False, sub_meta = sub_meta, + rename_sample = rename_sample, show_percentages = show_percentages, + min_subset_size = min_subset_size, max_subset_rank = max_subset_rank) + except IndexError: + QMessageBox.warning(self.MainWindow, 'Warning', 'The index is out of range! Please check the settings.') + except Exception: error_message = traceback.format_exc() self.logger.write_log(f'plot_basic_list error: {error_message}', 'e') diff --git a/metax/gui/metax_gui/main_window.ui b/metax/gui/metax_gui/main_window.ui index b30acb1..20936d9 100644 --- a/metax/gui/metax_gui/main_window.ui +++ b/metax/gui/metax_gui/main_window.ui @@ -7,7 +7,7 @@ 0 0 991 - 746 + 773 @@ -246,7 +246,7 @@ 0 0 462 - 521 + 552 @@ -1447,7 +1447,7 @@ QTabWidget::Triangular - 0 + 1 @@ -2503,7 +2503,7 @@ - 1 + 0 99999 @@ -2677,6 +2677,20 @@ Heatmap and Bar + + + + Select for plotting + + + + + + + Qt::Horizontal + + + @@ -2769,30 +2783,6 @@ - - - - Select for plotting - - - - - - - Show Plotting Parameter - - - - - - - Group - - - true - - - @@ -2834,8 +2824,136 @@ - - + + + + + 0 + 0 + + + + + + + + + + + 0 + 0 + + + + Select Top + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + 1 + + + 99999 + + + 10 + + + + + + + + 0 + 0 + + + + Sort by + + + + + + + + Total Intensity + + + + + Frequency in Samples + + + + + Number of links + + + + + ANOVA(p-value) + + + + + ANOVA(f-statistic) + + + + + T-TEST(p-value) + + + + + T-TEST(t-statistic) + + + + + Deseq2-up(p-value) + + + + + Deseq2-down(p-value) + + + + + Deseq2-up(log2FC) + + + + + Deseq2-down(log2FC) + + + + + + + + Filter with threshold + + + + + + + false @@ -2846,13 +2964,95 @@ - Add selected item to the drawing box + Add conditionally filtered items to the drawing box - Add to List + Add Top to List + + + + + + + Qt::Horizontal + + + + + + + Group + + + true + + + + + 0 + 0 + + + + + + + + + + false + + + + 0 + 0 + + + + Drop Item + + + + + + + false + + + + 0 + 0 + + + + Clean List + + + + + + + false + + + + 0 + 0 + + + + Add a list to the drawing box, make sure there is one item per line. + + + Add A List + + + + + @@ -2875,8 +3075,8 @@ 0 0 - 621 - 152 + 885 + 170 @@ -3079,6 +3279,12 @@ + + + 0 + 0 + + 75 @@ -3380,6 +3586,106 @@ + + + + + + + 0 + 0 + + + + + 50 + false + + + + UpSet + + + + + + + + 0 + 0 + + + + Min Subset Size + + + + + + + + 0 + 0 + + + + 0 + + + 99999 + + + 1 + + + 1 + + + + + + + + 0 + 0 + + + + Max Rank + + + + + + + + 0 + 0 + + + + 999 + + + + + + + true + + + + 0 + 0 + + + + Show Percentages + + + + + @@ -3389,21 +3695,11 @@ - - - - - 0 - 0 - - - - List for Plotting - - + + - - + + false @@ -3414,219 +3710,85 @@ - Add conditionally filtered items to the drawing box + Add selected item to the drawing box - Add Top to List + Add to List - - - - - - false - - - - 0 - 0 - - - - Drop Item - - - - - - - false - - - - 0 - 0 - - - - Clean List - - - - - - - false - - - - 0 - 0 - - - - Add a list to the drawing box, make sure there is one item per line. - - - Add A List - - - - + + + + Show Plotting Parameter + + - - + + - + 0 0 + + List for Plotting + + + + + + + Sample + - - + + - - + + - - - - 0 - 0 - - - - Select Top - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false - - - - - + 0 0 - - 1 - - - 99999 - - - 10 + + Plot Heatmap - - - - - - - 0 - 0 - + + false - - Sort by + + false - - - - Total Intensity - - - - - Frequency in Samples - - - - - Number of links - - - - - ANOVA(p-value) - - - - - ANOVA(f-statistic) - - - - - T-TEST(p-value) - - - - - T-TEST(t-statistic) - - - - - Deseq2-up(p-value) - - - - - Deseq2-down(p-value) - - - - - Deseq2-up(log2FC) - - - - - Deseq2-down(log2FC) - - - - - - - - Filter with threshold - - - - - - - - - + false - + 0 0 - Get Table + Plot Bar - - + + false @@ -3637,12 +3799,12 @@ - Plot Sankey + UpSet - - + + false @@ -3653,12 +3815,12 @@ - Plot Bar + Plot Sankey - - + + false @@ -3669,46 +3831,12 @@ - Plot Heatmap + Get Table - - - - - - - Sample - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - @@ -3892,7 +4020,7 @@ 0 0 - 872 + 889 128 @@ -5799,7 +5927,7 @@ 0 0 865 - 95 + 121 @@ -7580,7 +7708,7 @@ 0 0 885 - 92 + 123 @@ -9401,7 +9529,7 @@ 0 0 885 - 128 + 158 @@ -10535,7 +10663,7 @@ 0 0 991 - 23 + 21 @@ -10677,12 +10805,12 @@ setEnabled(bool) - 102 - 95 + 534 + 114 - 111 - 95 + 630 + 116 @@ -10693,12 +10821,12 @@ setEnabled(bool) - 102 - 95 + 534 + 114 - 119 - 96 + 813 + 116 @@ -10741,12 +10869,12 @@ setEnabled(bool) - 159 - 115 + 229 + 151 - 159 - 115 + 346 + 153 @@ -10757,12 +10885,12 @@ setEnabled(bool) - 159 - 115 + 229 + 151 - 159 - 115 + 473 + 153 @@ -10837,12 +10965,12 @@ setEnabled(bool) - 76 - 131 + 159 + 151 - 83 - 131 + 253 + 153 @@ -10853,12 +10981,12 @@ setEnabled(bool) - 76 - 131 + 159 + 151 - 90 - 131 + 358 + 153 @@ -10870,11 +10998,11 @@ 190 - 168 + 167 357 - 170 + 169 @@ -10917,12 +11045,12 @@ setEnabled(bool) - 137 - 109 + 96 + 94 - 137 - 109 + 108 + 94 @@ -10933,12 +11061,12 @@ setEnabled(bool) - 137 - 109 + 96 + 94 - 137 - 109 + 119 + 95 @@ -10950,11 +11078,11 @@ 925 - 490 + 489 - 359 - 527 + 383 + 526 @@ -10966,11 +11094,11 @@ 925 - 490 + 489 - 359 - 661 + 383 + 660 @@ -10982,11 +11110,11 @@ 925 - 490 + 489 - 747 - 529 + 731 + 528 @@ -10998,11 +11126,11 @@ 190 - 168 + 167 522 - 170 + 169 @@ -11013,12 +11141,12 @@ setEnabled(bool) - 332 - 140 + 608 + 582 - 332 - 140 + 825 + 582 @@ -11029,12 +11157,12 @@ setDisabled(bool) - 149 - 156 + 232 + 569 - 89 - 126 + 400 + 115 @@ -11065,8 +11193,8 @@ 99 - 209 - 114 + 227 + 100 @@ -11077,12 +11205,12 @@ setEnabled(bool) - 156 - 114 + 212 + 151 - 156 - 114 + 329 + 153 @@ -11093,12 +11221,12 @@ setEnabled(bool) - 156 - 114 + 212 + 151 - 156 - 114 + 490 + 153 @@ -11109,8 +11237,8 @@ setVisible(bool) - 87 - 404 + 100 + 403 132 @@ -11125,12 +11253,12 @@ setVisible(bool) - 77 - 114 + 90 + 528 - 121 - 116 + 134 + 604 @@ -11141,12 +11269,12 @@ setVisible(bool) - 99 - 110 + 121 + 512 - 128 - 110 + 149 + 606 @@ -11157,12 +11285,12 @@ setVisible(bool) - 88 - 127 + 111 + 271 - 111 - 114 + 134 + 351 @@ -11173,12 +11301,12 @@ setVisible(bool) - 75 - 98 + 77 + 112 - 119 - 100 + 121 + 114 @@ -11189,12 +11317,12 @@ setVisible(bool) - 75 - 129 + 89 + 543 - 119 - 101 + 132 + 604 @@ -11209,8 +11337,8 @@ 117 - 119 - 100 + 121 + 114 @@ -11221,12 +11349,12 @@ setVisible(bool) - 53 - 98 + 66 + 491 - 119 - 100 + 132 + 568 @@ -11237,12 +11365,12 @@ setEnabled(bool) - 128 - 104 + 800 + 139 - 78 - 104 + 856 + 140 @@ -11253,12 +11381,12 @@ setEnabled(bool) - 128 - 104 + 800 + 139 - 128 - 104 + 957 + 139 @@ -11269,8 +11397,8 @@ setDisabled(bool) - 147 - 140 + 815 + 167 98 @@ -11285,12 +11413,12 @@ setVisible(bool) - 77 - 52 + 95 + 70 - 99 - 55 + 117 + 73 @@ -11305,8 +11433,8 @@ 487 - 825 - 575 + 690 + 582 diff --git a/metax/gui/metax_gui/ui_main_window.py b/metax/gui/metax_gui/ui_main_window.py index 99aed14..2b70b33 100644 --- a/metax/gui/metax_gui/ui_main_window.py +++ b/metax/gui/metax_gui/ui_main_window.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'c:\Users\max\OneDrive - University of Ottawa\code\TaxaFunc\MetaX\metax\gui\metax_gui\main_window.ui' +# Form implementation generated from reading ui file 'c:\Users\Qing\OneDrive - University of Ottawa\code\TaxaFunc\MetaX\metax\gui\metax_gui\main_window.ui' # # Created by: PyQt5 UI code generator 5.15.9 # @@ -14,7 +14,7 @@ class Ui_metaX_main(object): def setupUi(self, metaX_main): metaX_main.setObjectName("metaX_main") - metaX_main.resize(991, 746) + metaX_main.resize(991, 773) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -147,7 +147,7 @@ def setupUi(self, metaX_main): self.toolBox_2.setMaximumSize(QtCore.QSize(1677, 16777215)) self.toolBox_2.setObjectName("toolBox_2") self.page_2 = QtWidgets.QWidget() - self.page_2.setGeometry(QtCore.QRect(0, 0, 462, 521)) + self.page_2.setGeometry(QtCore.QRect(0, 0, 462, 552)) self.page_2.setObjectName("page_2") self.gridLayout_27 = QtWidgets.QGridLayout(self.page_2) self.gridLayout_27.setObjectName("gridLayout_27") @@ -1254,7 +1254,7 @@ def setupUi(self, metaX_main): self.label_206.setObjectName("label_206") self.horizontalLayout_105.addWidget(self.label_206) self.spinBox_basic_plot_upset_min_subset = QtWidgets.QSpinBox(self.scrollAreaWidgetContents) - self.spinBox_basic_plot_upset_min_subset.setMinimum(1) + self.spinBox_basic_plot_upset_min_subset.setMinimum(0) self.spinBox_basic_plot_upset_min_subset.setMaximum(99999) self.spinBox_basic_plot_upset_min_subset.setSingleStep(1) self.spinBox_basic_plot_upset_min_subset.setProperty("value", 1) @@ -1351,6 +1351,14 @@ def setupUi(self, metaX_main): self.tab_13.setObjectName("tab_13") self.gridLayout_23 = QtWidgets.QGridLayout(self.tab_13) self.gridLayout_23.setObjectName("gridLayout_23") + self.label_32 = QtWidgets.QLabel(self.tab_13) + self.label_32.setObjectName("label_32") + self.gridLayout_23.addWidget(self.label_32, 5, 0, 1, 1) + self.line_8 = QtWidgets.QFrame(self.tab_13) + self.line_8.setFrameShape(QtWidgets.QFrame.HLine) + self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_8.setObjectName("line_8") + self.gridLayout_23.addWidget(self.line_8, 1, 0, 1, 4) self.horizontalLayout_28 = QtWidgets.QHBoxLayout() self.horizontalLayout_28.setObjectName("horizontalLayout_28") self.label_80 = QtWidgets.QLabel(self.tab_13) @@ -1402,16 +1410,6 @@ def setupUi(self, metaX_main): self.comboBox_3dbar_sub_meta.setObjectName("comboBox_3dbar_sub_meta") self.horizontalLayout_28.addWidget(self.comboBox_3dbar_sub_meta) self.gridLayout_23.addLayout(self.horizontalLayout_28, 0, 0, 1, 2) - self.label_32 = QtWidgets.QLabel(self.tab_13) - self.label_32.setObjectName("label_32") - self.gridLayout_23.addWidget(self.label_32, 5, 0, 1, 1) - self.checkBox = QtWidgets.QCheckBox(self.tab_13) - self.checkBox.setObjectName("checkBox") - self.gridLayout_23.addWidget(self.checkBox, 10, 0, 1, 2) - self.radioButton_basic_heatmap_group = QtWidgets.QRadioButton(self.tab_13) - self.radioButton_basic_heatmap_group.setChecked(True) - self.radioButton_basic_heatmap_group.setObjectName("radioButton_basic_heatmap_group") - self.gridLayout_23.addWidget(self.radioButton_basic_heatmap_group, 2, 0, 1, 1) self.horizontalLayout_26 = QtWidgets.QHBoxLayout() self.horizontalLayout_26.setObjectName("horizontalLayout_26") self.checkBox_basic_heatmap_in_condition = QtWidgets.QCheckBox(self.tab_13) @@ -1439,15 +1437,118 @@ def setupUi(self, metaX_main): self.horizontalLayout_67.addWidget(self.comboBox_basic_heatmap_condition_group) self.horizontalLayout_26.addLayout(self.horizontalLayout_67) self.gridLayout_23.addLayout(self.horizontalLayout_26, 2, 1, 1, 1) - self.pushButton_basic_heatmap_add = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_add.setEnabled(False) + self.listWidget_list_for_ploting = QtWidgets.QListWidget(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.listWidget_list_for_ploting.sizePolicy().hasHeightForWidth()) + self.listWidget_list_for_ploting.setSizePolicy(sizePolicy) + self.listWidget_list_for_ploting.setObjectName("listWidget_list_for_ploting") + self.gridLayout_23.addWidget(self.listWidget_list_for_ploting, 7, 1, 2, 3) + self.horizontalLayout_29 = QtWidgets.QHBoxLayout() + self.horizontalLayout_29.setObjectName("horizontalLayout_29") + self.label_67 = QtWidgets.QLabel(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_67.sizePolicy().hasHeightForWidth()) + self.label_67.setSizePolicy(sizePolicy) + self.label_67.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_67.setObjectName("label_67") + self.horizontalLayout_29.addWidget(self.label_67) + self.spinBox_basic_heatmap_top_num = QtWidgets.QSpinBox(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.spinBox_basic_heatmap_top_num.sizePolicy().hasHeightForWidth()) + self.spinBox_basic_heatmap_top_num.setSizePolicy(sizePolicy) + self.spinBox_basic_heatmap_top_num.setMinimum(1) + self.spinBox_basic_heatmap_top_num.setMaximum(99999) + self.spinBox_basic_heatmap_top_num.setProperty("value", 10) + self.spinBox_basic_heatmap_top_num.setObjectName("spinBox_basic_heatmap_top_num") + self.horizontalLayout_29.addWidget(self.spinBox_basic_heatmap_top_num) + self.label_68 = QtWidgets.QLabel(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_68.sizePolicy().hasHeightForWidth()) + self.label_68.setSizePolicy(sizePolicy) + self.label_68.setObjectName("label_68") + self.horizontalLayout_29.addWidget(self.label_68) + self.comboBox_basic_heatmap_top_by = QtWidgets.QComboBox(self.tab_13) + self.comboBox_basic_heatmap_top_by.setObjectName("comboBox_basic_heatmap_top_by") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.comboBox_basic_heatmap_top_by.addItem("") + self.horizontalLayout_29.addWidget(self.comboBox_basic_heatmap_top_by) + self.checkBox_basic_heatmap_top_filtered = QtWidgets.QCheckBox(self.tab_13) + self.checkBox_basic_heatmap_top_filtered.setObjectName("checkBox_basic_heatmap_top_filtered") + self.horizontalLayout_29.addWidget(self.checkBox_basic_heatmap_top_filtered) + self.gridLayout_23.addLayout(self.horizontalLayout_29, 6, 1, 1, 2) + self.pushButton_basic_heatmap_add_top = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_add_top.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_add.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_add.setObjectName("pushButton_basic_heatmap_add") - self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add, 5, 3, 1, 1) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add_top.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_add_top.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_add_top.setObjectName("pushButton_basic_heatmap_add_top") + self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add_top, 6, 3, 1, 1) + self.line_12 = QtWidgets.QFrame(self.tab_13) + self.line_12.setFrameShape(QtWidgets.QFrame.HLine) + self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_12.setObjectName("line_12") + self.gridLayout_23.addWidget(self.line_12, 4, 0, 1, 4) + self.radioButton_basic_heatmap_group = QtWidgets.QRadioButton(self.tab_13) + self.radioButton_basic_heatmap_group.setChecked(True) + self.radioButton_basic_heatmap_group.setObjectName("radioButton_basic_heatmap_group") + self.gridLayout_23.addWidget(self.radioButton_basic_heatmap_group, 2, 0, 1, 1) + self.comboBox_basic_heatmap_selection_list = QtWidgets.QComboBox(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_selection_list.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_heatmap_selection_list.setSizePolicy(sizePolicy) + self.comboBox_basic_heatmap_selection_list.setObjectName("comboBox_basic_heatmap_selection_list") + self.gridLayout_23.addWidget(self.comboBox_basic_heatmap_selection_list, 5, 1, 1, 2) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.pushButton_basic_heatmap_drop_item = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_drop_item.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_drop_item.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_drop_item.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_drop_item.setObjectName("pushButton_basic_heatmap_drop_item") + self.verticalLayout.addWidget(self.pushButton_basic_heatmap_drop_item) + self.pushButton_basic_heatmap_clean_list = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_clean_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_clean_list.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_clean_list.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_clean_list.setObjectName("pushButton_basic_heatmap_clean_list") + self.verticalLayout.addWidget(self.pushButton_basic_heatmap_clean_list) + self.pushButton_basic_heatmap_add_a_list = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_add_a_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add_a_list.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_add_a_list.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_add_a_list.setObjectName("pushButton_basic_heatmap_add_a_list") + self.verticalLayout.addWidget(self.pushButton_basic_heatmap_add_a_list) + self.gridLayout_23.addLayout(self.verticalLayout, 7, 0, 2, 1) self.groupBox_basic_heatmap_plot_settings = QtWidgets.QGroupBox(self.tab_13) self.groupBox_basic_heatmap_plot_settings.setMaximumSize(QtCore.QSize(16777215, 300)) self.groupBox_basic_heatmap_plot_settings.setObjectName("groupBox_basic_heatmap_plot_settings") @@ -1457,7 +1558,7 @@ def setupUi(self, metaX_main): self.scrollArea_2.setWidgetResizable(True) self.scrollArea_2.setObjectName("scrollArea_2") self.scrollAreaWidgetContents_2 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 621, 152)) + self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 885, 170)) self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2") self.gridLayout_50 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_2) self.gridLayout_50.setObjectName("gridLayout_50") @@ -1572,6 +1673,11 @@ def setupUi(self, metaX_main): self.checkBox_basic_hetatmap_row_cluster.setObjectName("checkBox_basic_hetatmap_row_cluster") self.gridLayout_70.addWidget(self.checkBox_basic_hetatmap_row_cluster, 3, 2, 1, 1) self.label_183 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_183.sizePolicy().hasHeightForWidth()) + self.label_183.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setBold(True) font.setWeight(75) @@ -1736,136 +1842,113 @@ def setupUi(self, metaX_main): self.checkBox_basic_bar_show_legend.setObjectName("checkBox_basic_bar_show_legend") self.horizontalLayout_104.addWidget(self.checkBox_basic_bar_show_legend) self.gridLayout_70.addLayout(self.horizontalLayout_104, 4, 1, 1, 1) - self.gridLayout_50.addLayout(self.gridLayout_70, 0, 0, 1, 1) - self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2) - self.gridLayout_41.addWidget(self.scrollArea_2, 0, 0, 1, 1) - self.gridLayout_23.addWidget(self.groupBox_basic_heatmap_plot_settings, 11, 0, 1, 4) - self.label_34 = QtWidgets.QLabel(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + self.horizontalLayout_110 = QtWidgets.QHBoxLayout() + self.horizontalLayout_110.setObjectName("horizontalLayout_110") + self.label_heatmap_upset = QtWidgets.QLabel(self.scrollAreaWidgetContents_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_34.sizePolicy().hasHeightForWidth()) - self.label_34.setSizePolicy(sizePolicy) - self.label_34.setObjectName("label_34") - self.gridLayout_23.addWidget(self.label_34, 6, 0, 1, 1) - self.pushButton_basic_heatmap_add_top = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_add_top.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.label_heatmap_upset.sizePolicy().hasHeightForWidth()) + self.label_heatmap_upset.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.label_heatmap_upset.setFont(font) + self.label_heatmap_upset.setObjectName("label_heatmap_upset") + self.horizontalLayout_110.addWidget(self.label_heatmap_upset) + self.label_211 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add_top.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_add_top.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_add_top.setObjectName("pushButton_basic_heatmap_add_top") - self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add_top, 6, 3, 1, 1) - self.verticalLayout = QtWidgets.QVBoxLayout() - self.verticalLayout.setObjectName("verticalLayout") - self.pushButton_basic_heatmap_drop_item = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_drop_item.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.label_211.sizePolicy().hasHeightForWidth()) + self.label_211.setSizePolicy(sizePolicy) + self.label_211.setObjectName("label_211") + self.horizontalLayout_110.addWidget(self.label_211) + self.spinBox_basic_heatmap_plot_upset_min_subset = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_drop_item.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_drop_item.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_drop_item.setObjectName("pushButton_basic_heatmap_drop_item") - self.verticalLayout.addWidget(self.pushButton_basic_heatmap_drop_item) - self.pushButton_basic_heatmap_clean_list = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_clean_list.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.spinBox_basic_heatmap_plot_upset_min_subset.sizePolicy().hasHeightForWidth()) + self.spinBox_basic_heatmap_plot_upset_min_subset.setSizePolicy(sizePolicy) + self.spinBox_basic_heatmap_plot_upset_min_subset.setMinimum(0) + self.spinBox_basic_heatmap_plot_upset_min_subset.setMaximum(99999) + self.spinBox_basic_heatmap_plot_upset_min_subset.setSingleStep(1) + self.spinBox_basic_heatmap_plot_upset_min_subset.setProperty("value", 1) + self.spinBox_basic_heatmap_plot_upset_min_subset.setObjectName("spinBox_basic_heatmap_plot_upset_min_subset") + self.horizontalLayout_110.addWidget(self.spinBox_basic_heatmap_plot_upset_min_subset) + self.label_212 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_clean_list.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_clean_list.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_clean_list.setObjectName("pushButton_basic_heatmap_clean_list") - self.verticalLayout.addWidget(self.pushButton_basic_heatmap_clean_list) - self.pushButton_basic_heatmap_add_a_list = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_add_a_list.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.label_212.sizePolicy().hasHeightForWidth()) + self.label_212.setSizePolicy(sizePolicy) + self.label_212.setObjectName("label_212") + self.horizontalLayout_110.addWidget(self.label_212) + self.spinBox_basic_heatmap_plot_upset_max_rank = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add_a_list.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_add_a_list.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_add_a_list.setObjectName("pushButton_basic_heatmap_add_a_list") - self.verticalLayout.addWidget(self.pushButton_basic_heatmap_add_a_list) - self.gridLayout_23.addLayout(self.verticalLayout, 7, 0, 2, 1) - self.comboBox_basic_heatmap_selection_list = QtWidgets.QComboBox(self.tab_13) + sizePolicy.setHeightForWidth(self.spinBox_basic_heatmap_plot_upset_max_rank.sizePolicy().hasHeightForWidth()) + self.spinBox_basic_heatmap_plot_upset_max_rank.setSizePolicy(sizePolicy) + self.spinBox_basic_heatmap_plot_upset_max_rank.setMaximum(999) + self.spinBox_basic_heatmap_plot_upset_max_rank.setObjectName("spinBox_basic_heatmap_plot_upset_max_rank") + self.horizontalLayout_110.addWidget(self.spinBox_basic_heatmap_plot_upset_max_rank) + self.checkBox_basic_heatmap_plot_upset_show_percentage = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_2) + self.checkBox_basic_heatmap_plot_upset_show_percentage.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_selection_list.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_heatmap_selection_list.setSizePolicy(sizePolicy) - self.comboBox_basic_heatmap_selection_list.setObjectName("comboBox_basic_heatmap_selection_list") - self.gridLayout_23.addWidget(self.comboBox_basic_heatmap_selection_list, 5, 1, 1, 2) + sizePolicy.setHeightForWidth(self.checkBox_basic_heatmap_plot_upset_show_percentage.sizePolicy().hasHeightForWidth()) + self.checkBox_basic_heatmap_plot_upset_show_percentage.setSizePolicy(sizePolicy) + self.checkBox_basic_heatmap_plot_upset_show_percentage.setObjectName("checkBox_basic_heatmap_plot_upset_show_percentage") + self.horizontalLayout_110.addWidget(self.checkBox_basic_heatmap_plot_upset_show_percentage) + self.gridLayout_70.addLayout(self.horizontalLayout_110, 5, 2, 1, 2) + self.gridLayout_50.addLayout(self.gridLayout_70, 0, 0, 1, 1) + self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2) + self.gridLayout_41.addWidget(self.scrollArea_2, 0, 0, 1, 1) + self.gridLayout_23.addWidget(self.groupBox_basic_heatmap_plot_settings, 11, 0, 1, 4) self.verticalLayout_basic_heatmap_group = QtWidgets.QVBoxLayout() self.verticalLayout_basic_heatmap_group.setObjectName("verticalLayout_basic_heatmap_group") self.gridLayout_23.addLayout(self.verticalLayout_basic_heatmap_group, 2, 2, 1, 2) - self.horizontalLayout_29 = QtWidgets.QHBoxLayout() - self.horizontalLayout_29.setObjectName("horizontalLayout_29") - self.label_67 = QtWidgets.QLabel(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_67.sizePolicy().hasHeightForWidth()) - self.label_67.setSizePolicy(sizePolicy) - self.label_67.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.label_67.setObjectName("label_67") - self.horizontalLayout_29.addWidget(self.label_67) - self.spinBox_basic_heatmap_top_num = QtWidgets.QSpinBox(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.spinBox_basic_heatmap_top_num.sizePolicy().hasHeightForWidth()) - self.spinBox_basic_heatmap_top_num.setSizePolicy(sizePolicy) - self.spinBox_basic_heatmap_top_num.setMinimum(1) - self.spinBox_basic_heatmap_top_num.setMaximum(99999) - self.spinBox_basic_heatmap_top_num.setProperty("value", 10) - self.spinBox_basic_heatmap_top_num.setObjectName("spinBox_basic_heatmap_top_num") - self.horizontalLayout_29.addWidget(self.spinBox_basic_heatmap_top_num) - self.label_68 = QtWidgets.QLabel(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + self.pushButton_basic_heatmap_add = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_add.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_68.sizePolicy().hasHeightForWidth()) - self.label_68.setSizePolicy(sizePolicy) - self.label_68.setObjectName("label_68") - self.horizontalLayout_29.addWidget(self.label_68) - self.comboBox_basic_heatmap_top_by = QtWidgets.QComboBox(self.tab_13) - self.comboBox_basic_heatmap_top_by.setObjectName("comboBox_basic_heatmap_top_by") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.comboBox_basic_heatmap_top_by.addItem("") - self.horizontalLayout_29.addWidget(self.comboBox_basic_heatmap_top_by) - self.checkBox_basic_heatmap_top_filtered = QtWidgets.QCheckBox(self.tab_13) - self.checkBox_basic_heatmap_top_filtered.setObjectName("checkBox_basic_heatmap_top_filtered") - self.horizontalLayout_29.addWidget(self.checkBox_basic_heatmap_top_filtered) - self.gridLayout_23.addLayout(self.horizontalLayout_29, 6, 1, 1, 2) - self.gridLayout_39 = QtWidgets.QGridLayout() - self.gridLayout_39.setObjectName("gridLayout_39") - self.pushButton_basic_heatmap_get_table = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_get_table.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_add.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_add.setObjectName("pushButton_basic_heatmap_add") + self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add, 5, 3, 1, 1) + self.checkBox = QtWidgets.QCheckBox(self.tab_13) + self.checkBox.setObjectName("checkBox") + self.gridLayout_23.addWidget(self.checkBox, 10, 0, 1, 2) + self.label_34 = QtWidgets.QLabel(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_get_table.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_get_table.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_get_table.setObjectName("pushButton_basic_heatmap_get_table") - self.gridLayout_39.addWidget(self.pushButton_basic_heatmap_get_table, 2, 1, 1, 1) - self.pushButton_basic_heatmap_sankey_plot = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_sankey_plot.setEnabled(False) + sizePolicy.setHeightForWidth(self.label_34.sizePolicy().hasHeightForWidth()) + self.label_34.setSizePolicy(sizePolicy) + self.label_34.setObjectName("label_34") + self.gridLayout_23.addWidget(self.label_34, 6, 0, 1, 1) + self.radioButton_basic_heatmap_sample = QtWidgets.QRadioButton(self.tab_13) + self.radioButton_basic_heatmap_sample.setObjectName("radioButton_basic_heatmap_sample") + self.gridLayout_23.addWidget(self.radioButton_basic_heatmap_sample, 3, 0, 1, 1) + self.verticalLayout_basic_heatmap_sample = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_heatmap_sample.setObjectName("verticalLayout_basic_heatmap_sample") + self.gridLayout_23.addLayout(self.verticalLayout_basic_heatmap_sample, 3, 1, 1, 3) + self.horizontalLayout_107 = QtWidgets.QHBoxLayout() + self.horizontalLayout_107.setObjectName("horizontalLayout_107") + self.pushButton_basic_heatmap_plot = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_plot.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_sankey_plot.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_sankey_plot.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_sankey_plot.setObjectName("pushButton_basic_heatmap_sankey_plot") - self.gridLayout_39.addWidget(self.pushButton_basic_heatmap_sankey_plot, 2, 0, 1, 1) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_plot.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_plot.setAutoDefault(False) + self.pushButton_basic_heatmap_plot.setFlat(False) + self.pushButton_basic_heatmap_plot.setObjectName("pushButton_basic_heatmap_plot") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_plot) self.pushButton_basic_bar_plot = QtWidgets.QPushButton(self.tab_13) self.pushButton_basic_bar_plot.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) @@ -1874,41 +1957,35 @@ def setupUi(self, metaX_main): sizePolicy.setHeightForWidth(self.pushButton_basic_bar_plot.sizePolicy().hasHeightForWidth()) self.pushButton_basic_bar_plot.setSizePolicy(sizePolicy) self.pushButton_basic_bar_plot.setObjectName("pushButton_basic_bar_plot") - self.gridLayout_39.addWidget(self.pushButton_basic_bar_plot, 1, 1, 1, 1) - self.pushButton_basic_heatmap_plot = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_plot.setEnabled(False) + self.horizontalLayout_107.addWidget(self.pushButton_basic_bar_plot) + self.pushButton_basic_heatmap_plot_upset = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_plot_upset.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_plot.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_plot.setObjectName("pushButton_basic_heatmap_plot") - self.gridLayout_39.addWidget(self.pushButton_basic_heatmap_plot, 1, 0, 1, 1) - self.gridLayout_23.addLayout(self.gridLayout_39, 9, 0, 1, 4) - self.verticalLayout_basic_heatmap_sample = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_heatmap_sample.setObjectName("verticalLayout_basic_heatmap_sample") - self.gridLayout_23.addLayout(self.verticalLayout_basic_heatmap_sample, 3, 1, 1, 3) - self.radioButton_basic_heatmap_sample = QtWidgets.QRadioButton(self.tab_13) - self.radioButton_basic_heatmap_sample.setObjectName("radioButton_basic_heatmap_sample") - self.gridLayout_23.addWidget(self.radioButton_basic_heatmap_sample, 3, 0, 1, 1) - self.line_12 = QtWidgets.QFrame(self.tab_13) - self.line_12.setFrameShape(QtWidgets.QFrame.HLine) - self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_12.setObjectName("line_12") - self.gridLayout_23.addWidget(self.line_12, 4, 0, 1, 4) - self.line_8 = QtWidgets.QFrame(self.tab_13) - self.line_8.setFrameShape(QtWidgets.QFrame.HLine) - self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_8.setObjectName("line_8") - self.gridLayout_23.addWidget(self.line_8, 1, 0, 1, 4) - self.listWidget_list_for_ploting = QtWidgets.QListWidget(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot_upset.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_plot_upset.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_plot_upset.setObjectName("pushButton_basic_heatmap_plot_upset") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_plot_upset) + self.pushButton_basic_heatmap_sankey_plot = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_sankey_plot.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.listWidget_list_for_ploting.sizePolicy().hasHeightForWidth()) - self.listWidget_list_for_ploting.setSizePolicy(sizePolicy) - self.listWidget_list_for_ploting.setObjectName("listWidget_list_for_ploting") - self.gridLayout_23.addWidget(self.listWidget_list_for_ploting, 7, 1, 2, 3) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_sankey_plot.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_sankey_plot.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_sankey_plot.setObjectName("pushButton_basic_heatmap_sankey_plot") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_sankey_plot) + self.pushButton_basic_heatmap_get_table = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_get_table.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_get_table.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_get_table.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_get_table.setObjectName("pushButton_basic_heatmap_get_table") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_get_table) + self.gridLayout_23.addLayout(self.horizontalLayout_107, 9, 0, 1, 4) self.tabWidget_4.addTab(self.tab_13, "") self.tab_10 = QtWidgets.QWidget() self.tab_10.setObjectName("tab_10") @@ -2013,7 +2090,7 @@ def setupUi(self, metaX_main): self.scrollArea_cross_heatmap_settings.setWidgetResizable(True) self.scrollArea_cross_heatmap_settings.setObjectName("scrollArea_cross_heatmap_settings") self.scrollAreaWidgetContents_3 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_3.setGeometry(QtCore.QRect(0, 0, 872, 128)) + self.scrollAreaWidgetContents_3.setGeometry(QtCore.QRect(0, 0, 889, 128)) self.scrollAreaWidgetContents_3.setObjectName("scrollAreaWidgetContents_3") self.gridLayout_38 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_3) self.gridLayout_38.setObjectName("gridLayout_38") @@ -2948,7 +3025,7 @@ def setupUi(self, metaX_main): self.scrollArea_3.setWidgetResizable(True) self.scrollArea_3.setObjectName("scrollArea_3") self.scrollAreaWidgetContents_4 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 865, 95)) + self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 865, 121)) self.scrollAreaWidgetContents_4.setObjectName("scrollAreaWidgetContents_4") self.gridLayout_68 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_4) self.gridLayout_68.setObjectName("gridLayout_68") @@ -3894,7 +3971,7 @@ def setupUi(self, metaX_main): self.scrollArea_5.setWidgetResizable(True) self.scrollArea_5.setObjectName("scrollArea_5") self.scrollAreaWidgetContents_6 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 885, 92)) + self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 885, 123)) self.scrollAreaWidgetContents_6.setObjectName("scrollAreaWidgetContents_6") self.gridLayout_57 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_6) self.gridLayout_57.setObjectName("gridLayout_57") @@ -4903,7 +4980,7 @@ def setupUi(self, metaX_main): self.scrollArea_7.setWidgetResizable(True) self.scrollArea_7.setObjectName("scrollArea_7") self.scrollAreaWidgetContents_8 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_8.setGeometry(QtCore.QRect(0, 0, 885, 128)) + self.scrollAreaWidgetContents_8.setGeometry(QtCore.QRect(0, 0, 885, 158)) self.scrollAreaWidgetContents_8.setObjectName("scrollAreaWidgetContents_8") self.gridLayout_66 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_8) self.gridLayout_66.setObjectName("gridLayout_66") @@ -5472,7 +5549,7 @@ def setupUi(self, metaX_main): self.statusbar.setObjectName("statusbar") metaX_main.setStatusBar(self.statusbar) self.menuBar = QtWidgets.QMenuBar(metaX_main) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 991, 23)) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 991, 21)) self.menuBar.setObjectName("menuBar") self.menuTools = QtWidgets.QMenu(self.menuBar) self.menuTools.setObjectName("menuTools") @@ -5540,7 +5617,7 @@ def setupUi(self, metaX_main): self.stackedWidget.setCurrentIndex(0) self.tabWidget_TaxaFuncAnalyzer.setCurrentIndex(3) self.toolBox_2.setCurrentIndex(0) - self.tabWidget_4.setCurrentIndex(0) + self.tabWidget_4.setCurrentIndex(1) self.tabWidget_3.setCurrentIndex(3) self.tabWidget.setCurrentIndex(1) self.tabWidget_2.setCurrentIndex(1) @@ -5818,6 +5895,7 @@ def retranslateUi(self, metaX_main): self.comboBox_sub_meta_pca.setItemText(0, _translate("metaX_main", "None")) self.checkBox_show_basic_plot_settings.setText(_translate("metaX_main", "Show Plotting Parameter")) self.tabWidget_4.setTabText(self.tabWidget_4.indexOf(self.tab_12), _translate("metaX_main", "Basic Plot")) + self.label_32.setText(_translate("metaX_main", "Select for plotting")) self.label_80.setText(_translate("metaX_main", "Table")) self.comboBox_basic_table.setItemText(0, _translate("metaX_main", "Taxa")) self.comboBox_basic_table.setItemText(1, _translate("metaX_main", "Functions")) @@ -5826,12 +5904,28 @@ def retranslateUi(self, metaX_main): self.label_144.setText(_translate("metaX_main", "Meta")) self.label_164.setText(_translate("metaX_main", "Sub Meta ")) self.comboBox_3dbar_sub_meta.setToolTip(_translate("metaX_main", "Sub Meta for Bar Plot")) - self.label_32.setText(_translate("metaX_main", "Select for plotting")) - self.checkBox.setText(_translate("metaX_main", "Show Plotting Parameter")) - self.radioButton_basic_heatmap_group.setText(_translate("metaX_main", "Group")) self.checkBox_basic_heatmap_in_condition.setText(_translate("metaX_main", "In Condition")) - self.pushButton_basic_heatmap_add.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) - self.pushButton_basic_heatmap_add.setText(_translate("metaX_main", "Add to List")) + self.label_67.setText(_translate("metaX_main", "Select Top")) + self.label_68.setText(_translate("metaX_main", "Sort by")) + self.comboBox_basic_heatmap_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) + self.comboBox_basic_heatmap_top_by.setItemText(1, _translate("metaX_main", "Frequency in Samples")) + self.comboBox_basic_heatmap_top_by.setItemText(2, _translate("metaX_main", "Number of links")) + self.comboBox_basic_heatmap_top_by.setItemText(3, _translate("metaX_main", "ANOVA(p-value)")) + self.comboBox_basic_heatmap_top_by.setItemText(4, _translate("metaX_main", "ANOVA(f-statistic)")) + self.comboBox_basic_heatmap_top_by.setItemText(5, _translate("metaX_main", "T-TEST(p-value)")) + self.comboBox_basic_heatmap_top_by.setItemText(6, _translate("metaX_main", "T-TEST(t-statistic)")) + self.comboBox_basic_heatmap_top_by.setItemText(7, _translate("metaX_main", "Deseq2-up(p-value)")) + self.comboBox_basic_heatmap_top_by.setItemText(8, _translate("metaX_main", "Deseq2-down(p-value)")) + self.comboBox_basic_heatmap_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) + self.comboBox_basic_heatmap_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) + self.checkBox_basic_heatmap_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) + self.pushButton_basic_heatmap_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) + self.pushButton_basic_heatmap_add_top.setText(_translate("metaX_main", "Add Top to List")) + self.radioButton_basic_heatmap_group.setText(_translate("metaX_main", "Group")) + self.pushButton_basic_heatmap_drop_item.setText(_translate("metaX_main", "Drop Item")) + self.pushButton_basic_heatmap_clean_list.setText(_translate("metaX_main", "Clean List")) + self.pushButton_basic_heatmap_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) + self.pushButton_basic_heatmap_add_a_list.setText(_translate("metaX_main", "Add A List")) self.groupBox_basic_heatmap_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) self.label_35.setText(_translate("metaX_main", "Width")) self.label_33.setText(_translate("metaX_main", "Height")) @@ -5863,32 +5957,20 @@ def retranslateUi(self, metaX_main): self.checkBox_basic_bar_3d_for_sub_meta.setText(_translate("metaX_main", "3D for Sub Meta")) self.checkBox_basic_bar_interactive_js.setText(_translate("metaX_main", "Interactive Bar")) self.checkBox_basic_bar_show_legend.setText(_translate("metaX_main", "Show Legend")) + self.label_heatmap_upset.setText(_translate("metaX_main", "UpSet")) + self.label_211.setText(_translate("metaX_main", "Min Subset Size")) + self.label_212.setText(_translate("metaX_main", "Max Rank")) + self.checkBox_basic_heatmap_plot_upset_show_percentage.setText(_translate("metaX_main", "Show Percentages")) + self.pushButton_basic_heatmap_add.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) + self.pushButton_basic_heatmap_add.setText(_translate("metaX_main", "Add to List")) + self.checkBox.setText(_translate("metaX_main", "Show Plotting Parameter")) self.label_34.setText(_translate("metaX_main", "List for Plotting")) - self.pushButton_basic_heatmap_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) - self.pushButton_basic_heatmap_add_top.setText(_translate("metaX_main", "Add Top to List")) - self.pushButton_basic_heatmap_drop_item.setText(_translate("metaX_main", "Drop Item")) - self.pushButton_basic_heatmap_clean_list.setText(_translate("metaX_main", "Clean List")) - self.pushButton_basic_heatmap_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) - self.pushButton_basic_heatmap_add_a_list.setText(_translate("metaX_main", "Add A List")) - self.label_67.setText(_translate("metaX_main", "Select Top")) - self.label_68.setText(_translate("metaX_main", "Sort by")) - self.comboBox_basic_heatmap_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) - self.comboBox_basic_heatmap_top_by.setItemText(1, _translate("metaX_main", "Frequency in Samples")) - self.comboBox_basic_heatmap_top_by.setItemText(2, _translate("metaX_main", "Number of links")) - self.comboBox_basic_heatmap_top_by.setItemText(3, _translate("metaX_main", "ANOVA(p-value)")) - self.comboBox_basic_heatmap_top_by.setItemText(4, _translate("metaX_main", "ANOVA(f-statistic)")) - self.comboBox_basic_heatmap_top_by.setItemText(5, _translate("metaX_main", "T-TEST(p-value)")) - self.comboBox_basic_heatmap_top_by.setItemText(6, _translate("metaX_main", "T-TEST(t-statistic)")) - self.comboBox_basic_heatmap_top_by.setItemText(7, _translate("metaX_main", "Deseq2-up(p-value)")) - self.comboBox_basic_heatmap_top_by.setItemText(8, _translate("metaX_main", "Deseq2-down(p-value)")) - self.comboBox_basic_heatmap_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) - self.comboBox_basic_heatmap_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) - self.checkBox_basic_heatmap_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) - self.pushButton_basic_heatmap_get_table.setText(_translate("metaX_main", "Get Table")) - self.pushButton_basic_heatmap_sankey_plot.setText(_translate("metaX_main", "Plot Sankey")) - self.pushButton_basic_bar_plot.setText(_translate("metaX_main", "Plot Bar")) - self.pushButton_basic_heatmap_plot.setText(_translate("metaX_main", "Plot Heatmap")) self.radioButton_basic_heatmap_sample.setText(_translate("metaX_main", "Sample")) + self.pushButton_basic_heatmap_plot.setText(_translate("metaX_main", "Plot Heatmap")) + self.pushButton_basic_bar_plot.setText(_translate("metaX_main", "Plot Bar")) + self.pushButton_basic_heatmap_plot_upset.setText(_translate("metaX_main", "UpSet")) + self.pushButton_basic_heatmap_sankey_plot.setText(_translate("metaX_main", "Plot Sankey")) + self.pushButton_basic_heatmap_get_table.setText(_translate("metaX_main", "Get Table")) self.tabWidget_4.setTabText(self.tabWidget_4.indexOf(self.tab_13), _translate("metaX_main", "Heatmap and Bar")) self.label_81.setText(_translate("metaX_main", "Peptide")) self.pushButton_basic_peptide_query.setText(_translate("metaX_main", "Query")) diff --git a/metax/taxafunc_ploter/basic_plot.py b/metax/taxafunc_ploter/basic_plot.py index 9105f2b..b64aa9f 100644 --- a/metax/taxafunc_ploter/basic_plot.py +++ b/metax/taxafunc_ploter/basic_plot.py @@ -649,8 +649,11 @@ def plot_upset(self, df, title_name='Table', width=12, height=6, font_size=10, # Plot UpSet fig = plt.figure(figsize=(width, height)) plt.rcParams.update({'font.size': font_size}) - upset_plot(upset_data, fig = fig, show_counts=show_label, show_percentages=show_percentages if show_label else False, - element_size=None, min_subset_size=min_subset_size, max_subset_rank=max_subset_rank if max_subset_rank != 0 else None) + upset_plot(upset_data, fig = fig, show_counts=show_label, + show_percentages=show_percentages if show_label else False, + element_size=None, + min_subset_size=min_subset_size if min_subset_size != 0 else None, + max_subset_rank=max_subset_rank if max_subset_rank != 0 else None) plt.suptitle(f"UpSet of {title_name}", fontsize=font_size + 2, fontweight='bold') plt.tight_layout() diff --git a/metax/utils/version.py b/metax/utils/version.py index 9b7a9f6..6bac9c5 100644 --- a/metax/utils/version.py +++ b/metax/utils/version.py @@ -1,2 +1,2 @@ -__version__ = '1.119.0' +__version__ = '1.119.1' API_version = '4' \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index d051cb8..9af082e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "MetaXTools" -version = "1.118.4" +version = "1.119.1" description = "MetaXTools is a novel tool for linking peptide sequences with taxonomic and functional information in Metaproteomics." readme = "README_PyPi.md" license = { text = "NorthOmics" } From c20a65310f64f2b335194579c8caf4bfcd0bcd46 Mon Sep 17 00:00:00 2001 From: Qing <44231502+byemaxx@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:22:43 -0500 Subject: [PATCH 4/6] Change the layout of selection group or sample group in the basic plot part to make the layout more clear. --- Docs/ChangeLog.md | 6 + metax/gui/main_gui.py | 234 +- metax/gui/metax_gui/main_window.ui | 3863 ++++++++++++------------- metax/gui/metax_gui/ui_main_window.py | 2454 ++++++++-------- metax/utils/version.py | 2 +- pyproject.toml | 2 +- 6 files changed, 3241 insertions(+), 3320 deletions(-) diff --git a/Docs/ChangeLog.md b/Docs/ChangeLog.md index 6fc1a41..840551a 100644 --- a/Docs/ChangeLog.md +++ b/Docs/ChangeLog.md @@ -1,3 +1,9 @@ +# Version: 1.119.2 +## Date: 2024-12-3 +### Changes: +- Change: Change the layout of selection group or sample group in the basic plot part to make the layout more clear. + + # Version: 1.119.1 ## Date: 2024-11-29 ### Changes: diff --git a/metax/gui/main_gui.py b/metax/gui/main_gui.py index f51da5d..8b4c8a3 100644 --- a/metax/gui/main_gui.py +++ b/metax/gui/main_gui.py @@ -39,7 +39,7 @@ from PyQt5 import QtWidgets, QtCore from PyQt5.QtWidgets import QFileDialog, QMessageBox, QTableWidgetItem from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem,QPushButton -from PyQt5.QtWidgets import QDialog, QVBoxLayout, QTextBrowser +from PyQt5.QtWidgets import QDialog, QVBoxLayout, QTextBrowser, QSizePolicy, QLayout from PyQt5.QtGui import QIcon, QCursor from PyQt5.QtCore import Qt, QTimer, QDir, QSettings @@ -397,6 +397,12 @@ def __init__(self, MainWindow): self.pushButton_basic_heatmap_add_a_list.clicked.connect(self.add_a_list_to_heatmap) self.comboBox_basic_heatmap_selection_list.add_all_searched.connect(self.add_all_searched_basic_heatmap_to_list) self.comboBox_basic_table.currentIndexChanged.connect(self.change_event_comboBox_basic_heatmap_table) + self.comboBox_basic_pca_group_sample.currentIndexChanged.connect(lambda:self.change_event_comboBox_group_or_sample('basic_pca_group')) + self.comboBox_basic_heatmap_group_or_sample.currentIndexChanged.connect(lambda:self.change_event_comboBox_group_or_sample('basic_heatmap_group')) + self.comboBox_co_expr_group_sample.currentIndexChanged.connect(lambda:self.change_event_comboBox_group_or_sample('co_expr_group')) + self.comboBox_trends_group_sample.currentIndexChanged.connect(lambda:self.change_event_comboBox_group_or_sample('trends_group')) + self.comboBox_tflink_group_sample.currentIndexChanged.connect(lambda:self.change_event_comboBox_group_or_sample('tflink_group')) + self.comboBox_radioButton_network_group_sample.currentIndexChanged.connect(lambda:self.change_event_comboBox_group_or_sample('tfnet_group')) ### Peptide Qeruy self.pushButton_basic_peptide_query.clicked.connect(self.peptide_query) @@ -639,6 +645,78 @@ def change_event_comboBox_basic_heatmap_table(self): self.pushButton_basic_heatmap_sankey_plot.setEnabled(True) else: self.pushButton_basic_heatmap_sankey_plot.setEnabled(False) + + + def hide_or_show_all_items_in_layout(self, layout, hide: bool): + """ + Recursively hide or show all items in the given layout, including nested layouts. + + Args: + layout (QLayout): The layout to process. + hide (bool): True to hide all items, False to show all items. + """ + # check if the layout is a QLayout + if not isinstance(layout, QLayout): + # set the visibility of the widget + layout.setVisible(not hide) + else: + # iterate over all items in the layout + for i in range(layout.count()): + item = layout.itemAt(i) + if item is not None: + widget = item.widget() + if widget is not None: + widget.setVisible(not hide) + elif isinstance(item, QLayout): + # If the item is a nested layout, recurse into it + self.hide_or_show_all_items_in_layout(item, hide) + + + + def change_event_comboBox_group_or_sample(self, position): + position_dict = { + 'basic_pca_group': {"current_text": 'comboBox_basic_pca_group_sample', + "group_layout": ['horizontalLayout_111', 'verticalLayout_basic_pca_group'], + "sample_layout": ['verticalLayout_basic_pca_sample']}, + 'basic_heatmap_group': {"current_text": 'comboBox_basic_heatmap_group_or_sample', + "group_layout": ['verticalLayout_basic_heatmap_group', 'horizontalLayout_112'], + "sample_layout": ['verticalLayout_basic_heatmap_sample']}, + 'co_expr_group': {"current_text": 'comboBox_co_expr_group_sample', + "group_layout": ['gridLayout_co_expr_group', 'horizontalLayout_42'], + "sample_layout": ['gridLayout_co_expr_sample']}, + 'trends_group': {"current_text": 'comboBox_trends_group_sample', + "group_layout": ['horizontalLayout_45', 'verticalLayout_trends_group'], + "sample_layout": ['verticalLayout_trends_sample']}, + 'tflink_group': {"current_text": 'comboBox_tflink_group_sample', + "group_layout": ['horizontalLayout_78', 'gridLayout_tflink_group'], + "sample_layout": ['gridLayout_tflink_sample']}, + 'tfnet_group': {"current_text": 'comboBox_radioButton_network_group_sample', + "group_layout": ['horizontalLayout_55', 'gridLayout_network_group'], + "sample_layout": ['gridLayout_network_sample']}, + } + + + # current_text = self.comboBox_basic_heatmap_group_or_sample.currentText() + current_combo = position_dict[position]["current_text"] + current_text = getattr(self, current_combo).currentText() + if current_text == 'Group': + # hide all in sample_layout + for layout in position_dict[position]["sample_layout"]: + self.hide_or_show_all_items_in_layout(getattr(self, layout), hide=True) + # show all in group_layout + for layout in position_dict[position]["group_layout"]: + self.hide_or_show_all_items_in_layout(getattr(self, layout), hide=False) + + self.update_in_condition_layout_state() + else: + # hide all in group_layout + for layout in position_dict[position]["group_layout"]: + self.hide_or_show_all_items_in_layout(getattr(self, layout), hide=True) + # show all in sample_layout + for layout in position_dict[position]["sample_layout"]: + self.hide_or_show_all_items_in_layout(getattr(self, layout), hide=False) + + def change_event_checkBox_comparing_group_control_in_condition(self): if self.checkBox_comparing_group_control_in_condition.isChecked(): @@ -2864,62 +2942,96 @@ def update_basic_heatmap_combobox(self, type_list = 'taxa'): self.comboBox_basic_heatmap_selection_list.addItem(type_dict[type_list][0]) self.comboBox_basic_heatmap_selection_list.addItems(type_dict[type_list][1]) self.add_basic_heatmap_list() - + + def update_in_condition_layout_state(self,): + signal_slot_dict = { + "checkBox_basic_in_condtion": "horizontalLayout_36", + "checkBox_basic_heatmap_in_condition": "horizontalLayout_26", + "checkBox_ttest_in_condition": "horizontalLayout_70", + "checkBox_anova_in_condition": "horizontalLayout_71", + "checkBox_group_control_in_condition": "horizontalLayout_73", + "checkBox_deseq2_comparing_in_condition": "horizontalLayout_75", + "checkBox_tukey_in_condition": "horizontalLayout_72", + "checkBox_co_expression_in_condition": "horizontalLayout_74", + "checkBox_trends_in_condition": "horizontalLayout_76", + "checkBox_tflink_in_condition": "horizontalLayout_77", + "checkBox_tfnetwork_in_condition": "horizontalLayout_80", + } + for checkbox_name, layout_name in signal_slot_dict.items(): + checkbox = getattr(self, checkbox_name) + self.hide_or_show_all_items_in_layout(getattr(self, layout_name), not checkbox.isChecked()) + + def update_in_condition_combobox(self): - ''' - Update condition_group comboBox to enable multi condition selection - ''' + """ + Update condition_group to enable multi-condition selection based on QCheckBox state. + """ + signal_slot_dict = { + "checkBox_basic_in_condtion": "horizontalLayout_36", + "checkBox_basic_heatmap_in_condition": "horizontalLayout_26", + "checkBox_ttest_in_condition": "horizontalLayout_70", + "checkBox_anova_in_condition": "horizontalLayout_71", + "checkBox_group_control_in_condition": "horizontalLayout_73", + "checkBox_deseq2_comparing_in_condition": "horizontalLayout_75", + "checkBox_tukey_in_condition": "horizontalLayout_72", + "checkBox_co_expression_in_condition": "horizontalLayout_74", + "checkBox_trends_in_condition": "horizontalLayout_76", + "checkBox_tflink_in_condition": "horizontalLayout_77", + "checkBox_tfnetwork_in_condition": "horizontalLayout_80", + } + combobox_layout_dict = { - self.horizontalLayout_68: 'comboBox_basic_condition_group', - self.horizontalLayout_67: 'comboBox_basic_heatmap_condition_group', + self.horizontalLayout_36: 'comboBox_basic_condition_group', + self.horizontalLayout_26: 'comboBox_basic_heatmap_condition_group', self.horizontalLayout_70: 'comboBox_ttest_condition_group', self.horizontalLayout_71: 'comboBox_anova_condition_group', - self.horizontalLayout_72: 'comboBox_tukey_condition_group', self.horizontalLayout_73: 'comboBox_group_control_condition_group', - self.horizontalLayout_74: 'comboBox_co_expression_condition_group', self.horizontalLayout_75: 'comboBox_deseq2_condition_group', + self.horizontalLayout_72: 'comboBox_tukey_condition_group', + self.horizontalLayout_74: 'comboBox_co_expression_condition_group', self.horizontalLayout_76: 'comboBox_trends_condition_group', self.horizontalLayout_77: 'comboBox_tflink_condition_group', self.horizontalLayout_80: 'comboBox_tfnetwork_condition_group', } + # Iterate over layouts and replace only the target QComboBox for layout, combobox_name in combobox_layout_dict.items(): - try: - layout.itemAt(0).widget().deleteLater() - except Exception: - pass - new_combobox = CheckableComboBox() - setattr(self, combobox_name, new_combobox) - layout.addWidget(new_combobox) - # set as disabled - new_combobox.setEnabled(False) - - # reconnect the signal and slot - signnal_slot_dict = { - self.checkBox_basic_in_condtion: 'comboBox_basic_condition_group', - self.checkBox_basic_heatmap_in_condition: 'comboBox_basic_heatmap_condition_group', - self.checkBox_ttest_in_condition: 'comboBox_ttest_condition_group', - self.checkBox_anova_in_condition: 'comboBox_anova_condition_group', - self.checkBox_tukey_in_condition: 'comboBox_tukey_condition_group', - self.checkBox_group_control_in_condition: 'comboBox_group_control_condition_group', - self.checkBox_co_expression_in_condition: 'comboBox_co_expression_condition_group', - self.checkBox_deseq2_comparing_in_condition: 'comboBox_deseq2_condition_group', - self.checkBox_trends_in_condition: 'comboBox_trends_condition_group', - self.checkBox_tflink_in_condition: 'comboBox_tflink_condition_group', - self.checkBox_tfnetwork_in_condition: 'comboBox_tfnetwork_condition_group', - } + # Locate the original combobox + for i in range(layout.count()): + widget = layout.itemAt(i).widget() + if isinstance(widget, QtWidgets.QComboBox) and widget.objectName() == combobox_name: + # Replace the widget + widget.deleteLater() + new_combobox = CheckableComboBox() + new_combobox.setObjectName(combobox_name) + new_combobox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + layout.insertWidget(i, new_combobox) + setattr(self, combobox_name, new_combobox) + break + + + # Function to handle checkbox state change + def show_layout_by_checkbox(checked, layout_name): + """ + Show or hide the layout based on checkbox state. + Args: + checked (bool): True if the checkbox is checked, False otherwise. + layout_name (str): Name of the layout to show or hide. + """ + self.hide_or_show_all_items_in_layout(getattr(self, layout_name), not checked) + + # Connect each checkbox to the corresponding layout + for checkbox_name, layout_name in signal_slot_dict.items(): + checkbox = getattr(self, checkbox_name) + checkbox.toggled.connect( + lambda checked, ln=layout_name: show_layout_by_checkbox(checked, ln) + ) + + # Hide or show all items in layout based on checkbox state + self.update_in_condition_layout_state() - # when checkBox is checked, enable the comboBox - def enable_combobox_by_checkbox(checkbox, combobox_name): - if checkbox.isChecked(): - getattr(self, combobox_name).setEnabled(True) - else: - getattr(self, combobox_name).setEnabled(False) - for checkbox, combobox_name in signnal_slot_dict.items(): - checkbox.stateChanged.connect(lambda state, cb=checkbox, cmb_name=combobox_name: enable_combobox_by_checkbox(cb, cmb_name)) - def update_group_and_sample_combobox(self, meta_name = None, update_group_list = True, update_sample_list = True): if meta_name is None: @@ -2972,6 +3084,8 @@ def update_group_and_sample_combobox(self, meta_name = None, update_group_list = new_combobox = CheckableComboBox() setattr(self, combobox_name, new_combobox) # Assign to the attribute layout.addWidget(new_combobox) + # set horizontal policy as Expanding + new_combobox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) for group in group_list: new_combobox.addItem(group) if update_sample_list: @@ -2985,6 +3099,8 @@ def update_group_and_sample_combobox(self, meta_name = None, update_group_list = layout.addWidget(new_combobox) for sample in sample_list: new_combobox.addItem(sample) + # set new_combobox as invisible + new_combobox.setVisible(False) def update_func_taxa_group_to_combobox(self): @@ -3453,7 +3569,7 @@ def add_basic_heatmap_top_list(self): if self.checkBox_basic_heatmap_in_condition.isChecked() else None ) # get sample list - if self.radioButton_basic_heatmap_group.isChecked(): # select by group + if self.comboBox_basic_heatmap_group_or_sample.currentText() == 'Group': group_list = self.comboBox_basic_group.getCheckedItems() sample_list = self.get_sample_list_for_group_list_in_condition(group_list, condition=in_condition) @@ -3565,7 +3681,7 @@ def plot_basic_list(self, plot_type='heatmap'): cmap = None # get sample list - if self.radioButton_basic_heatmap_group.isChecked(): + if self.comboBox_basic_heatmap_group_or_sample.currentText() == 'Group': condition = [self.comboBox_basic_heatmap_condition_meta.currentText(), self.comboBox_basic_heatmap_condition_group.getCheckedItems()]\ if self.checkBox_basic_heatmap_in_condition.isChecked() else None @@ -3748,7 +3864,10 @@ def plot_basic_list(self, plot_type='heatmap'): plot_sample = False, sub_meta = sub_meta, rename_sample = rename_sample, show_percentages = show_percentages, min_subset_size = min_subset_size, max_subset_rank = max_subset_rank) - except IndexError: + + except (IndexError, AttributeError): + error_message = traceback.format_exc() + self.logger.write_log(f'plot_basic_info_sns error: {error_message}', 'e') QMessageBox.warning(self.MainWindow, 'Warning', 'The index is out of range! Please check the settings.') except Exception: @@ -3847,10 +3966,11 @@ def add_trends_top_list(self): ) # get sample list - if self.radioButton_trends_group.isChecked(): # select by group + # if self.radioButton_trends_group.isChecked(): # select by group + if self.comboBox_trends_group_sample.currentText() == 'Group': sample_list = self.get_sample_list_for_group_list_in_condition(group_list, condition=in_condition) - elif self.radioButton_trends_sample.isChecked(): # select by sample + elif self.comboBox_trends_group_sample.currentText() == 'Sample': selected_samples = self.comboBox_trends_sample.getCheckedItems() if selected_samples: sample_list = selected_samples @@ -4325,7 +4445,8 @@ def get_title_by_table_name(self, table_name): title_name = get_title_by_table_name(self, table_name) # get sample list when plot by group - if self.radioButton_basic_pca_group.isChecked(): + # if self.radioButton_basic_pca_group.isChecked(): + if self.comboBox_basic_pca_group_sample.currentText() == 'Group': condition = [self.comboBox_basic_condition_meta.currentText(), self.comboBox_basic_condition_group.getCheckedItems()] \ if self.checkBox_basic_in_condtion.isChecked() else None @@ -4476,7 +4597,9 @@ def get_title_by_table_name(self, table_name): plot_sample = plot_sample, sub_meta = sub_meta, rename_sample = rename_sample, show_percentages = show_percentages, min_subset_size = min_subset_size, max_subset_rank = max_subset_rank) - except IndexError: + except (IndexError, AttributeError): + error_message = traceback.format_exc() + self.logger.write_log(f'plot_basic_info_sns error: {error_message}', 'e') QMessageBox.warning(self.MainWindow, 'Warning', 'The index is out of range! Please check the settings.') except Exception: @@ -5205,14 +5328,15 @@ def plot_co_expr(self, plot_type = 'network'): font_size = self.spinBox_co_expr_font_size.value() sample_list = self.tfa.sample_list - if self.radioButton_co_expr_bysample.isChecked(): + if self.comboBox_co_expr_group_sample.currentText() == 'Sample': slected_list = self.comboBox_co_expr_sample.getCheckedItems() if len(slected_list) == 0: print('Did not select any group!, plot all samples') else: sample_list = slected_list # print(f'Plot with selected samples:{sample_list}') - elif self.radioButton_co_expr_bygroup.isChecked(): + # elif self.radioButton_co_expr_bygroup.isChecked(): + elif self.comboBox_co_expr_group_sample.currentText() == 'Group': condition = [self.comboBox_co_expression_condition_meta.currentText(), self.comboBox_co_expression_condition_group.getCheckedItems()] \ if self.checkBox_co_expression_in_condition.isChecked() else None @@ -5394,7 +5518,8 @@ def add_tfnet_top_list(self): df_type = self.comboBox_tfnet_table.currentText() filtered = self.checkBox_tfnet_top_filtered.isChecked() - if self.radioButton_network_bysample.isChecked(): # by sample + # if self.radioButton_network_bysample.isChecked(): # by sample + if self.comboBox_radioButton_network_group_sample.currentText() == 'Sample': slected_list = self.comboBox_network_sample.getCheckedItems() if slected_list: sample_list = slected_list @@ -5529,7 +5654,8 @@ def plot_network(self): def get_sample_list_tflink(self): # get sample list - if self.radioButton_tflink_group.isChecked(): # by group + # if self.radioButton_tflink_group.isChecked(): # by group + if self.comboBox_tflink_group_sample.currentText() == 'Group': in_condition = ( [self.comboBox_tflink_condition_meta.currentText(), self.comboBox_tflink_condition_group.getCheckedItems()] if self.checkBox_tflink_in_condition.isChecked() else None @@ -5537,7 +5663,7 @@ def get_sample_list_tflink(self): group_list = self.comboBox_tflink_group.getCheckedItems() sample_list = self.get_sample_list_for_group_list_in_condition(group_list, condition=in_condition) - elif self.radioButton_tflink_sample.isChecked(): # by sample + elif self.comboBox_tflink_group_sample.currentText() == 'Sample': selected_samples = self.comboBox_tflink_sample.getCheckedItems() if not selected_samples: sample_list = self.tfa.sample_list diff --git a/metax/gui/metax_gui/main_window.ui b/metax/gui/metax_gui/main_window.ui index 20936d9..9191950 100644 --- a/metax/gui/metax_gui/main_window.ui +++ b/metax/gui/metax_gui/main_window.ui @@ -7,7 +7,7 @@ 0 0 991 - 773 + 752 @@ -46,7 +46,7 @@ Qt::LeftToRight - 3 + 5 false @@ -246,7 +246,7 @@ 0 0 462 - 552 + 527 @@ -1447,20 +1447,13 @@ QTabWidget::Triangular - 1 + 0 Basic Plot - - - - Qt::Horizontal - - - @@ -1641,54 +1634,102 @@ - - - - + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + Show Plotting Parameter + + + + + + + + + + 0 + 0 + + + + Qt::LeftToRight + + + Table + + - - + + + + + 0 + 0 + + - - - - 0 - 0 - - - - In Condition - - + + Taxa + - - - false - - - - 0 - 0 - - - + + Functions + - - - - - false - - - - + + Taxa-Functions + - + + + Peptides + + + - - + + + + + 0 + 0 + + + + Meta + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + 0 @@ -1696,28 +1737,62 @@ - Groups + Sub Meta - - true + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + + + + + + 0 + 0 + + + + + None + + + + + + + + + + + + - + 0 0 - Samples + Select - - + + + + + Group + + + + + Sample + + + @@ -1726,7 +1801,7 @@ 16777215 - 300 + 420 @@ -2539,137 +2614,70 @@ - - - - - - - 0 - 0 - - - - Qt::LeftToRight - - - Table - - - + + + + Qt::Horizontal + + + + + - - - - 0 - 0 - - - - - Taxa - - - - - Functions - - + - - Taxa-Functions - + + + + 0 + 0 + + + + In Condition + + - - Peptides - + + + + + true + + + + 0 + 0 + + + + + + + + true + + + + 0 + 0 + + + + + - + - - - - 0 - 0 - - - - Meta - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Sub Meta - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + - - - - - - 0 - 0 - - - - - None - - - - - + - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - Show Plotting Parameter - - - @@ -2691,10 +2699,30 @@ - - + + + + + 0 + 0 + + + + + + + + Show Plotting Parameter + + + + + - + + + false + 0 @@ -2702,45 +2730,15 @@ - Table + Drop Item - + false - - - 0 - 0 - - - - - Taxa - - - - - Functions - - - - - Taxa-Functions - - - - - Peptides - - - - - - 0 @@ -2748,89 +2746,35 @@ - Meta + Clean List - - - - - - - 0 - 0 - - - - Sub Meta + + + false - - - - - + 0 0 - Sub Meta for Bar Plot - - - - - - - - - - - - 0 - 0 - + Add a list to the drawing box, make sure there is one item per line. - In Condition - - - - - - - false + Add A List - - - - - - false - - - - 0 - 0 - - - - - - - - - - - 0 - 0 - + + + + Qt::Horizontal @@ -2952,6 +2896,19 @@ + + + + + 0 + 0 + + + + List for Plotting + + + @@ -2971,56 +2928,129 @@ - - - - Qt::Horizontal + + + + false - - - - - - Group + + + 0 + 0 + - - true + + Add selected item to the drawing box + + + Add to List - - + + - + 0 0 - - + + - + false - + 0 0 - Drop Item + Plot Heatmap + + + false + + + false - + + + false + + + + 0 + 0 + + + + Plot Bar + + + + + + + false + + + + 0 + 0 + + + + UpSet + + + + + + + false + + + + 0 + 0 + + + + Plot Sankey + + + + + false + + + 0 + 0 + + + + Get Table + + + + + + + + + 0 @@ -3028,26 +3058,82 @@ - Clean List + Table - + false + + + 0 + 0 + + + + + Taxa + + + + + Functions + + + + + Taxa-Functions + + + + + Peptides + + + + + + 0 0 - - Add a list to the drawing box, make sure there is one item per line. + + Meta + + + + + + + + + + + 0 + 0 + - Add A List + Sub Meta + + + + + + + + 0 + 0 + + + + Sub Meta for Bar Plot @@ -3058,7 +3144,7 @@ 16777215 - 300 + 330 @@ -3076,7 +3162,7 @@ 0 0 885 - 170 + 187 @@ -3695,184 +3781,124 @@ - - + + + + + + Select + + + + + + + + Group + + + + + Sample + + + + + - - - - false - + + + + + + + + + 0 + 0 + + + + In Condition + + + + + + + + + true + + + + 0 + 0 + + + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + Peptide Query + + + + - + 0 0 - - Add selected item to the drawing box - - Add to List + Peptide - - - - Show Plotting Parameter - - + + - - + + + + false + - + 0 0 - List for Plotting - - - - - - - Sample - - - - - - - - - - - - false - - - - 0 - 0 - - - - Plot Heatmap - - - false - - - false - - - - - - - false - - - - 0 - 0 - - - - Plot Bar - - - - - - - false - - - - 0 - 0 - - - - UpSet - - - - - - - false - - - - 0 - 0 - - - - Plot Sankey - - - - - - - false - - - - 0 - 0 - - - - Get Table - - - - - - - - - - Peptide Query - - - - - - - 0 - 0 - - - - Peptide - - - - - - - - - - false - - - - 0 - 0 - - - - Query + Query @@ -3892,6 +3918,12 @@ + + + 0 + 0 + + Plot @@ -3958,7 +3990,7 @@ false - + 0 0 @@ -3988,10 +4020,16 @@ + + + 0 + 0 + + 16777215 - 280 + 300 @@ -5050,11 +5088,17 @@ + + + 0 + 0 + + QTabWidget::Triangular - 3 + 0 @@ -5122,7 +5166,14 @@ - + + + + 0 + 0 + + + @@ -5140,19 +5191,19 @@ - - - - false - - - + + + + true + + + - false + true @@ -5340,19 +5391,19 @@ - - - - false - - - + + + + true + + + - false + true @@ -5402,6 +5453,12 @@ false + + + 0 + 0 + + Run Dunnett's TEST @@ -5472,19 +5529,19 @@ - - - - false - - - + + + + true + + + - false + true @@ -5561,6 +5618,12 @@ + + + 0 + 0 + + Qt::Horizontal @@ -5642,25 +5705,25 @@ - - - - false - - - - 0 - 0 - - - - + + + + true + + + + 0 + 0 + + + + - false + true @@ -5927,7 +5990,7 @@ 0 0 865 - 121 + 117 @@ -6373,7 +6436,14 @@ - + + + + Qt::Horizontal + + + + @@ -6401,19 +6471,19 @@ - - - - false - - - + + + + true + + + - false + true @@ -6421,13 +6491,6 @@ - - - - Qt::Horizontal - - - @@ -6445,22 +6508,198 @@ QTabWidget::Triangular - 1 + 0 Co-Expression + + + + Qt::Horizontal + + + + + + + + + + + + false + + + + 0 + 0 + + + + Drop Item + + + + + + + false + + + + 0 + 0 + + + + Clean List + + + + + + + false + + + + 0 + 0 + + + + Add a list to the drawing box, make sure there is one item per line. + + + Add a list + + + + + + + + + false + + + Add selected item to the drawing box + + + Add to Focus List + + + + + + + + + Select + + + + + + + + Group + + + + + Sample + + + + + + + + + + + 0 + 0 + + + + Show Plotting Parameter + + + - + + + + + + + + 0 + 0 + + + + In Condition + + + + + + + + + true + + + + + + + true + + + + 0 + 0 + + + + + 150 + 0 + + + + + 500 + 16777215 + + + + + + + + + + + + + + + 16777215 - 240 + 280 @@ -6477,8 +6716,8 @@ 0 0 - 493 - 128 + 885 + 168 @@ -6805,16 +7044,10 @@ - - - - false - - - Add conditionally filtered items to the drawing box - - - Add Top to List + + + + Qt::Horizontal @@ -6897,16 +7130,76 @@ - - + + + + + 0 + 0 + + + + Focus List + + + + + false - Add selected item to the drawing box + Add conditionally filtered items to the drawing box - Add to Focus List + Add Top to List + + + + + + + + + false + + + + 0 + 0 + + + + Plot Co-Expression Network + + + + + + + false + + + Plot Co-Expression Heatmap + + + + + + + + + + 600 + 0 + + + + + + + + Qt::Horizontal @@ -7034,325 +7327,372 @@ - - - - - - false - - - - 0 - 0 - - - - Plot Co-Expression Network - - - - - - - false - - - Plot Co-Expression Heatmap - - - - - - - - - Qt::Horizontal - - - - - + + + + + Expression Trends + + + + - + - In Condition + Select - - - false - - - - - + - - - false - - - - 0 - 0 - - - - - 150 - 0 - - - - - 500 - 16777215 - - - + + Group + - + + + Sample + + + - - - - Qt::Horizontal - - - - - + + - + 0 0 - Show Plotting Parameter + List for Plotting - - - - - 0 - 0 - - - - Group - - - true + + + + Qt::Horizontal - - - + + + - 600 - 0 + 16777215 + 260 - - - - - - - - false - - - - 0 - 0 - - - - Drop Item - - - - - - - false - - - - 0 - 0 - - - - Clean List - - - - - - - false - - - - 0 - 0 - - - - Add a list to the drawing box, make sure there is one item per line. - - - Add a list - - - - - - - - - - 0 - 0 - - - - Sample + + Plotting Parameter + + + + + true + + + + + 0 + 0 + 885 + 119 + + + + + + + + + + 0 + 0 + + + + Simplify Taxa Names + + + true + + + + + + + + 0 + 0 + + + + Plot Samples + + + + + + + + 75 + true + + + + General + + + + + + + + 75 + true + + + + Specific cluster + + + + + + + + 0 + 0 + + + + Show Legend + + + true + + + + + + + + 0 + 0 + + + + Get Intnsity Results + + + + + + + + + + 0 + 0 + + + + Width + + + + + + + + 0 + 0 + + + + 1 + + + 200 + + + 16 + + + + + + + + + + + + 0 + 0 + + + + Height + + + + + + + + 0 + 0 + + + + 1 + + + 200 + + + 9 + + + + + + + + + + + + 0 + 0 + + + + Font Size + + + + + + + + 0 + 0 + + + + 1 + + + 10 + + + + + + + + + + + Number of Col for Cluster Plot + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 1 + + + + + + + + + + + + - - + + - + 0 0 - - Focus List - - - - - - - - - - - - - Qt::Horizontal - - - - - - Expression Trends - - - - - - - - - 0 - 0 - - - - Qt::LeftToRight - - - In Condition - - - - - - - false - - - + + - + - - - false - + - + 0 0 + + Qt::LeftToRight + + + In Condition + + + + + + + true + + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + - - - - - 0 - 0 - - - - - 600 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Group - - - true - - - - - + + false @@ -7363,47 +7703,14 @@ - Add conditionally filtered items to the drawing box - - - Add Top to List - - - - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - Sample - - - - - - - - 0 - 0 - + Add selected item to the drawing box - List for Plotting + Add to List - + @@ -7521,46 +7828,7 @@ - - - - Qt::Horizontal - - - - - - - - - - Qt::Horizontal - - - - - - - - - - false - - - - 0 - 0 - - - - Add selected item to the drawing box - - - Add to List - - - - + @@ -7615,6 +7883,20 @@ + + + + Qt::Horizontal + + + + + + + Select for plotting + + + @@ -7675,265 +7957,45 @@ - - - - - - - Select for plotting - - - - - - - - 16777215 - 240 - - - - Plotting Parameter - - - - - - true - - - - - 0 - 0 - 885 - 123 - - - - - - - - - - 0 - 0 - - - - Simplify Taxa Names - - - true - - - - - - - - 0 - 0 - - - - Plot Samples - - - - - - - - 75 - true - - - - General - - - - - - - - 75 - true - - - - Specific cluster - - - - - - - - 0 - 0 - - - - Show Legend - - - true - - - - - - - - 0 - 0 - - - - Get Intnsity Results - - - - - - - - - - 0 - 0 - - - - Width - - - - - - - - 0 - 0 - - - - 1 - - - 200 - - - 16 - - - - - - - - - - - - 0 - 0 - - - - Height - - - - - - - - 0 - 0 - - - - 1 - - - 200 - - - 9 - - - - - - - - - - - - 0 - 0 - - - - Font Size - - - - - - - - 0 - 0 - - - - 1 - - - 10 - - - - - - - - - - - Number of Col for Cluster Plot - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 1 - - - - - - - - - - - - + + + + + + + + 0 + 0 + + + + + 600 + 0 + + - + + + + false + + + + 0 + 0 + + + + Add conditionally filtered items to the drawing box + + + Add Top to List + + + + @@ -8052,6 +8114,13 @@ + + + + Qt::Horizontal + + + @@ -8072,14 +8141,14 @@ QTabWidget::Triangular - 1 + 0 Taxa-Func Link - + @@ -8150,18 +8219,8 @@ - - - - Qt::Horizontal - - - - - - - - + + 0 @@ -8169,237 +8228,82 @@ - Group - - - true + Function - - - - - - - 0 - 0 - - - - Linked Number: - - - - - - - - false - - - - 0 - 0 - - - - Show Linked Taxa Only - - - - - - - - - false - + + - + 0 0 - - Restore both lists to their original full items - - - Reset List + + Qt::LeftToRight - - - - - - Filter Top - - - - - - - - 0 - 0 - - - - 1 - - - 99999 - - - 10 - - - + + - + - + 0 0 - By - - - Qt::AlignCenter + Sub Meta - - - - Total Intensity - - - - - Frequency in Samples - - - - - Number of links - - - - - ANOVA(p-value) - - - - - ANOVA(f-statistic) - - - - - T-TEST(p-value) - - - - - T-TEST(t-statistic) - - - - - Deseq2-up(p-value) - - - - - Deseq2-down(p-value) - - - - - Deseq2-up(log2FC) - - - - - Deseq2-down(log2FC) - - - + + + + + - + - + 0 0 - Filter with threshold + Linked Number: - - + false - + 0 0 - - Filter items in the two lists by condition - - Filter + Show Linked Func Only - - - - - - - - 0 - 0 - - - - Taxa - - - - - - - - 0 - 0 - - - - Meta - - - - + 16777215 - 240 + 260 @@ -8416,8 +8320,8 @@ 0 0 - 775 - 102 + 885 + 225 @@ -8856,62 +8760,48 @@ - - + + - + 0 0 - - Qt::LeftToRight + + true - - + + - - - - 0 - 0 - - + - Linked Number: - + Select - - - false - - - - 0 - 0 - - - - Show Linked Func Only - + + + + Group + + + + + Sample + + - - - - - 0 - 0 - - - - Sample + + + + Qt::Horizontal @@ -8922,100 +8812,92 @@ - + Qt::Horizontal - - + + + + false + + + + 0 + 0 + + + + Restore both lists to their original full items + + + Reset List + + + + + - + - + 0 0 - - Qt::LeftToRight - - In Condition + Linked Number: - - + false - + 0 0 + + Show Linked Taxa Only + - - - - - - - - false - - - - 0 - 0 - - - - - 300 - 16777215 - - - - - - - - - - + + - + 0 0 - - true + + Taxa - - + + - + 0 0 - Function + Meta - + @@ -9028,329 +8910,221 @@ - - - - - - - 0 - 0 - - - - Sub Meta - - - - - - - - - - - - - Taxa-Func Network - - - - - - - 0 - 0 - - - - Sample - - - - - - - - - - 0 - 0 - - - - Table - - - - - - - false - - - - Taxa - - - - - Functions - - - - - Taxa-Functions - - - - + + - + - Meta - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Filter Top - - - - - - - - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - Focus List - - - - - - - - 0 - 0 - - - - Qt::Horizontal - - - - - + + - + - + 0 0 - - Qt::RightToLeft + + 1 - - In Condition + + 99999 + + + 10 - - - false - + - + 0 0 + + By + + + Qt::AlignCenter + - + - - - false - - - - 0 - 0 - - - + + Total Intensity + - + + + Frequency in Samples + + + + + Number of links + + + + + ANOVA(p-value) + + + + + ANOVA(f-statistic) + + + + + T-TEST(p-value) + + + + + T-TEST(t-statistic) + + + + + Deseq2-up(p-value) + + + + + Deseq2-down(p-value) + + + + + Deseq2-up(log2FC) + + + + + Deseq2-down(log2FC) + + + - - - - - - - 0 - 0 - - - - - 16777215 - 50 - - - - Group - - - true - - - - - - - Show Parameter - - - - - - - - false - + - + 0 0 - Drop Item + Filter with threshold - + false - + 0 0 - - Clean List - - - - - - - false - - Add a list to the drawing box, make sure there is one item per line. + Filter items in the two lists by condition - Add a list + Filter - - - - - - - - - - - 0 - 0 - - - - - - - - false - - - - 0 - 0 - - - - - 120 - 16777215 - - - - Add selected item to the drawing box - - - Add to Focus List - - - - - - - false - - - - 0 - 0 - - - - - 120 - 16777215 - - - - Add conditionally filtered items to the drawing box - - - Add Top to List - - + + + + + + + + + 0 + 0 + + + + Qt::LeftToRight + + + In Condition + + + + + + + + + + + true + + + + 0 + 0 + + + + + + + + true + + + + 0 + 0 + + + + + 300 + 16777215 + + + + + + + + + + + + + + + + + + + + + + Taxa-Func Network + + - - - @@ -9474,14 +9248,130 @@ - + Qt::Horizontal - + + + + + 0 + 0 + + + + Show Parameter + + + + + + + + 0 + 0 + + + + Focus List + + + + + + + + + + 0 + 0 + + + + Table + + + + + + + false + + + + Taxa + + + + + Functions + + + + + Taxa-Functions + + + + + + + + Meta + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + false + + + + 0 + 0 + + + + + 120 + 16777215 + + + + Add selected item to the drawing box + + + Add to Focus List + + + + false @@ -9506,12 +9396,130 @@ - + + + + + 0 + 0 + + + + Qt::Horizontal + + + + + + + + + false + + + + 0 + 0 + + + + Drop Item + + + + + + + false + + + + 0 + 0 + + + + Clean List + + + + + + + false + + + Add a list to the drawing box, make sure there is one item per line. + + + Add a list + + + + + + + + + false + + + + 0 + 0 + + + + + 120 + 16777215 + + + + Add conditionally filtered items to the drawing box + + + Add Top to List + + + + + + + + + + 0 + 0 + + + + Select + + + + + + + + Group + + + + + Sample + + + + + + + 16777215 - 240 + 260 @@ -9529,7 +9537,7 @@ 0 0 885 - 158 + 166 @@ -9701,6 +9709,73 @@ + + + + Qt::Horizontal + + + + + + + + + + + + 0 + 0 + + + + Qt::RightToLeft + + + In Condition + + + + + + + + + true + + + + 0 + 0 + + + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + + + + @@ -10663,7 +10738,7 @@ 0 0 991 - 21 + 23 @@ -10798,102 +10873,6 @@ - - checkBox_deseq2_comparing_in_condition - clicked(bool) - comboBox_deseq2_condition_meta - setEnabled(bool) - - - 534 - 114 - - - 630 - 116 - - - - - checkBox_deseq2_comparing_in_condition - clicked(bool) - comboBox_deseq2_condition_group - setEnabled(bool) - - - 534 - 114 - - - 813 - 116 - - - - - checkBox_tflink_in_condition - clicked(bool) - comboBox_tflink_condition_meta - setEnabled(bool) - - - 63 - 99 - - - 70 - 99 - - - - - checkBox_tflink_in_condition - clicked(bool) - comboBox_tflink_condition_group - setEnabled(bool) - - - 63 - 99 - - - 78 - 101 - - - - - checkBox_tfnetwork_in_condition - clicked(bool) - comboBox_tfnetwork_condition_meta - setEnabled(bool) - - - 229 - 151 - - - 346 - 153 - - - - - checkBox_tfnetwork_in_condition - clicked(bool) - comboBox_tfnetwork_condition_group - setEnabled(bool) - - - 229 - 151 - - - 473 - 153 - - - checkBox_anova_in_condition clicked(bool) @@ -10901,12 +10880,12 @@ setEnabled(bool) - 96 - 94 + 533 + 229 - 108 - 94 + 746 + 228 @@ -10917,156 +10896,12 @@ setEnabled(bool) - 96 - 94 - - - 119 - 95 - - - - - checkBox_ttest_in_condition - clicked(bool) - comboBox_ttest_condition_meta - setEnabled(bool) - - - 96 - 93 - - - 108 - 93 - - - - - checkBox_ttest_in_condition - clicked(bool) - comboBox_ttest_condition_group - setEnabled(bool) - - - 96 - 93 - - - 119 - 94 - - - - - checkBox_basic_heatmap_in_condition - clicked(bool) - comboBox_basic_heatmap_condition_meta - setEnabled(bool) - - - 159 - 151 - - - 253 - 153 - - - - - checkBox_basic_heatmap_in_condition - clicked(bool) - comboBox_basic_heatmap_condition_group - setEnabled(bool) - - - 159 - 151 - - - 358 - 153 - - - - - checkBox_basic_in_condtion - clicked(bool) - comboBox_basic_condition_meta - setEnabled(bool) - - - 190 - 167 - - - 357 - 169 - - - - - checkBox_tukey_in_condition - clicked(bool) - comboBox_tukey_condition_meta - setEnabled(bool) - - - 95 - 95 - - - 108 - 95 - - - - - checkBox_tukey_in_condition - clicked(bool) - comboBox_tukey_condition_group - setEnabled(bool) - - - 95 - 95 - - - 119 - 96 - - - - - checkBox_group_control_in_condition - clicked(bool) - comboBox_group_control_condition_meta - setEnabled(bool) - - - 96 - 94 + 533 + 229 - 108 - 94 - - - - - checkBox_group_control_in_condition - clicked(bool) - comboBox_group_control_condition_group - setEnabled(bool) - - - 96 - 94 - - - 119 - 95 + 849 + 228 @@ -11078,11 +10913,11 @@ 925 - 489 + 516 383 - 526 + 553 @@ -11094,11 +10929,11 @@ 925 - 489 + 516 383 - 660 + 687 @@ -11110,27 +10945,11 @@ 925 - 489 + 516 731 - 528 - - - - - checkBox_basic_in_condtion - clicked(bool) - comboBox_basic_condition_group - setEnabled(bool) - - - 190 - 167 - - - 522 - 169 + 555 @@ -11158,7 +10977,7 @@ 232 - 569 + 587 400 @@ -11166,70 +10985,6 @@ - - checkBox_co_expression_in_condition - clicked(bool) - comboBox_co_expression_condition_meta - setEnabled(bool) - - - 63 - 99 - - - 70 - 99 - - - - - checkBox_co_expression_in_condition - clicked(bool) - comboBox_co_expression_condition_group - setEnabled(bool) - - - 63 - 99 - - - 227 - 100 - - - - - checkBox_trends_in_condition - clicked(bool) - comboBox_trends_condition_meta - setEnabled(bool) - - - 212 - 151 - - - 329 - 153 - - - - - checkBox_trends_in_condition - clicked(bool) - comboBox_trends_condition_group - setEnabled(bool) - - - 212 - 151 - - - 490 - 153 - - - checkBox_show_basic_plot_settings toggled(bool) @@ -11238,7 +10993,7 @@ 100 - 403 + 430 132 @@ -11254,7 +11009,7 @@ 90 - 528 + 476 134 @@ -11270,7 +11025,7 @@ 121 - 512 + 538 149 @@ -11302,11 +11057,11 @@ 77 - 112 + 477 121 - 114 + 504 @@ -11334,11 +11089,11 @@ 77 - 117 + 414 121 - 114 + 469 @@ -11397,12 +11152,12 @@ setDisabled(bool) - 815 - 167 + 925 + 541 - 98 - 95 + 444 + 96 @@ -11430,11 +11185,11 @@ 800 - 487 + 514 690 - 582 + 609 diff --git a/metax/gui/metax_gui/ui_main_window.py b/metax/gui/metax_gui/ui_main_window.py index 2b70b33..a668a49 100644 --- a/metax/gui/metax_gui/ui_main_window.py +++ b/metax/gui/metax_gui/ui_main_window.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'c:\Users\Qing\OneDrive - University of Ottawa\code\TaxaFunc\MetaX\metax\gui\metax_gui\main_window.ui' +# Form implementation generated from reading ui file 'c:\Users\max\OneDrive - University of Ottawa\code\TaxaFunc\MetaX\metax\gui\metax_gui\main_window.ui' # # Created by: PyQt5 UI code generator 5.15.9 # @@ -14,7 +14,7 @@ class Ui_metaX_main(object): def setupUi(self, metaX_main): metaX_main.setObjectName("metaX_main") - metaX_main.resize(991, 773) + metaX_main.resize(991, 752) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -147,7 +147,7 @@ def setupUi(self, metaX_main): self.toolBox_2.setMaximumSize(QtCore.QSize(1677, 16777215)) self.toolBox_2.setObjectName("toolBox_2") self.page_2 = QtWidgets.QWidget() - self.page_2.setGeometry(QtCore.QRect(0, 0, 462, 552)) + self.page_2.setGeometry(QtCore.QRect(0, 0, 462, 527)) self.page_2.setObjectName("page_2") self.gridLayout_27 = QtWidgets.QGridLayout(self.page_2) self.gridLayout_27.setObjectName("gridLayout_27") @@ -713,11 +713,6 @@ def setupUi(self, metaX_main): self.tab_12.setObjectName("tab_12") self.gridLayout_26 = QtWidgets.QGridLayout(self.tab_12) self.gridLayout_26.setObjectName("gridLayout_26") - self.line_7 = QtWidgets.QFrame(self.tab_12) - self.line_7.setFrameShape(QtWidgets.QFrame.HLine) - self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_7.setObjectName("line_7") - self.gridLayout_26.addWidget(self.line_7, 1, 0, 1, 3) self.gridLayout_54 = QtWidgets.QGridLayout() self.gridLayout_54.setObjectName("gridLayout_54") self.label_170 = QtWidgets.QLabel(self.tab_12) @@ -803,61 +798,99 @@ def setupUi(self, metaX_main): self.pushButton_basic_plot_number_bar.setObjectName("pushButton_basic_plot_number_bar") self.gridLayout_54.addWidget(self.pushButton_basic_plot_number_bar, 2, 1, 1, 1) self.gridLayout_26.addLayout(self.gridLayout_54, 4, 0, 1, 3) - self.gridLayout_77 = QtWidgets.QGridLayout() - self.gridLayout_77.setObjectName("gridLayout_77") - self.verticalLayout_basic_pca_group = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_pca_group.setObjectName("verticalLayout_basic_pca_group") - self.gridLayout_77.addLayout(self.verticalLayout_basic_pca_group, 0, 2, 1, 1) - self.horizontalLayout_36 = QtWidgets.QHBoxLayout() - self.horizontalLayout_36.setObjectName("horizontalLayout_36") - self.checkBox_basic_in_condtion = QtWidgets.QCheckBox(self.tab_12) + self.line_7 = QtWidgets.QFrame(self.tab_12) + self.line_7.setFrameShape(QtWidgets.QFrame.HLine) + self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_7.setObjectName("line_7") + self.gridLayout_26.addWidget(self.line_7, 1, 0, 1, 3) + self.checkBox_show_basic_plot_settings = QtWidgets.QCheckBox(self.tab_12) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_basic_in_condtion.sizePolicy().hasHeightForWidth()) - self.checkBox_basic_in_condtion.setSizePolicy(sizePolicy) - self.checkBox_basic_in_condtion.setObjectName("checkBox_basic_in_condtion") - self.horizontalLayout_36.addWidget(self.checkBox_basic_in_condtion) - self.comboBox_basic_condition_meta = QtWidgets.QComboBox(self.tab_12) - self.comboBox_basic_condition_meta.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.checkBox_show_basic_plot_settings.sizePolicy().hasHeightForWidth()) + self.checkBox_show_basic_plot_settings.setSizePolicy(sizePolicy) + self.checkBox_show_basic_plot_settings.setObjectName("checkBox_show_basic_plot_settings") + self.gridLayout_26.addWidget(self.checkBox_show_basic_plot_settings, 10, 0, 1, 1) + self.horizontalLayout_35 = QtWidgets.QHBoxLayout() + self.horizontalLayout_35.setObjectName("horizontalLayout_35") + self.label_70 = QtWidgets.QLabel(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_condition_meta.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_condition_meta.setSizePolicy(sizePolicy) - self.comboBox_basic_condition_meta.setObjectName("comboBox_basic_condition_meta") - self.horizontalLayout_36.addWidget(self.comboBox_basic_condition_meta) - self.horizontalLayout_68 = QtWidgets.QHBoxLayout() - self.horizontalLayout_68.setObjectName("horizontalLayout_68") - self.comboBox_basic_condition_group = QtWidgets.QComboBox(self.tab_12) - self.comboBox_basic_condition_group.setEnabled(False) - self.comboBox_basic_condition_group.setObjectName("comboBox_basic_condition_group") - self.horizontalLayout_68.addWidget(self.comboBox_basic_condition_group) - self.horizontalLayout_36.addLayout(self.horizontalLayout_68) - self.gridLayout_77.addLayout(self.horizontalLayout_36, 0, 1, 1, 1) - self.radioButton_basic_pca_group = QtWidgets.QRadioButton(self.tab_12) + sizePolicy.setHeightForWidth(self.label_70.sizePolicy().hasHeightForWidth()) + self.label_70.setSizePolicy(sizePolicy) + self.label_70.setLayoutDirection(QtCore.Qt.LeftToRight) + self.label_70.setObjectName("label_70") + self.horizontalLayout_35.addWidget(self.label_70) + self.comboBox_table4pca = QtWidgets.QComboBox(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_table4pca.sizePolicy().hasHeightForWidth()) + self.comboBox_table4pca.setSizePolicy(sizePolicy) + self.comboBox_table4pca.setObjectName("comboBox_table4pca") + self.comboBox_table4pca.addItem("") + self.comboBox_table4pca.addItem("") + self.comboBox_table4pca.addItem("") + self.comboBox_table4pca.addItem("") + self.horizontalLayout_35.addWidget(self.comboBox_table4pca) + self.label_146 = QtWidgets.QLabel(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_146.sizePolicy().hasHeightForWidth()) + self.label_146.setSizePolicy(sizePolicy) + self.label_146.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_146.setObjectName("label_146") + self.horizontalLayout_35.addWidget(self.label_146) + self.comboBox_basic_pca_meta = QtWidgets.QComboBox(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_basic_pca_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_pca_meta.setSizePolicy(sizePolicy) + self.comboBox_basic_pca_meta.setObjectName("comboBox_basic_pca_meta") + self.horizontalLayout_35.addWidget(self.comboBox_basic_pca_meta) + self.label_142 = QtWidgets.QLabel(self.tab_12) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_basic_pca_group.sizePolicy().hasHeightForWidth()) - self.radioButton_basic_pca_group.setSizePolicy(sizePolicy) - self.radioButton_basic_pca_group.setChecked(True) - self.radioButton_basic_pca_group.setObjectName("radioButton_basic_pca_group") - self.gridLayout_77.addWidget(self.radioButton_basic_pca_group, 0, 0, 1, 1) - self.radioButton_basic_pca_sample = QtWidgets.QRadioButton(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.label_142.sizePolicy().hasHeightForWidth()) + self.label_142.setSizePolicy(sizePolicy) + self.label_142.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_142.setObjectName("label_142") + self.horizontalLayout_35.addWidget(self.label_142) + self.horizontalLayout_6 = QtWidgets.QHBoxLayout() + self.horizontalLayout_6.setObjectName("horizontalLayout_6") + self.comboBox_sub_meta_pca = QtWidgets.QComboBox(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_basic_pca_sample.sizePolicy().hasHeightForWidth()) - self.radioButton_basic_pca_sample.setSizePolicy(sizePolicy) - self.radioButton_basic_pca_sample.setObjectName("radioButton_basic_pca_sample") - self.gridLayout_77.addWidget(self.radioButton_basic_pca_sample, 1, 0, 1, 1) - self.verticalLayout_basic_pca_sample = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_pca_sample.setObjectName("verticalLayout_basic_pca_sample") - self.gridLayout_77.addLayout(self.verticalLayout_basic_pca_sample, 1, 1, 1, 2) - self.gridLayout_26.addLayout(self.gridLayout_77, 2, 0, 1, 3) + sizePolicy.setHeightForWidth(self.comboBox_sub_meta_pca.sizePolicy().hasHeightForWidth()) + self.comboBox_sub_meta_pca.setSizePolicy(sizePolicy) + self.comboBox_sub_meta_pca.setObjectName("comboBox_sub_meta_pca") + self.comboBox_sub_meta_pca.addItem("") + self.horizontalLayout_6.addWidget(self.comboBox_sub_meta_pca) + self.horizontalLayout_35.addLayout(self.horizontalLayout_6) + self.gridLayout_26.addLayout(self.horizontalLayout_35, 0, 0, 1, 2) + self.horizontalLayout_109 = QtWidgets.QHBoxLayout() + self.horizontalLayout_109.setObjectName("horizontalLayout_109") + self.label_210 = QtWidgets.QLabel(self.tab_12) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_210.sizePolicy().hasHeightForWidth()) + self.label_210.setSizePolicy(sizePolicy) + self.label_210.setObjectName("label_210") + self.horizontalLayout_109.addWidget(self.label_210) + self.comboBox_basic_pca_group_sample = QtWidgets.QComboBox(self.tab_12) + self.comboBox_basic_pca_group_sample.setObjectName("comboBox_basic_pca_group_sample") + self.comboBox_basic_pca_group_sample.addItem("") + self.comboBox_basic_pca_group_sample.addItem("") + self.horizontalLayout_109.addWidget(self.comboBox_basic_pca_group_sample) + self.gridLayout_26.addLayout(self.horizontalLayout_109, 2, 0, 1, 1) self.groupBox_basic_plot = QtWidgets.QGroupBox(self.tab_12) - self.groupBox_basic_plot.setMaximumSize(QtCore.QSize(16777215, 300)) + self.groupBox_basic_plot.setMaximumSize(QtCore.QSize(16777215, 420)) self.groupBox_basic_plot.setObjectName("groupBox_basic_plot") self.gridLayout_40 = QtWidgets.QGridLayout(self.groupBox_basic_plot) self.gridLayout_40.setObjectName("gridLayout_40") @@ -1271,81 +1304,52 @@ def setupUi(self, metaX_main): self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.gridLayout_40.addWidget(self.scrollArea, 0, 0, 1, 1) self.gridLayout_26.addWidget(self.groupBox_basic_plot, 12, 0, 1, 3) - self.horizontalLayout_35 = QtWidgets.QHBoxLayout() - self.horizontalLayout_35.setObjectName("horizontalLayout_35") - self.label_70 = QtWidgets.QLabel(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_70.sizePolicy().hasHeightForWidth()) - self.label_70.setSizePolicy(sizePolicy) - self.label_70.setLayoutDirection(QtCore.Qt.LeftToRight) - self.label_70.setObjectName("label_70") - self.horizontalLayout_35.addWidget(self.label_70) - self.comboBox_table4pca = QtWidgets.QComboBox(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_table4pca.sizePolicy().hasHeightForWidth()) - self.comboBox_table4pca.setSizePolicy(sizePolicy) - self.comboBox_table4pca.setObjectName("comboBox_table4pca") - self.comboBox_table4pca.addItem("") - self.comboBox_table4pca.addItem("") - self.comboBox_table4pca.addItem("") - self.comboBox_table4pca.addItem("") - self.horizontalLayout_35.addWidget(self.comboBox_table4pca) - self.label_146 = QtWidgets.QLabel(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_146.sizePolicy().hasHeightForWidth()) - self.label_146.setSizePolicy(sizePolicy) - self.label_146.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.label_146.setObjectName("label_146") - self.horizontalLayout_35.addWidget(self.label_146) - self.comboBox_basic_pca_meta = QtWidgets.QComboBox(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_pca_meta.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_pca_meta.setSizePolicy(sizePolicy) - self.comboBox_basic_pca_meta.setObjectName("comboBox_basic_pca_meta") - self.horizontalLayout_35.addWidget(self.comboBox_basic_pca_meta) - self.label_142 = QtWidgets.QLabel(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_142.sizePolicy().hasHeightForWidth()) - self.label_142.setSizePolicy(sizePolicy) - self.label_142.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.label_142.setObjectName("label_142") - self.horizontalLayout_35.addWidget(self.label_142) - self.horizontalLayout_6 = QtWidgets.QHBoxLayout() - self.horizontalLayout_6.setObjectName("horizontalLayout_6") - self.comboBox_sub_meta_pca = QtWidgets.QComboBox(self.tab_12) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_sub_meta_pca.sizePolicy().hasHeightForWidth()) - self.comboBox_sub_meta_pca.setSizePolicy(sizePolicy) - self.comboBox_sub_meta_pca.setObjectName("comboBox_sub_meta_pca") - self.comboBox_sub_meta_pca.addItem("") - self.horizontalLayout_6.addWidget(self.comboBox_sub_meta_pca) - self.horizontalLayout_35.addLayout(self.horizontalLayout_6) - self.gridLayout_26.addLayout(self.horizontalLayout_35, 0, 0, 1, 2) self.line_10 = QtWidgets.QFrame(self.tab_12) self.line_10.setFrameShape(QtWidgets.QFrame.HLine) self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken) self.line_10.setObjectName("line_10") self.gridLayout_26.addWidget(self.line_10, 3, 0, 1, 3) - self.checkBox_show_basic_plot_settings = QtWidgets.QCheckBox(self.tab_12) + self.horizontalLayout_114 = QtWidgets.QHBoxLayout() + self.horizontalLayout_114.setObjectName("horizontalLayout_114") + self.horizontalLayout_111 = QtWidgets.QHBoxLayout() + self.horizontalLayout_111.setObjectName("horizontalLayout_111") + self.checkBox_basic_in_condtion = QtWidgets.QCheckBox(self.tab_12) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_show_basic_plot_settings.sizePolicy().hasHeightForWidth()) - self.checkBox_show_basic_plot_settings.setSizePolicy(sizePolicy) - self.checkBox_show_basic_plot_settings.setObjectName("checkBox_show_basic_plot_settings") - self.gridLayout_26.addWidget(self.checkBox_show_basic_plot_settings, 10, 0, 1, 1) + sizePolicy.setHeightForWidth(self.checkBox_basic_in_condtion.sizePolicy().hasHeightForWidth()) + self.checkBox_basic_in_condtion.setSizePolicy(sizePolicy) + self.checkBox_basic_in_condtion.setObjectName("checkBox_basic_in_condtion") + self.horizontalLayout_111.addWidget(self.checkBox_basic_in_condtion) + self.horizontalLayout_36 = QtWidgets.QHBoxLayout() + self.horizontalLayout_36.setObjectName("horizontalLayout_36") + self.comboBox_basic_condition_meta = QtWidgets.QComboBox(self.tab_12) + self.comboBox_basic_condition_meta.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_basic_condition_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_condition_meta.setSizePolicy(sizePolicy) + self.comboBox_basic_condition_meta.setObjectName("comboBox_basic_condition_meta") + self.horizontalLayout_36.addWidget(self.comboBox_basic_condition_meta) + self.comboBox_basic_condition_group = QtWidgets.QComboBox(self.tab_12) + self.comboBox_basic_condition_group.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_basic_condition_group.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_condition_group.setSizePolicy(sizePolicy) + self.comboBox_basic_condition_group.setObjectName("comboBox_basic_condition_group") + self.horizontalLayout_36.addWidget(self.comboBox_basic_condition_group) + self.horizontalLayout_111.addLayout(self.horizontalLayout_36) + self.horizontalLayout_114.addLayout(self.horizontalLayout_111) + self.verticalLayout_basic_pca_group = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_pca_group.setObjectName("verticalLayout_basic_pca_group") + self.horizontalLayout_114.addLayout(self.verticalLayout_basic_pca_group) + self.verticalLayout_basic_pca_sample = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_pca_sample.setObjectName("verticalLayout_basic_pca_sample") + self.horizontalLayout_114.addLayout(self.verticalLayout_basic_pca_sample) + self.gridLayout_26.addLayout(self.horizontalLayout_114, 2, 1, 1, 2) self.tabWidget_4.addTab(self.tab_12, "") self.tab_13 = QtWidgets.QWidget() self.tab_13.setObjectName("tab_13") @@ -1359,92 +1363,52 @@ def setupUi(self, metaX_main): self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken) self.line_8.setObjectName("line_8") self.gridLayout_23.addWidget(self.line_8, 1, 0, 1, 4) - self.horizontalLayout_28 = QtWidgets.QHBoxLayout() - self.horizontalLayout_28.setObjectName("horizontalLayout_28") - self.label_80 = QtWidgets.QLabel(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_80.sizePolicy().hasHeightForWidth()) - self.label_80.setSizePolicy(sizePolicy) - self.label_80.setObjectName("label_80") - self.horizontalLayout_28.addWidget(self.label_80) - self.comboBox_basic_table = QtWidgets.QComboBox(self.tab_13) - self.comboBox_basic_table.setEnabled(False) + self.comboBox_basic_heatmap_selection_list = QtWidgets.QComboBox(self.tab_13) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_table.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_table.setSizePolicy(sizePolicy) - self.comboBox_basic_table.setObjectName("comboBox_basic_table") - self.comboBox_basic_table.addItem("") - self.comboBox_basic_table.addItem("") - self.comboBox_basic_table.addItem("") - self.comboBox_basic_table.addItem("") - self.horizontalLayout_28.addWidget(self.comboBox_basic_table) - self.label_144 = QtWidgets.QLabel(self.tab_13) + sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_selection_list.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_heatmap_selection_list.setSizePolicy(sizePolicy) + self.comboBox_basic_heatmap_selection_list.setObjectName("comboBox_basic_heatmap_selection_list") + self.gridLayout_23.addWidget(self.comboBox_basic_heatmap_selection_list, 5, 1, 1, 2) + self.checkBox = QtWidgets.QCheckBox(self.tab_13) + self.checkBox.setObjectName("checkBox") + self.gridLayout_23.addWidget(self.checkBox, 10, 0, 1, 2) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.pushButton_basic_heatmap_drop_item = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_drop_item.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_144.sizePolicy().hasHeightForWidth()) - self.label_144.setSizePolicy(sizePolicy) - self.label_144.setObjectName("label_144") - self.horizontalLayout_28.addWidget(self.label_144) - self.comboBox_basic_heatmap_meta = QtWidgets.QComboBox(self.tab_13) - self.comboBox_basic_heatmap_meta.setObjectName("comboBox_basic_heatmap_meta") - self.horizontalLayout_28.addWidget(self.comboBox_basic_heatmap_meta) - self.label_164 = QtWidgets.QLabel(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_drop_item.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_drop_item.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_drop_item.setObjectName("pushButton_basic_heatmap_drop_item") + self.verticalLayout.addWidget(self.pushButton_basic_heatmap_drop_item) + self.pushButton_basic_heatmap_clean_list = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_clean_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_164.sizePolicy().hasHeightForWidth()) - self.label_164.setSizePolicy(sizePolicy) - self.label_164.setObjectName("label_164") - self.horizontalLayout_28.addWidget(self.label_164) - self.comboBox_3dbar_sub_meta = QtWidgets.QComboBox(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_clean_list.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_clean_list.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_clean_list.setObjectName("pushButton_basic_heatmap_clean_list") + self.verticalLayout.addWidget(self.pushButton_basic_heatmap_clean_list) + self.pushButton_basic_heatmap_add_a_list = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_add_a_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_3dbar_sub_meta.sizePolicy().hasHeightForWidth()) - self.comboBox_3dbar_sub_meta.setSizePolicy(sizePolicy) - self.comboBox_3dbar_sub_meta.setObjectName("comboBox_3dbar_sub_meta") - self.horizontalLayout_28.addWidget(self.comboBox_3dbar_sub_meta) - self.gridLayout_23.addLayout(self.horizontalLayout_28, 0, 0, 1, 2) - self.horizontalLayout_26 = QtWidgets.QHBoxLayout() - self.horizontalLayout_26.setObjectName("horizontalLayout_26") - self.checkBox_basic_heatmap_in_condition = QtWidgets.QCheckBox(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_basic_heatmap_in_condition.sizePolicy().hasHeightForWidth()) - self.checkBox_basic_heatmap_in_condition.setSizePolicy(sizePolicy) - self.checkBox_basic_heatmap_in_condition.setObjectName("checkBox_basic_heatmap_in_condition") - self.horizontalLayout_26.addWidget(self.checkBox_basic_heatmap_in_condition) - self.comboBox_basic_heatmap_condition_meta = QtWidgets.QComboBox(self.tab_13) - self.comboBox_basic_heatmap_condition_meta.setEnabled(False) - self.comboBox_basic_heatmap_condition_meta.setObjectName("comboBox_basic_heatmap_condition_meta") - self.horizontalLayout_26.addWidget(self.comboBox_basic_heatmap_condition_meta) - self.horizontalLayout_67 = QtWidgets.QHBoxLayout() - self.horizontalLayout_67.setObjectName("horizontalLayout_67") - self.comboBox_basic_heatmap_condition_group = QtWidgets.QComboBox(self.tab_13) - self.comboBox_basic_heatmap_condition_group.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_condition_group.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_heatmap_condition_group.setSizePolicy(sizePolicy) - self.comboBox_basic_heatmap_condition_group.setObjectName("comboBox_basic_heatmap_condition_group") - self.horizontalLayout_67.addWidget(self.comboBox_basic_heatmap_condition_group) - self.horizontalLayout_26.addLayout(self.horizontalLayout_67) - self.gridLayout_23.addLayout(self.horizontalLayout_26, 2, 1, 1, 1) - self.listWidget_list_for_ploting = QtWidgets.QListWidget(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.listWidget_list_for_ploting.sizePolicy().hasHeightForWidth()) - self.listWidget_list_for_ploting.setSizePolicy(sizePolicy) - self.listWidget_list_for_ploting.setObjectName("listWidget_list_for_ploting") - self.gridLayout_23.addWidget(self.listWidget_list_for_ploting, 7, 1, 2, 3) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add_a_list.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_add_a_list.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_add_a_list.setObjectName("pushButton_basic_heatmap_add_a_list") + self.verticalLayout.addWidget(self.pushButton_basic_heatmap_add_a_list) + self.gridLayout_23.addLayout(self.verticalLayout, 7, 0, 2, 1) + self.line_12 = QtWidgets.QFrame(self.tab_13) + self.line_12.setFrameShape(QtWidgets.QFrame.HLine) + self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_12.setObjectName("line_12") + self.gridLayout_23.addWidget(self.line_12, 4, 0, 1, 4) self.horizontalLayout_29 = QtWidgets.QHBoxLayout() self.horizontalLayout_29.setObjectName("horizontalLayout_29") self.label_67 = QtWidgets.QLabel(self.tab_13) @@ -1493,6 +1457,14 @@ def setupUi(self, metaX_main): self.checkBox_basic_heatmap_top_filtered.setObjectName("checkBox_basic_heatmap_top_filtered") self.horizontalLayout_29.addWidget(self.checkBox_basic_heatmap_top_filtered) self.gridLayout_23.addLayout(self.horizontalLayout_29, 6, 1, 1, 2) + self.label_34 = QtWidgets.QLabel(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_34.sizePolicy().hasHeightForWidth()) + self.label_34.setSizePolicy(sizePolicy) + self.label_34.setObjectName("label_34") + self.gridLayout_23.addWidget(self.label_34, 6, 0, 1, 1) self.pushButton_basic_heatmap_add_top = QtWidgets.QPushButton(self.tab_13) self.pushButton_basic_heatmap_add_top.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) @@ -1502,55 +1474,126 @@ def setupUi(self, metaX_main): self.pushButton_basic_heatmap_add_top.setSizePolicy(sizePolicy) self.pushButton_basic_heatmap_add_top.setObjectName("pushButton_basic_heatmap_add_top") self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add_top, 6, 3, 1, 1) - self.line_12 = QtWidgets.QFrame(self.tab_13) - self.line_12.setFrameShape(QtWidgets.QFrame.HLine) - self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_12.setObjectName("line_12") - self.gridLayout_23.addWidget(self.line_12, 4, 0, 1, 4) - self.radioButton_basic_heatmap_group = QtWidgets.QRadioButton(self.tab_13) - self.radioButton_basic_heatmap_group.setChecked(True) - self.radioButton_basic_heatmap_group.setObjectName("radioButton_basic_heatmap_group") - self.gridLayout_23.addWidget(self.radioButton_basic_heatmap_group, 2, 0, 1, 1) - self.comboBox_basic_heatmap_selection_list = QtWidgets.QComboBox(self.tab_13) + self.pushButton_basic_heatmap_add = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_add.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_selection_list.sizePolicy().hasHeightForWidth()) - self.comboBox_basic_heatmap_selection_list.setSizePolicy(sizePolicy) - self.comboBox_basic_heatmap_selection_list.setObjectName("comboBox_basic_heatmap_selection_list") - self.gridLayout_23.addWidget(self.comboBox_basic_heatmap_selection_list, 5, 1, 1, 2) - self.verticalLayout = QtWidgets.QVBoxLayout() - self.verticalLayout.setObjectName("verticalLayout") - self.pushButton_basic_heatmap_drop_item = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_drop_item.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_add.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_add.setObjectName("pushButton_basic_heatmap_add") + self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add, 5, 3, 1, 1) + self.listWidget_list_for_ploting = QtWidgets.QListWidget(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_drop_item.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_drop_item.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_drop_item.setObjectName("pushButton_basic_heatmap_drop_item") - self.verticalLayout.addWidget(self.pushButton_basic_heatmap_drop_item) - self.pushButton_basic_heatmap_clean_list = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_clean_list.setEnabled(False) + sizePolicy.setHeightForWidth(self.listWidget_list_for_ploting.sizePolicy().hasHeightForWidth()) + self.listWidget_list_for_ploting.setSizePolicy(sizePolicy) + self.listWidget_list_for_ploting.setObjectName("listWidget_list_for_ploting") + self.gridLayout_23.addWidget(self.listWidget_list_for_ploting, 7, 1, 2, 3) + self.horizontalLayout_107 = QtWidgets.QHBoxLayout() + self.horizontalLayout_107.setObjectName("horizontalLayout_107") + self.pushButton_basic_heatmap_plot = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_plot.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_plot.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_plot.setAutoDefault(False) + self.pushButton_basic_heatmap_plot.setFlat(False) + self.pushButton_basic_heatmap_plot.setObjectName("pushButton_basic_heatmap_plot") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_plot) + self.pushButton_basic_bar_plot = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_bar_plot.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_bar_plot.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_bar_plot.setSizePolicy(sizePolicy) + self.pushButton_basic_bar_plot.setObjectName("pushButton_basic_bar_plot") + self.horizontalLayout_107.addWidget(self.pushButton_basic_bar_plot) + self.pushButton_basic_heatmap_plot_upset = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_plot_upset.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot_upset.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_plot_upset.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_plot_upset.setObjectName("pushButton_basic_heatmap_plot_upset") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_plot_upset) + self.pushButton_basic_heatmap_sankey_plot = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_sankey_plot.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_sankey_plot.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_sankey_plot.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_sankey_plot.setObjectName("pushButton_basic_heatmap_sankey_plot") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_sankey_plot) + self.pushButton_basic_heatmap_get_table = QtWidgets.QPushButton(self.tab_13) + self.pushButton_basic_heatmap_get_table.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_get_table.sizePolicy().hasHeightForWidth()) + self.pushButton_basic_heatmap_get_table.setSizePolicy(sizePolicy) + self.pushButton_basic_heatmap_get_table.setObjectName("pushButton_basic_heatmap_get_table") + self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_get_table) + self.gridLayout_23.addLayout(self.horizontalLayout_107, 9, 0, 1, 4) + self.horizontalLayout_28 = QtWidgets.QHBoxLayout() + self.horizontalLayout_28.setObjectName("horizontalLayout_28") + self.label_80 = QtWidgets.QLabel(self.tab_13) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_clean_list.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_clean_list.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_clean_list.setObjectName("pushButton_basic_heatmap_clean_list") - self.verticalLayout.addWidget(self.pushButton_basic_heatmap_clean_list) - self.pushButton_basic_heatmap_add_a_list = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_add_a_list.setEnabled(False) + sizePolicy.setHeightForWidth(self.label_80.sizePolicy().hasHeightForWidth()) + self.label_80.setSizePolicy(sizePolicy) + self.label_80.setObjectName("label_80") + self.horizontalLayout_28.addWidget(self.label_80) + self.comboBox_basic_table = QtWidgets.QComboBox(self.tab_13) + self.comboBox_basic_table.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_basic_table.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_table.setSizePolicy(sizePolicy) + self.comboBox_basic_table.setObjectName("comboBox_basic_table") + self.comboBox_basic_table.addItem("") + self.comboBox_basic_table.addItem("") + self.comboBox_basic_table.addItem("") + self.comboBox_basic_table.addItem("") + self.horizontalLayout_28.addWidget(self.comboBox_basic_table) + self.label_144 = QtWidgets.QLabel(self.tab_13) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add_a_list.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_add_a_list.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_add_a_list.setObjectName("pushButton_basic_heatmap_add_a_list") - self.verticalLayout.addWidget(self.pushButton_basic_heatmap_add_a_list) - self.gridLayout_23.addLayout(self.verticalLayout, 7, 0, 2, 1) + sizePolicy.setHeightForWidth(self.label_144.sizePolicy().hasHeightForWidth()) + self.label_144.setSizePolicy(sizePolicy) + self.label_144.setObjectName("label_144") + self.horizontalLayout_28.addWidget(self.label_144) + self.comboBox_basic_heatmap_meta = QtWidgets.QComboBox(self.tab_13) + self.comboBox_basic_heatmap_meta.setObjectName("comboBox_basic_heatmap_meta") + self.horizontalLayout_28.addWidget(self.comboBox_basic_heatmap_meta) + self.label_164 = QtWidgets.QLabel(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_164.sizePolicy().hasHeightForWidth()) + self.label_164.setSizePolicy(sizePolicy) + self.label_164.setObjectName("label_164") + self.horizontalLayout_28.addWidget(self.label_164) + self.comboBox_3dbar_sub_meta = QtWidgets.QComboBox(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_3dbar_sub_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_3dbar_sub_meta.setSizePolicy(sizePolicy) + self.comboBox_3dbar_sub_meta.setObjectName("comboBox_3dbar_sub_meta") + self.horizontalLayout_28.addWidget(self.comboBox_3dbar_sub_meta) + self.gridLayout_23.addLayout(self.horizontalLayout_28, 0, 0, 1, 2) self.groupBox_basic_heatmap_plot_settings = QtWidgets.QGroupBox(self.tab_13) - self.groupBox_basic_heatmap_plot_settings.setMaximumSize(QtCore.QSize(16777215, 300)) + self.groupBox_basic_heatmap_plot_settings.setMaximumSize(QtCore.QSize(16777215, 330)) self.groupBox_basic_heatmap_plot_settings.setObjectName("groupBox_basic_heatmap_plot_settings") self.gridLayout_41 = QtWidgets.QGridLayout(self.groupBox_basic_heatmap_plot_settings) self.gridLayout_41.setObjectName("gridLayout_41") @@ -1558,7 +1601,7 @@ def setupUi(self, metaX_main): self.scrollArea_2.setWidgetResizable(True) self.scrollArea_2.setObjectName("scrollArea_2") self.scrollAreaWidgetContents_2 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 885, 170)) + self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 885, 187)) self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2") self.gridLayout_50 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_2) self.gridLayout_50.setObjectName("gridLayout_50") @@ -1907,103 +1950,76 @@ def setupUi(self, metaX_main): self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2) self.gridLayout_41.addWidget(self.scrollArea_2, 0, 0, 1, 1) self.gridLayout_23.addWidget(self.groupBox_basic_heatmap_plot_settings, 11, 0, 1, 4) - self.verticalLayout_basic_heatmap_group = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_heatmap_group.setObjectName("verticalLayout_basic_heatmap_group") - self.gridLayout_23.addLayout(self.verticalLayout_basic_heatmap_group, 2, 2, 1, 2) - self.pushButton_basic_heatmap_add = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_add.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + self.horizontalLayout_106 = QtWidgets.QHBoxLayout() + self.horizontalLayout_106.setObjectName("horizontalLayout_106") + self.label_209 = QtWidgets.QLabel(self.tab_13) + self.label_209.setObjectName("label_209") + self.horizontalLayout_106.addWidget(self.label_209) + self.comboBox_basic_heatmap_group_or_sample = QtWidgets.QComboBox(self.tab_13) + self.comboBox_basic_heatmap_group_or_sample.setObjectName("comboBox_basic_heatmap_group_or_sample") + self.comboBox_basic_heatmap_group_or_sample.addItem("") + self.comboBox_basic_heatmap_group_or_sample.addItem("") + self.horizontalLayout_106.addWidget(self.comboBox_basic_heatmap_group_or_sample) + self.gridLayout_23.addLayout(self.horizontalLayout_106, 3, 0, 1, 1) + self.horizontalLayout_basic_heatmap_group_selection = QtWidgets.QHBoxLayout() + self.horizontalLayout_basic_heatmap_group_selection.setObjectName("horizontalLayout_basic_heatmap_group_selection") + self.horizontalLayout_112 = QtWidgets.QHBoxLayout() + self.horizontalLayout_112.setObjectName("horizontalLayout_112") + self.checkBox_basic_heatmap_in_condition = QtWidgets.QCheckBox(self.tab_13) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_add.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_add.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_add.setObjectName("pushButton_basic_heatmap_add") - self.gridLayout_23.addWidget(self.pushButton_basic_heatmap_add, 5, 3, 1, 1) - self.checkBox = QtWidgets.QCheckBox(self.tab_13) - self.checkBox.setObjectName("checkBox") - self.gridLayout_23.addWidget(self.checkBox, 10, 0, 1, 2) - self.label_34 = QtWidgets.QLabel(self.tab_13) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.checkBox_basic_heatmap_in_condition.sizePolicy().hasHeightForWidth()) + self.checkBox_basic_heatmap_in_condition.setSizePolicy(sizePolicy) + self.checkBox_basic_heatmap_in_condition.setObjectName("checkBox_basic_heatmap_in_condition") + self.horizontalLayout_112.addWidget(self.checkBox_basic_heatmap_in_condition) + self.horizontalLayout_26 = QtWidgets.QHBoxLayout() + self.horizontalLayout_26.setObjectName("horizontalLayout_26") + self.comboBox_basic_heatmap_condition_meta = QtWidgets.QComboBox(self.tab_13) + self.comboBox_basic_heatmap_condition_meta.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_34.sizePolicy().hasHeightForWidth()) - self.label_34.setSizePolicy(sizePolicy) - self.label_34.setObjectName("label_34") - self.gridLayout_23.addWidget(self.label_34, 6, 0, 1, 1) - self.radioButton_basic_heatmap_sample = QtWidgets.QRadioButton(self.tab_13) - self.radioButton_basic_heatmap_sample.setObjectName("radioButton_basic_heatmap_sample") - self.gridLayout_23.addWidget(self.radioButton_basic_heatmap_sample, 3, 0, 1, 1) - self.verticalLayout_basic_heatmap_sample = QtWidgets.QVBoxLayout() - self.verticalLayout_basic_heatmap_sample.setObjectName("verticalLayout_basic_heatmap_sample") - self.gridLayout_23.addLayout(self.verticalLayout_basic_heatmap_sample, 3, 1, 1, 3) - self.horizontalLayout_107 = QtWidgets.QHBoxLayout() - self.horizontalLayout_107.setObjectName("horizontalLayout_107") - self.pushButton_basic_heatmap_plot = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_plot.setEnabled(False) + sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_condition_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_heatmap_condition_meta.setSizePolicy(sizePolicy) + self.comboBox_basic_heatmap_condition_meta.setObjectName("comboBox_basic_heatmap_condition_meta") + self.horizontalLayout_26.addWidget(self.comboBox_basic_heatmap_condition_meta) + self.comboBox_basic_heatmap_condition_group = QtWidgets.QComboBox(self.tab_13) + self.comboBox_basic_heatmap_condition_group.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_plot.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_plot.setAutoDefault(False) - self.pushButton_basic_heatmap_plot.setFlat(False) - self.pushButton_basic_heatmap_plot.setObjectName("pushButton_basic_heatmap_plot") - self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_plot) - self.pushButton_basic_bar_plot = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_bar_plot.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.comboBox_basic_heatmap_condition_group.sizePolicy().hasHeightForWidth()) + self.comboBox_basic_heatmap_condition_group.setSizePolicy(sizePolicy) + self.comboBox_basic_heatmap_condition_group.setObjectName("comboBox_basic_heatmap_condition_group") + self.horizontalLayout_26.addWidget(self.comboBox_basic_heatmap_condition_group) + self.horizontalLayout_112.addLayout(self.horizontalLayout_26) + self.horizontalLayout_basic_heatmap_group_selection.addLayout(self.horizontalLayout_112) + self.verticalLayout_basic_heatmap_group = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_heatmap_group.setObjectName("verticalLayout_basic_heatmap_group") + self.horizontalLayout_basic_heatmap_group_selection.addLayout(self.verticalLayout_basic_heatmap_group) + self.verticalLayout_basic_heatmap_sample = QtWidgets.QVBoxLayout() + self.verticalLayout_basic_heatmap_sample.setObjectName("verticalLayout_basic_heatmap_sample") + self.horizontalLayout_basic_heatmap_group_selection.addLayout(self.verticalLayout_basic_heatmap_sample) + self.gridLayout_23.addLayout(self.horizontalLayout_basic_heatmap_group_selection, 3, 1, 1, 3) + self.tabWidget_4.addTab(self.tab_13, "") + self.tab_10 = QtWidgets.QWidget() + self.tab_10.setObjectName("tab_10") + self.gridLayout_28 = QtWidgets.QGridLayout(self.tab_10) + self.gridLayout_28.setObjectName("gridLayout_28") + self.label_81 = QtWidgets.QLabel(self.tab_10) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_bar_plot.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_bar_plot.setSizePolicy(sizePolicy) - self.pushButton_basic_bar_plot.setObjectName("pushButton_basic_bar_plot") - self.horizontalLayout_107.addWidget(self.pushButton_basic_bar_plot) - self.pushButton_basic_heatmap_plot_upset = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_plot_upset.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_plot_upset.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_plot_upset.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_plot_upset.setObjectName("pushButton_basic_heatmap_plot_upset") - self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_plot_upset) - self.pushButton_basic_heatmap_sankey_plot = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_sankey_plot.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_sankey_plot.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_sankey_plot.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_sankey_plot.setObjectName("pushButton_basic_heatmap_sankey_plot") - self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_sankey_plot) - self.pushButton_basic_heatmap_get_table = QtWidgets.QPushButton(self.tab_13) - self.pushButton_basic_heatmap_get_table.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_basic_heatmap_get_table.sizePolicy().hasHeightForWidth()) - self.pushButton_basic_heatmap_get_table.setSizePolicy(sizePolicy) - self.pushButton_basic_heatmap_get_table.setObjectName("pushButton_basic_heatmap_get_table") - self.horizontalLayout_107.addWidget(self.pushButton_basic_heatmap_get_table) - self.gridLayout_23.addLayout(self.horizontalLayout_107, 9, 0, 1, 4) - self.tabWidget_4.addTab(self.tab_13, "") - self.tab_10 = QtWidgets.QWidget() - self.tab_10.setObjectName("tab_10") - self.gridLayout_28 = QtWidgets.QGridLayout(self.tab_10) - self.gridLayout_28.setObjectName("gridLayout_28") - self.label_81 = QtWidgets.QLabel(self.tab_10) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_81.sizePolicy().hasHeightForWidth()) - self.label_81.setSizePolicy(sizePolicy) - self.label_81.setObjectName("label_81") - self.gridLayout_28.addWidget(self.label_81, 0, 0, 1, 1) - self.comboBox_basic_peptide_query = QtWidgets.QComboBox(self.tab_10) - self.comboBox_basic_peptide_query.setObjectName("comboBox_basic_peptide_query") - self.gridLayout_28.addWidget(self.comboBox_basic_peptide_query, 0, 1, 1, 1) - self.pushButton_basic_peptide_query = QtWidgets.QPushButton(self.tab_10) - self.pushButton_basic_peptide_query.setEnabled(False) + sizePolicy.setHeightForWidth(self.label_81.sizePolicy().hasHeightForWidth()) + self.label_81.setSizePolicy(sizePolicy) + self.label_81.setObjectName("label_81") + self.gridLayout_28.addWidget(self.label_81, 0, 0, 1, 1) + self.comboBox_basic_peptide_query = QtWidgets.QComboBox(self.tab_10) + self.comboBox_basic_peptide_query.setObjectName("comboBox_basic_peptide_query") + self.gridLayout_28.addWidget(self.comboBox_basic_peptide_query, 0, 1, 1, 1) + self.pushButton_basic_peptide_query = QtWidgets.QPushButton(self.tab_10) + self.pushButton_basic_peptide_query.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -2024,6 +2040,11 @@ def setupUi(self, metaX_main): self.gridLayout_9 = QtWidgets.QGridLayout(self.tab_2) self.gridLayout_9.setObjectName("gridLayout_9") self.groupBox_cross_heatmap_plot = QtWidgets.QGroupBox(self.tab_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_cross_heatmap_plot.sizePolicy().hasHeightForWidth()) + self.groupBox_cross_heatmap_plot.setSizePolicy(sizePolicy) self.groupBox_cross_heatmap_plot.setObjectName("groupBox_cross_heatmap_plot") self.gridLayout_75 = QtWidgets.QGridLayout(self.groupBox_cross_heatmap_plot) self.gridLayout_75.setObjectName("gridLayout_75") @@ -2062,7 +2083,7 @@ def setupUi(self, metaX_main): self.gridLayout_46.addWidget(self.pushButton_get_top_cross_table, 1, 1, 1, 1) self.pushButton_plot_top_heatmap = QtWidgets.QPushButton(self.groupBox_cross_heatmap_plot) self.pushButton_plot_top_heatmap.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pushButton_plot_top_heatmap.sizePolicy().hasHeightForWidth()) @@ -2076,7 +2097,12 @@ def setupUi(self, metaX_main): self.gridLayout_46.addWidget(self.checkBox_2, 1, 0, 1, 1) self.gridLayout_75.addLayout(self.gridLayout_46, 0, 0, 1, 1) self.groupBox_cross_heatmap_settings = QtWidgets.QGroupBox(self.groupBox_cross_heatmap_plot) - self.groupBox_cross_heatmap_settings.setMaximumSize(QtCore.QSize(16777215, 280)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_cross_heatmap_settings.sizePolicy().hasHeightForWidth()) + self.groupBox_cross_heatmap_settings.setSizePolicy(sizePolicy) + self.groupBox_cross_heatmap_settings.setMaximumSize(QtCore.QSize(16777215, 300)) self.groupBox_cross_heatmap_settings.setObjectName("groupBox_cross_heatmap_settings") self.gridLayout_52 = QtWidgets.QGridLayout(self.groupBox_cross_heatmap_settings) self.gridLayout_52.setObjectName("gridLayout_52") @@ -2521,6 +2547,11 @@ def setupUi(self, metaX_main): self.gridLayout_75.addWidget(self.groupBox_cross_heatmap_settings, 1, 0, 1, 1) self.gridLayout_9.addWidget(self.groupBox_cross_heatmap_plot, 1, 0, 1, 1) self.tabWidget_3 = QtWidgets.QTabWidget(self.tab_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Ignored) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget_3.sizePolicy().hasHeightForWidth()) + self.tabWidget_3.setSizePolicy(sizePolicy) self.tabWidget_3.setTabShape(QtWidgets.QTabWidget.Triangular) self.tabWidget_3.setObjectName("tabWidget_3") self.tab_3 = QtWidgets.QWidget() @@ -2555,6 +2586,11 @@ def setupUi(self, metaX_main): self.label_103.setObjectName("label_103") self.horizontalLayout_38.addWidget(self.label_103) self.comboBox_ttest_meta = QtWidgets.QComboBox(self.tab_3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_ttest_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_ttest_meta.setSizePolicy(sizePolicy) self.comboBox_ttest_meta.setObjectName("comboBox_ttest_meta") self.horizontalLayout_38.addWidget(self.comboBox_ttest_meta) self.checkBox_ttest_in_condition = QtWidgets.QCheckBox(self.tab_3) @@ -2566,14 +2602,14 @@ def setupUi(self, metaX_main): self.checkBox_ttest_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) self.checkBox_ttest_in_condition.setObjectName("checkBox_ttest_in_condition") self.horizontalLayout_38.addWidget(self.checkBox_ttest_in_condition) - self.comboBox_ttest_condition_meta = QtWidgets.QComboBox(self.tab_3) - self.comboBox_ttest_condition_meta.setEnabled(False) - self.comboBox_ttest_condition_meta.setObjectName("comboBox_ttest_condition_meta") - self.horizontalLayout_38.addWidget(self.comboBox_ttest_condition_meta) self.horizontalLayout_70 = QtWidgets.QHBoxLayout() self.horizontalLayout_70.setObjectName("horizontalLayout_70") + self.comboBox_ttest_condition_meta = QtWidgets.QComboBox(self.tab_3) + self.comboBox_ttest_condition_meta.setEnabled(True) + self.comboBox_ttest_condition_meta.setObjectName("comboBox_ttest_condition_meta") + self.horizontalLayout_70.addWidget(self.comboBox_ttest_condition_meta) self.comboBox_ttest_condition_group = QtWidgets.QComboBox(self.tab_3) - self.comboBox_ttest_condition_group.setEnabled(False) + self.comboBox_ttest_condition_group.setEnabled(True) self.comboBox_ttest_condition_group.setObjectName("comboBox_ttest_condition_group") self.horizontalLayout_70.addWidget(self.comboBox_ttest_condition_group) self.horizontalLayout_38.addLayout(self.horizontalLayout_70) @@ -2684,14 +2720,14 @@ def setupUi(self, metaX_main): self.checkBox_anova_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) self.checkBox_anova_in_condition.setObjectName("checkBox_anova_in_condition") self.horizontalLayout_37.addWidget(self.checkBox_anova_in_condition) - self.comboBox_anova_condition_meta = QtWidgets.QComboBox(self.tab_7) - self.comboBox_anova_condition_meta.setEnabled(False) - self.comboBox_anova_condition_meta.setObjectName("comboBox_anova_condition_meta") - self.horizontalLayout_37.addWidget(self.comboBox_anova_condition_meta) self.horizontalLayout_71 = QtWidgets.QHBoxLayout() self.horizontalLayout_71.setObjectName("horizontalLayout_71") + self.comboBox_anova_condition_meta = QtWidgets.QComboBox(self.tab_7) + self.comboBox_anova_condition_meta.setEnabled(True) + self.comboBox_anova_condition_meta.setObjectName("comboBox_anova_condition_meta") + self.horizontalLayout_71.addWidget(self.comboBox_anova_condition_meta) self.comboBox_anova_condition_group = QtWidgets.QComboBox(self.tab_7) - self.comboBox_anova_condition_group.setEnabled(False) + self.comboBox_anova_condition_group.setEnabled(True) self.comboBox_anova_condition_group.setObjectName("comboBox_anova_condition_group") self.horizontalLayout_71.addWidget(self.comboBox_anova_condition_group) self.horizontalLayout_37.addLayout(self.horizontalLayout_71) @@ -2724,6 +2760,11 @@ def setupUi(self, metaX_main): self.gridLayout_33.addWidget(self.line_25, 3, 1, 1, 2) self.pushButton_dunnett_test = QtWidgets.QPushButton(self.tab_16) self.pushButton_dunnett_test.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_dunnett_test.sizePolicy().hasHeightForWidth()) + self.pushButton_dunnett_test.setSizePolicy(sizePolicy) self.pushButton_dunnett_test.setObjectName("pushButton_dunnett_test") self.gridLayout_33.addWidget(self.pushButton_dunnett_test, 10, 1, 1, 1) self.horizontalLayout_39 = QtWidgets.QHBoxLayout() @@ -2758,14 +2799,14 @@ def setupUi(self, metaX_main): self.checkBox_group_control_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) self.checkBox_group_control_in_condition.setObjectName("checkBox_group_control_in_condition") self.horizontalLayout_39.addWidget(self.checkBox_group_control_in_condition) - self.comboBox_group_control_condition_meta = QtWidgets.QComboBox(self.tab_16) - self.comboBox_group_control_condition_meta.setEnabled(False) - self.comboBox_group_control_condition_meta.setObjectName("comboBox_group_control_condition_meta") - self.horizontalLayout_39.addWidget(self.comboBox_group_control_condition_meta) self.horizontalLayout_73 = QtWidgets.QHBoxLayout() self.horizontalLayout_73.setObjectName("horizontalLayout_73") + self.comboBox_group_control_condition_meta = QtWidgets.QComboBox(self.tab_16) + self.comboBox_group_control_condition_meta.setEnabled(True) + self.comboBox_group_control_condition_meta.setObjectName("comboBox_group_control_condition_meta") + self.horizontalLayout_73.addWidget(self.comboBox_group_control_condition_meta) self.comboBox_group_control_condition_group = QtWidgets.QComboBox(self.tab_16) - self.comboBox_group_control_condition_group.setEnabled(False) + self.comboBox_group_control_condition_group.setEnabled(True) self.comboBox_group_control_condition_group.setObjectName("comboBox_group_control_condition_group") self.horizontalLayout_73.addWidget(self.comboBox_group_control_condition_group) self.horizontalLayout_39.addLayout(self.horizontalLayout_73) @@ -2814,6 +2855,11 @@ def setupUi(self, metaX_main): self.gridLayout_72.addWidget(self.label_115, 0, 0, 1, 1) self.gridLayout_33.addLayout(self.gridLayout_72, 4, 1, 1, 2) self.line_26 = QtWidgets.QFrame(self.tab_16) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.line_26.sizePolicy().hasHeightForWidth()) + self.line_26.setSizePolicy(sizePolicy) self.line_26.setFrameShape(QtWidgets.QFrame.HLine) self.line_26.setFrameShadow(QtWidgets.QFrame.Sunken) self.line_26.setObjectName("line_26") @@ -2857,19 +2903,19 @@ def setupUi(self, metaX_main): self.checkBox_deseq2_comparing_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) self.checkBox_deseq2_comparing_in_condition.setObjectName("checkBox_deseq2_comparing_in_condition") self.horizontalLayout_40.addWidget(self.checkBox_deseq2_comparing_in_condition) + self.horizontalLayout_75 = QtWidgets.QHBoxLayout() + self.horizontalLayout_75.setObjectName("horizontalLayout_75") self.comboBox_deseq2_condition_meta = QtWidgets.QComboBox(self.tab_19) - self.comboBox_deseq2_condition_meta.setEnabled(False) + self.comboBox_deseq2_condition_meta.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.comboBox_deseq2_condition_meta.sizePolicy().hasHeightForWidth()) self.comboBox_deseq2_condition_meta.setSizePolicy(sizePolicy) self.comboBox_deseq2_condition_meta.setObjectName("comboBox_deseq2_condition_meta") - self.horizontalLayout_40.addWidget(self.comboBox_deseq2_condition_meta) - self.horizontalLayout_75 = QtWidgets.QHBoxLayout() - self.horizontalLayout_75.setObjectName("horizontalLayout_75") + self.horizontalLayout_75.addWidget(self.comboBox_deseq2_condition_meta) self.comboBox_deseq2_condition_group = QtWidgets.QComboBox(self.tab_19) - self.comboBox_deseq2_condition_group.setEnabled(False) + self.comboBox_deseq2_condition_group.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -3025,7 +3071,7 @@ def setupUi(self, metaX_main): self.scrollArea_3.setWidgetResizable(True) self.scrollArea_3.setObjectName("scrollArea_3") self.scrollAreaWidgetContents_4 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 865, 121)) + self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 865, 117)) self.scrollAreaWidgetContents_4.setObjectName("scrollAreaWidgetContents_4") self.gridLayout_68 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_4) self.gridLayout_68.setObjectName("gridLayout_68") @@ -3266,6 +3312,11 @@ def setupUi(self, metaX_main): self.pushButton_tukey_test.setEnabled(False) self.pushButton_tukey_test.setObjectName("pushButton_tukey_test") self.gridLayout_10.addWidget(self.pushButton_tukey_test, 8, 1, 1, 1) + self.line_16 = QtWidgets.QFrame(self.tab_4) + self.line_16.setFrameShape(QtWidgets.QFrame.HLine) + self.line_16.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_16.setObjectName("line_16") + self.gridLayout_10.addWidget(self.line_16, 1, 0, 1, 4) self.horizontalLayout_59 = QtWidgets.QHBoxLayout() self.horizontalLayout_59.setObjectName("horizontalLayout_59") self.label_106 = QtWidgets.QLabel(self.tab_4) @@ -3283,23 +3334,18 @@ def setupUi(self, metaX_main): self.checkBox_tukey_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) self.checkBox_tukey_in_condition.setObjectName("checkBox_tukey_in_condition") self.horizontalLayout_59.addWidget(self.checkBox_tukey_in_condition) - self.comboBox_tukey_condition_meta = QtWidgets.QComboBox(self.tab_4) - self.comboBox_tukey_condition_meta.setEnabled(False) - self.comboBox_tukey_condition_meta.setObjectName("comboBox_tukey_condition_meta") - self.horizontalLayout_59.addWidget(self.comboBox_tukey_condition_meta) self.horizontalLayout_72 = QtWidgets.QHBoxLayout() self.horizontalLayout_72.setObjectName("horizontalLayout_72") + self.comboBox_tukey_condition_meta = QtWidgets.QComboBox(self.tab_4) + self.comboBox_tukey_condition_meta.setEnabled(True) + self.comboBox_tukey_condition_meta.setObjectName("comboBox_tukey_condition_meta") + self.horizontalLayout_72.addWidget(self.comboBox_tukey_condition_meta) self.comboBox_tukey_condition_group = QtWidgets.QComboBox(self.tab_4) - self.comboBox_tukey_condition_group.setEnabled(False) + self.comboBox_tukey_condition_group.setEnabled(True) self.comboBox_tukey_condition_group.setObjectName("comboBox_tukey_condition_group") self.horizontalLayout_72.addWidget(self.comboBox_tukey_condition_group) self.horizontalLayout_59.addLayout(self.horizontalLayout_72) - self.gridLayout_10.addLayout(self.horizontalLayout_59, 0, 1, 1, 3) - self.line_16 = QtWidgets.QFrame(self.tab_4) - self.line_16.setFrameShape(QtWidgets.QFrame.HLine) - self.line_16.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_16.setObjectName("line_16") - self.gridLayout_10.addWidget(self.line_16, 1, 0, 1, 4) + self.gridLayout_10.addLayout(self.horizontalLayout_59, 0, 0, 1, 4) self.tabWidget_3.addTab(self.tab_4, "") self.gridLayout_9.addWidget(self.tabWidget_3, 0, 0, 1, 1) self.tabWidget_TaxaFuncAnalyzer.addTab(self.tab_2, "") @@ -3314,11 +3360,107 @@ def setupUi(self, metaX_main): self.tab_5.setObjectName("tab_5") self.gridLayout_47 = QtWidgets.QGridLayout(self.tab_5) self.gridLayout_47.setObjectName("gridLayout_47") + self.line_17 = QtWidgets.QFrame(self.tab_5) + self.line_17.setFrameShape(QtWidgets.QFrame.HLine) + self.line_17.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_17.setObjectName("line_17") + self.gridLayout_47.addWidget(self.line_17, 4, 0, 1, 4) + self.listWidget_co_expr_focus_list = QtWidgets.QListWidget(self.tab_5) + self.listWidget_co_expr_focus_list.setObjectName("listWidget_co_expr_focus_list") + self.gridLayout_47.addWidget(self.listWidget_co_expr_focus_list, 7, 1, 1, 3) + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.pushButton_co_expr_drop_item = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_drop_item.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_co_expr_drop_item.sizePolicy().hasHeightForWidth()) + self.pushButton_co_expr_drop_item.setSizePolicy(sizePolicy) + self.pushButton_co_expr_drop_item.setObjectName("pushButton_co_expr_drop_item") + self.verticalLayout_2.addWidget(self.pushButton_co_expr_drop_item) + self.pushButton_co_expr_clean_list = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_clean_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_co_expr_clean_list.sizePolicy().hasHeightForWidth()) + self.pushButton_co_expr_clean_list.setSizePolicy(sizePolicy) + self.pushButton_co_expr_clean_list.setObjectName("pushButton_co_expr_clean_list") + self.verticalLayout_2.addWidget(self.pushButton_co_expr_clean_list) + self.pushButton_co_expr_add_a_list = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_add_a_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_co_expr_add_a_list.sizePolicy().hasHeightForWidth()) + self.pushButton_co_expr_add_a_list.setSizePolicy(sizePolicy) + self.pushButton_co_expr_add_a_list.setObjectName("pushButton_co_expr_add_a_list") + self.verticalLayout_2.addWidget(self.pushButton_co_expr_add_a_list) + self.gridLayout_47.addLayout(self.verticalLayout_2, 7, 0, 1, 1) + self.pushButton_co_expr_add_to_list = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_add_to_list.setEnabled(False) + self.pushButton_co_expr_add_to_list.setObjectName("pushButton_co_expr_add_to_list") + self.gridLayout_47.addWidget(self.pushButton_co_expr_add_to_list, 5, 3, 1, 1) + self.horizontalLayout_67 = QtWidgets.QHBoxLayout() + self.horizontalLayout_67.setObjectName("horizontalLayout_67") + self.label_213 = QtWidgets.QLabel(self.tab_5) + self.label_213.setObjectName("label_213") + self.horizontalLayout_67.addWidget(self.label_213) + self.comboBox_co_expr_group_sample = QtWidgets.QComboBox(self.tab_5) + self.comboBox_co_expr_group_sample.setObjectName("comboBox_co_expr_group_sample") + self.comboBox_co_expr_group_sample.addItem("") + self.comboBox_co_expr_group_sample.addItem("") + self.horizontalLayout_67.addWidget(self.comboBox_co_expr_group_sample) + self.gridLayout_47.addLayout(self.horizontalLayout_67, 3, 0, 1, 1) + self.checkBox_4 = QtWidgets.QCheckBox(self.tab_5) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_4.sizePolicy().hasHeightForWidth()) + self.checkBox_4.setSizePolicy(sizePolicy) + self.checkBox_4.setObjectName("checkBox_4") + self.gridLayout_47.addWidget(self.checkBox_4, 9, 0, 1, 2) + self.horizontalLayout_68 = QtWidgets.QHBoxLayout() + self.horizontalLayout_68.setObjectName("horizontalLayout_68") + self.horizontalLayout_42 = QtWidgets.QHBoxLayout() + self.horizontalLayout_42.setObjectName("horizontalLayout_42") + self.checkBox_co_expression_in_condition = QtWidgets.QCheckBox(self.tab_5) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_co_expression_in_condition.sizePolicy().hasHeightForWidth()) + self.checkBox_co_expression_in_condition.setSizePolicy(sizePolicy) + self.checkBox_co_expression_in_condition.setObjectName("checkBox_co_expression_in_condition") + self.horizontalLayout_42.addWidget(self.checkBox_co_expression_in_condition) + self.horizontalLayout_74 = QtWidgets.QHBoxLayout() + self.horizontalLayout_74.setObjectName("horizontalLayout_74") + self.comboBox_co_expression_condition_meta = QtWidgets.QComboBox(self.tab_5) + self.comboBox_co_expression_condition_meta.setEnabled(True) + self.comboBox_co_expression_condition_meta.setObjectName("comboBox_co_expression_condition_meta") + self.horizontalLayout_74.addWidget(self.comboBox_co_expression_condition_meta) + self.comboBox_co_expression_condition_group = QtWidgets.QComboBox(self.tab_5) + self.comboBox_co_expression_condition_group.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_co_expression_condition_group.sizePolicy().hasHeightForWidth()) + self.comboBox_co_expression_condition_group.setSizePolicy(sizePolicy) + self.comboBox_co_expression_condition_group.setMinimumSize(QtCore.QSize(150, 0)) + self.comboBox_co_expression_condition_group.setMaximumSize(QtCore.QSize(500, 16777215)) + self.comboBox_co_expression_condition_group.setObjectName("comboBox_co_expression_condition_group") + self.horizontalLayout_74.addWidget(self.comboBox_co_expression_condition_group) + self.horizontalLayout_42.addLayout(self.horizontalLayout_74) + self.horizontalLayout_68.addLayout(self.horizontalLayout_42) + self.gridLayout_co_expr_group = QtWidgets.QGridLayout() + self.gridLayout_co_expr_group.setObjectName("gridLayout_co_expr_group") + self.horizontalLayout_68.addLayout(self.gridLayout_co_expr_group) self.gridLayout_co_expr_sample = QtWidgets.QGridLayout() self.gridLayout_co_expr_sample.setObjectName("gridLayout_co_expr_sample") - self.gridLayout_47.addLayout(self.gridLayout_co_expr_sample, 3, 1, 1, 3) + self.horizontalLayout_68.addLayout(self.gridLayout_co_expr_sample) + self.gridLayout_47.addLayout(self.horizontalLayout_68, 3, 1, 1, 3) self.groupBox_co_expression_plot_settings = QtWidgets.QGroupBox(self.tab_5) - self.groupBox_co_expression_plot_settings.setMaximumSize(QtCore.QSize(16777215, 240)) + self.groupBox_co_expression_plot_settings.setMaximumSize(QtCore.QSize(16777215, 280)) self.groupBox_co_expression_plot_settings.setObjectName("groupBox_co_expression_plot_settings") self.gridLayout_56 = QtWidgets.QGridLayout(self.groupBox_co_expression_plot_settings) self.gridLayout_56.setObjectName("gridLayout_56") @@ -3326,7 +3468,7 @@ def setupUi(self, metaX_main): self.scrollArea_4.setWidgetResizable(True) self.scrollArea_4.setObjectName("scrollArea_4") self.scrollAreaWidgetContents_5 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_5.setGeometry(QtCore.QRect(0, 0, 493, 128)) + self.scrollAreaWidgetContents_5.setGeometry(QtCore.QRect(0, 0, 885, 168)) self.scrollAreaWidgetContents_5.setObjectName("scrollAreaWidgetContents_5") self.gridLayout_49 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_5) self.gridLayout_49.setObjectName("gridLayout_49") @@ -3508,10 +3650,11 @@ def setupUi(self, metaX_main): self.scrollArea_4.setWidget(self.scrollAreaWidgetContents_5) self.gridLayout_56.addWidget(self.scrollArea_4, 0, 0, 1, 1) self.gridLayout_47.addWidget(self.groupBox_co_expression_plot_settings, 10, 0, 1, 4) - self.pushButton_co_expr_add_top = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_add_top.setEnabled(False) - self.pushButton_co_expr_add_top.setObjectName("pushButton_co_expr_add_top") - self.gridLayout_47.addWidget(self.pushButton_co_expr_add_top, 6, 3, 1, 1) + self.line_11 = QtWidgets.QFrame(self.tab_5) + self.line_11.setFrameShape(QtWidgets.QFrame.HLine) + self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_11.setObjectName("line_11") + self.gridLayout_47.addWidget(self.line_11, 1, 0, 1, 4) self.horizontalLayout_41 = QtWidgets.QHBoxLayout() self.horizontalLayout_41.setObjectName("horizontalLayout_41") self.label_29 = QtWidgets.QLabel(self.tab_5) @@ -3554,10 +3697,43 @@ def setupUi(self, metaX_main): self.comboBox_co_expr_meta.setObjectName("comboBox_co_expr_meta") self.horizontalLayout_41.addWidget(self.comboBox_co_expr_meta) self.gridLayout_47.addLayout(self.horizontalLayout_41, 0, 0, 1, 4) - self.pushButton_co_expr_add_to_list = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_add_to_list.setEnabled(False) - self.pushButton_co_expr_add_to_list.setObjectName("pushButton_co_expr_add_to_list") - self.gridLayout_47.addWidget(self.pushButton_co_expr_add_to_list, 5, 3, 1, 1) + self.label_72 = QtWidgets.QLabel(self.tab_5) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_72.sizePolicy().hasHeightForWidth()) + self.label_72.setSizePolicy(sizePolicy) + self.label_72.setObjectName("label_72") + self.gridLayout_47.addWidget(self.label_72, 5, 0, 1, 1) + self.pushButton_co_expr_add_top = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_add_top.setEnabled(False) + self.pushButton_co_expr_add_top.setObjectName("pushButton_co_expr_add_top") + self.gridLayout_47.addWidget(self.pushButton_co_expr_add_top, 6, 3, 1, 1) + self.horizontalLayout_94 = QtWidgets.QHBoxLayout() + self.horizontalLayout_94.setObjectName("horizontalLayout_94") + self.pushButton_co_expr_plot = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_plot.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_co_expr_plot.sizePolicy().hasHeightForWidth()) + self.pushButton_co_expr_plot.setSizePolicy(sizePolicy) + self.pushButton_co_expr_plot.setObjectName("pushButton_co_expr_plot") + self.horizontalLayout_94.addWidget(self.pushButton_co_expr_plot) + self.pushButton_co_expr_heatmap_plot = QtWidgets.QPushButton(self.tab_5) + self.pushButton_co_expr_heatmap_plot.setEnabled(False) + self.pushButton_co_expr_heatmap_plot.setObjectName("pushButton_co_expr_heatmap_plot") + self.horizontalLayout_94.addWidget(self.pushButton_co_expr_heatmap_plot) + self.gridLayout_47.addLayout(self.horizontalLayout_94, 9, 2, 1, 2) + self.comboBox_co_expr_select_list = QtWidgets.QComboBox(self.tab_5) + self.comboBox_co_expr_select_list.setMinimumSize(QtCore.QSize(600, 0)) + self.comboBox_co_expr_select_list.setObjectName("comboBox_co_expr_select_list") + self.gridLayout_47.addWidget(self.comboBox_co_expr_select_list, 5, 1, 1, 2) + self.line_5 = QtWidgets.QFrame(self.tab_5) + self.line_5.setFrameShape(QtWidgets.QFrame.HLine) + self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_5.setObjectName("line_5") + self.gridLayout_47.addWidget(self.line_5, 8, 0, 1, 4) self.horizontalLayout_43 = QtWidgets.QHBoxLayout() self.horizontalLayout_43.setObjectName("horizontalLayout_43") self.label_73 = QtWidgets.QLabel(self.tab_5) @@ -3611,139 +3787,188 @@ def setupUi(self, metaX_main): self.checkBox_co_expr_top_filtered.setObjectName("checkBox_co_expr_top_filtered") self.horizontalLayout_43.addWidget(self.checkBox_co_expr_top_filtered) self.gridLayout_47.addLayout(self.horizontalLayout_43, 6, 1, 1, 2) - self.horizontalLayout_94 = QtWidgets.QHBoxLayout() - self.horizontalLayout_94.setObjectName("horizontalLayout_94") - self.pushButton_co_expr_plot = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_plot.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + self.tabWidget.addTab(self.tab_5, "") + self.tab_15 = QtWidgets.QWidget() + self.tab_15.setObjectName("tab_15") + self.gridLayout_24 = QtWidgets.QGridLayout(self.tab_15) + self.gridLayout_24.setObjectName("gridLayout_24") + self.horizontalLayout_115 = QtWidgets.QHBoxLayout() + self.horizontalLayout_115.setObjectName("horizontalLayout_115") + self.label_215 = QtWidgets.QLabel(self.tab_15) + self.label_215.setObjectName("label_215") + self.horizontalLayout_115.addWidget(self.label_215) + self.comboBox_trends_group_sample = QtWidgets.QComboBox(self.tab_15) + self.comboBox_trends_group_sample.setObjectName("comboBox_trends_group_sample") + self.comboBox_trends_group_sample.addItem("") + self.comboBox_trends_group_sample.addItem("") + self.horizontalLayout_115.addWidget(self.comboBox_trends_group_sample) + self.gridLayout_24.addLayout(self.horizontalLayout_115, 2, 0, 1, 1) + self.label_98 = QtWidgets.QLabel(self.tab_15) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_co_expr_plot.sizePolicy().hasHeightForWidth()) - self.pushButton_co_expr_plot.setSizePolicy(sizePolicy) - self.pushButton_co_expr_plot.setObjectName("pushButton_co_expr_plot") - self.horizontalLayout_94.addWidget(self.pushButton_co_expr_plot) - self.pushButton_co_expr_heatmap_plot = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_heatmap_plot.setEnabled(False) - self.pushButton_co_expr_heatmap_plot.setObjectName("pushButton_co_expr_heatmap_plot") - self.horizontalLayout_94.addWidget(self.pushButton_co_expr_heatmap_plot) - self.gridLayout_47.addLayout(self.horizontalLayout_94, 9, 2, 1, 2) - self.line_11 = QtWidgets.QFrame(self.tab_5) - self.line_11.setFrameShape(QtWidgets.QFrame.HLine) - self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_11.setObjectName("line_11") - self.gridLayout_47.addWidget(self.line_11, 1, 0, 1, 4) - self.horizontalLayout_42 = QtWidgets.QHBoxLayout() - self.horizontalLayout_42.setObjectName("horizontalLayout_42") - self.checkBox_co_expression_in_condition = QtWidgets.QCheckBox(self.tab_5) - self.checkBox_co_expression_in_condition.setObjectName("checkBox_co_expression_in_condition") - self.horizontalLayout_42.addWidget(self.checkBox_co_expression_in_condition) - self.comboBox_co_expression_condition_meta = QtWidgets.QComboBox(self.tab_5) - self.comboBox_co_expression_condition_meta.setEnabled(False) - self.comboBox_co_expression_condition_meta.setObjectName("comboBox_co_expression_condition_meta") - self.horizontalLayout_42.addWidget(self.comboBox_co_expression_condition_meta) - self.horizontalLayout_74 = QtWidgets.QHBoxLayout() - self.horizontalLayout_74.setObjectName("horizontalLayout_74") - self.comboBox_co_expression_condition_group = QtWidgets.QComboBox(self.tab_5) - self.comboBox_co_expression_condition_group.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.label_98.sizePolicy().hasHeightForWidth()) + self.label_98.setSizePolicy(sizePolicy) + self.label_98.setObjectName("label_98") + self.gridLayout_24.addWidget(self.label_98, 6, 0, 1, 1) + self.line_18 = QtWidgets.QFrame(self.tab_15) + self.line_18.setFrameShape(QtWidgets.QFrame.HLine) + self.line_18.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_18.setObjectName("line_18") + self.gridLayout_24.addWidget(self.line_18, 1, 0, 1, 5) + self.groupBox_expression_trends_plot_settings = QtWidgets.QGroupBox(self.tab_15) + self.groupBox_expression_trends_plot_settings.setMaximumSize(QtCore.QSize(16777215, 260)) + self.groupBox_expression_trends_plot_settings.setObjectName("groupBox_expression_trends_plot_settings") + self.gridLayout_60 = QtWidgets.QGridLayout(self.groupBox_expression_trends_plot_settings) + self.gridLayout_60.setObjectName("gridLayout_60") + self.scrollArea_5 = QtWidgets.QScrollArea(self.groupBox_expression_trends_plot_settings) + self.scrollArea_5.setWidgetResizable(True) + self.scrollArea_5.setObjectName("scrollArea_5") + self.scrollAreaWidgetContents_6 = QtWidgets.QWidget() + self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 885, 119)) + self.scrollAreaWidgetContents_6.setObjectName("scrollAreaWidgetContents_6") + self.gridLayout_57 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_6) + self.gridLayout_57.setObjectName("gridLayout_57") + self.gridLayout_59 = QtWidgets.QGridLayout() + self.gridLayout_59.setObjectName("gridLayout_59") + self.checkBox_trends_plot_interactive_rename_taxa = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_co_expression_condition_group.sizePolicy().hasHeightForWidth()) - self.comboBox_co_expression_condition_group.setSizePolicy(sizePolicy) - self.comboBox_co_expression_condition_group.setMinimumSize(QtCore.QSize(150, 0)) - self.comboBox_co_expression_condition_group.setMaximumSize(QtCore.QSize(500, 16777215)) - self.comboBox_co_expression_condition_group.setObjectName("comboBox_co_expression_condition_group") - self.horizontalLayout_74.addWidget(self.comboBox_co_expression_condition_group) - self.horizontalLayout_42.addLayout(self.horizontalLayout_74) - self.gridLayout_47.addLayout(self.horizontalLayout_42, 2, 1, 1, 1) - self.line_17 = QtWidgets.QFrame(self.tab_5) - self.line_17.setFrameShape(QtWidgets.QFrame.HLine) - self.line_17.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_17.setObjectName("line_17") - self.gridLayout_47.addWidget(self.line_17, 4, 0, 1, 4) - self.checkBox_4 = QtWidgets.QCheckBox(self.tab_5) + sizePolicy.setHeightForWidth(self.checkBox_trends_plot_interactive_rename_taxa.sizePolicy().hasHeightForWidth()) + self.checkBox_trends_plot_interactive_rename_taxa.setSizePolicy(sizePolicy) + self.checkBox_trends_plot_interactive_rename_taxa.setChecked(True) + self.checkBox_trends_plot_interactive_rename_taxa.setObjectName("checkBox_trends_plot_interactive_rename_taxa") + self.gridLayout_59.addWidget(self.checkBox_trends_plot_interactive_rename_taxa, 1, 7, 1, 1) + self.checkBox_trends_plot_interactive_plot_samples = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_4.sizePolicy().hasHeightForWidth()) - self.checkBox_4.setSizePolicy(sizePolicy) - self.checkBox_4.setObjectName("checkBox_4") - self.gridLayout_47.addWidget(self.checkBox_4, 9, 0, 1, 2) - self.radioButton_co_expr_bygroup = QtWidgets.QRadioButton(self.tab_5) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.checkBox_trends_plot_interactive_plot_samples.sizePolicy().hasHeightForWidth()) + self.checkBox_trends_plot_interactive_plot_samples.setSizePolicy(sizePolicy) + self.checkBox_trends_plot_interactive_plot_samples.setObjectName("checkBox_trends_plot_interactive_plot_samples") + self.gridLayout_59.addWidget(self.checkBox_trends_plot_interactive_plot_samples, 1, 1, 1, 3) + self.label_174 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_174.setFont(font) + self.label_174.setObjectName("label_174") + self.gridLayout_59.addWidget(self.label_174, 0, 0, 1, 1) + self.label_175 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_175.setFont(font) + self.label_175.setObjectName("label_175") + self.gridLayout_59.addWidget(self.label_175, 1, 0, 1, 1) + self.checkBox_trends_plot_interactive_show_legend = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_co_expr_bygroup.sizePolicy().hasHeightForWidth()) - self.radioButton_co_expr_bygroup.setSizePolicy(sizePolicy) - self.radioButton_co_expr_bygroup.setChecked(True) - self.radioButton_co_expr_bygroup.setObjectName("radioButton_co_expr_bygroup") - self.gridLayout_47.addWidget(self.radioButton_co_expr_bygroup, 2, 0, 1, 1) - self.comboBox_co_expr_select_list = QtWidgets.QComboBox(self.tab_5) - self.comboBox_co_expr_select_list.setMinimumSize(QtCore.QSize(600, 0)) - self.comboBox_co_expr_select_list.setObjectName("comboBox_co_expr_select_list") - self.gridLayout_47.addWidget(self.comboBox_co_expr_select_list, 5, 1, 1, 2) - self.verticalLayout_2 = QtWidgets.QVBoxLayout() - self.verticalLayout_2.setObjectName("verticalLayout_2") - self.pushButton_co_expr_drop_item = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_drop_item.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.checkBox_trends_plot_interactive_show_legend.sizePolicy().hasHeightForWidth()) + self.checkBox_trends_plot_interactive_show_legend.setSizePolicy(sizePolicy) + self.checkBox_trends_plot_interactive_show_legend.setChecked(True) + self.checkBox_trends_plot_interactive_show_legend.setObjectName("checkBox_trends_plot_interactive_show_legend") + self.gridLayout_59.addWidget(self.checkBox_trends_plot_interactive_show_legend, 1, 6, 1, 1) + self.checkBox_get_trends_cluster_intensity = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_co_expr_drop_item.sizePolicy().hasHeightForWidth()) - self.pushButton_co_expr_drop_item.setSizePolicy(sizePolicy) - self.pushButton_co_expr_drop_item.setObjectName("pushButton_co_expr_drop_item") - self.verticalLayout_2.addWidget(self.pushButton_co_expr_drop_item) - self.pushButton_co_expr_clean_list = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_clean_list.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.checkBox_get_trends_cluster_intensity.sizePolicy().hasHeightForWidth()) + self.checkBox_get_trends_cluster_intensity.setSizePolicy(sizePolicy) + self.checkBox_get_trends_cluster_intensity.setObjectName("checkBox_get_trends_cluster_intensity") + self.gridLayout_59.addWidget(self.checkBox_get_trends_cluster_intensity, 1, 4, 1, 2) + self.horizontalLayout_97 = QtWidgets.QHBoxLayout() + self.horizontalLayout_97.setObjectName("horizontalLayout_97") + self.label_97 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_co_expr_clean_list.sizePolicy().hasHeightForWidth()) - self.pushButton_co_expr_clean_list.setSizePolicy(sizePolicy) - self.pushButton_co_expr_clean_list.setObjectName("pushButton_co_expr_clean_list") - self.verticalLayout_2.addWidget(self.pushButton_co_expr_clean_list) - self.pushButton_co_expr_add_a_list = QtWidgets.QPushButton(self.tab_5) - self.pushButton_co_expr_add_a_list.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.label_97.sizePolicy().hasHeightForWidth()) + self.label_97.setSizePolicy(sizePolicy) + self.label_97.setObjectName("label_97") + self.horizontalLayout_97.addWidget(self.label_97) + self.spinBox_trends_width = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_co_expr_add_a_list.sizePolicy().hasHeightForWidth()) - self.pushButton_co_expr_add_a_list.setSizePolicy(sizePolicy) - self.pushButton_co_expr_add_a_list.setObjectName("pushButton_co_expr_add_a_list") - self.verticalLayout_2.addWidget(self.pushButton_co_expr_add_a_list) - self.gridLayout_47.addLayout(self.verticalLayout_2, 7, 0, 1, 1) - self.radioButton_co_expr_bysample = QtWidgets.QRadioButton(self.tab_5) + sizePolicy.setHeightForWidth(self.spinBox_trends_width.sizePolicy().hasHeightForWidth()) + self.spinBox_trends_width.setSizePolicy(sizePolicy) + self.spinBox_trends_width.setMinimum(1) + self.spinBox_trends_width.setMaximum(200) + self.spinBox_trends_width.setProperty("value", 16) + self.spinBox_trends_width.setObjectName("spinBox_trends_width") + self.horizontalLayout_97.addWidget(self.spinBox_trends_width) + self.gridLayout_59.addLayout(self.horizontalLayout_97, 0, 1, 1, 1) + self.horizontalLayout_98 = QtWidgets.QHBoxLayout() + self.horizontalLayout_98.setObjectName("horizontalLayout_98") + self.label_92 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_co_expr_bysample.sizePolicy().hasHeightForWidth()) - self.radioButton_co_expr_bysample.setSizePolicy(sizePolicy) - self.radioButton_co_expr_bysample.setObjectName("radioButton_co_expr_bysample") - self.gridLayout_47.addWidget(self.radioButton_co_expr_bysample, 3, 0, 1, 1) - self.label_72 = QtWidgets.QLabel(self.tab_5) + sizePolicy.setHeightForWidth(self.label_92.sizePolicy().hasHeightForWidth()) + self.label_92.setSizePolicy(sizePolicy) + self.label_92.setObjectName("label_92") + self.horizontalLayout_98.addWidget(self.label_92) + self.spinBox_trends_height = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_72.sizePolicy().hasHeightForWidth()) - self.label_72.setSizePolicy(sizePolicy) - self.label_72.setObjectName("label_72") - self.gridLayout_47.addWidget(self.label_72, 5, 0, 1, 1) - self.gridLayout_co_expr_group = QtWidgets.QGridLayout() - self.gridLayout_co_expr_group.setObjectName("gridLayout_co_expr_group") - self.gridLayout_47.addLayout(self.gridLayout_co_expr_group, 2, 2, 1, 2) - self.listWidget_co_expr_focus_list = QtWidgets.QListWidget(self.tab_5) - self.listWidget_co_expr_focus_list.setObjectName("listWidget_co_expr_focus_list") - self.gridLayout_47.addWidget(self.listWidget_co_expr_focus_list, 7, 1, 1, 3) - self.line_5 = QtWidgets.QFrame(self.tab_5) - self.line_5.setFrameShape(QtWidgets.QFrame.HLine) - self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_5.setObjectName("line_5") - self.gridLayout_47.addWidget(self.line_5, 8, 0, 1, 4) - self.tabWidget.addTab(self.tab_5, "") - self.tab_15 = QtWidgets.QWidget() - self.tab_15.setObjectName("tab_15") - self.gridLayout_24 = QtWidgets.QGridLayout(self.tab_15) - self.gridLayout_24.setObjectName("gridLayout_24") + sizePolicy.setHeightForWidth(self.spinBox_trends_height.sizePolicy().hasHeightForWidth()) + self.spinBox_trends_height.setSizePolicy(sizePolicy) + self.spinBox_trends_height.setMinimum(1) + self.spinBox_trends_height.setMaximum(200) + self.spinBox_trends_height.setProperty("value", 9) + self.spinBox_trends_height.setObjectName("spinBox_trends_height") + self.horizontalLayout_98.addWidget(self.spinBox_trends_height) + self.gridLayout_59.addLayout(self.horizontalLayout_98, 0, 2, 1, 1) + self.horizontalLayout_99 = QtWidgets.QHBoxLayout() + self.horizontalLayout_99.setObjectName("horizontalLayout_99") + self.label_158 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_158.sizePolicy().hasHeightForWidth()) + self.label_158.setSizePolicy(sizePolicy) + self.label_158.setObjectName("label_158") + self.horizontalLayout_99.addWidget(self.label_158) + self.spinBox_trends_font_size = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.spinBox_trends_font_size.sizePolicy().hasHeightForWidth()) + self.spinBox_trends_font_size.setSizePolicy(sizePolicy) + self.spinBox_trends_font_size.setMinimum(1) + self.spinBox_trends_font_size.setProperty("value", 10) + self.spinBox_trends_font_size.setObjectName("spinBox_trends_font_size") + self.horizontalLayout_99.addWidget(self.spinBox_trends_font_size) + self.gridLayout_59.addLayout(self.horizontalLayout_99, 0, 4, 1, 1) + self.horizontalLayout_100 = QtWidgets.QHBoxLayout() + self.horizontalLayout_100.setObjectName("horizontalLayout_100") + self.label_195 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) + self.label_195.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_195.setObjectName("label_195") + self.horizontalLayout_100.addWidget(self.label_195) + self.spinBox_trends_num_col = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) + self.spinBox_trends_num_col.setMinimum(1) + self.spinBox_trends_num_col.setObjectName("spinBox_trends_num_col") + self.horizontalLayout_100.addWidget(self.spinBox_trends_num_col) + self.gridLayout_59.addLayout(self.horizontalLayout_100, 0, 5, 1, 3) + self.gridLayout_57.addLayout(self.gridLayout_59, 0, 0, 1, 1) + self.scrollArea_5.setWidget(self.scrollAreaWidgetContents_6) + self.gridLayout_60.addWidget(self.scrollArea_5, 0, 0, 1, 1) + self.gridLayout_24.addWidget(self.groupBox_expression_trends_plot_settings, 10, 0, 1, 5) + self.listWidget_trends_list_for_ploting = QtWidgets.QListWidget(self.tab_15) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.listWidget_trends_list_for_ploting.sizePolicy().hasHeightForWidth()) + self.listWidget_trends_list_for_ploting.setSizePolicy(sizePolicy) + self.listWidget_trends_list_for_ploting.setObjectName("listWidget_trends_list_for_ploting") + self.gridLayout_24.addWidget(self.listWidget_trends_list_for_ploting, 6, 1, 2, 4) + self.horizontalLayout_116 = QtWidgets.QHBoxLayout() + self.horizontalLayout_116.setObjectName("horizontalLayout_116") self.horizontalLayout_45 = QtWidgets.QHBoxLayout() self.horizontalLayout_45.setObjectName("horizontalLayout_45") self.checkBox_trends_in_condition = QtWidgets.QCheckBox(self.tab_15) @@ -3755,14 +3980,14 @@ def setupUi(self, metaX_main): self.checkBox_trends_in_condition.setLayoutDirection(QtCore.Qt.LeftToRight) self.checkBox_trends_in_condition.setObjectName("checkBox_trends_in_condition") self.horizontalLayout_45.addWidget(self.checkBox_trends_in_condition) - self.comboBox_trends_condition_meta = QtWidgets.QComboBox(self.tab_15) - self.comboBox_trends_condition_meta.setEnabled(False) - self.comboBox_trends_condition_meta.setObjectName("comboBox_trends_condition_meta") - self.horizontalLayout_45.addWidget(self.comboBox_trends_condition_meta) self.horizontalLayout_76 = QtWidgets.QHBoxLayout() self.horizontalLayout_76.setObjectName("horizontalLayout_76") + self.comboBox_trends_condition_meta = QtWidgets.QComboBox(self.tab_15) + self.comboBox_trends_condition_meta.setEnabled(True) + self.comboBox_trends_condition_meta.setObjectName("comboBox_trends_condition_meta") + self.horizontalLayout_76.addWidget(self.comboBox_trends_condition_meta) self.comboBox_trends_condition_group = QtWidgets.QComboBox(self.tab_15) - self.comboBox_trends_condition_group.setEnabled(False) + self.comboBox_trends_condition_group.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -3771,63 +3996,23 @@ def setupUi(self, metaX_main): self.comboBox_trends_condition_group.setObjectName("comboBox_trends_condition_group") self.horizontalLayout_76.addWidget(self.comboBox_trends_condition_group) self.horizontalLayout_45.addLayout(self.horizontalLayout_76) - self.gridLayout_24.addLayout(self.horizontalLayout_45, 2, 1, 1, 2) - self.comboBox_trends_selection_list = QtWidgets.QComboBox(self.tab_15) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_trends_selection_list.sizePolicy().hasHeightForWidth()) - self.comboBox_trends_selection_list.setSizePolicy(sizePolicy) - self.comboBox_trends_selection_list.setMinimumSize(QtCore.QSize(600, 0)) - self.comboBox_trends_selection_list.setObjectName("comboBox_trends_selection_list") - self.gridLayout_24.addWidget(self.comboBox_trends_selection_list, 5, 1, 1, 3) - self.listWidget_trends_list_for_ploting = QtWidgets.QListWidget(self.tab_15) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.listWidget_trends_list_for_ploting.sizePolicy().hasHeightForWidth()) - self.listWidget_trends_list_for_ploting.setSizePolicy(sizePolicy) - self.listWidget_trends_list_for_ploting.setObjectName("listWidget_trends_list_for_ploting") - self.gridLayout_24.addWidget(self.listWidget_trends_list_for_ploting, 7, 1, 2, 4) - self.radioButton_trends_group = QtWidgets.QRadioButton(self.tab_15) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_trends_group.sizePolicy().hasHeightForWidth()) - self.radioButton_trends_group.setSizePolicy(sizePolicy) - self.radioButton_trends_group.setChecked(True) - self.radioButton_trends_group.setObjectName("radioButton_trends_group") - self.gridLayout_24.addWidget(self.radioButton_trends_group, 2, 0, 1, 1) - self.pushButton_trends_add_top = QtWidgets.QPushButton(self.tab_15) - self.pushButton_trends_add_top.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_trends_add_top.sizePolicy().hasHeightForWidth()) - self.pushButton_trends_add_top.setSizePolicy(sizePolicy) - self.pushButton_trends_add_top.setObjectName("pushButton_trends_add_top") - self.gridLayout_24.addWidget(self.pushButton_trends_add_top, 6, 4, 1, 1) - self.line_18 = QtWidgets.QFrame(self.tab_15) - self.line_18.setFrameShape(QtWidgets.QFrame.HLine) - self.line_18.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_18.setObjectName("line_18") - self.gridLayout_24.addWidget(self.line_18, 1, 0, 1, 5) - self.radioButton_trends_sample = QtWidgets.QRadioButton(self.tab_15) + self.horizontalLayout_116.addLayout(self.horizontalLayout_45) + self.verticalLayout_trends_group = QtWidgets.QVBoxLayout() + self.verticalLayout_trends_group.setObjectName("verticalLayout_trends_group") + self.horizontalLayout_116.addLayout(self.verticalLayout_trends_group) + self.verticalLayout_trends_sample = QtWidgets.QVBoxLayout() + self.verticalLayout_trends_sample.setObjectName("verticalLayout_trends_sample") + self.horizontalLayout_116.addLayout(self.verticalLayout_trends_sample) + self.gridLayout_24.addLayout(self.horizontalLayout_116, 2, 1, 1, 4) + self.pushButton_trends_add = QtWidgets.QPushButton(self.tab_15) + self.pushButton_trends_add.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_trends_sample.sizePolicy().hasHeightForWidth()) - self.radioButton_trends_sample.setSizePolicy(sizePolicy) - self.radioButton_trends_sample.setObjectName("radioButton_trends_sample") - self.gridLayout_24.addWidget(self.radioButton_trends_sample, 3, 0, 1, 1) - self.label_98 = QtWidgets.QLabel(self.tab_15) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_98.sizePolicy().hasHeightForWidth()) - self.label_98.setSizePolicy(sizePolicy) - self.label_98.setObjectName("label_98") - self.gridLayout_24.addWidget(self.label_98, 7, 0, 1, 1) + sizePolicy.setHeightForWidth(self.pushButton_trends_add.sizePolicy().hasHeightForWidth()) + self.pushButton_trends_add.setSizePolicy(sizePolicy) + self.pushButton_trends_add.setObjectName("pushButton_trends_add") + self.gridLayout_24.addWidget(self.pushButton_trends_add, 4, 4, 1, 1) self.horizontalLayout_46 = QtWidgets.QHBoxLayout() self.horizontalLayout_46.setObjectName("horizontalLayout_46") self.label_99 = QtWidgets.QLabel(self.tab_15) @@ -3875,32 +4060,7 @@ def setupUi(self, metaX_main): self.checkBox_trends_top_filtered = QtWidgets.QCheckBox(self.tab_15) self.checkBox_trends_top_filtered.setObjectName("checkBox_trends_top_filtered") self.horizontalLayout_46.addWidget(self.checkBox_trends_top_filtered) - self.gridLayout_24.addLayout(self.horizontalLayout_46, 6, 1, 1, 3) - self.line_31 = QtWidgets.QFrame(self.tab_15) - self.line_31.setFrameShape(QtWidgets.QFrame.HLine) - self.line_31.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_31.setObjectName("line_31") - self.gridLayout_24.addWidget(self.line_31, 9, 0, 1, 5) - self.verticalLayout_trends_group = QtWidgets.QVBoxLayout() - self.verticalLayout_trends_group.setObjectName("verticalLayout_trends_group") - self.gridLayout_24.addLayout(self.verticalLayout_trends_group, 2, 3, 1, 2) - self.line_19 = QtWidgets.QFrame(self.tab_15) - self.line_19.setFrameShape(QtWidgets.QFrame.HLine) - self.line_19.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_19.setObjectName("line_19") - self.gridLayout_24.addWidget(self.line_19, 4, 0, 1, 5) - self.verticalLayout_trends_sample = QtWidgets.QVBoxLayout() - self.verticalLayout_trends_sample.setObjectName("verticalLayout_trends_sample") - self.gridLayout_24.addLayout(self.verticalLayout_trends_sample, 3, 1, 1, 4) - self.pushButton_trends_add = QtWidgets.QPushButton(self.tab_15) - self.pushButton_trends_add.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_trends_add.sizePolicy().hasHeightForWidth()) - self.pushButton_trends_add.setSizePolicy(sizePolicy) - self.pushButton_trends_add.setObjectName("pushButton_trends_add") - self.gridLayout_24.addWidget(self.pushButton_trends_add, 5, 4, 1, 1) + self.gridLayout_24.addLayout(self.horizontalLayout_46, 5, 1, 1, 3) self.verticalLayout_3 = QtWidgets.QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") self.pushButton_trends_drop_item = QtWidgets.QPushButton(self.tab_15) @@ -3930,7 +4090,15 @@ def setupUi(self, metaX_main): self.pushButton_trends_add_a_list.setSizePolicy(sizePolicy) self.pushButton_trends_add_a_list.setObjectName("pushButton_trends_add_a_list") self.verticalLayout_3.addWidget(self.pushButton_trends_add_a_list) - self.gridLayout_24.addLayout(self.verticalLayout_3, 8, 0, 1, 1) + self.gridLayout_24.addLayout(self.verticalLayout_3, 7, 0, 1, 1) + self.line_19 = QtWidgets.QFrame(self.tab_15) + self.line_19.setFrameShape(QtWidgets.QFrame.HLine) + self.line_19.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_19.setObjectName("line_19") + self.gridLayout_24.addWidget(self.line_19, 3, 0, 1, 5) + self.label_100 = QtWidgets.QLabel(self.tab_15) + self.label_100.setObjectName("label_100") + self.gridLayout_24.addWidget(self.label_100, 4, 0, 1, 1) self.horizontalLayout_44 = QtWidgets.QHBoxLayout() self.horizontalLayout_44.setObjectName("horizontalLayout_44") self.label_96 = QtWidgets.QLabel(self.tab_15) @@ -3959,152 +4127,24 @@ def setupUi(self, metaX_main): self.comboBox_trends_meta.setObjectName("comboBox_trends_meta") self.horizontalLayout_44.addWidget(self.comboBox_trends_meta) self.gridLayout_24.addLayout(self.horizontalLayout_44, 0, 0, 1, 5) - self.label_100 = QtWidgets.QLabel(self.tab_15) - self.label_100.setObjectName("label_100") - self.gridLayout_24.addWidget(self.label_100, 5, 0, 1, 1) - self.groupBox_expression_trends_plot_settings = QtWidgets.QGroupBox(self.tab_15) - self.groupBox_expression_trends_plot_settings.setMaximumSize(QtCore.QSize(16777215, 240)) - self.groupBox_expression_trends_plot_settings.setObjectName("groupBox_expression_trends_plot_settings") - self.gridLayout_60 = QtWidgets.QGridLayout(self.groupBox_expression_trends_plot_settings) - self.gridLayout_60.setObjectName("gridLayout_60") - self.scrollArea_5 = QtWidgets.QScrollArea(self.groupBox_expression_trends_plot_settings) - self.scrollArea_5.setWidgetResizable(True) - self.scrollArea_5.setObjectName("scrollArea_5") - self.scrollAreaWidgetContents_6 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 885, 123)) - self.scrollAreaWidgetContents_6.setObjectName("scrollAreaWidgetContents_6") - self.gridLayout_57 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_6) - self.gridLayout_57.setObjectName("gridLayout_57") - self.gridLayout_59 = QtWidgets.QGridLayout() - self.gridLayout_59.setObjectName("gridLayout_59") - self.checkBox_trends_plot_interactive_rename_taxa = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_trends_plot_interactive_rename_taxa.sizePolicy().hasHeightForWidth()) - self.checkBox_trends_plot_interactive_rename_taxa.setSizePolicy(sizePolicy) - self.checkBox_trends_plot_interactive_rename_taxa.setChecked(True) - self.checkBox_trends_plot_interactive_rename_taxa.setObjectName("checkBox_trends_plot_interactive_rename_taxa") - self.gridLayout_59.addWidget(self.checkBox_trends_plot_interactive_rename_taxa, 1, 7, 1, 1) - self.checkBox_trends_plot_interactive_plot_samples = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_trends_plot_interactive_plot_samples.sizePolicy().hasHeightForWidth()) - self.checkBox_trends_plot_interactive_plot_samples.setSizePolicy(sizePolicy) - self.checkBox_trends_plot_interactive_plot_samples.setObjectName("checkBox_trends_plot_interactive_plot_samples") - self.gridLayout_59.addWidget(self.checkBox_trends_plot_interactive_plot_samples, 1, 1, 1, 3) - self.label_174 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_174.setFont(font) - self.label_174.setObjectName("label_174") - self.gridLayout_59.addWidget(self.label_174, 0, 0, 1, 1) - self.label_175 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_175.setFont(font) - self.label_175.setObjectName("label_175") - self.gridLayout_59.addWidget(self.label_175, 1, 0, 1, 1) - self.checkBox_trends_plot_interactive_show_legend = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_trends_plot_interactive_show_legend.sizePolicy().hasHeightForWidth()) - self.checkBox_trends_plot_interactive_show_legend.setSizePolicy(sizePolicy) - self.checkBox_trends_plot_interactive_show_legend.setChecked(True) - self.checkBox_trends_plot_interactive_show_legend.setObjectName("checkBox_trends_plot_interactive_show_legend") - self.gridLayout_59.addWidget(self.checkBox_trends_plot_interactive_show_legend, 1, 6, 1, 1) - self.checkBox_get_trends_cluster_intensity = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_get_trends_cluster_intensity.sizePolicy().hasHeightForWidth()) - self.checkBox_get_trends_cluster_intensity.setSizePolicy(sizePolicy) - self.checkBox_get_trends_cluster_intensity.setObjectName("checkBox_get_trends_cluster_intensity") - self.gridLayout_59.addWidget(self.checkBox_get_trends_cluster_intensity, 1, 4, 1, 2) - self.horizontalLayout_97 = QtWidgets.QHBoxLayout() - self.horizontalLayout_97.setObjectName("horizontalLayout_97") - self.label_97 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_97.sizePolicy().hasHeightForWidth()) - self.label_97.setSizePolicy(sizePolicy) - self.label_97.setObjectName("label_97") - self.horizontalLayout_97.addWidget(self.label_97) - self.spinBox_trends_width = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.spinBox_trends_width.sizePolicy().hasHeightForWidth()) - self.spinBox_trends_width.setSizePolicy(sizePolicy) - self.spinBox_trends_width.setMinimum(1) - self.spinBox_trends_width.setMaximum(200) - self.spinBox_trends_width.setProperty("value", 16) - self.spinBox_trends_width.setObjectName("spinBox_trends_width") - self.horizontalLayout_97.addWidget(self.spinBox_trends_width) - self.gridLayout_59.addLayout(self.horizontalLayout_97, 0, 1, 1, 1) - self.horizontalLayout_98 = QtWidgets.QHBoxLayout() - self.horizontalLayout_98.setObjectName("horizontalLayout_98") - self.label_92 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_92.sizePolicy().hasHeightForWidth()) - self.label_92.setSizePolicy(sizePolicy) - self.label_92.setObjectName("label_92") - self.horizontalLayout_98.addWidget(self.label_92) - self.spinBox_trends_height = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.spinBox_trends_height.sizePolicy().hasHeightForWidth()) - self.spinBox_trends_height.setSizePolicy(sizePolicy) - self.spinBox_trends_height.setMinimum(1) - self.spinBox_trends_height.setMaximum(200) - self.spinBox_trends_height.setProperty("value", 9) - self.spinBox_trends_height.setObjectName("spinBox_trends_height") - self.horizontalLayout_98.addWidget(self.spinBox_trends_height) - self.gridLayout_59.addLayout(self.horizontalLayout_98, 0, 2, 1, 1) - self.horizontalLayout_99 = QtWidgets.QHBoxLayout() - self.horizontalLayout_99.setObjectName("horizontalLayout_99") - self.label_158 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + self.comboBox_trends_selection_list = QtWidgets.QComboBox(self.tab_15) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_158.sizePolicy().hasHeightForWidth()) - self.label_158.setSizePolicy(sizePolicy) - self.label_158.setObjectName("label_158") - self.horizontalLayout_99.addWidget(self.label_158) - self.spinBox_trends_font_size = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) + sizePolicy.setHeightForWidth(self.comboBox_trends_selection_list.sizePolicy().hasHeightForWidth()) + self.comboBox_trends_selection_list.setSizePolicy(sizePolicy) + self.comboBox_trends_selection_list.setMinimumSize(QtCore.QSize(600, 0)) + self.comboBox_trends_selection_list.setObjectName("comboBox_trends_selection_list") + self.gridLayout_24.addWidget(self.comboBox_trends_selection_list, 4, 1, 1, 3) + self.pushButton_trends_add_top = QtWidgets.QPushButton(self.tab_15) + self.pushButton_trends_add_top.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.spinBox_trends_font_size.sizePolicy().hasHeightForWidth()) - self.spinBox_trends_font_size.setSizePolicy(sizePolicy) - self.spinBox_trends_font_size.setMinimum(1) - self.spinBox_trends_font_size.setProperty("value", 10) - self.spinBox_trends_font_size.setObjectName("spinBox_trends_font_size") - self.horizontalLayout_99.addWidget(self.spinBox_trends_font_size) - self.gridLayout_59.addLayout(self.horizontalLayout_99, 0, 4, 1, 1) - self.horizontalLayout_100 = QtWidgets.QHBoxLayout() - self.horizontalLayout_100.setObjectName("horizontalLayout_100") - self.label_195 = QtWidgets.QLabel(self.scrollAreaWidgetContents_6) - self.label_195.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.label_195.setObjectName("label_195") - self.horizontalLayout_100.addWidget(self.label_195) - self.spinBox_trends_num_col = QtWidgets.QSpinBox(self.scrollAreaWidgetContents_6) - self.spinBox_trends_num_col.setMinimum(1) - self.spinBox_trends_num_col.setObjectName("spinBox_trends_num_col") - self.horizontalLayout_100.addWidget(self.spinBox_trends_num_col) - self.gridLayout_59.addLayout(self.horizontalLayout_100, 0, 5, 1, 3) - self.gridLayout_57.addLayout(self.gridLayout_59, 0, 0, 1, 1) - self.scrollArea_5.setWidget(self.scrollAreaWidgetContents_6) - self.gridLayout_60.addWidget(self.scrollArea_5, 0, 0, 1, 1) - self.gridLayout_24.addWidget(self.groupBox_expression_trends_plot_settings, 11, 0, 1, 5) + sizePolicy.setHeightForWidth(self.pushButton_trends_add_top.sizePolicy().hasHeightForWidth()) + self.pushButton_trends_add_top.setSizePolicy(sizePolicy) + self.pushButton_trends_add_top.setObjectName("pushButton_trends_add_top") + self.gridLayout_24.addWidget(self.pushButton_trends_add_top, 5, 4, 1, 1) self.gridLayout_61 = QtWidgets.QGridLayout() self.gridLayout_61.setObjectName("gridLayout_61") self.label_93 = QtWidgets.QLabel(self.tab_15) @@ -4170,7 +4210,12 @@ def setupUi(self, metaX_main): self.checkBox_5 = QtWidgets.QCheckBox(self.tab_15) self.checkBox_5.setObjectName("checkBox_5") self.gridLayout_61.addWidget(self.checkBox_5, 3, 0, 1, 1) - self.gridLayout_24.addLayout(self.gridLayout_61, 10, 0, 1, 5) + self.gridLayout_24.addLayout(self.gridLayout_61, 9, 0, 1, 5) + self.line_31 = QtWidgets.QFrame(self.tab_15) + self.line_31.setFrameShape(QtWidgets.QFrame.HLine) + self.line_31.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_31.setObjectName("line_31") + self.gridLayout_24.addWidget(self.line_31, 8, 0, 1, 5) self.tabWidget.addTab(self.tab_15, "") self.gridLayout_12.addWidget(self.tabWidget, 0, 0, 1, 1) self.tabWidget_TaxaFuncAnalyzer.addTab(self.tab_diff_stats, "") @@ -4220,131 +4265,60 @@ def setupUi(self, metaX_main): self.checkBox_6 = QtWidgets.QCheckBox(self.tab_8) self.checkBox_6.setObjectName("checkBox_6") self.gridLayout_62.addWidget(self.checkBox_6, 1, 0, 1, 1) - self.gridLayout_4.addLayout(self.gridLayout_62, 9, 0, 1, 4) - self.line_32 = QtWidgets.QFrame(self.tab_8) - self.line_32.setFrameShape(QtWidgets.QFrame.HLine) - self.line_32.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_32.setObjectName("line_32") - self.gridLayout_4.addWidget(self.line_32, 8, 0, 1, 4) - self.gridLayout_tflink_sample = QtWidgets.QGridLayout() - self.gridLayout_tflink_sample.setObjectName("gridLayout_tflink_sample") - self.gridLayout_4.addLayout(self.gridLayout_tflink_sample, 3, 1, 1, 3) - self.radioButton_tflink_group = QtWidgets.QRadioButton(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_tflink_group.sizePolicy().hasHeightForWidth()) - self.radioButton_tflink_group.setSizePolicy(sizePolicy) - self.radioButton_tflink_group.setChecked(True) - self.radioButton_tflink_group.setObjectName("radioButton_tflink_group") - self.gridLayout_4.addWidget(self.radioButton_tflink_group, 2, 0, 1, 1) - self.horizontalLayout_81 = QtWidgets.QHBoxLayout() - self.horizontalLayout_81.setObjectName("horizontalLayout_81") - self.label_others_func_num = QtWidgets.QLabel(self.tab_8) + self.gridLayout_4.addLayout(self.gridLayout_62, 8, 0, 1, 4) + self.label_18 = QtWidgets.QLabel(self.tab_8) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_others_func_num.sizePolicy().hasHeightForWidth()) - self.label_others_func_num.setSizePolicy(sizePolicy) - self.label_others_func_num.setObjectName("label_others_func_num") - self.horizontalLayout_81.addWidget(self.label_others_func_num) - self.pushButton_others_show_linked_taxa = QtWidgets.QPushButton(self.tab_8) - self.pushButton_others_show_linked_taxa.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.label_18.sizePolicy().hasHeightForWidth()) + self.label_18.setSizePolicy(sizePolicy) + self.label_18.setObjectName("label_18") + self.gridLayout_4.addWidget(self.label_18, 5, 0, 1, 1) + self.comboBox_tflink_meta = QtWidgets.QComboBox(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_others_show_linked_taxa.sizePolicy().hasHeightForWidth()) - self.pushButton_others_show_linked_taxa.setSizePolicy(sizePolicy) - self.pushButton_others_show_linked_taxa.setObjectName("pushButton_others_show_linked_taxa") - self.horizontalLayout_81.addWidget(self.pushButton_others_show_linked_taxa) - self.gridLayout_4.addLayout(self.horizontalLayout_81, 6, 3, 1, 1) - self.pushButton_others_fresh_taxa_func = QtWidgets.QPushButton(self.tab_8) - self.pushButton_others_fresh_taxa_func.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.comboBox_tflink_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_tflink_meta.setSizePolicy(sizePolicy) + self.comboBox_tflink_meta.setLayoutDirection(QtCore.Qt.LeftToRight) + self.comboBox_tflink_meta.setObjectName("comboBox_tflink_meta") + self.gridLayout_4.addWidget(self.comboBox_tflink_meta, 0, 1, 1, 1) + self.horizontalLayout_101 = QtWidgets.QHBoxLayout() + self.horizontalLayout_101.setObjectName("horizontalLayout_101") + self.label_196 = QtWidgets.QLabel(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_others_fresh_taxa_func.sizePolicy().hasHeightForWidth()) - self.pushButton_others_fresh_taxa_func.setSizePolicy(sizePolicy) - self.pushButton_others_fresh_taxa_func.setObjectName("pushButton_others_fresh_taxa_func") - self.gridLayout_4.addWidget(self.pushButton_others_fresh_taxa_func, 5, 3, 1, 1) - self.horizontalLayout_50 = QtWidgets.QHBoxLayout() - self.horizontalLayout_50.setObjectName("horizontalLayout_50") - self.label_75 = QtWidgets.QLabel(self.tab_8) - self.label_75.setObjectName("label_75") - self.horizontalLayout_50.addWidget(self.label_75) - self.spinBox_tflink_top_num = QtWidgets.QSpinBox(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.label_196.sizePolicy().hasHeightForWidth()) + self.label_196.setSizePolicy(sizePolicy) + self.label_196.setObjectName("label_196") + self.horizontalLayout_101.addWidget(self.label_196) + self.comboBox_tflink_sub_meta = QtWidgets.QComboBox(self.tab_8) + self.comboBox_tflink_sub_meta.setObjectName("comboBox_tflink_sub_meta") + self.horizontalLayout_101.addWidget(self.comboBox_tflink_sub_meta) + self.gridLayout_4.addLayout(self.horizontalLayout_101, 0, 2, 1, 1) + self.horizontalLayout_82 = QtWidgets.QHBoxLayout() + self.horizontalLayout_82.setObjectName("horizontalLayout_82") + self.label_others_taxa_num = QtWidgets.QLabel(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.spinBox_tflink_top_num.sizePolicy().hasHeightForWidth()) - self.spinBox_tflink_top_num.setSizePolicy(sizePolicy) - self.spinBox_tflink_top_num.setMinimum(1) - self.spinBox_tflink_top_num.setMaximum(99999) - self.spinBox_tflink_top_num.setProperty("value", 10) - self.spinBox_tflink_top_num.setObjectName("spinBox_tflink_top_num") - self.horizontalLayout_50.addWidget(self.spinBox_tflink_top_num) - self.label_76 = QtWidgets.QLabel(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.label_others_taxa_num.sizePolicy().hasHeightForWidth()) + self.label_others_taxa_num.setSizePolicy(sizePolicy) + self.label_others_taxa_num.setObjectName("label_others_taxa_num") + self.horizontalLayout_82.addWidget(self.label_others_taxa_num) + self.pushButton_others_show_linked_func = QtWidgets.QPushButton(self.tab_8) + self.pushButton_others_show_linked_func.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_76.sizePolicy().hasHeightForWidth()) - self.label_76.setSizePolicy(sizePolicy) - self.label_76.setAlignment(QtCore.Qt.AlignCenter) - self.label_76.setObjectName("label_76") - self.horizontalLayout_50.addWidget(self.label_76) - self.comboBox_tflink_top_by = QtWidgets.QComboBox(self.tab_8) - self.comboBox_tflink_top_by.setObjectName("comboBox_tflink_top_by") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.comboBox_tflink_top_by.addItem("") - self.horizontalLayout_50.addWidget(self.comboBox_tflink_top_by) - self.checkBox_tflink_top_filtered = QtWidgets.QCheckBox(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_tflink_top_filtered.sizePolicy().hasHeightForWidth()) - self.checkBox_tflink_top_filtered.setSizePolicy(sizePolicy) - self.checkBox_tflink_top_filtered.setObjectName("checkBox_tflink_top_filtered") - self.horizontalLayout_50.addWidget(self.checkBox_tflink_top_filtered) - self.pushButton_tflink_filter = QtWidgets.QPushButton(self.tab_8) - self.pushButton_tflink_filter.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_tflink_filter.sizePolicy().hasHeightForWidth()) - self.pushButton_tflink_filter.setSizePolicy(sizePolicy) - self.pushButton_tflink_filter.setObjectName("pushButton_tflink_filter") - self.horizontalLayout_50.addWidget(self.pushButton_tflink_filter) - self.gridLayout_4.addLayout(self.horizontalLayout_50, 5, 1, 1, 2) - self.gridLayout_tflink_group = QtWidgets.QGridLayout() - self.gridLayout_tflink_group.setObjectName("gridLayout_tflink_group") - self.gridLayout_4.addLayout(self.gridLayout_tflink_group, 2, 2, 1, 2) - self.label_19 = QtWidgets.QLabel(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_19.sizePolicy().hasHeightForWidth()) - self.label_19.setSizePolicy(sizePolicy) - self.label_19.setObjectName("label_19") - self.gridLayout_4.addWidget(self.label_19, 7, 0, 1, 1) - self.label_149 = QtWidgets.QLabel(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_149.sizePolicy().hasHeightForWidth()) - self.label_149.setSizePolicy(sizePolicy) - self.label_149.setObjectName("label_149") - self.gridLayout_4.addWidget(self.label_149, 0, 0, 1, 1) + sizePolicy.setHeightForWidth(self.pushButton_others_show_linked_func.sizePolicy().hasHeightForWidth()) + self.pushButton_others_show_linked_func.setSizePolicy(sizePolicy) + self.pushButton_others_show_linked_func.setObjectName("pushButton_others_show_linked_func") + self.horizontalLayout_82.addWidget(self.pushButton_others_show_linked_func) + self.gridLayout_4.addLayout(self.horizontalLayout_82, 6, 3, 1, 1) self.groupBox_taxa_func_link_plot_settings = QtWidgets.QGroupBox(self.tab_8) - self.groupBox_taxa_func_link_plot_settings.setMaximumSize(QtCore.QSize(16777215, 240)) + self.groupBox_taxa_func_link_plot_settings.setMaximumSize(QtCore.QSize(16777215, 260)) self.groupBox_taxa_func_link_plot_settings.setObjectName("groupBox_taxa_func_link_plot_settings") self.gridLayout_65 = QtWidgets.QGridLayout(self.groupBox_taxa_func_link_plot_settings) self.gridLayout_65.setObjectName("gridLayout_65") @@ -4352,7 +4326,7 @@ def setupUi(self, metaX_main): self.scrollArea_6.setWidgetResizable(True) self.scrollArea_6.setObjectName("scrollArea_6") self.scrollAreaWidgetContents_7 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_7.setGeometry(QtCore.QRect(0, 0, 775, 102)) + self.scrollAreaWidgetContents_7.setGeometry(QtCore.QRect(0, 0, 885, 225)) self.scrollAreaWidgetContents_7.setObjectName("scrollAreaWidgetContents_7") self.gridLayout_69 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_7) self.gridLayout_69.setObjectName("gridLayout_69") @@ -4608,44 +4582,32 @@ def setupUi(self, metaX_main): self.gridLayout_69.addLayout(self.gridLayout_67, 0, 0, 1, 1) self.scrollArea_6.setWidget(self.scrollAreaWidgetContents_7) self.gridLayout_65.addWidget(self.scrollArea_6, 0, 0, 1, 1) - self.gridLayout_4.addWidget(self.groupBox_taxa_func_link_plot_settings, 10, 0, 1, 4) - self.comboBox_tflink_meta = QtWidgets.QComboBox(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_tflink_meta.sizePolicy().hasHeightForWidth()) - self.comboBox_tflink_meta.setSizePolicy(sizePolicy) - self.comboBox_tflink_meta.setLayoutDirection(QtCore.Qt.LeftToRight) - self.comboBox_tflink_meta.setObjectName("comboBox_tflink_meta") - self.gridLayout_4.addWidget(self.comboBox_tflink_meta, 0, 1, 1, 1) - self.horizontalLayout_82 = QtWidgets.QHBoxLayout() - self.horizontalLayout_82.setObjectName("horizontalLayout_82") - self.label_others_taxa_num = QtWidgets.QLabel(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_others_taxa_num.sizePolicy().hasHeightForWidth()) - self.label_others_taxa_num.setSizePolicy(sizePolicy) - self.label_others_taxa_num.setObjectName("label_others_taxa_num") - self.horizontalLayout_82.addWidget(self.label_others_taxa_num) - self.pushButton_others_show_linked_func = QtWidgets.QPushButton(self.tab_8) - self.pushButton_others_show_linked_func.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_others_show_linked_func.sizePolicy().hasHeightForWidth()) - self.pushButton_others_show_linked_func.setSizePolicy(sizePolicy) - self.pushButton_others_show_linked_func.setObjectName("pushButton_others_show_linked_func") - self.horizontalLayout_82.addWidget(self.pushButton_others_show_linked_func) - self.gridLayout_4.addLayout(self.horizontalLayout_82, 7, 3, 1, 1) - self.radioButton_tflink_sample = QtWidgets.QRadioButton(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + self.gridLayout_4.addWidget(self.groupBox_taxa_func_link_plot_settings, 9, 0, 1, 4) + self.comboBox_others_func = QtWidgets.QComboBox(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_tflink_sample.sizePolicy().hasHeightForWidth()) - self.radioButton_tflink_sample.setSizePolicy(sizePolicy) - self.radioButton_tflink_sample.setObjectName("radioButton_tflink_sample") - self.gridLayout_4.addWidget(self.radioButton_tflink_sample, 3, 0, 1, 1) + sizePolicy.setHeightForWidth(self.comboBox_others_func.sizePolicy().hasHeightForWidth()) + self.comboBox_others_func.setSizePolicy(sizePolicy) + self.comboBox_others_func.setEditable(True) + self.comboBox_others_func.setObjectName("comboBox_others_func") + self.gridLayout_4.addWidget(self.comboBox_others_func, 5, 1, 1, 2) + self.horizontalLayout_117 = QtWidgets.QHBoxLayout() + self.horizontalLayout_117.setObjectName("horizontalLayout_117") + self.label_216 = QtWidgets.QLabel(self.tab_8) + self.label_216.setObjectName("label_216") + self.horizontalLayout_117.addWidget(self.label_216) + self.comboBox_tflink_group_sample = QtWidgets.QComboBox(self.tab_8) + self.comboBox_tflink_group_sample.setObjectName("comboBox_tflink_group_sample") + self.comboBox_tflink_group_sample.addItem("") + self.comboBox_tflink_group_sample.addItem("") + self.horizontalLayout_117.addWidget(self.comboBox_tflink_group_sample) + self.gridLayout_4.addLayout(self.horizontalLayout_117, 2, 0, 1, 1) + self.line_32 = QtWidgets.QFrame(self.tab_8) + self.line_32.setFrameShape(QtWidgets.QFrame.HLine) + self.line_32.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_32.setObjectName("line_32") + self.gridLayout_4.addWidget(self.line_32, 7, 0, 1, 4) self.line_3 = QtWidgets.QFrame(self.tab_8) self.line_3.setFrameShape(QtWidgets.QFrame.HLine) self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken) @@ -4655,7 +4617,120 @@ def setupUi(self, metaX_main): self.line_6.setFrameShape(QtWidgets.QFrame.HLine) self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken) self.line_6.setObjectName("line_6") - self.gridLayout_4.addWidget(self.line_6, 4, 0, 1, 4) + self.gridLayout_4.addWidget(self.line_6, 3, 0, 1, 4) + self.pushButton_others_fresh_taxa_func = QtWidgets.QPushButton(self.tab_8) + self.pushButton_others_fresh_taxa_func.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_others_fresh_taxa_func.sizePolicy().hasHeightForWidth()) + self.pushButton_others_fresh_taxa_func.setSizePolicy(sizePolicy) + self.pushButton_others_fresh_taxa_func.setObjectName("pushButton_others_fresh_taxa_func") + self.gridLayout_4.addWidget(self.pushButton_others_fresh_taxa_func, 4, 3, 1, 1) + self.horizontalLayout_81 = QtWidgets.QHBoxLayout() + self.horizontalLayout_81.setObjectName("horizontalLayout_81") + self.label_others_func_num = QtWidgets.QLabel(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_others_func_num.sizePolicy().hasHeightForWidth()) + self.label_others_func_num.setSizePolicy(sizePolicy) + self.label_others_func_num.setObjectName("label_others_func_num") + self.horizontalLayout_81.addWidget(self.label_others_func_num) + self.pushButton_others_show_linked_taxa = QtWidgets.QPushButton(self.tab_8) + self.pushButton_others_show_linked_taxa.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_others_show_linked_taxa.sizePolicy().hasHeightForWidth()) + self.pushButton_others_show_linked_taxa.setSizePolicy(sizePolicy) + self.pushButton_others_show_linked_taxa.setObjectName("pushButton_others_show_linked_taxa") + self.horizontalLayout_81.addWidget(self.pushButton_others_show_linked_taxa) + self.gridLayout_4.addLayout(self.horizontalLayout_81, 5, 3, 1, 1) + self.label_19 = QtWidgets.QLabel(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_19.sizePolicy().hasHeightForWidth()) + self.label_19.setSizePolicy(sizePolicy) + self.label_19.setObjectName("label_19") + self.gridLayout_4.addWidget(self.label_19, 6, 0, 1, 1) + self.label_149 = QtWidgets.QLabel(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_149.sizePolicy().hasHeightForWidth()) + self.label_149.setSizePolicy(sizePolicy) + self.label_149.setObjectName("label_149") + self.gridLayout_4.addWidget(self.label_149, 0, 0, 1, 1) + self.comboBox_others_taxa = QtWidgets.QComboBox(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_others_taxa.sizePolicy().hasHeightForWidth()) + self.comboBox_others_taxa.setSizePolicy(sizePolicy) + self.comboBox_others_taxa.setEditable(True) + self.comboBox_others_taxa.setObjectName("comboBox_others_taxa") + self.gridLayout_4.addWidget(self.comboBox_others_taxa, 6, 1, 1, 2) + self.horizontalLayout_50 = QtWidgets.QHBoxLayout() + self.horizontalLayout_50.setObjectName("horizontalLayout_50") + self.label_75 = QtWidgets.QLabel(self.tab_8) + self.label_75.setObjectName("label_75") + self.horizontalLayout_50.addWidget(self.label_75) + self.spinBox_tflink_top_num = QtWidgets.QSpinBox(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.spinBox_tflink_top_num.sizePolicy().hasHeightForWidth()) + self.spinBox_tflink_top_num.setSizePolicy(sizePolicy) + self.spinBox_tflink_top_num.setMinimum(1) + self.spinBox_tflink_top_num.setMaximum(99999) + self.spinBox_tflink_top_num.setProperty("value", 10) + self.spinBox_tflink_top_num.setObjectName("spinBox_tflink_top_num") + self.horizontalLayout_50.addWidget(self.spinBox_tflink_top_num) + self.label_76 = QtWidgets.QLabel(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_76.sizePolicy().hasHeightForWidth()) + self.label_76.setSizePolicy(sizePolicy) + self.label_76.setAlignment(QtCore.Qt.AlignCenter) + self.label_76.setObjectName("label_76") + self.horizontalLayout_50.addWidget(self.label_76) + self.comboBox_tflink_top_by = QtWidgets.QComboBox(self.tab_8) + self.comboBox_tflink_top_by.setObjectName("comboBox_tflink_top_by") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.comboBox_tflink_top_by.addItem("") + self.horizontalLayout_50.addWidget(self.comboBox_tflink_top_by) + self.checkBox_tflink_top_filtered = QtWidgets.QCheckBox(self.tab_8) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_tflink_top_filtered.sizePolicy().hasHeightForWidth()) + self.checkBox_tflink_top_filtered.setSizePolicy(sizePolicy) + self.checkBox_tflink_top_filtered.setObjectName("checkBox_tflink_top_filtered") + self.horizontalLayout_50.addWidget(self.checkBox_tflink_top_filtered) + self.pushButton_tflink_filter = QtWidgets.QPushButton(self.tab_8) + self.pushButton_tflink_filter.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_tflink_filter.sizePolicy().hasHeightForWidth()) + self.pushButton_tflink_filter.setSizePolicy(sizePolicy) + self.pushButton_tflink_filter.setObjectName("pushButton_tflink_filter") + self.horizontalLayout_50.addWidget(self.pushButton_tflink_filter) + self.gridLayout_4.addLayout(self.horizontalLayout_50, 4, 1, 1, 2) + self.horizontalLayout_118 = QtWidgets.QHBoxLayout() + self.horizontalLayout_118.setObjectName("horizontalLayout_118") self.horizontalLayout_78 = QtWidgets.QHBoxLayout() self.horizontalLayout_78.setObjectName("horizontalLayout_78") self.checkBox_tflink_in_condition = QtWidgets.QCheckBox(self.tab_8) @@ -4667,21 +4742,21 @@ def setupUi(self, metaX_main): self.checkBox_tflink_in_condition.setLayoutDirection(QtCore.Qt.LeftToRight) self.checkBox_tflink_in_condition.setObjectName("checkBox_tflink_in_condition") self.horizontalLayout_78.addWidget(self.checkBox_tflink_in_condition) + self.horizontalLayout_49 = QtWidgets.QHBoxLayout() + self.horizontalLayout_49.setObjectName("horizontalLayout_49") + self.horizontalLayout_77 = QtWidgets.QHBoxLayout() + self.horizontalLayout_77.setObjectName("horizontalLayout_77") self.comboBox_tflink_condition_meta = QtWidgets.QComboBox(self.tab_8) - self.comboBox_tflink_condition_meta.setEnabled(False) + self.comboBox_tflink_condition_meta.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.comboBox_tflink_condition_meta.sizePolicy().hasHeightForWidth()) self.comboBox_tflink_condition_meta.setSizePolicy(sizePolicy) self.comboBox_tflink_condition_meta.setObjectName("comboBox_tflink_condition_meta") - self.horizontalLayout_78.addWidget(self.comboBox_tflink_condition_meta) - self.horizontalLayout_49 = QtWidgets.QHBoxLayout() - self.horizontalLayout_49.setObjectName("horizontalLayout_49") - self.horizontalLayout_77 = QtWidgets.QHBoxLayout() - self.horizontalLayout_77.setObjectName("horizontalLayout_77") + self.horizontalLayout_77.addWidget(self.comboBox_tflink_condition_meta) self.comboBox_tflink_condition_group = QtWidgets.QComboBox(self.tab_8) - self.comboBox_tflink_condition_group.setEnabled(False) + self.comboBox_tflink_condition_group.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -4692,60 +4767,93 @@ def setupUi(self, metaX_main): self.horizontalLayout_77.addWidget(self.comboBox_tflink_condition_group) self.horizontalLayout_49.addLayout(self.horizontalLayout_77) self.horizontalLayout_78.addLayout(self.horizontalLayout_49) - self.gridLayout_4.addLayout(self.horizontalLayout_78, 2, 1, 1, 1) - self.comboBox_others_func = QtWidgets.QComboBox(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + self.horizontalLayout_118.addLayout(self.horizontalLayout_78) + self.gridLayout_tflink_group = QtWidgets.QGridLayout() + self.gridLayout_tflink_group.setObjectName("gridLayout_tflink_group") + self.horizontalLayout_118.addLayout(self.gridLayout_tflink_group) + self.gridLayout_tflink_sample = QtWidgets.QGridLayout() + self.gridLayout_tflink_sample.setObjectName("gridLayout_tflink_sample") + self.horizontalLayout_118.addLayout(self.gridLayout_tflink_sample) + self.gridLayout_4.addLayout(self.horizontalLayout_118, 2, 1, 1, 3) + self.tabWidget_2.addTab(self.tab_8, "") + self.tab_9 = QtWidgets.QWidget() + self.tab_9.setObjectName("tab_9") + self.gridLayout_6 = QtWidgets.QGridLayout(self.tab_9) + self.gridLayout_6.setObjectName("gridLayout_6") + self.horizontalLayout_58 = QtWidgets.QHBoxLayout() + self.horizontalLayout_58.setObjectName("horizontalLayout_58") + self.label_78 = QtWidgets.QLabel(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_others_func.sizePolicy().hasHeightForWidth()) - self.comboBox_others_func.setSizePolicy(sizePolicy) - self.comboBox_others_func.setEditable(True) - self.comboBox_others_func.setObjectName("comboBox_others_func") - self.gridLayout_4.addWidget(self.comboBox_others_func, 6, 1, 1, 2) - self.label_18 = QtWidgets.QLabel(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.label_78.sizePolicy().hasHeightForWidth()) + self.label_78.setSizePolicy(sizePolicy) + self.label_78.setObjectName("label_78") + self.horizontalLayout_58.addWidget(self.label_78) + self.spinBox_tfnet_top_num = QtWidgets.QSpinBox(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_18.sizePolicy().hasHeightForWidth()) - self.label_18.setSizePolicy(sizePolicy) - self.label_18.setObjectName("label_18") - self.gridLayout_4.addWidget(self.label_18, 6, 0, 1, 1) - self.comboBox_others_taxa = QtWidgets.QComboBox(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHeightForWidth(self.spinBox_tfnet_top_num.sizePolicy().hasHeightForWidth()) + self.spinBox_tfnet_top_num.setSizePolicy(sizePolicy) + self.spinBox_tfnet_top_num.setMinimum(1) + self.spinBox_tfnet_top_num.setMaximum(99999) + self.spinBox_tfnet_top_num.setProperty("value", 10) + self.spinBox_tfnet_top_num.setObjectName("spinBox_tfnet_top_num") + self.horizontalLayout_58.addWidget(self.spinBox_tfnet_top_num) + self.label_79 = QtWidgets.QLabel(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_others_taxa.sizePolicy().hasHeightForWidth()) - self.comboBox_others_taxa.setSizePolicy(sizePolicy) - self.comboBox_others_taxa.setEditable(True) - self.comboBox_others_taxa.setObjectName("comboBox_others_taxa") - self.gridLayout_4.addWidget(self.comboBox_others_taxa, 7, 1, 1, 2) - self.horizontalLayout_101 = QtWidgets.QHBoxLayout() - self.horizontalLayout_101.setObjectName("horizontalLayout_101") - self.label_196 = QtWidgets.QLabel(self.tab_8) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHeightForWidth(self.label_79.sizePolicy().hasHeightForWidth()) + self.label_79.setSizePolicy(sizePolicy) + self.label_79.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_79.setObjectName("label_79") + self.horizontalLayout_58.addWidget(self.label_79) + self.comboBox_tfnet_top_by = QtWidgets.QComboBox(self.tab_9) + self.comboBox_tfnet_top_by.setObjectName("comboBox_tfnet_top_by") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.comboBox_tfnet_top_by.addItem("") + self.horizontalLayout_58.addWidget(self.comboBox_tfnet_top_by) + self.checkBox_tfnet_top_filtered = QtWidgets.QCheckBox(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_196.sizePolicy().hasHeightForWidth()) - self.label_196.setSizePolicy(sizePolicy) - self.label_196.setObjectName("label_196") - self.horizontalLayout_101.addWidget(self.label_196) - self.comboBox_tflink_sub_meta = QtWidgets.QComboBox(self.tab_8) - self.comboBox_tflink_sub_meta.setObjectName("comboBox_tflink_sub_meta") - self.horizontalLayout_101.addWidget(self.comboBox_tflink_sub_meta) - self.gridLayout_4.addLayout(self.horizontalLayout_101, 0, 2, 1, 1) - self.tabWidget_2.addTab(self.tab_8, "") - self.tab_9 = QtWidgets.QWidget() - self.tab_9.setObjectName("tab_9") - self.gridLayout_6 = QtWidgets.QGridLayout(self.tab_9) - self.gridLayout_6.setObjectName("gridLayout_6") - self.radioButton_network_bysample = QtWidgets.QRadioButton(self.tab_9) + sizePolicy.setHeightForWidth(self.checkBox_tfnet_top_filtered.sizePolicy().hasHeightForWidth()) + self.checkBox_tfnet_top_filtered.setSizePolicy(sizePolicy) + self.checkBox_tfnet_top_filtered.setObjectName("checkBox_tfnet_top_filtered") + self.horizontalLayout_58.addWidget(self.checkBox_tfnet_top_filtered) + self.gridLayout_6.addLayout(self.horizontalLayout_58, 6, 1, 1, 2) + self.line_33 = QtWidgets.QFrame(self.tab_9) + self.line_33.setFrameShape(QtWidgets.QFrame.HLine) + self.line_33.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_33.setObjectName("line_33") + self.gridLayout_6.addWidget(self.line_33, 8, 0, 1, 4) + self.checkBox_7 = QtWidgets.QCheckBox(self.tab_9) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_network_bysample.sizePolicy().hasHeightForWidth()) - self.radioButton_network_bysample.setSizePolicy(sizePolicy) - self.radioButton_network_bysample.setObjectName("radioButton_network_bysample") - self.gridLayout_6.addWidget(self.radioButton_network_bysample, 4, 0, 1, 1) + sizePolicy.setHeightForWidth(self.checkBox_7.sizePolicy().hasHeightForWidth()) + self.checkBox_7.setSizePolicy(sizePolicy) + self.checkBox_7.setObjectName("checkBox_7") + self.gridLayout_6.addWidget(self.checkBox_7, 9, 0, 1, 1) + self.label_77 = QtWidgets.QLabel(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_77.sizePolicy().hasHeightForWidth()) + self.label_77.setSizePolicy(sizePolicy) + self.label_77.setObjectName("label_77") + self.gridLayout_6.addWidget(self.label_77, 5, 0, 1, 1) self.horizontalLayout_9 = QtWidgets.QHBoxLayout() self.horizontalLayout_9.setObjectName("horizontalLayout_9") self.label_49 = QtWidgets.QLabel(self.tab_9) @@ -4771,19 +4879,38 @@ def setupUi(self, metaX_main): self.comboBox_network_meta.setObjectName("comboBox_network_meta") self.horizontalLayout_9.addWidget(self.comboBox_network_meta) self.gridLayout_6.addLayout(self.horizontalLayout_9, 0, 0, 1, 3) - self.line_27 = QtWidgets.QFrame(self.tab_9) - self.line_27.setFrameShape(QtWidgets.QFrame.HLine) - self.line_27.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_27.setObjectName("line_27") - self.gridLayout_6.addWidget(self.line_27, 1, 0, 1, 3) - self.label_77 = QtWidgets.QLabel(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum) + self.listWidget_tfnet_focus_list = QtWidgets.QListWidget(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_77.sizePolicy().hasHeightForWidth()) - self.label_77.setSizePolicy(sizePolicy) - self.label_77.setObjectName("label_77") - self.gridLayout_6.addWidget(self.label_77, 6, 0, 1, 1) + sizePolicy.setHeightForWidth(self.listWidget_tfnet_focus_list.sizePolicy().hasHeightForWidth()) + self.listWidget_tfnet_focus_list.setSizePolicy(sizePolicy) + self.listWidget_tfnet_focus_list.setObjectName("listWidget_tfnet_focus_list") + self.gridLayout_6.addWidget(self.listWidget_tfnet_focus_list, 7, 1, 1, 3) + self.comboBox_tfnet_select_list = QtWidgets.QComboBox(self.tab_9) + self.comboBox_tfnet_select_list.setObjectName("comboBox_tfnet_select_list") + self.gridLayout_6.addWidget(self.comboBox_tfnet_select_list, 5, 1, 1, 2) + self.pushButton_tfnet_add_to_list = QtWidgets.QPushButton(self.tab_9) + self.pushButton_tfnet_add_to_list.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_tfnet_add_to_list.sizePolicy().hasHeightForWidth()) + self.pushButton_tfnet_add_to_list.setSizePolicy(sizePolicy) + self.pushButton_tfnet_add_to_list.setMaximumSize(QtCore.QSize(120, 16777215)) + self.pushButton_tfnet_add_to_list.setObjectName("pushButton_tfnet_add_to_list") + self.gridLayout_6.addWidget(self.pushButton_tfnet_add_to_list, 5, 3, 1, 1) + self.pushButton_plot_network = QtWidgets.QPushButton(self.tab_9) + self.pushButton_plot_network.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_plot_network.sizePolicy().hasHeightForWidth()) + self.pushButton_plot_network.setSizePolicy(sizePolicy) + self.pushButton_plot_network.setMaximumSize(QtCore.QSize(16777215, 50)) + self.pushButton_plot_network.setCheckable(False) + self.pushButton_plot_network.setObjectName("pushButton_plot_network") + self.gridLayout_6.addWidget(self.pushButton_plot_network, 9, 1, 1, 3) self.line_28 = QtWidgets.QFrame(self.tab_9) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) @@ -4793,53 +4920,7 @@ def setupUi(self, metaX_main): self.line_28.setFrameShape(QtWidgets.QFrame.HLine) self.line_28.setFrameShadow(QtWidgets.QFrame.Sunken) self.line_28.setObjectName("line_28") - self.gridLayout_6.addWidget(self.line_28, 5, 0, 1, 3) - self.horizontalLayout_55 = QtWidgets.QHBoxLayout() - self.horizontalLayout_55.setObjectName("horizontalLayout_55") - self.checkBox_tfnetwork_in_condition = QtWidgets.QCheckBox(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_tfnetwork_in_condition.sizePolicy().hasHeightForWidth()) - self.checkBox_tfnetwork_in_condition.setSizePolicy(sizePolicy) - self.checkBox_tfnetwork_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) - self.checkBox_tfnetwork_in_condition.setObjectName("checkBox_tfnetwork_in_condition") - self.horizontalLayout_55.addWidget(self.checkBox_tfnetwork_in_condition) - self.comboBox_tfnetwork_condition_meta = QtWidgets.QComboBox(self.tab_9) - self.comboBox_tfnetwork_condition_meta.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_tfnetwork_condition_meta.sizePolicy().hasHeightForWidth()) - self.comboBox_tfnetwork_condition_meta.setSizePolicy(sizePolicy) - self.comboBox_tfnetwork_condition_meta.setObjectName("comboBox_tfnetwork_condition_meta") - self.horizontalLayout_55.addWidget(self.comboBox_tfnetwork_condition_meta) - self.horizontalLayout_80 = QtWidgets.QHBoxLayout() - self.horizontalLayout_80.setObjectName("horizontalLayout_80") - self.comboBox_tfnetwork_condition_group = QtWidgets.QComboBox(self.tab_9) - self.comboBox_tfnetwork_condition_group.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.comboBox_tfnetwork_condition_group.sizePolicy().hasHeightForWidth()) - self.comboBox_tfnetwork_condition_group.setSizePolicy(sizePolicy) - self.comboBox_tfnetwork_condition_group.setObjectName("comboBox_tfnetwork_condition_group") - self.horizontalLayout_80.addWidget(self.comboBox_tfnetwork_condition_group) - self.horizontalLayout_55.addLayout(self.horizontalLayout_80) - self.gridLayout_6.addLayout(self.horizontalLayout_55, 2, 1, 1, 1) - self.radioButton_network_bygroup = QtWidgets.QRadioButton(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.radioButton_network_bygroup.sizePolicy().hasHeightForWidth()) - self.radioButton_network_bygroup.setSizePolicy(sizePolicy) - self.radioButton_network_bygroup.setMaximumSize(QtCore.QSize(16777215, 50)) - self.radioButton_network_bygroup.setChecked(True) - self.radioButton_network_bygroup.setObjectName("radioButton_network_bygroup") - self.gridLayout_6.addWidget(self.radioButton_network_bygroup, 2, 0, 1, 1) - self.checkBox_7 = QtWidgets.QCheckBox(self.tab_9) - self.checkBox_7.setObjectName("checkBox_7") - self.gridLayout_6.addWidget(self.checkBox_7, 10, 0, 1, 1) + self.gridLayout_6.addWidget(self.line_28, 4, 0, 1, 3) self.verticalLayout_5 = QtWidgets.QVBoxLayout() self.verticalLayout_5.setObjectName("verticalLayout_5") self.pushButton_tfnet_drop_item = QtWidgets.QPushButton(self.tab_9) @@ -4864,115 +4945,35 @@ def setupUi(self, metaX_main): self.pushButton_tfnet_add_a_list.setEnabled(False) self.pushButton_tfnet_add_a_list.setObjectName("pushButton_tfnet_add_a_list") self.verticalLayout_5.addWidget(self.pushButton_tfnet_add_a_list) - self.gridLayout_6.addLayout(self.verticalLayout_5, 8, 0, 1, 1) - self.gridLayout_network_sample = QtWidgets.QGridLayout() - self.gridLayout_network_sample.setObjectName("gridLayout_network_sample") - self.gridLayout_6.addLayout(self.gridLayout_network_sample, 4, 1, 1, 3) - self.gridLayout_network_group = QtWidgets.QGridLayout() - self.gridLayout_network_group.setObjectName("gridLayout_network_group") - self.gridLayout_6.addLayout(self.gridLayout_network_group, 2, 2, 1, 2) - self.listWidget_tfnet_focus_list = QtWidgets.QListWidget(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.listWidget_tfnet_focus_list.sizePolicy().hasHeightForWidth()) - self.listWidget_tfnet_focus_list.setSizePolicy(sizePolicy) - self.listWidget_tfnet_focus_list.setObjectName("listWidget_tfnet_focus_list") - self.gridLayout_6.addWidget(self.listWidget_tfnet_focus_list, 8, 1, 1, 3) - self.pushButton_tfnet_add_to_list = QtWidgets.QPushButton(self.tab_9) - self.pushButton_tfnet_add_to_list.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_tfnet_add_to_list.sizePolicy().hasHeightForWidth()) - self.pushButton_tfnet_add_to_list.setSizePolicy(sizePolicy) - self.pushButton_tfnet_add_to_list.setMaximumSize(QtCore.QSize(120, 16777215)) - self.pushButton_tfnet_add_to_list.setObjectName("pushButton_tfnet_add_to_list") - self.gridLayout_6.addWidget(self.pushButton_tfnet_add_to_list, 6, 3, 1, 1) + self.gridLayout_6.addLayout(self.verticalLayout_5, 7, 0, 1, 1) self.pushButton_tfnet_add_top = QtWidgets.QPushButton(self.tab_9) self.pushButton_tfnet_add_top.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_tfnet_add_top.sizePolicy().hasHeightForWidth()) - self.pushButton_tfnet_add_top.setSizePolicy(sizePolicy) - self.pushButton_tfnet_add_top.setMaximumSize(QtCore.QSize(120, 16777215)) - self.pushButton_tfnet_add_top.setObjectName("pushButton_tfnet_add_top") - self.gridLayout_6.addWidget(self.pushButton_tfnet_add_top, 7, 3, 1, 1) - self.comboBox_tfnet_select_list = QtWidgets.QComboBox(self.tab_9) - self.comboBox_tfnet_select_list.setObjectName("comboBox_tfnet_select_list") - self.gridLayout_6.addWidget(self.comboBox_tfnet_select_list, 6, 1, 1, 2) - self.horizontalLayout_58 = QtWidgets.QHBoxLayout() - self.horizontalLayout_58.setObjectName("horizontalLayout_58") - self.label_78 = QtWidgets.QLabel(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_78.sizePolicy().hasHeightForWidth()) - self.label_78.setSizePolicy(sizePolicy) - self.label_78.setObjectName("label_78") - self.horizontalLayout_58.addWidget(self.label_78) - self.spinBox_tfnet_top_num = QtWidgets.QSpinBox(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.spinBox_tfnet_top_num.sizePolicy().hasHeightForWidth()) - self.spinBox_tfnet_top_num.setSizePolicy(sizePolicy) - self.spinBox_tfnet_top_num.setMinimum(1) - self.spinBox_tfnet_top_num.setMaximum(99999) - self.spinBox_tfnet_top_num.setProperty("value", 10) - self.spinBox_tfnet_top_num.setObjectName("spinBox_tfnet_top_num") - self.horizontalLayout_58.addWidget(self.spinBox_tfnet_top_num) - self.label_79 = QtWidgets.QLabel(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_79.sizePolicy().hasHeightForWidth()) - self.label_79.setSizePolicy(sizePolicy) - self.label_79.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.label_79.setObjectName("label_79") - self.horizontalLayout_58.addWidget(self.label_79) - self.comboBox_tfnet_top_by = QtWidgets.QComboBox(self.tab_9) - self.comboBox_tfnet_top_by.setObjectName("comboBox_tfnet_top_by") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.comboBox_tfnet_top_by.addItem("") - self.horizontalLayout_58.addWidget(self.comboBox_tfnet_top_by) - self.checkBox_tfnet_top_filtered = QtWidgets.QCheckBox(self.tab_9) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.checkBox_tfnet_top_filtered.sizePolicy().hasHeightForWidth()) - self.checkBox_tfnet_top_filtered.setSizePolicy(sizePolicy) - self.checkBox_tfnet_top_filtered.setObjectName("checkBox_tfnet_top_filtered") - self.horizontalLayout_58.addWidget(self.checkBox_tfnet_top_filtered) - self.gridLayout_6.addLayout(self.horizontalLayout_58, 7, 1, 1, 2) - self.line_33 = QtWidgets.QFrame(self.tab_9) - self.line_33.setFrameShape(QtWidgets.QFrame.HLine) - self.line_33.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_33.setObjectName("line_33") - self.gridLayout_6.addWidget(self.line_33, 9, 0, 1, 4) - self.pushButton_plot_network = QtWidgets.QPushButton(self.tab_9) - self.pushButton_plot_network.setEnabled(False) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHeightForWidth(self.pushButton_tfnet_add_top.sizePolicy().hasHeightForWidth()) + self.pushButton_tfnet_add_top.setSizePolicy(sizePolicy) + self.pushButton_tfnet_add_top.setMaximumSize(QtCore.QSize(120, 16777215)) + self.pushButton_tfnet_add_top.setObjectName("pushButton_tfnet_add_top") + self.gridLayout_6.addWidget(self.pushButton_tfnet_add_top, 6, 3, 1, 1) + self.horizontalLayout_119 = QtWidgets.QHBoxLayout() + self.horizontalLayout_119.setObjectName("horizontalLayout_119") + self.label_217 = QtWidgets.QLabel(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_plot_network.sizePolicy().hasHeightForWidth()) - self.pushButton_plot_network.setSizePolicy(sizePolicy) - self.pushButton_plot_network.setMaximumSize(QtCore.QSize(16777215, 50)) - self.pushButton_plot_network.setCheckable(False) - self.pushButton_plot_network.setObjectName("pushButton_plot_network") - self.gridLayout_6.addWidget(self.pushButton_plot_network, 10, 1, 1, 3) + sizePolicy.setHeightForWidth(self.label_217.sizePolicy().hasHeightForWidth()) + self.label_217.setSizePolicy(sizePolicy) + self.label_217.setObjectName("label_217") + self.horizontalLayout_119.addWidget(self.label_217) + self.comboBox_radioButton_network_group_sample = QtWidgets.QComboBox(self.tab_9) + self.comboBox_radioButton_network_group_sample.setObjectName("comboBox_radioButton_network_group_sample") + self.comboBox_radioButton_network_group_sample.addItem("") + self.comboBox_radioButton_network_group_sample.addItem("") + self.horizontalLayout_119.addWidget(self.comboBox_radioButton_network_group_sample) + self.gridLayout_6.addLayout(self.horizontalLayout_119, 2, 0, 1, 1) self.groupBox_taxa_func_link_net_plot_settings = QtWidgets.QGroupBox(self.tab_9) - self.groupBox_taxa_func_link_net_plot_settings.setMaximumSize(QtCore.QSize(16777215, 240)) + self.groupBox_taxa_func_link_net_plot_settings.setMaximumSize(QtCore.QSize(16777215, 260)) self.groupBox_taxa_func_link_net_plot_settings.setObjectName("groupBox_taxa_func_link_net_plot_settings") self.gridLayout_63 = QtWidgets.QGridLayout(self.groupBox_taxa_func_link_net_plot_settings) self.gridLayout_63.setObjectName("gridLayout_63") @@ -4980,7 +4981,7 @@ def setupUi(self, metaX_main): self.scrollArea_7.setWidgetResizable(True) self.scrollArea_7.setObjectName("scrollArea_7") self.scrollAreaWidgetContents_8 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_8.setGeometry(QtCore.QRect(0, 0, 885, 158)) + self.scrollAreaWidgetContents_8.setGeometry(QtCore.QRect(0, 0, 885, 166)) self.scrollAreaWidgetContents_8.setObjectName("scrollAreaWidgetContents_8") self.gridLayout_66 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_8) self.gridLayout_66.setObjectName("gridLayout_66") @@ -5067,7 +5068,54 @@ def setupUi(self, metaX_main): self.gridLayout_66.addLayout(self.horizontalLayout_69, 1, 1, 1, 1) self.scrollArea_7.setWidget(self.scrollAreaWidgetContents_8) self.gridLayout_63.addWidget(self.scrollArea_7, 0, 0, 1, 1) - self.gridLayout_6.addWidget(self.groupBox_taxa_func_link_net_plot_settings, 11, 0, 1, 4) + self.gridLayout_6.addWidget(self.groupBox_taxa_func_link_net_plot_settings, 10, 0, 1, 4) + self.line_27 = QtWidgets.QFrame(self.tab_9) + self.line_27.setFrameShape(QtWidgets.QFrame.HLine) + self.line_27.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_27.setObjectName("line_27") + self.gridLayout_6.addWidget(self.line_27, 1, 0, 1, 3) + self.horizontalLayout_120 = QtWidgets.QHBoxLayout() + self.horizontalLayout_120.setObjectName("horizontalLayout_120") + self.horizontalLayout_55 = QtWidgets.QHBoxLayout() + self.horizontalLayout_55.setObjectName("horizontalLayout_55") + self.checkBox_tfnetwork_in_condition = QtWidgets.QCheckBox(self.tab_9) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_tfnetwork_in_condition.sizePolicy().hasHeightForWidth()) + self.checkBox_tfnetwork_in_condition.setSizePolicy(sizePolicy) + self.checkBox_tfnetwork_in_condition.setLayoutDirection(QtCore.Qt.RightToLeft) + self.checkBox_tfnetwork_in_condition.setObjectName("checkBox_tfnetwork_in_condition") + self.horizontalLayout_55.addWidget(self.checkBox_tfnetwork_in_condition) + self.horizontalLayout_80 = QtWidgets.QHBoxLayout() + self.horizontalLayout_80.setObjectName("horizontalLayout_80") + self.comboBox_tfnetwork_condition_meta = QtWidgets.QComboBox(self.tab_9) + self.comboBox_tfnetwork_condition_meta.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_tfnetwork_condition_meta.sizePolicy().hasHeightForWidth()) + self.comboBox_tfnetwork_condition_meta.setSizePolicy(sizePolicy) + self.comboBox_tfnetwork_condition_meta.setObjectName("comboBox_tfnetwork_condition_meta") + self.horizontalLayout_80.addWidget(self.comboBox_tfnetwork_condition_meta) + self.comboBox_tfnetwork_condition_group = QtWidgets.QComboBox(self.tab_9) + self.comboBox_tfnetwork_condition_group.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_tfnetwork_condition_group.sizePolicy().hasHeightForWidth()) + self.comboBox_tfnetwork_condition_group.setSizePolicy(sizePolicy) + self.comboBox_tfnetwork_condition_group.setObjectName("comboBox_tfnetwork_condition_group") + self.horizontalLayout_80.addWidget(self.comboBox_tfnetwork_condition_group) + self.horizontalLayout_55.addLayout(self.horizontalLayout_80) + self.horizontalLayout_120.addLayout(self.horizontalLayout_55) + self.gridLayout_network_group = QtWidgets.QGridLayout() + self.gridLayout_network_group.setObjectName("gridLayout_network_group") + self.horizontalLayout_120.addLayout(self.gridLayout_network_group) + self.gridLayout_network_sample = QtWidgets.QGridLayout() + self.gridLayout_network_sample.setObjectName("gridLayout_network_sample") + self.horizontalLayout_120.addLayout(self.gridLayout_network_sample) + self.gridLayout_6.addLayout(self.horizontalLayout_120, 2, 1, 1, 3) self.tabWidget_2.addTab(self.tab_9, "") self.gridLayout_19.addWidget(self.tabWidget_2, 0, 0, 1, 1) self.tabWidget_TaxaFuncAnalyzer.addTab(self.tab_others_stats, "") @@ -5549,7 +5597,7 @@ def setupUi(self, metaX_main): self.statusbar.setObjectName("statusbar") metaX_main.setStatusBar(self.statusbar) self.menuBar = QtWidgets.QMenuBar(metaX_main) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 991, 21)) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 991, 23)) self.menuBar.setObjectName("menuBar") self.menuTools = QtWidgets.QMenu(self.menuBar) self.menuTools.setObjectName("menuTools") @@ -5615,42 +5663,22 @@ def setupUi(self, metaX_main): self.retranslateUi(metaX_main) self.stackedWidget.setCurrentIndex(0) - self.tabWidget_TaxaFuncAnalyzer.setCurrentIndex(3) + self.tabWidget_TaxaFuncAnalyzer.setCurrentIndex(5) self.toolBox_2.setCurrentIndex(0) - self.tabWidget_4.setCurrentIndex(1) - self.tabWidget_3.setCurrentIndex(3) - self.tabWidget.setCurrentIndex(1) - self.tabWidget_2.setCurrentIndex(1) + self.tabWidget_4.setCurrentIndex(0) + self.tabWidget_3.setCurrentIndex(0) + self.tabWidget.setCurrentIndex(0) + self.tabWidget_2.setCurrentIndex(0) self.tabWidget_6.setCurrentIndex(0) self.toolBox_metalab_res_anno.setCurrentIndex(0) self.tabWidget_5.setCurrentIndex(0) - self.checkBox_deseq2_comparing_in_condition.clicked['bool'].connect(self.comboBox_deseq2_condition_meta.setEnabled) # type: ignore - self.checkBox_deseq2_comparing_in_condition.clicked['bool'].connect(self.comboBox_deseq2_condition_group.setEnabled) # type: ignore - self.checkBox_tflink_in_condition.clicked['bool'].connect(self.comboBox_tflink_condition_meta.setEnabled) # type: ignore - self.checkBox_tflink_in_condition.clicked['bool'].connect(self.comboBox_tflink_condition_group.setEnabled) # type: ignore - self.checkBox_tfnetwork_in_condition.clicked['bool'].connect(self.comboBox_tfnetwork_condition_meta.setEnabled) # type: ignore - self.checkBox_tfnetwork_in_condition.clicked['bool'].connect(self.comboBox_tfnetwork_condition_group.setEnabled) # type: ignore self.checkBox_anova_in_condition.clicked['bool'].connect(self.comboBox_anova_condition_meta.setEnabled) # type: ignore self.checkBox_anova_in_condition.clicked['bool'].connect(self.comboBox_anova_condition_group.setEnabled) # type: ignore - self.checkBox_ttest_in_condition.clicked['bool'].connect(self.comboBox_ttest_condition_meta.setEnabled) # type: ignore - self.checkBox_ttest_in_condition.clicked['bool'].connect(self.comboBox_ttest_condition_group.setEnabled) # type: ignore - self.checkBox_basic_heatmap_in_condition.clicked['bool'].connect(self.comboBox_basic_heatmap_condition_meta.setEnabled) # type: ignore - self.checkBox_basic_heatmap_in_condition.clicked['bool'].connect(self.comboBox_basic_heatmap_condition_group.setEnabled) # type: ignore - self.checkBox_basic_in_condtion.clicked['bool'].connect(self.comboBox_basic_condition_meta.setEnabled) # type: ignore - self.checkBox_tukey_in_condition.clicked['bool'].connect(self.comboBox_tukey_condition_meta.setEnabled) # type: ignore - self.checkBox_tukey_in_condition.clicked['bool'].connect(self.comboBox_tukey_condition_group.setEnabled) # type: ignore - self.checkBox_group_control_in_condition.clicked['bool'].connect(self.comboBox_group_control_condition_meta.setEnabled) # type: ignore - self.checkBox_group_control_in_condition.clicked['bool'].connect(self.comboBox_group_control_condition_group.setEnabled) # type: ignore self.checkBox_pca_if_show_lable.clicked['bool'].connect(self.checkBox_pca_if_adjust_pca_label.setEnabled) # type: ignore self.checkBox_pca_if_show_lable.clicked['bool'].connect(self.checkBox_sunburst_show_all_lables.setEnabled) # type: ignore self.checkBox_pca_if_show_lable.clicked['bool'].connect(self.doubleSpinBox_basic_pca_label_font_transparency.setEnabled) # type: ignore - self.checkBox_basic_in_condtion.clicked['bool'].connect(self.comboBox_basic_condition_group.setEnabled) # type: ignore self.checkBox_tf_link_net_plot_list_only.clicked['bool'].connect(self.checkBox_tf_link_net_plot_list_only_no_link.setEnabled) # type: ignore self.checkBox_basic_heatmap_plot_mean.clicked['bool'].connect(self.comboBox_3dbar_sub_meta.setDisabled) # type: ignore - self.checkBox_co_expression_in_condition.clicked['bool'].connect(self.comboBox_co_expression_condition_meta.setEnabled) # type: ignore - self.checkBox_co_expression_in_condition.clicked['bool'].connect(self.comboBox_co_expression_condition_group.setEnabled) # type: ignore - self.checkBox_trends_in_condition.clicked['bool'].connect(self.comboBox_trends_condition_meta.setEnabled) # type: ignore - self.checkBox_trends_in_condition.clicked['bool'].connect(self.comboBox_trends_condition_group.setEnabled) # type: ignore self.checkBox_show_basic_plot_settings.toggled['bool'].connect(self.groupBox_basic_plot.setVisible) # type: ignore self.checkBox.toggled['bool'].connect(self.groupBox_basic_heatmap_plot_settings.setVisible) # type: ignore self.checkBox_2.toggled['bool'].connect(self.groupBox_cross_heatmap_settings.setVisible) # type: ignore @@ -5825,9 +5853,18 @@ def retranslateUi(self, metaX_main): self.pushButton_plot_box_sns.setText(_translate("metaX_main", "Box")) self.pushButton_basic_plot_upset.setText(_translate("metaX_main", "UpSet")) self.pushButton_basic_plot_number_bar.setText(_translate("metaX_main", "Bar")) - self.checkBox_basic_in_condtion.setText(_translate("metaX_main", "In Condition")) - self.radioButton_basic_pca_group.setText(_translate("metaX_main", "Groups")) - self.radioButton_basic_pca_sample.setText(_translate("metaX_main", "Samples")) + self.checkBox_show_basic_plot_settings.setText(_translate("metaX_main", "Show Plotting Parameter")) + self.label_70.setText(_translate("metaX_main", "Table")) + self.comboBox_table4pca.setItemText(0, _translate("metaX_main", "Taxa")) + self.comboBox_table4pca.setItemText(1, _translate("metaX_main", "Functions")) + self.comboBox_table4pca.setItemText(2, _translate("metaX_main", "Taxa-Functions")) + self.comboBox_table4pca.setItemText(3, _translate("metaX_main", "Peptides")) + self.label_146.setText(_translate("metaX_main", "Meta")) + self.label_142.setText(_translate("metaX_main", "Sub Meta ")) + self.comboBox_sub_meta_pca.setItemText(0, _translate("metaX_main", "None")) + self.label_210.setText(_translate("metaX_main", "Select")) + self.comboBox_basic_pca_group_sample.setItemText(0, _translate("metaX_main", "Group")) + self.comboBox_basic_pca_group_sample.setItemText(1, _translate("metaX_main", "Sample")) self.groupBox_basic_plot.setTitle(_translate("metaX_main", "Plotting Parameter")) self.checkBox_pca_if_adjust_pca_label.setToolTip(_translate("metaX_main", "Adjust label text to reduce overlap")) self.checkBox_pca_if_adjust_pca_label.setText(_translate("metaX_main", "Adjust Labels")) @@ -5885,26 +5922,14 @@ def retranslateUi(self, metaX_main): self.checkBox_basic_plot_upset_show_percentage.setText(_translate("metaX_main", "Show Percentages")) self.label_206.setText(_translate("metaX_main", "Min Subset Size")) self.label_208.setText(_translate("metaX_main", "Max Rank")) - self.label_70.setText(_translate("metaX_main", "Table")) - self.comboBox_table4pca.setItemText(0, _translate("metaX_main", "Taxa")) - self.comboBox_table4pca.setItemText(1, _translate("metaX_main", "Functions")) - self.comboBox_table4pca.setItemText(2, _translate("metaX_main", "Taxa-Functions")) - self.comboBox_table4pca.setItemText(3, _translate("metaX_main", "Peptides")) - self.label_146.setText(_translate("metaX_main", "Meta")) - self.label_142.setText(_translate("metaX_main", "Sub Meta ")) - self.comboBox_sub_meta_pca.setItemText(0, _translate("metaX_main", "None")) - self.checkBox_show_basic_plot_settings.setText(_translate("metaX_main", "Show Plotting Parameter")) + self.checkBox_basic_in_condtion.setText(_translate("metaX_main", "In Condition")) self.tabWidget_4.setTabText(self.tabWidget_4.indexOf(self.tab_12), _translate("metaX_main", "Basic Plot")) self.label_32.setText(_translate("metaX_main", "Select for plotting")) - self.label_80.setText(_translate("metaX_main", "Table")) - self.comboBox_basic_table.setItemText(0, _translate("metaX_main", "Taxa")) - self.comboBox_basic_table.setItemText(1, _translate("metaX_main", "Functions")) - self.comboBox_basic_table.setItemText(2, _translate("metaX_main", "Taxa-Functions")) - self.comboBox_basic_table.setItemText(3, _translate("metaX_main", "Peptides")) - self.label_144.setText(_translate("metaX_main", "Meta")) - self.label_164.setText(_translate("metaX_main", "Sub Meta ")) - self.comboBox_3dbar_sub_meta.setToolTip(_translate("metaX_main", "Sub Meta for Bar Plot")) - self.checkBox_basic_heatmap_in_condition.setText(_translate("metaX_main", "In Condition")) + self.checkBox.setText(_translate("metaX_main", "Show Plotting Parameter")) + self.pushButton_basic_heatmap_drop_item.setText(_translate("metaX_main", "Drop Item")) + self.pushButton_basic_heatmap_clean_list.setText(_translate("metaX_main", "Clean List")) + self.pushButton_basic_heatmap_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) + self.pushButton_basic_heatmap_add_a_list.setText(_translate("metaX_main", "Add A List")) self.label_67.setText(_translate("metaX_main", "Select Top")) self.label_68.setText(_translate("metaX_main", "Sort by")) self.comboBox_basic_heatmap_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) @@ -5919,13 +5944,24 @@ def retranslateUi(self, metaX_main): self.comboBox_basic_heatmap_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) self.comboBox_basic_heatmap_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) self.checkBox_basic_heatmap_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) + self.label_34.setText(_translate("metaX_main", "List for Plotting")) self.pushButton_basic_heatmap_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) self.pushButton_basic_heatmap_add_top.setText(_translate("metaX_main", "Add Top to List")) - self.radioButton_basic_heatmap_group.setText(_translate("metaX_main", "Group")) - self.pushButton_basic_heatmap_drop_item.setText(_translate("metaX_main", "Drop Item")) - self.pushButton_basic_heatmap_clean_list.setText(_translate("metaX_main", "Clean List")) - self.pushButton_basic_heatmap_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) - self.pushButton_basic_heatmap_add_a_list.setText(_translate("metaX_main", "Add A List")) + self.pushButton_basic_heatmap_add.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) + self.pushButton_basic_heatmap_add.setText(_translate("metaX_main", "Add to List")) + self.pushButton_basic_heatmap_plot.setText(_translate("metaX_main", "Plot Heatmap")) + self.pushButton_basic_bar_plot.setText(_translate("metaX_main", "Plot Bar")) + self.pushButton_basic_heatmap_plot_upset.setText(_translate("metaX_main", "UpSet")) + self.pushButton_basic_heatmap_sankey_plot.setText(_translate("metaX_main", "Plot Sankey")) + self.pushButton_basic_heatmap_get_table.setText(_translate("metaX_main", "Get Table")) + self.label_80.setText(_translate("metaX_main", "Table")) + self.comboBox_basic_table.setItemText(0, _translate("metaX_main", "Taxa")) + self.comboBox_basic_table.setItemText(1, _translate("metaX_main", "Functions")) + self.comboBox_basic_table.setItemText(2, _translate("metaX_main", "Taxa-Functions")) + self.comboBox_basic_table.setItemText(3, _translate("metaX_main", "Peptides")) + self.label_144.setText(_translate("metaX_main", "Meta")) + self.label_164.setText(_translate("metaX_main", "Sub Meta ")) + self.comboBox_3dbar_sub_meta.setToolTip(_translate("metaX_main", "Sub Meta for Bar Plot")) self.groupBox_basic_heatmap_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) self.label_35.setText(_translate("metaX_main", "Width")) self.label_33.setText(_translate("metaX_main", "Height")) @@ -5961,16 +5997,10 @@ def retranslateUi(self, metaX_main): self.label_211.setText(_translate("metaX_main", "Min Subset Size")) self.label_212.setText(_translate("metaX_main", "Max Rank")) self.checkBox_basic_heatmap_plot_upset_show_percentage.setText(_translate("metaX_main", "Show Percentages")) - self.pushButton_basic_heatmap_add.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) - self.pushButton_basic_heatmap_add.setText(_translate("metaX_main", "Add to List")) - self.checkBox.setText(_translate("metaX_main", "Show Plotting Parameter")) - self.label_34.setText(_translate("metaX_main", "List for Plotting")) - self.radioButton_basic_heatmap_sample.setText(_translate("metaX_main", "Sample")) - self.pushButton_basic_heatmap_plot.setText(_translate("metaX_main", "Plot Heatmap")) - self.pushButton_basic_bar_plot.setText(_translate("metaX_main", "Plot Bar")) - self.pushButton_basic_heatmap_plot_upset.setText(_translate("metaX_main", "UpSet")) - self.pushButton_basic_heatmap_sankey_plot.setText(_translate("metaX_main", "Plot Sankey")) - self.pushButton_basic_heatmap_get_table.setText(_translate("metaX_main", "Get Table")) + self.label_209.setText(_translate("metaX_main", "Select")) + self.comboBox_basic_heatmap_group_or_sample.setItemText(0, _translate("metaX_main", "Group")) + self.comboBox_basic_heatmap_group_or_sample.setItemText(1, _translate("metaX_main", "Sample")) + self.checkBox_basic_heatmap_in_condition.setText(_translate("metaX_main", "In Condition")) self.tabWidget_4.setTabText(self.tabWidget_4.indexOf(self.tab_13), _translate("metaX_main", "Heatmap and Bar")) self.label_81.setText(_translate("metaX_main", "Peptide")) self.pushButton_basic_peptide_query.setText(_translate("metaX_main", "Query")) @@ -6110,6 +6140,17 @@ def retranslateUi(self, metaX_main): self.checkBox_tukey_in_condition.setText(_translate("metaX_main", "In Condition")) self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.tab_4), _translate("metaX_main", "TUKEY TEST")) self.tabWidget_TaxaFuncAnalyzer.setTabText(self.tabWidget_TaxaFuncAnalyzer.indexOf(self.tab_2), _translate("metaX_main", "Cross Test")) + self.pushButton_co_expr_drop_item.setText(_translate("metaX_main", "Drop Item")) + self.pushButton_co_expr_clean_list.setText(_translate("metaX_main", "Clean List")) + self.pushButton_co_expr_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) + self.pushButton_co_expr_add_a_list.setText(_translate("metaX_main", "Add a list")) + self.pushButton_co_expr_add_to_list.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) + self.pushButton_co_expr_add_to_list.setText(_translate("metaX_main", "Add to Focus List")) + self.label_213.setText(_translate("metaX_main", "Select")) + self.comboBox_co_expr_group_sample.setItemText(0, _translate("metaX_main", "Group")) + self.comboBox_co_expr_group_sample.setItemText(1, _translate("metaX_main", "Sample")) + self.checkBox_4.setText(_translate("metaX_main", "Show Plotting Parameter")) + self.checkBox_co_expression_in_condition.setText(_translate("metaX_main", "In Condition")) self.groupBox_co_expression_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) self.label_190.setText(_translate("metaX_main", "Show All Labels")) self.checkBox_corr_hetatmap_show_all_labels_x.setText(_translate("metaX_main", "X")) @@ -6128,16 +6169,17 @@ def retranslateUi(self, metaX_main): self.label_187.setText(_translate("metaX_main", "General")) self.label_188.setText(_translate("metaX_main", "Network")) self.checkBox_co_expr_plot_list_only.setText(_translate("metaX_main", "Plot List Only")) - self.pushButton_co_expr_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) - self.pushButton_co_expr_add_top.setText(_translate("metaX_main", "Add Top to List")) self.label_29.setText(_translate("metaX_main", "Table")) self.comboBox_co_expr_table.setItemText(0, _translate("metaX_main", "Taxa")) self.comboBox_co_expr_table.setItemText(1, _translate("metaX_main", "Functions")) self.comboBox_co_expr_table.setItemText(2, _translate("metaX_main", "Taxa-Functions")) self.comboBox_co_expr_table.setItemText(3, _translate("metaX_main", "Peptides")) self.label_143.setText(_translate("metaX_main", "Meta")) - self.pushButton_co_expr_add_to_list.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) - self.pushButton_co_expr_add_to_list.setText(_translate("metaX_main", "Add to Focus List")) + self.label_72.setText(_translate("metaX_main", "Focus List")) + self.pushButton_co_expr_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) + self.pushButton_co_expr_add_top.setText(_translate("metaX_main", "Add Top to List")) + self.pushButton_co_expr_plot.setText(_translate("metaX_main", "Plot Co-Expression Network")) + self.pushButton_co_expr_heatmap_plot.setText(_translate("metaX_main", "Plot Co-Expression Heatmap")) self.label_73.setText(_translate("metaX_main", "Select Top")) self.label_74.setText(_translate("metaX_main", "Sort by")) self.comboBox_co_expr_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) @@ -6152,24 +6194,25 @@ def retranslateUi(self, metaX_main): self.comboBox_co_expr_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) self.comboBox_co_expr_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) self.checkBox_co_expr_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) - self.pushButton_co_expr_plot.setText(_translate("metaX_main", "Plot Co-Expression Network")) - self.pushButton_co_expr_heatmap_plot.setText(_translate("metaX_main", "Plot Co-Expression Heatmap")) - self.checkBox_co_expression_in_condition.setText(_translate("metaX_main", "In Condition")) - self.checkBox_4.setText(_translate("metaX_main", "Show Plotting Parameter")) - self.radioButton_co_expr_bygroup.setText(_translate("metaX_main", "Group")) - self.pushButton_co_expr_drop_item.setText(_translate("metaX_main", "Drop Item")) - self.pushButton_co_expr_clean_list.setText(_translate("metaX_main", "Clean List")) - self.pushButton_co_expr_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) - self.pushButton_co_expr_add_a_list.setText(_translate("metaX_main", "Add a list")) - self.radioButton_co_expr_bysample.setText(_translate("metaX_main", "Sample")) - self.label_72.setText(_translate("metaX_main", "Focus List")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("metaX_main", "Co-Expression")) - self.checkBox_trends_in_condition.setText(_translate("metaX_main", "In Condition")) - self.radioButton_trends_group.setText(_translate("metaX_main", "Group")) - self.pushButton_trends_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) - self.pushButton_trends_add_top.setText(_translate("metaX_main", "Add Top to List")) - self.radioButton_trends_sample.setText(_translate("metaX_main", "Sample")) + self.label_215.setText(_translate("metaX_main", "Select")) + self.comboBox_trends_group_sample.setItemText(0, _translate("metaX_main", "Group")) + self.comboBox_trends_group_sample.setItemText(1, _translate("metaX_main", "Sample")) self.label_98.setText(_translate("metaX_main", "List for Plotting")) + self.groupBox_expression_trends_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) + self.checkBox_trends_plot_interactive_rename_taxa.setText(_translate("metaX_main", "Simplify Taxa Names")) + self.checkBox_trends_plot_interactive_plot_samples.setText(_translate("metaX_main", "Plot Samples")) + self.label_174.setText(_translate("metaX_main", "General")) + self.label_175.setText(_translate("metaX_main", "Specific cluster")) + self.checkBox_trends_plot_interactive_show_legend.setText(_translate("metaX_main", "Show Legend")) + self.checkBox_get_trends_cluster_intensity.setText(_translate("metaX_main", "Get Intnsity Results")) + self.label_97.setText(_translate("metaX_main", "Width")) + self.label_92.setText(_translate("metaX_main", "Height")) + self.label_158.setText(_translate("metaX_main", "Font Size")) + self.label_195.setText(_translate("metaX_main", "Number of Col for Cluster Plot")) + self.checkBox_trends_in_condition.setText(_translate("metaX_main", "In Condition")) + self.pushButton_trends_add.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) + self.pushButton_trends_add.setText(_translate("metaX_main", "Add to List")) self.label_99.setText(_translate("metaX_main", "Select Top")) self.label_91.setText(_translate("metaX_main", "Sort by")) self.comboBox_trends_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) @@ -6184,30 +6227,19 @@ def retranslateUi(self, metaX_main): self.comboBox_trends_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) self.comboBox_trends_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) self.checkBox_trends_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) - self.pushButton_trends_add.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) - self.pushButton_trends_add.setText(_translate("metaX_main", "Add to List")) self.pushButton_trends_drop_item.setText(_translate("metaX_main", "Drop Item")) self.pushButton_trends_clean_list.setText(_translate("metaX_main", "Clean List")) self.pushButton_trends_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) self.pushButton_trends_add_a_list.setText(_translate("metaX_main", "Add A list")) + self.label_100.setText(_translate("metaX_main", "Select for plotting")) self.label_96.setText(_translate("metaX_main", "Table")) self.comboBox_trends_table.setItemText(0, _translate("metaX_main", "Taxa")) self.comboBox_trends_table.setItemText(1, _translate("metaX_main", "Functions")) self.comboBox_trends_table.setItemText(2, _translate("metaX_main", "Taxa-Functions")) self.comboBox_trends_table.setItemText(3, _translate("metaX_main", "Peptides")) self.label_148.setText(_translate("metaX_main", "Meta")) - self.label_100.setText(_translate("metaX_main", "Select for plotting")) - self.groupBox_expression_trends_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) - self.checkBox_trends_plot_interactive_rename_taxa.setText(_translate("metaX_main", "Simplify Taxa Names")) - self.checkBox_trends_plot_interactive_plot_samples.setText(_translate("metaX_main", "Plot Samples")) - self.label_174.setText(_translate("metaX_main", "General")) - self.label_175.setText(_translate("metaX_main", "Specific cluster")) - self.checkBox_trends_plot_interactive_show_legend.setText(_translate("metaX_main", "Show Legend")) - self.checkBox_get_trends_cluster_intensity.setText(_translate("metaX_main", "Get Intnsity Results")) - self.label_97.setText(_translate("metaX_main", "Width")) - self.label_92.setText(_translate("metaX_main", "Height")) - self.label_158.setText(_translate("metaX_main", "Font Size")) - self.label_195.setText(_translate("metaX_main", "Number of Col for Cluster Plot")) + self.pushButton_trends_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) + self.pushButton_trends_add_top.setText(_translate("metaX_main", "Add Top to List")) self.label_93.setText(_translate("metaX_main", "Select Cluster")) self.pushButton_trends_get_trends_table.setText(_translate("metaX_main", "Get ClusterTable")) self.label_165.setText(_translate("metaX_main", "Plot Specific Cluster")) @@ -6222,29 +6254,10 @@ def retranslateUi(self, metaX_main): self.pushButton_others_plot_line.setText(_translate("metaX_main", "Plot Bar")) self.pushButton_others_get_intensity_matrix.setText(_translate("metaX_main", "Get Heatmap Table")) self.checkBox_6.setText(_translate("metaX_main", "Show Plotting Parameter")) - self.radioButton_tflink_group.setText(_translate("metaX_main", "Group")) - self.label_others_func_num.setText(_translate("metaX_main", "Linked Number: -")) - self.pushButton_others_show_linked_taxa.setText(_translate("metaX_main", "Show Linked Taxa Only")) - self.pushButton_others_fresh_taxa_func.setToolTip(_translate("metaX_main", "Restore both lists to their original full items")) - self.pushButton_others_fresh_taxa_func.setText(_translate("metaX_main", "Reset List")) - self.label_75.setText(_translate("metaX_main", "Filter Top")) - self.label_76.setText(_translate("metaX_main", "By")) - self.comboBox_tflink_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) - self.comboBox_tflink_top_by.setItemText(1, _translate("metaX_main", "Frequency in Samples")) - self.comboBox_tflink_top_by.setItemText(2, _translate("metaX_main", "Number of links")) - self.comboBox_tflink_top_by.setItemText(3, _translate("metaX_main", "ANOVA(p-value)")) - self.comboBox_tflink_top_by.setItemText(4, _translate("metaX_main", "ANOVA(f-statistic)")) - self.comboBox_tflink_top_by.setItemText(5, _translate("metaX_main", "T-TEST(p-value)")) - self.comboBox_tflink_top_by.setItemText(6, _translate("metaX_main", "T-TEST(t-statistic)")) - self.comboBox_tflink_top_by.setItemText(7, _translate("metaX_main", "Deseq2-up(p-value)")) - self.comboBox_tflink_top_by.setItemText(8, _translate("metaX_main", "Deseq2-down(p-value)")) - self.comboBox_tflink_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) - self.comboBox_tflink_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) - self.checkBox_tflink_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) - self.pushButton_tflink_filter.setToolTip(_translate("metaX_main", "Filter items in the two lists by condition")) - self.pushButton_tflink_filter.setText(_translate("metaX_main", "Filter")) - self.label_19.setText(_translate("metaX_main", "Taxa")) - self.label_149.setText(_translate("metaX_main", "Meta")) + self.label_18.setText(_translate("metaX_main", "Function")) + self.label_196.setText(_translate("metaX_main", "Sub Meta ")) + self.label_others_taxa_num.setText(_translate("metaX_main", "Linked Number: -")) + self.pushButton_others_show_linked_func.setText(_translate("metaX_main", "Show Linked Func Only")) self.groupBox_taxa_func_link_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) self.label_178.setText(_translate("metaX_main", "Bar")) self.checkBox_tflink_hetatmap_col_cluster.setText(_translate("metaX_main", "Col Cluster")) @@ -6269,31 +6282,33 @@ def retranslateUi(self, metaX_main): self.comboBox_tflink_hetatmap_scale.setItemText(2, _translate("metaX_main", "column")) self.comboBox_tflink_hetatmap_scale.setItemText(3, _translate("metaX_main", "all")) self.label_61.setText(_translate("metaX_main", "Theme")) - self.label_others_taxa_num.setText(_translate("metaX_main", "Linked Number: -")) - self.pushButton_others_show_linked_func.setText(_translate("metaX_main", "Show Linked Func Only")) - self.radioButton_tflink_sample.setText(_translate("metaX_main", "Sample")) + self.label_216.setText(_translate("metaX_main", "Select")) + self.comboBox_tflink_group_sample.setItemText(0, _translate("metaX_main", "Group")) + self.comboBox_tflink_group_sample.setItemText(1, _translate("metaX_main", "Sample")) + self.pushButton_others_fresh_taxa_func.setToolTip(_translate("metaX_main", "Restore both lists to their original full items")) + self.pushButton_others_fresh_taxa_func.setText(_translate("metaX_main", "Reset List")) + self.label_others_func_num.setText(_translate("metaX_main", "Linked Number: -")) + self.pushButton_others_show_linked_taxa.setText(_translate("metaX_main", "Show Linked Taxa Only")) + self.label_19.setText(_translate("metaX_main", "Taxa")) + self.label_149.setText(_translate("metaX_main", "Meta")) + self.label_75.setText(_translate("metaX_main", "Filter Top")) + self.label_76.setText(_translate("metaX_main", "By")) + self.comboBox_tflink_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) + self.comboBox_tflink_top_by.setItemText(1, _translate("metaX_main", "Frequency in Samples")) + self.comboBox_tflink_top_by.setItemText(2, _translate("metaX_main", "Number of links")) + self.comboBox_tflink_top_by.setItemText(3, _translate("metaX_main", "ANOVA(p-value)")) + self.comboBox_tflink_top_by.setItemText(4, _translate("metaX_main", "ANOVA(f-statistic)")) + self.comboBox_tflink_top_by.setItemText(5, _translate("metaX_main", "T-TEST(p-value)")) + self.comboBox_tflink_top_by.setItemText(6, _translate("metaX_main", "T-TEST(t-statistic)")) + self.comboBox_tflink_top_by.setItemText(7, _translate("metaX_main", "Deseq2-up(p-value)")) + self.comboBox_tflink_top_by.setItemText(8, _translate("metaX_main", "Deseq2-down(p-value)")) + self.comboBox_tflink_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) + self.comboBox_tflink_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) + self.checkBox_tflink_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) + self.pushButton_tflink_filter.setToolTip(_translate("metaX_main", "Filter items in the two lists by condition")) + self.pushButton_tflink_filter.setText(_translate("metaX_main", "Filter")) self.checkBox_tflink_in_condition.setText(_translate("metaX_main", "In Condition")) - self.label_18.setText(_translate("metaX_main", "Function")) - self.label_196.setText(_translate("metaX_main", "Sub Meta ")) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_8), _translate("metaX_main", "Taxa-Func Link")) - self.radioButton_network_bysample.setText(_translate("metaX_main", "Sample")) - self.label_49.setText(_translate("metaX_main", "Table")) - self.comboBox_tfnet_table.setItemText(0, _translate("metaX_main", "Taxa")) - self.comboBox_tfnet_table.setItemText(1, _translate("metaX_main", "Functions")) - self.comboBox_tfnet_table.setItemText(2, _translate("metaX_main", "Taxa-Functions")) - self.label_150.setText(_translate("metaX_main", "Meta")) - self.label_77.setText(_translate("metaX_main", "Focus List")) - self.checkBox_tfnetwork_in_condition.setText(_translate("metaX_main", "In Condition")) - self.radioButton_network_bygroup.setText(_translate("metaX_main", "Group")) - self.checkBox_7.setText(_translate("metaX_main", "Show Parameter")) - self.pushButton_tfnet_drop_item.setText(_translate("metaX_main", "Drop Item")) - self.pushButton_tfnet_clean_list.setText(_translate("metaX_main", "Clean List")) - self.pushButton_tfnet_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) - self.pushButton_tfnet_add_a_list.setText(_translate("metaX_main", "Add a list")) - self.pushButton_tfnet_add_to_list.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) - self.pushButton_tfnet_add_to_list.setText(_translate("metaX_main", "Add to Focus List")) - self.pushButton_tfnet_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) - self.pushButton_tfnet_add_top.setText(_translate("metaX_main", "Add Top to List")) self.label_78.setText(_translate("metaX_main", "Select Top")) self.label_79.setText(_translate("metaX_main", "Sort by")) self.comboBox_tfnet_top_by.setItemText(0, _translate("metaX_main", "Total Intensity")) @@ -6308,7 +6323,25 @@ def retranslateUi(self, metaX_main): self.comboBox_tfnet_top_by.setItemText(9, _translate("metaX_main", "Deseq2-up(log2FC)")) self.comboBox_tfnet_top_by.setItemText(10, _translate("metaX_main", "Deseq2-down(log2FC)")) self.checkBox_tfnet_top_filtered.setText(_translate("metaX_main", "Filter with threshold")) + self.checkBox_7.setText(_translate("metaX_main", "Show Parameter")) + self.label_77.setText(_translate("metaX_main", "Focus List")) + self.label_49.setText(_translate("metaX_main", "Table")) + self.comboBox_tfnet_table.setItemText(0, _translate("metaX_main", "Taxa")) + self.comboBox_tfnet_table.setItemText(1, _translate("metaX_main", "Functions")) + self.comboBox_tfnet_table.setItemText(2, _translate("metaX_main", "Taxa-Functions")) + self.label_150.setText(_translate("metaX_main", "Meta")) + self.pushButton_tfnet_add_to_list.setToolTip(_translate("metaX_main", "Add selected item to the drawing box")) + self.pushButton_tfnet_add_to_list.setText(_translate("metaX_main", "Add to Focus List")) self.pushButton_plot_network.setText(_translate("metaX_main", "Plot Ntework")) + self.pushButton_tfnet_drop_item.setText(_translate("metaX_main", "Drop Item")) + self.pushButton_tfnet_clean_list.setText(_translate("metaX_main", "Clean List")) + self.pushButton_tfnet_add_a_list.setToolTip(_translate("metaX_main", "Add a list to the drawing box, make sure there is one item per line.")) + self.pushButton_tfnet_add_a_list.setText(_translate("metaX_main", "Add a list")) + self.pushButton_tfnet_add_top.setToolTip(_translate("metaX_main", "Add conditionally filtered items to the drawing box")) + self.pushButton_tfnet_add_top.setText(_translate("metaX_main", "Add Top to List")) + self.label_217.setText(_translate("metaX_main", "Select")) + self.comboBox_radioButton_network_group_sample.setItemText(0, _translate("metaX_main", "Group")) + self.comboBox_radioButton_network_group_sample.setItemText(1, _translate("metaX_main", "Sample")) self.groupBox_taxa_func_link_net_plot_settings.setTitle(_translate("metaX_main", "Plotting Parameter")) self.label_50.setText(_translate("metaX_main", "Width")) self.label_51.setText(_translate("metaX_main", "Height")) @@ -6317,6 +6350,7 @@ def retranslateUi(self, metaX_main): self.checkBox_tf_link_net_show_label.setText(_translate("metaX_main", "Show Labels")) self.checkBox_tf_link_net_rename_taxa.setText(_translate("metaX_main", "Raname Taxa")) self.label_163.setText(_translate("metaX_main", "Font Size")) + self.checkBox_tfnetwork_in_condition.setText(_translate("metaX_main", "In Condition")) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_9), _translate("metaX_main", "Taxa-Func Network")) self.tabWidget_TaxaFuncAnalyzer.setTabText(self.tabWidget_TaxaFuncAnalyzer.indexOf(self.tab_others_stats), _translate("metaX_main", "Taxa-Func Link")) self.pushButton_view_table.setText(_translate("metaX_main", "View Table")) diff --git a/metax/utils/version.py b/metax/utils/version.py index 6bac9c5..40370b8 100644 --- a/metax/utils/version.py +++ b/metax/utils/version.py @@ -1,2 +1,2 @@ -__version__ = '1.119.1' +__version__ = '1.119.2' API_version = '4' \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 9af082e..d4b2897 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "MetaXTools" -version = "1.119.1" +version = "1.119.2" description = "MetaXTools is a novel tool for linking peptide sequences with taxonomic and functional information in Metaproteomics." readme = "README_PyPi.md" license = { text = "NorthOmics" } From 4f6b3b67d884a3c5eb6a590ce448b10541f83c05 Mon Sep 17 00:00:00 2001 From: Qing <44231502+byemaxx@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:33:38 -0500 Subject: [PATCH 5/6] - Fix: Fixed the bug of Logger. --- Docs/ChangeLog.md | 6 ++++- metax/gui/main_gui.py | 59 ++++++++++++++++++++++++++++++------------ metax/utils/version.py | 2 +- pyproject.toml | 2 +- 4 files changed, 50 insertions(+), 19 deletions(-) diff --git a/Docs/ChangeLog.md b/Docs/ChangeLog.md index 840551a..29daf0a 100644 --- a/Docs/ChangeLog.md +++ b/Docs/ChangeLog.md @@ -1,9 +1,13 @@ +# Version: 1.119.3 +## Date: 2024-12-3 +### Changes: +- Fix: Fixed the bug of Logger. + # Version: 1.119.2 ## Date: 2024-12-3 ### Changes: - Change: Change the layout of selection group or sample group in the basic plot part to make the layout more clear. - # Version: 1.119.1 ## Date: 2024-11-29 ### Changes: diff --git a/metax/gui/main_gui.py b/metax/gui/main_gui.py index 8b4c8a3..27af24d 100644 --- a/metax/gui/main_gui.py +++ b/metax/gui/main_gui.py @@ -5934,36 +5934,63 @@ def set_lineEdit_db_save_path(self): ############### Class LoggerManager Begin ############### class LoggerManager: - def __init__(self): - self.setup_logging() + def __init__(self, log_level=logging.DEBUG): + self.setup_logging(log_level) self.write_log(f'------------------------------ MetaX Started Version {__version__} ------------------------------', 'i') - - def setup_logging(self): + + def setup_logging(self, log_level=logging.DEBUG): """ - Configure logging settings. + Configure logging settings for LoggerManager. """ + self.logger = logging.getLogger('MetaXLogger') + self.logger.setLevel(log_level) + # Disable matplotlib logging for warnings matplotlib_logger = logging.getLogger('matplotlib') matplotlib_logger.setLevel(logging.WARNING) - + + # Create log directory if not exists home_path = os.path.expanduser("~") metax_path = os.path.join(home_path, 'MetaX') - if not os.path.exists(metax_path): - os.makedirs(metax_path) + try: + if not os.path.exists(metax_path): + os.makedirs(metax_path) + except Exception as e: + print(f"Error creating log directory: {metax_path}. {e}") + metax_path = home_path # Fallback to home directory + log_path = os.path.join(metax_path, 'MetaX.log') + + # Define formatter and handlers log_format = '%(asctime)s - %(levelname)s - %(message)s' - logging.basicConfig(filename=log_path, level=logging.DEBUG, format=log_format) + formatter = logging.Formatter(log_format) + + # File handler + file_handler = logging.FileHandler(log_path) + file_handler.setFormatter(formatter) + self.logger.addHandler(file_handler) + + # Stream handler (optional, for console logging) + stream_handler = logging.StreamHandler() + stream_handler.setFormatter(formatter) + self.logger.addHandler(stream_handler) - def write_log(self, msg:str, level:str='i'): + def write_log(self, msg: str, level: str = 'i'): + """ + Write a log message with the specified logging level. + Args: + msg (str): The log message. + level (str): The log level ('d', 'i', 'w', 'e', 'c'). + """ level_dict = { - 'd': logging.debug, - 'i': logging.info, - 'w': logging.warning, - 'e': logging.error, - 'c': logging.critical + 'd': self.logger.debug, + 'i': self.logger.info, + 'w': self.logger.warning, + 'e': self.logger.error, + 'c': self.logger.critical, } msg = msg.replace('\n', ' ').replace('\r', '') - log_func = level_dict.get(level, logging.info) + log_func = level_dict.get(level, self.logger.info) log_func(msg) diff --git a/metax/utils/version.py b/metax/utils/version.py index 40370b8..35786cc 100644 --- a/metax/utils/version.py +++ b/metax/utils/version.py @@ -1,2 +1,2 @@ -__version__ = '1.119.2' +__version__ = '1.119.3' API_version = '4' \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index d4b2897..5fdc7df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "MetaXTools" -version = "1.119.2" +version = "1.119.3" description = "MetaXTools is a novel tool for linking peptide sequences with taxonomic and functional information in Metaproteomics." readme = "README_PyPi.md" license = { text = "NorthOmics" } From c1f5457ffb513687a355c5b91b9ff8354b3d54a4 Mon Sep 17 00:00:00 2001 From: Qing <44231502+byemaxx@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:49:39 -0500 Subject: [PATCH 6/6] modified: metax/gui/main_gui.py --- metax/gui/main_gui.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/metax/gui/main_gui.py b/metax/gui/main_gui.py index 27af24d..13067c2 100644 --- a/metax/gui/main_gui.py +++ b/metax/gui/main_gui.py @@ -2057,7 +2057,7 @@ def run_after_set_multi_tables(self): ''' print(f'\n----Multi Table Result----\n{msg_for_print}\n---------------------------\n') - self.logger.write_log(msg_for_print.replace('\n', '')) + self.logger.write_log(msg_for_print.strip()) QMessageBox.information(self.MainWindow, 'Result', msg) print("\n---------------------------------- Set Multi Table End ----------------------------------\n") # go to basic analysis tab and the first tab @@ -2803,7 +2803,6 @@ def set_multi_table(self, restore_taxafunc=False, saved_obj=None): try: print("\n---------------------------------- Set Multi Table ----------------------------------\n") - self.logger.write_log(f'set_multi_table: function: {function}, taxa_level: {taxa_level}, func_threshold: {func_threshold}, outlier_detect_method: {outlier_detect_method}, outlier_handle_method: {outlier_handle_method}, outlier_handle_by_group: {outlier_handle_by_group}, normalize_method: {normalize_method}, transform_method: {transform_method}, batch_group: {batch_meta}, processing_order: {processing_order}') self.tfa.set_func(function) # update group and sample in comboBox # self.update_group_and_sample_combobox() # No longer need due to self.change_event_meta_name_combobox_plot_part() @@ -2824,6 +2823,9 @@ def set_multi_table(self, restore_taxafunc=False, saved_obj=None): 'split_func': split_func, 'split_func_params': split_func_params, 'taxa_and_func_only_from_otf': taxa_and_func_only_from_otf, 'quant_method': quant_method} + + self.logger.write_log(f"set_multi_table_params: {set_multi_table_params} \ + \n\nOutlier_params: {outlier_params} \n\nData_preprocess_params: {data_preprocess_params}", 'i') def callback_after_set_multi_tables(result, success): if success: