def excluiArquivosRepetidos(listaExcluir): dirKi = "./ki/" dirPdb = "./pdbs/" for i in listaExcluir: apagaArquivo(dirKi + i.lower() + ".csv") apagaArquivo(dirPdb + i.upper() + ".pdb")
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
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)
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 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)
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)