@@ -149,6 +149,7 @@ def __init__(self):
149149 self .sig_start = Signal () # needed only due to PyCharm debugger bug (!)
150150 self .llm = 'esm'
151151 self .regression_model = 'PLS'
152+ self .mklsts_cv_method = ''
152153 self .c = 0
153154 self .ls_proportion = 0.8
154155 self .setMinimumSize (QSize (1400 , 400 ))
@@ -167,6 +168,7 @@ def __init__(self):
167168 self .llm_text = QLabel ("LLM" )
168169 self .regression_model_text = QLabel ("Regression model" )
169170 self .utils_text = QLabel ("Utilities" )
171+ self .mklsts_cv_options_text = QLabel ("Cross-validation split options" )
170172 self .dca_text = QLabel ("DCA (unsupervised)" )
171173 self .hybrid_text = QLabel ("Hybrid (supervised DCA)" )
172174 self .hybrid_dca_llm_text = QLabel ("Hybrid (supervised DCA+LLM)" )
@@ -215,7 +217,7 @@ def __init__(self):
215217 self .slider .move (10 , 105 )
216218 self .slider .valueChanged .connect (self .selection_ls_proportion )
217219
218- # Boxes ########################################################################
220+ # ComboBoxes ########################################################################
219221 self .box_regression_model = QComboBox ()
220222 self .regression_models = [
221223 'PLS' , 'PLS_LOOCV' , 'Ridge' , 'Lasso' , 'ElasticNet' , 'SVR' , 'RF' , 'MLP'
@@ -232,6 +234,15 @@ def __init__(self):
232234 self .box_llm .addItems (['ESM1v' , 'ProSST' ])
233235 self .box_llm .currentIndexChanged .connect (self .selection_llm_model )
234236 self .box_llm .setStyleSheet ("color:white;background-color:rgb(54, 69, 79);" )
237+
238+ self .box_mklsts_cv = QComboBox ()
239+ self .box_mklsts_cv .addItems ([
240+ 'None' , 'Random split' , 'Modulo split' ,
241+ 'Continuous split' , 'Plot distribution'
242+ ])
243+ self .box_mklsts_cv .currentIndexChanged .connect (self .selection_mklsts_splits )
244+ self .box_mklsts_cv .setStyleSheet ("color:white;background-color:rgb(54, 69, 79);" )
245+
235246
236247 # Buttons ######################################################################
237248 # Utilities
@@ -527,6 +538,8 @@ def __init__(self):
527538 layout .addWidget (self .button_mklsts , 5 , 0 , 1 , 1 )
528539 layout .addWidget (self .button_mkps , 6 , 0 , 1 , 1 )
529540
541+ layout .addWidget (self .mklsts_cv_options_text , 1 , 1 , 1 , 1 )
542+ layout .addWidget (self .box_mklsts_cv , 2 , 1 , 1 , 1 )
530543 layout .addWidget (self .dca_text , 3 , 1 , 1 , 1 )
531544 layout .addWidget (self .button_dca_inference_gremlin , 4 , 1 , 1 , 1 )
532545 layout .addWidget (self .button_dca_inference_gremlin_msa_info , 5 , 1 , 1 , 1 )
@@ -641,6 +654,11 @@ def selection_regression_model(self, i):
641654 def selection_llm_model (self , i ):
642655 self .llm = ['esm' , 'prosst' ][i ]
643656
657+ def selection_mklsts_splits (self , i ):
658+ self .mklsts_cv_method = [
659+ '' , '--random' , '--modulo' , '--cont' , '--plot'
660+ ][i ]
661+
644662 def selection_ls_proportion (self , value ):
645663 self .ls_proportion = value / 100
646664 self .slider_text .setText (
@@ -680,7 +698,7 @@ def pypef_mklsts(self):
680698 self .version_text .setText ("Running MKLSTS..." )
681699 self .cmd = (
682700 f'mklsts --wt { wt_fasta_file } --input { csv_variant_file } '
683- f'--ls_proportion { self .ls_proportion } '
701+ f'--ls_proportion { self .ls_proportion } { self . mklsts_cv_method } '
684702 )
685703 self .start_threads ()
686704 else :
0 commit comments