Example #1
0
def excluiArquivosRepetidos(listaExcluir):

    dirKi = "./ki/"
    dirPdb = "./pdbs/"
    for i in listaExcluir:
        apagaArquivo(dirKi + i.lower() + ".csv")
        apagaArquivo(dirPdb + i.upper() + ".pdb")
Example #2
0
 def outliers(self): 
      
     percent = self.horizontalSlider_percent.value()/100 # corta o que esta acima de 70% do desvio/10
     self.concatenaArquivos()
     diret = "./outputFiles/"
     arq = open(diret+"juntos.csv", 'r')
     reader = csv.reader(arq)
     allRows = [row for row in reader]
     arrEstru = []
     arrVal = []
     for x in allRows:
         if not x[0] == "PDB": # elimina linhas de cabecalho
             arrVal.append(float(x[2])) # cria lista com valores experimentais
             arrEstru.append(x[0]) # cria lista com estruturas
     elements = np.array(arrVal)
     mean = np.mean(elements, axis=0)
     listaOutliers = []
     ind = 0
     for x in arrVal:
         dif = np.abs(x-mean)
         if abs(dif/mean)>percent: # verifica se nao esta na faixa
             listaOutliers.append(arrEstru[ind].upper())
         ind = ind+1
     texto = str(listaOutliers)
     texto = texto.replace("]", '')
     texto = texto.replace("[", '')
     grava(texto.split("'"), diret+"outliers.txt")
     arq.close()
     apagaArquivo(diret+"juntos.csv")
     self.limpaArquivoProteinas()
  def apagaArquivosOk(self):
      reply = QtGui.QMessageBox.question(self, 'Message',"Do you really want to delete selected files?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
      if reply == QtGui.QMessageBox.Yes:
          if self.radioButton_4.isChecked():            
              manip.apagaArquivos("./pdbs")
              manip.apagaArquivos("./ki")
              manip.apagaArquivos("./outputFiles")
              manip.apagaArquivos("./models")
              manip.apagaArquivos("./results")
 
          if self.radioButton_3.isChecked():
              manip.apagaArquivos("./outputFiles")
              manip.apagaArquivos("./models")
              manip.apagaArquivos("./results")
 
          if self.radioButton_2.isChecked():
              arqOutput = manip.arquivosNaPastaOutput()
              dir = "./outputFiles/"
              for i in arqOutput:
                  if "SF_saida" in i:
                      manip.apagaArquivo(dir+i)
              manip.apagaArquivos("./models")
              manip.apagaArquivos("./results")
              
          if self.radioButton_1.isChecked():
              manip.apagaArquivos("./models")
              manip.apagaArquivos("./results")
              
          QtGui.QMessageBox.information(self, "Message", "The selected files have been deleted!")
          self.limpaRadioButtons()
      else:
          pass
 def apagaFake(self, arq):
     # verifica se o arquivo ki eh fake e apaga
     lista = leCsv(arq)
     if lista:
         texto = ''.join(lista)
         if "FAKE" in texto:
             apagaArquivo(arq)
     else:
         pass
Example #5
0
def limpaArquivosOutlier():
    # remove parquivos nas pastas
    arq = "./inputFiles/pdbsProteinaFinalTes.txt"
    apagaArquivo(arq)
    arq = "./inputFiles/pdbsProteinaFinalTre.txt"
    apagaArquivo(arq)
    arq = "./inputFiles/pdbsProteinaTeste.txt"
    apagaArquivo(arq)
    arq = "./inputFiles/pdbsProteinaTreino.txt"
    apagaArquivo(arq)
Example #6
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 #7
0
 def deletaModelo(self):
     diret = "./models/"
     modeloMensagem = self.modeloEscolhido.replace(".txt", "")
     reply = QtGui.QMessageBox.question(
         self, 'Message',
         "Do you really want to delete the " + modeloMensagem + "?",
         QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
     if reply == QtGui.QMessageBox.Yes:
         apagaArquivo(diret + self.modeloEscolhido)
         self.carregaModelos()
     else:
         pass
     # apaga arquivos com dados de afinidade do modelo
     diretDestino = "./results/"
     arqTesteDestino = diretDestino + "binding_affinity_test_set_" + modeloMensagem + ".csv"
     arqTreinoDestino = diretDestino + "binding_affinity_training_set_" + modeloMensagem + ".csv"
     apagaArquivo(arqTesteDestino)
     apagaArquivo(arqTreinoDestino)
     self.pushButton_deleta.setEnabled(False)
Example #8
0
    def baixaPdbOk(self, event):
        ############ baixa PDBs ##############

        self.escondeBotoes()
        # Set up PDB url
        url_in = 'https://files.rcsb.org/download/'

        # Set up PDB access code
        nomePdbs = leCsv("./inputFiles/pdbsProteina.txt")
        totalArquivos = nomePdbs.__len__()
        varia = 100 / totalArquivos
        progresso = 0
        count = 0
        contaPausa = 0
        mensagem = "Starting download PDB protein files from the site " + url_in
        self.label_cabecalho.setText(mensagem)
        self.progressBar.setValue(0)
        QtGui.QApplication.processEvents(
        )  # para não travar usar antes de loops
        for linha in nomePdbs:
            pdb_access = linha.strip()
            mensagem = pdb_access
            self.label_textoProgresso.setText(mensagem)
            # Call download_PDB_file()
            count = count + 1
            my_dir_in = "./pdbs/"
            flag_4_file_present = pre_download(
                my_dir_in, pdb_access + ".pdb")  #verifica se ja existe arquvio
            if not flag_4_file_present:
                download_PDB_file(url_in, pdb_access + ".pdb")
                progresso = progresso + varia
                self.progressBar.setValue(progresso)
                contaPausa = contaPausa + 1
                if contaPausa > 100:
                    contaPausa = 0
                    mensagem = "---> pausa tecnica. Aguarde que o programa continuara a rodar automaticamente..."
                    self.label_textoProgresso.setText(mensagem)
                    sleep(
                        30
                    )  # pausa para por exigencia do site se nao nao baixa todos

        mensagem = str(count) + ' files were correctly downloaded'
        self.label_textoProgresso.setText(mensagem)
        self.progressBar.setValue(100)
        ########## BAIXA ki ###################################
        # limpar diretorio
        self.progressBar.setValue(0)
        progresso = 0
        files = glob.glob('./ki/*')
        QtGui.QApplication.processEvents()  # para não travar
        '''
        for f in files:
            os.remove(f)
        '''
        my_dir_in = "./ki/"  # futuramente e melhor ajustar o nome do diretorio para abranger todos os inibidores
        # 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"
        binding_info = self.inibidor
        # Set up PDB url
        url_in = 'http://files.rcsb.org/download/'

        # Set up PDB access code
        nomePdbs = leCsv("./inputFiles/pdbsProteina.txt")
        totalArquivos = nomePdbs.__len__()
        count = 0
        mensagem = "Starting download PDB " + binding_info + " files (constant interation):" + url_in
        self.label_cabecalho.setText(mensagem)
        QtGui.QApplication.processEvents(
        )  # para não travar usar antes de loops
        for linha in nomePdbs:
            pdb_access = linha.strip()
            mensagem = "File: " + pdb_access
            self.label_textoProgresso.setText(mensagem)
            structureId = linha.strip()
            # Call download_PDB_file()
            get_Bind(my_dir_in, structureId, binding_info)
            progresso = progresso + varia
            self.progressBar.setValue(progresso)
        ## muda cor caixa texto
        self.progressBar.setValue(100)
        self.movie.stop()
        self.label_relogio.hide()
        self.movie.stop()
        if self.checkBox_eliminateLigand.isChecked():
            excluido, quantia = excluiLigantesRepetidos()
            if excluido == True:
                gravaConfig("excluiLigantes", "yes")
                QtGui.QMessageBox.information(
                    self, "Message",
                    str(quantia) + " repeated ligands were eliminated")
                self.carrega()
            else:
                QtGui.QMessageBox.information(
                    self, "Message",
                    "It is not possible to exclude repeated ligands because the amount of remaining structures is insufficient to obtain satisfactory results."
                    + "\n" + "The download was successful.")
        QtGui.QMessageBox.information(self, "Message", "Operation completed")
        ## exclui arquivos que retornaram vazios
        arqKiVazio = kiVazio()
        textoKi = ','.join(arqKiVazio)
        textoKi = textoKi.replace(",", ", ")
        arqPdbVazio = pdbVazio()
        textoPdb = ','.join(arqPdbVazio)
        textoPdb = textoPdb.replace(",", ", ")
        mensagem = "The following files contain no information and have been discarded:" + "\n" + "Ki files:" + "\n" + textoKi
        mensagem = mensagem + "\n" + "PDB file:" + "\n" + textoPdb
        mensagem = mensagem + "\n" + "You must edit the PDB code boxes and delete them manually."
        if arqKiVazio or arqPdbVazio:
            QtGui.QMessageBox.information(self, "Message", mensagem)
        diret = "./ki/"
        for i in arqKiVazio:
            apagaArquivo(diret + i)  # apaga arquivos ki que nao tem informação
        diret = "./pdbs/"
        for i in arqPdbVazio:
            apagaArquivo(diret +
                         i)  # apaga arquivos pdb que nao tem informação

        self.mostraBotoes()
        self.toolButton_ClearText.setEnabled(False)
        self.toolButton_saveText.setEnabled(False)
        self.progressBar.setValue(0)
        self.plainTextEdit_pdbs.setEnabled(False)