99pypef_root = os .path .abspath (os .path .join (os .path .dirname (__file__ ), '..' ))
1010#sys.path.append(pypef_root)
1111from pypef import __version__
12- from pypef .main import __doc__ , run_main
12+ from pypef .main import __doc__ , run_main , logger
1313
14+ import logging
15+
16+
17+ #logging.getLogger("pypef").setLevel(logging.INFO)
18+ #logging.basicConfig(level=logging.INFO)
19+ logger .setLevel (logging .INFO )
1420
1521EXEC_API_OR_CLI = ['api' , 'cli' ][0 ]
1622
@@ -280,42 +286,51 @@ def __init__(
280286
281287 layout .addWidget (self .textedit_out , 8 , 0 , 1 , - 1 )
282288
283- self .process = QtCore .QProcess (self )
289+ # self.process = QtCore.QProcess(self)
284290 #self.process.setProcessChannelMode(QtCore.QProcess.MergedChannels)
285291 #self.process.readyReadStandardOutput.connect(self.on_readyReadStandardOutput)
286- self .process .started .connect (lambda : self .button_help .setEnabled (False ))
287- self .process .finished .connect (lambda : self .button_help .setEnabled (True ))
288- self .process .started .connect (lambda : self .button_mklsts .setEnabled (False ))
289- self .process .finished .connect (lambda : self .button_mklsts .setEnabled (True ))
290- self .process .started .connect (lambda : self .button_dca_inference_gremlin .setEnabled (False ))
291- self .process .finished .connect (lambda : self .button_dca_inference_gremlin .setEnabled (True ))
292- self .process .started .connect (lambda : self .button_dca_inference_gremlin_msa_info .setEnabled (False ))
293- self .process .finished .connect (lambda : self .button_dca_inference_gremlin_msa_info .setEnabled (True ))
294- self .process .started .connect (lambda : self .button_dca_test_dca .setEnabled (False ))
295- self .process .finished .connect (lambda : self .button_dca_test_dca .setEnabled (True ))
296- self .process .started .connect (lambda : self .button_dca_predict_dca .setEnabled (False ))
297- self .process .finished .connect (lambda : self .button_dca_predict_dca .setEnabled (True ))
298- self .process .started .connect (lambda : self .button_hybrid_train_dca .setEnabled (False ))
299- self .process .finished .connect (lambda : self .button_hybrid_train_dca .setEnabled (True ))
300- self .process .started .connect (lambda : self .button_hybrid_train_test_dca .setEnabled (False ))
301- self .process .finished .connect (lambda : self .button_hybrid_train_test_dca .setEnabled (True ))
302- self .process .started .connect (lambda : self .button_hybrid_test_dca .setEnabled (False ))
303- self .process .finished .connect (lambda : self .button_hybrid_test_dca .setEnabled (True ))
304- self .process .started .connect (lambda : self .button_hybrid_prediction_dca .setEnabled (False ))
305- self .process .finished .connect (lambda : self .button_hybrid_prediction_dca .setEnabled (True ))
306- ###### TODO
307- self .process .started .connect (lambda : self .button_hybrid_train_test_dca_llm .setEnabled (False ))
308- self .process .finished .connect (lambda : self .button_hybrid_train_test_dca_llm .setEnabled (True ))
309- ###### TODO END
310- self .process .started .connect (lambda : self .button_supervised_train_test_dca .setEnabled (False ))
311- self .process .finished .connect (lambda : self .button_supervised_train_test_dca .setEnabled (True ))
312- self .process .started .connect (lambda : self .button_supervised_train_test_onehot .setEnabled (False ))
313- self .process .finished .connect (lambda : self .button_supervised_train_test_onehot .setEnabled (True ))
314-
315- def on_readyReadStandardOutput (self ):
316- text = self .process .readAllStandardOutput ().data ().decode ()
317- self .c += 1
318- self .textedit_out .append (text .strip ())
292+ #self.process.started.connect(lambda: self.button_help.setEnabled(False))
293+ #self.process.finished.connect(lambda: self.button_help.setEnabled(True))
294+ #self.process.started.connect(lambda: self.button_mklsts.setEnabled(False))
295+ #self.process.finished.connect(lambda: self.button_mklsts.setEnabled(True))
296+ #self.process.started.connect(lambda: self.button_dca_inference_gremlin.setEnabled(False))
297+ #self.process.finished.connect(lambda: self.button_dca_inference_gremlin.setEnabled(True))
298+ #self.process.started.connect(lambda: self.button_dca_inference_gremlin_msa_info.setEnabled(False))
299+ #self.process.finished.connect(lambda: self.button_dca_inference_gremlin_msa_info.setEnabled(True))
300+ #self.process.started.connect(lambda: self.button_dca_test_dca.setEnabled(False))
301+ #self.process.finished.connect(lambda: self.button_dca_test_dca.setEnabled(True))
302+ #self.process.started.connect(lambda: self.button_dca_predict_dca.setEnabled(False))
303+ #self.process.finished.connect(lambda: self.button_dca_predict_dca.setEnabled(True))
304+ #self.process.started.connect(lambda: self.button_hybrid_train_dca.setEnabled(False))
305+ #self.process.finished.connect(lambda: self.button_hybrid_train_dca.setEnabled(True))
306+ #self.process.started.connect(lambda: self.button_hybrid_train_test_dca.setEnabled(False))
307+ #self.process.finished.connect(lambda: self.button_hybrid_train_test_dca.setEnabled(True))
308+ #self.process.started.connect(lambda: self.button_hybrid_test_dca.setEnabled(False))
309+ #self.process.finished.connect(lambda: self.button_hybrid_test_dca.setEnabled(True))
310+ #self.process.started.connect(lambda: self.button_hybrid_prediction_dca.setEnabled(False))
311+ #self.process.finished.connect(lambda: self.button_hybrid_prediction_dca.setEnabled(True))
312+ ####### TODO
313+ #self.process.started.connect(lambda: self.button_hybrid_train_test_dca_llm.setEnabled(False))
314+ #self.process.finished.connect(lambda: self.button_hybrid_train_test_dca_llm.setEnabled(True))
315+ ####### TODO END
316+ #self.process.started.connect(lambda: self.button_supervised_train_test_dca.setEnabled(False))
317+ #self.process.finished.connect(lambda: self.button_supervised_train_test_dca.setEnabled(True))
318+ #self.process.started.connect(lambda: self.button_supervised_train_test_onehot.setEnabled(False))
319+ #self.process.finished.connect(lambda: self.button_supervised_train_test_onehot.setEnabled(True))
320+
321+ def start_process (self , button ):
322+ self .c += 1
323+ button .setEnabled (False )
324+
325+ def end_process (self , button ):
326+ button .setEnabled (True )
327+ self .version_text .setText ("Finished..." )
328+ self .textedit_out .append ("=" * 104 + " Job: " + str (self .c ) + "\n " )
329+
330+ #def on_readyReadStandardOutput(self):
331+ # text = self.process.readAllStandardOutput().data().decode()
332+ # self.c += 1
333+ # self.textedit_out.append(text.strip())
319334
320335 def selection_ncores (self , i ):
321336 if i == 0 :
@@ -331,23 +346,23 @@ def selection_llm_model(self, i):
331346
332347 @QtCore .Slot ()
333348 def pypef_help (self ):
349+ button = self .button_help
350+ self .start_process (button = button )
334351 self .version_text .setText ("Getting help..." )
335352 self .textedit_out .append (__doc__ )
336- self .process .finished .connect (self .process_finished )
337- self .c += 1
338- if self .c > 0 :
339- self .textedit_out .append ("=" * 104 + " Job: " + str (self .c ) + "\n " )
340- self .version_text .setText ("Finished..." )
341-
353+ self .end_process (button = button )
342354
343355 @QtCore .Slot ()
344356 def pypef_mklsts (self ):
357+ button = self .button_mklsts
358+ self .start_process (button = button )
345359 wt_fasta_file = QtWidgets .QFileDialog .getOpenFileName (self , "Select WT FASTA File" )[0 ]
346360 csv_variant_file = QtWidgets .QFileDialog .getOpenFileName (self , "Select variant CSV File" )[0 ]
347361 if wt_fasta_file and csv_variant_file :
348362 self .version_text .setText ("Running MKLSTS..." )
349363 #self.exec_pypef_cli(f'mklsts --wt {wt_fasta_file} --input {csv_variant_file}')
350364 self .exec_pypef (f'mklsts --wt { wt_fasta_file } --input { csv_variant_file } ' )
365+ self .end_process (button = button )
351366
352367
353368 @QtCore .Slot ()
@@ -474,30 +489,20 @@ def exec_pypef(self, cmd):
474489 raise SystemError ("Choose between 'api' or 'cli'!" )
475490
476491 def exec_pypef_cli (self , cmd ):
477- print (cmd ) # TODO remove
478492 self .process .start (f'python' , ['-u' , f'{ self .pypef_root } /run.py' ] + cmd .split (' ' ))
479493 self .process .finished .connect (self .process_finished )
480494 if self .c > 0 :
481495 self .textedit_out .append ("=" * 104 + "\n " )
482496
483497 def exec_pypef_api (self , cmd ):
484- print (cmd ) # TODO remove
485498 self .textedit_out .append (f'Executing command:\n \t { cmd } ' )
486- self .c += 1
487499 try :
488500 with Capturing () as captured_output :
489501 run_main (argv = cmd )
490- print (captured_output )
491502 for cap_out_text in captured_output :
492503 self .textedit_out .append (cap_out_text )
493504 except Exception as e : # anything
494505 self .textedit_out .append (f"Provided wrong inputs! Error:\n \t { e } " )
495- finally :
496- self .process .finished .connect (self .process_finished )
497- if self .c > 0 :
498- self .textedit_out .append ("=" * 104 + " Job: " + str (self .c ) + "\n " )
499- self .version_text .setText ("Finished..." )
500-
501506
502507 def process_finished (self ):
503508 self .version_text .setText ("Finished..." )
0 commit comments