def recuperaInfos(self): completaArquivoConfig() descricao = pegaConfig("descricaoDataset").strip() afinidade = pegaConfig("tipoAfinidade").strip() afinidade = converteStringDeltaG(afinidade) data = pegaConfig("data").strip() experimento = pegaConfig("nomeExperimento").strip() self.label_descricao.setText(descricao) self.label_afinidade.setText(afinidade) self.label_toExperiment.setText(experimento) self.label_experimento.setText(experimento) self.label_experimento.setText(experimento) self.label_data.setText(data) excluiLigantes = pegaConfig("excluiLigantes").strip() if excluiLigantes != "yes": self.label_deleteLigand.setText("no") else: self.label_deleteLigand.setText("yes") if not(pegaConfig("spearman") is None): self.label_comentarios.setText(pegaConfig("comentarios").replace("<vg>", ",")) self.label_quantia.setText(pegaConfig("quantidadeProteinas").strip()) else: self.label_comentarios.setText("null") self.label_spearman.setText("null") self.label_quantia.setText("null")
def baixaPdb(self): conj = (self.plainTextEdit_pdbs.toPlainText()) conj = conj.replace(',', ', ') conj = conj.replace(' ', ' ') list = (conj.split()) if (len(list)) < 20: reply = QtGui.QMessageBox.warning( self, 'Alert', "The amount of structures is insufficient (<20) for performing experiments." + "\n" + "The download will not be performed.", QtGui.QMessageBox.Ok) pass else: reply = QtGui.QMessageBox.question( self, 'Download Structures', "This operation may take several minutes. Do you want to proceed?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: quantIni = self.label_quantia.text() if pegaConfig("quantidadeInicialProteinas").strip() == "null": gravaConfig("quantidadeInicialProteinas", quantIni) self.label_estruturaInicial.setText(quantIni) else: pass self.label_relogio.show() self.movie.start() self.baixaPdbOk(self) else: pass completaArquivoConfig()
def recuperarExperimentos(self): self.escondeBotoes() reply = QtGui.QMessageBox.question(self, 'Message',"Attention: It is important to save the current experiment before!!!"+"\n"+"\n"+"Do you really want to recover this experiment?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: QtGui.QApplication.processEvents() # para não travar usar antes de loops self.label_relogio.show() self.movie.start() QtGui.QApplication.processEvents() # para não travar self.nomeConjunto = self.comboBox_arquivos.currentText() # copia pastas para o novo conjunto origem = "./setsExperiments/"+self.nomeConjunto+"/outputFiles/" destino = "./outputFiles/" removePasta(destino) manip.copiaPasta(origem, destino) origem = "./setsExperiments/"+self.nomeConjunto+"/pdbs/" destino = "./pdbs/" removePasta(destino) manip.copiaPasta(origem, destino) origem = "./setsExperiments/"+self.nomeConjunto+"/ki/" destino = "./ki/" removePasta(destino) manip.copiaPasta(origem, destino) origem = "./setsExperiments/"+self.nomeConjunto+"/inputFiles/" destino = "./inputFiles/" removePasta(destino) manip.copiaPasta(origem, destino) origem = "./setsExperiments/"+self.nomeConjunto+"/models/" destino = "./models/" removePasta(destino) manip.copiaPasta(origem, destino) origem = "./setsExperiments/"+self.nomeConjunto+"/results/" destino = "./results/" removePasta(destino) manip.copiaPasta(origem, destino) # as funcoes abaixo demv ficar nesta ordem completaPastas() # cria pastas que nao existam completaArquivoConfig() # novas versões podem conter novas tags self.recuperaInfos() now = str(datetime.now()) now = now.replace(" ", "") now = now.replace("-", "") now = now.replace(":", "") #d = "_"+now[0:14] self.lineEdit_experimento.setText(pegaConfig("nomeExperimento").strip()) self.label_comentarios.setText(pegaConfig("comentarios").replace("<vg>", ",")) self.label_quantia.setText(pegaConfig("quantidadeProteinas").strip()) self.label_estruturaInicial.setText(pegaConfig("quantidadeInicialProteinas").strip()) QtGui.QMessageBox.information(self, "Message", "Operation completed") self.label_relogio.hide() self.movie.stop self.mostraBotoes() self.label_outliers.setText(pegaConfig("outlier").strip()) else: self.mostraBotoes() pass
def novo(self): self.escondeBotoes() self.groupBox_PdbEntrada.setDisabled(False) self.checkBox_eliminateLigand.setChecked(True) mensagem = "The current experiment will be cleaned. It's important to save it before." + "\n" if (pegaConfig("descricaoDataset")).strip() == 'null': mensagem = '' reply = QtGui.QMessageBox.question( self, 'Creates a new experiment', mensagem + "Do you want to proceed?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: self.textoInicalPdb = '' self.textoInicalPdbTestSet = '' self.textoInicialComentarios = 'null' self.textoInicialConfig = 'null' limpaPastas() completaArquivoConfig() self.limpaTexto() self.label_experimentName.clear() self.label_quantia.setText('') self.label_outliers.setText('no') self.label_estruturaInicial.setText('') self.habilitaCampos() self.toolButton_novo.setEnabled(False) self.toolButton_edita.setEnabled(False) self.toolButton_exit.setEnabled(False) self.toolButton_saveText.setEnabled(True) self.toolButton_cancela.setEnabled(True) self.groupBox.setEnabled(True) self.groupBox_2.setEnabled(True) self.groupBox_3.setEnabled(True) self.radioButton_training.setChecked(True) self.radioButton_Ki.setChecked(True) self.plainTextEdit_descricao.setPlainText('null') self.plainTextEdit_pdbs.insertPlainText('') gravaConfig("quantidadeInicialProteinas", 'null') self.habilitaUmaCaixaPDB() self.label_experimentName.setText( "*** Experiment not saved yet ***") else: self.toolButton_novo.setEnabled(True) self.toolButton_edita.setEnabled(True) self.toolButton_exit.setEnabled(True) self.toolButton_baixa.setEnabled(True) self.toolButton_saveText.setEnabled(False) self.toolButton_cancela.setEnabled(False) self.groupBox.setEnabled(False) self.groupBox_2.setEnabled(False) self.groupBox_3.setEnabled(False) self.radioButton_training.setChecked(False) self.radioButton_Ki.setChecked(False) pass
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setupUi(self) self.window1 = None self.setFixedSize(900, 645) completaArquivoConfig() self.label_cabecalho.setText("") self.label_textoProgresso.setText("") quantia = pegaConfig("quantidadeProteinas").strip() self.label_estruturaInicial.setText( pegaConfig("quantidadeInicialProteinas").strip()) if quantia != None: self.label_quantia.setText(quantia.strip()) self.desabilitaCampos() self.toolButton_saveText.setEnabled(False) self.toolButton_ClearText.setEnabled(False) self.toolButton_baixa.setEnabled(True) self.toolButton_cancela.setEnabled(False) self.toolButton_refina.setEnabled(False) self.groupBox.setEnabled(False) self.groupBox_2.setEnabled(False) self.groupBox_3.setEnabled(False) self.label_relogio.hide() self.label_experimentName.setText( pegaConfig("nomeExperimento").strip()) if self.label_experimentName.text() == "": self.label_experimentName.setText( "*** Experiment not saved yet ***") self.label_outliers.setText(pegaConfig("outlier").strip()) self.movie = QtGui.QMovie("./img/gifTempo.gif") self.label_relogio.setMovie(self.movie) self.radioButton_deltaG.setText(converteStringDeltaG('deltaG')) if pegaConfig("geraSets").strip() == "y": self.radioButton_trainingTest.setChecked(True) else: self.radioButton_unico.setChecked(True) self.carrega() if not (self.radioButton_trainingTest.isChecked() ): # o usuário nao separou os arquivos self.habilitaUmaCaixaPDB() self.carregaUmacaixaPDB( ) # carrega uma caixa pois os arquvivos teste e treino serão separados depois
def carrega(self): completaArquivoConfig() self.plainTextEdit_descricao.setPlainText( pegaConfig("descricaoDataset").strip()) self.plainTextEdit_Comentarios.setPlainText( pegaConfig("comentarios").replace("<vg>", ",")) self.marcaAfinidade() self.marcaTipoMedia() self.marcaExluiLigantesRepetidos() self.label_estruturaInicial.setText( pegaConfig("quantidadeInicialProteinas").strip()) self.label_quantia.setText(pegaConfig("quantidadeProteinas").strip()) if self.existePdbSeparado(): self.habilitaDuasCaixasPDB() self.carregaDuasCaixasPDB() else: self.habilitaUmaCaixaPDB() self.carregaUmacaixaPDB() self.textoInicalPdb = self.plainTextEdit_pdbs.toPlainText() self.textoInicalPdbTestSet = self.plainTextEdit_pdbsTestSet.toPlainText( ) self.textoInicialConfig = self.plainTextEdit_descricao.toPlainText() self.textoInicialComentarios = self.plainTextEdit_Comentarios.toPlainText( )
def __init__(self): self.versao = "Version 2.3.1.2" # seta a versao do taba na tela principal # Explaining super is out of the scope of this article # So please google it if you're not familar with it # Simple reason why we use it here is that it allows us todi # access variables, methods etc in the design.py file super(self.__class__, self).__init__() self.setupUi(self) # This is defined in design.py file automatically # It sets up layout and widgets that are defined #self.toolButton_regressao.clicked.connect(self.fazRegressao()) # When the button is pressed # Execute browse_folder function #QtGui.QMessageBox.information(self, "Attention", "Entrou novamente") self.move(80, 50) self.setFixedSize(822, 300) self.window2 = None self.window3 = None self.window4 = None self.window5 = None self.window6 = None self.window7 = None self.window8 = None self.window9 = None diret = "./arquivosSaida/" self.label_version.setText(self.versao) limpa_arquivosSf(diret) # as funcoes abaixo devem ficar nesta ordem completaPastas() # cria pastas que nao existam completaArquivoConfig() # novas versões podem conter novas tags completaArquivoConfigTaba() # novas versões podem conter novas tags self.limparExperimento() self.verificaRodando() apagaArquivo( "logs.log" ) # limpa arquivo de log de erros que são necessarios somente em testes criaArquivo("logs.log") self.criaAtalho()
def salvaOk(self): diretorio = "./inputFiles/" arquivo = "pdbsProteina.txt" arquivoSai = diretorio + arquivo self.textoConfig = self.plainTextEdit_descricao.toPlainText() self.textoConfig = self.textoConfig.strip() textoPdbTraining = self.plainTextEdit_pdbs.toPlainText() textoPdbTraining = textoPdbTraining.replace(" ", "") textoPdbTraining = textoPdbTraining.replace( ",,", ",") # caso tenha esquecido alguma virgula textoPdbTraining = textoPdbTraining.upper() textoPdbTraining = textoPdbTraining.strip() self.plainTextEdit_pdbs.setPlainText(textoPdbTraining) if textoPdbTraining.endswith(','): # retira virgula se apos o texto textoPdbTraining = textoPdbTraining[:-1] self.plainTextEdit_pdbs.setPlainText(textoPdbTraining) textoPdbTest = self.plainTextEdit_pdbsTestSet.toPlainText() textoPdbTest = textoPdbTest.replace(" ", "") textoPdbTest = textoPdbTest.replace(",,", ",") textoPdbTest = textoPdbTest.upper() textoPdbTest = textoPdbTest.strip() self.plainTextEdit_pdbsTestSet.setPlainText(textoPdbTest) if textoPdbTest.endswith(','): # retira virgula se apos o texto textoPdbTest = textoPdbTest[:-1] self.plainTextEdit_pdbsTestSet.setPlainText(textoPdbTest) if len(textoPdbTest) > 0: # se conjunto teste existe coloca virgula vg = "," else: vg = "" if self.radioButton_trainingTest.isChecked(): textoPdb = textoPdbTraining + vg + textoPdbTest #une os dois conjunttos else: textoPdb = textoPdbTraining grava(textoPdb, arquivoSai) if self.radioButton_trainingTest.isChecked( ): # o usuário separou os arquivos self.gravaTreinoSet(textoPdbTraining, textoPdbTest, diretorio) else: self.habilitaUmaCaixaPDB() self.carregaUmacaixaPDB( ) # carrea uma caixa pois os arquvivos teste e treino serão separados depois lista = leCsv(arquivoSai) self.quantidadeProteinas = len(lista) self.salvaConfig() self.label_quantia.setText(pegaConfig("quantidadeProteinas").strip()) # define tipo inibidor if self.radioButton_Kd.isChecked(): self.inibidor = "Kd" elif self.radioButton_Ki.isChecked(): self.inibidor = "Ki" elif self.radioButton_IC50.isChecked(): self.inibidor = "IC50" elif self.radioButton_EC50.isChecked(): self.inibidor = "EC50" elif self.radioButton_deltaG.isChecked(): self.inibidor = "deltaG" gravaConfig("tipoAfinidade", self.inibidor.strip()) #define tipo media if self.radioButton_training.isChecked(): self.media = "training" elif self.radioButton_individual.isChecked(): self.media = "individual" gravaConfig("tipoMedia", self.media.strip()) comentarios = self.plainTextEdit_Comentarios.toPlainText() comentarios = comentarios.replace(",", "<vg>") gravaConfig("comentarios", comentarios) completaArquivoConfig() self.toolButton_baixa.setEnabled(True) self.desabilitaCampos() self.toolButton_saveText.setEnabled(False) self.toolButton_ClearText.setEnabled(False) self.toolButton_baixa.setEnabled(True) self.toolButton_cancela.setEnabled(False) self.toolButton_edita.setEnabled(True) self.toolButton_refina.setEnabled(False) self.toolButton_novo.setEnabled(True) self.toolButton_exit.setEnabled(True) # para poder desfazer self.textoInicalPdb = self.plainTextEdit_pdbs.toPlainText() self.textoInicalPdbTestSet = self.plainTextEdit_pdbsTestSet.toPlainText( ) self.textoInicialConfig = self.plainTextEdit_descricao.toPlainText() self.textoInicialComentarios = self.plainTextEdit_Comentarios.toPlainText( ) self.plainTextEdit_pdbs.setEnabled(False)