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")
Example #2
0
    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            
Example #4
0
    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
Example #5
0
 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
Example #6
0
 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(
     )
Example #7
0
 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()
Example #8
0
    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)