2016 Dr. Walter F. de Azevedo Jr. azevedolab.net

Tamanho: px
Começar a partir da página:

Download "2016 Dr. Walter F. de Azevedo Jr. azevedolab.net"

Transcrição

1 2016 Dr. Walter F. de Azevedo Jr azevedolab.net 1

2 Módulo random Vamos usar alguns programas simples na aula de hoje, para o estudo dos itens destacados no slide anterior. Os programas estão disponíveis no site: acesso em: 21 de julho Esses programas são discutidos no livro: DAWSON, Michael. Python Programming, for the absolute beginner. 3ed. Boston: Course Technology, p. Considere o programa craps_roller.py, mostrado abaixo. Vamos analisar cada linha de código nos próximos slides. O programa simula o lançamento de dois dados, como num jogo de cassino chamado Craps Roller, quem tiver interesse em saber quais são as chances de ganhar no Craps Roller, veja o site: acesso em: 21 de julho import random # Generates random numbers from 1 to 6 die1 = random.randint(1,6) die2 = random.randrange(6) + 1 total = die1 + die2 print( \nyou rolled a,die1, and a,die2, for a total of,total) 2

3 Módulo random A primeira linha importa o módulo random. Já vimos nas aulas anteriores, que o comando import é usado para carregar um arquivo com código previamente preparado. O código carregado, com o comando import, passa a fazer parte do programa que o chama. Assim, podemos chamar uma função específica do módulo carregado. Normalmente, os módulos são preparados dentro de um tema, por exemplo, o módulo random traz funções relacionadas à geração de números aleatórios. Na verdade, o termo aleatório deveria ser substituído por pseudoaleatório, visto que o interpretador Python usa uma equação para gerar os números ditos aleatórios, assim não podem ser considerados aleatórios no sentido restrito da palavra. Para termos números aleatórios, devemos usar fenômenos naturais, tais como decaimento de partículas alfa, para, desta forma, obtermos uma sequência de números aleatórios. Mais informações em: acesso em: 21 de julho import random # Generates random numbers from 1 to 6 die1 = random.randint(1,6) die2 = random.randrange(6) + 1 total = die1 + die2 print( \nyou rolled a,die1, and a,die2, for a total of,total) 3

4 Módulo random Para gerarmos os números com o módulo random, chamamos as funções necessárias. Por exemplo, a função randint(), destacada em vermelho no código abaixo. Para chamarmos a função, usamos a notação dot, vista anteriormente. Especificamente, random.randint(1,6) retorna um número entre 1 e 6, incluindo os extremos. Esse número é atribuído à variável die1. Se chamássemos a função diretamente, com randint(1,6), teríamos uma mensagem de erro, especificamente, um erro de sintaxe ou execução. Assim, a regra para o uso das funções presentes nos módulos, é colocar o nome do módulo, ao qual pertence a função, seguido do ponto. e o nome da função, como indicado no quadro abaixo. modulo.função(argumento(s)) import random # Generates random numbers from 1 to 6 die1 = random.randint(1,6) die2 = random.randrange(6) + 1 total = die1 + die2 print( \nyou rolled a,die1, and a,die2, for a total of,total) 4

5 Módulo random A função randrange(6) gera um número entre 0 e 5, ou seja, o número indicado como argumento da função, não faz parte do conjunto de números pseudoaleatórios a serem gerados pela função. Assim, se usarmos a função randrange() para gerar um número pseudoaleatório entre 1 e 6, temos que somar 1 ao resultado, como mostrado na linha de código em vermelho abaixo. Veja, como na função randint(), os números gerados são inteiros, a diferença é que na função randrange() não precisamos especificar o limite inferior, é assumido ser zero 0. É usada a notação dot, e o resultado atribuído à variável die2. import random # Generates random numbers from 1 to 6 die1 = random.randint(1,6) die2 = random.randrange(6) + 1 total = die1 + die2 print( \nyou rolled a,die1, and a,die2, for a total of,total) 5

6 Módulo random Como os números pseudoaleatórios foram atribuídos às variáveis die1 e die2, podemos operar com os valores. A linha em destaque abaixo, realiza a soma dos valores atribuídos às variáveis die1 e die2 e atribui o resultado à variável total. A linha seguinte mostra o resultado na tela. import random # Generates random numbers from 1 to 6 die1 = random.randint(1,6) die2 = random.randrange(6) + 1 total = die1 + die2 print( \nyou rolled a,die1, and a,die2, for a total of,total) 6

7 Programa guess_my_number.py Veremos a aplicação do módulo random num programa de jogo, onde você tenta adivinhar um número pseudoaleatório entre 1 e 100 gerado pelo computador, o programa chama-se guess_my_number.py. Veremos a execução do programa antes de vermos seu código. Welcome to 'Guess My Number'! I'm thinking of a number between 1 and 100. Try to guess it in as few attempts as possible. Take a guess: 50 Lower... Take a guess: 25 Higher... Take a guess: 38 Higher... Take a guess: 44 You guessed it! The number was 44 And it only took you 4 tries! 7

8 Programa guess_my_number.py O programa guess_my_number.py está mostrado abaixo. A primeira linha importa o módulo random, que tem as funções para gerarmos números pseudoaleatórios. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 8

9 Programa guess_my_number.py As três linhas seguintes são funções print() que mostram uma mensagem de boasvindas e informações sobre o jogo. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 9

10 Programa guess_my_number.py Depois usamos a função randint(1,100) do módulo random, para gerar um número pseudoaleatório entre 1 e 100. O número gerado será atribuído à variável the_number. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 10

11 Programa guess_my_number.py O programa agora pergunta ao usuário pelo o número que ele acha que foi escolhido pelo computador, e atribui esse número à variável guess. O número 1 é atribuído à variável tries, que indica o número de tentativas que o jogador fez. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 11

12 Programa guess_my_number.py A condição do loop while, é que o valor atribuído à variável guess seja diferente do atribuído à variável the_number, ou seja, o bloco do loop while será executado, enquanto os números forem diferentes. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 12

13 Programa guess_my_number.py No bloco do loop temos o comando if, que testa se o valor atribuído à variável guess é maior que ao atribuído à variável the_number, caso seja, o programa mostra a mensagem Lower..., indicando que o jogador deve digitar um número menor. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 13

14 Programa guess_my_number.py Caso o valor atribuído à variável guess, não seja maior que o atribuído à variável the_number, é mostrada a mensagem Higher..., para que o jogador digite um número mais alto. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 14

15 Programa guess_my_number.py Depois é lido um novo valor para o número e atribuído à variável guess. É somado 1 ao valor atribuído à variável tries. O bloco de comandos é executado, até que a condição do while não seja mais satisfeita, ou seja, o jogador achou o número. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 15

16 Programa guess_my_number.py Como o programa só sairá do bloco do loop while, quando o jogador acertar o número, colocamos, logo após os comandos do loop while, duas funções print() com as informações sobre o número encontrado e o número de tentativas necessárias. import random print("\twelcome to 'Guess My Number'!") print("\ni'm thinking of a number between 1 and 100.") print("try to guess it in as few attempts as possible.\n") the_number = random.randint(1, 100) guess = int(input("take a guess: ")) tries = 1 while guess!= the_number: # guessing loop if guess > the_number: print("lower...") else: print("higher...") guess = int(input("take a guess: ")) tries += 1 print("you guessed it! The number was", the_number) print("and it only took you", tries, "tries!\n") 16

17 GenBank O GenBank é uma base de dados de sequências de genes, como destacado na sua página de entrada. Toda informação, advinda do sequenciamento de diversos genomas, está armazenada de forma organizada e de acesso aberto no GenBank. O acesso pode ser feito no site: 17

18 GenBank Vamos ilustrar um exemplo com a consulta de sequência de bases do genoma do Mycobacterium tuberculosis. No campo indicado abaixo, selecionamos Genome. 18

19 GenBank Depois digitamos Mycobacterium tuberculosis. No campo indicado abaixo, e pressionamos Search. 19

20 GenBank O resultado da nossa busca está mostrado abaixo. Na parte em destaque temos o dendrograma, que mostra a proximidade entre os genomas depositados com o do Mycobacterium tuberculosis. Nosso foco é o depósito identificado como H37Rv. 20

21 GenBank Abaixo, na mesma página, temos informação sobre os genomas que apresentam a identificação Mycobacterium tuberculosis, pode haver mais de um, como abaixo, pois foram sequenciadas diferentes cepas da bactéria. Vamos olhar os detalhes da tabela abaixo. 21

22 GenBank A tabela abaixo traz informações sobre o o tamanho dos genomas (em MegaBases, ou seja 10 6 bases) de Mycobacterium tuberculosis, bem como disponibilidade do genoma, a porcentagem de bases CG no genoma, o número de genes identificados e proteínas. 22

23 GenBank Outra informação da página, destaca as publicações relacionadas com os genomas descritos. Abaixo temos 3 artigos em destaque. 23

24 GenBank Clicando no genoma indicado abaixo, teremos detalhamento das informações específicas do genoma clicado. 24

25 GenBank Podemos acessar o arquivo FASTA com a sequência completa do genoma, clicando na opção FASTA, mostrada abaixo. 25

26 GenBank Abaixo temos a sequência de bases de todo genoma do Mycobacterium tuberculosis. 26

27 GenBank Podemos salvá-la e manipulá-la com o editor de texto, clicamos na opção Send to, indicada abaixo. 27

28 GenBank Ao clicarmos teremos as opções mostradas abaixo, clicamos no File. 28

29 GenBank Podemos escolher o formato e clicar na opção de criar o arquivo de saída, indicado abaixo. 29

30 GenBank Teremos o download do arquivo fasta com a sequência completa do genoma de Mycobacterium tuberculosis, como indicado abaixo. O nome do arquivo baixado é sequence.fasta. 30

31 Protein Data Bank Vimos nas últimas aulas diversos programas em Python para a manipulação de arquivos FASTA. Podemos dizer, que a informação armazenada em tais arquivos, apresenta complexidade unidimensional, temos a estrutura primária de ácidos nucleicos e proteínas. Por outro lado, informações sobre a estrutura tridimensional de macromoléculas biológicas podem ser armazenadas em arquivos no formato protein data bank (PDB). Veremos agora um programa para a manipulação da informação contida nos arquivos PDB. 31

32 Protein Data Bank Um arquivo PDB tem basicamente dois tipos de informação. A primeira, indicada pelo início da linha com as palavras-chaves REMARK, HEADER, TITLE, CRYST1 e COMPND entre outras. São comentários sobre detalhes da estrutura depositada, como autores, detalhes sobre a técnica usada para resolução da estrutura, bem como informações sobre a qualidade estereoquímica da molécula armazenada no arquivo. O outro tipo de informação, são as coordenadas atômicas. Esta informação é a de maior importância, pois indica as coordenadas x, y e z de cada átomo da estrutura depositada, são iniciadas pelas palavras-chaves ATOM ou HETATM. 32

33 Protein Data Bank Vejamos como fazer o download da estrutura da cyclin-dependente kinase 2 em complexo com o fármaco roscovitine depositada com o código 2A4L. Inicialmente digitamos o código da proteína que desejamos baixar, no caso 2A4L, e clicamos na lupa, como indicado abaixo. 33

34 Protein Data Bank Agora temos acesso à estrutura. Para fazer download, clicamos na opção Download File>PDB File(Text). Assim podemos escolher a pasta onde salvar o arquivo PDB. 34

35 Protein Data Bank Os arquivos PDB são arquivos texto simples, poderíamos abrir com qualquer editor de texto para ver seu conteúdo. Abaixo temos as primeiras linhas do arquivo 2A4L.pdb. Veja que o PDB tem uma estrutura fixa, à esquerda no início de cada linha temos uma palavra-chave que identifica o tipo de informação contida na linha. Por exemplo, HEADER identifica a molécula armazenada, no caso uma transferase. Temos, também, a data do depósito da estrutura. Em seguida temos a palavra-chave TITLE, que identifica a molécula depositada. Nas próximas linhas temos a palavra-chave COMPND, que detalha a(s) molécula(s) contida(s) no arquivo. Não iremos identificar todas as palavras-chaves do PDB neste primeiro contato. Vamos nos concentrar nas coordenadas atômicas. HEADER TRANSFERASE 29-JUN-05 2A4L TITLE HUMAN CYCLIN-DEPENDENT KINASE 2 IN COMPLEX WITH ROSCOVITINE COMPND MOL_ID: 1; COMPND 2 MOLECULE: HOMO SAPIENS CYCLIN-DEPENDENT KINASE 2; COMPND 3 CHAIN: A; COMPND 4 SYNONYM: CDK2; COMPND 5 EC: ; COMPND 6 ENGINEERED: YES 35

36 Protein Data Bank Abaixo temos a primeira linha com coordenadas atômicas do arquivo 2A4L.pdb. Temos dois tipos de palavras-chaves usadas para linhas de coordenadas atômicas, uma é a palavra-chave ATOM, que é usada para identificar coordenadas atômicas para proteína. A outra é a palavra-chave HETATM, que traz a parte não proteica da estrutura, pode ser um inibidor ligado à estrutura da proteína, cofatores, íons ou outras moléculas que aparecem em complexo com a proteína. ATOM 1 N MET A N 36

37 Protein Data Bank Veremos em breve como fazer a leitura de um arquivo PDB em Python, mas antes veremos o formato das linhas de coordenadas atômicas. Vamos considerar que lemos uma linha de um arquivo PDB e temos a informação atribuída à variável line. Uma string em Python pode ser fatiada em colunas, por exemplo, line[0:6] representa as seis primeiras posições da string atribuída à variável line. Assim teríamos ATOM em line[0:6], veja que sempre iniciamos na posição zero, assim line[0] é A, line[1] é T e assim sucessivamente. Usando tal funcionalidade do Python, podemos dividir uma linha do PDB em diferentes fatias. Cada linha de um arquivo PDB tem 80 colunas, ou seja, uma string com 80 caracteres. ATOM 1 N MET A N 37

38 Protein Data Bank Como já destacamos, as informações sobre as coordenadas atômicas estão em linhas que iniciam com ATOM ou HETATM. Abaixo temos a indicação dos campos de uma linha, com informações sobre o conteúdo de cada parte num arquivo PDB. ATOM 1 N MET A N Colunas para a ocupação, é atribuída à variável line[56:60] Colunas para as coordenadas atômicas, são atribuídas às variáveis line[30:38], line[38:46], line[46:54] Colunas para o número do resíduo, é atribuída à variável line[22:26] Coluna 22 para o identificador da cadeia, é atribuída à variável line[21:22] Colunas de para o nome do aminoácido (ou ligante, ou HOH), é atribuída à variável line[17:20] Colunas de para o nome do átomo, é atribuída à variável line[13:15] Colunas de 7-11 para a ordem do átomo, é atribuída à variável line[6:11] Colunas de 1-6 para string com ATOM ou HETATM, é atribuída à variável line[0:6] 38

39 Protein Data Bank As informações sobre as últimas colunas. ATOM 1 N MET A N Colunas para o fator de vibração térmica, é atribuída à variável line[61:65] Colunas para o elemento químico, é atribuída à variável line[76:77] Além das informações indicadas anteriormente, há o identificador de segmento (colunas 73-76), atribuído à variável line[72:76]. Temos, também, a carga elétrica do átomo (colunas 79-80), atribuída à variável line[78:80]. Vamos ilustrar com um programa para leitura de arquivos PDB. 39

40 Programa: readpdb1.py Leitura de arquivos PDB (versão 1) Programa: readpdb1.py Resumo Programa para leitura de arquivo de coordenadas atômicas no formato protein data bank (PDB). Após a leitura do arquivo PDB, o programa mostra as coordenadas atômicas da parte proteica na tela. O usuário digita o nome do arquivo PDB de entrada. As colunas são usadas para as coordenadas atômicas x, y e z, e serão atribuídas às variáveis line[30:38], line[38:46] e line[46:54], respectivamente. 40

41 Programa: readpdb1.py Com 6 linhas de código conseguimos o programa para leitura do arquivo PDB. Na primeira linha lemos o nome do arquivo de entrada, que é atribuído à variável pdbfilein. Em seguida, o arquivo é aberto com a função open() e o conteúdo atribuído ao objeto arquivo fo. Cada elemento do objeto arquivo é uma linha do arquivo PDB. A partir de um loop for, podemos varrer o objeto arquivo fo. Dentro do loop for testamos se a string atribuída à variável line[0:6] é igual ATOM. Caso seja, mostramos as coordenadas atômicas atribuídas às variáveis line[30:38], line[38:46], line[46:54]. Por último, fechamos o arquivo com close(). O código está mostrado abaixo. pdbfilein = input("\ntype the PDB file name => ") fo = open(pdbfilein,"r") for line in fo: if line[0:6] == "ATOM ": fo.close() print(line[30:38], line[38:46], line[46:54]) Como os arquivos PDB tem uma estrutura bem definida, temos certeza que seu conteúdo está dividido em linhas, assim, para a leitura simples, não precisamos do 41.readlines().

42 Programa: readpdb1.py Ao rodarmos o programa para o arquivo 2A4L.pdb, temos o seguinte resultado. Só as primeiras linhas são mostradas abaixo, visto que o arquivo PDB tem milhares de linhas com coordenadas atômicas. Type the PDB file name => 2a4l.pdb

43 Programa: randomdna1.py (Trabalho 3) Random DNA (versão 1) Programa: randomdna1.py Resumo Programa para gerar um trecho de DNA com uma sequência aleatória. A sequência do DNA será atribuída a uma variável do tipo string (variável dna), onde cada base será gerada aleatoriamente (variável base), a partir do módulo random e adicionada à sequência de DNA. O programa tem como entrada o tamanho da sequência de DNA, a ser gerada aleatoriamente. A sequência aleatória será mostrada na tela. Para adicionar a base aleatória à sequência de DNA, podemos usar o operador + ou.join([dna,base]). 43

44 Programa: randomdna1.py (Trabalho 3) O programa é relativamente simples, o principal bloco do programa é um loop while, que monta a sequência do DNA. Dentro do loop while temos que gerar um número aleatório, entre 1 e 4, por exemplo. Depois temos que testar qual número foi gerado, usando o comando if/elif/else. Atribuímos a cada número uma base (variável base), que será adicionada à string dna. Podemos usar o operador + para ir montando a sequência, por exemplo: dna = dna + base Podemos, ainda, usar o método.join(), como indicado abaixo. dna = "".join([dna,base]) Em ambas situações, temos que criar a variável dna antes do loop while, para que possa ser adicionada a base. À variável dna devemos atribuir uma string vazia, como indicado abaixo. dna = "" 44

45 Programa: randomdna2.py (Trabalho 3) Random DNA (versão 2) Programa: randomdna2.py Resumo Programa para gerar um trecho de DNA com uma sequência aleatória. A sequência do DNA será atribuída a uma variável do tipo string (variável dna), onde cada base será gerada aleatoriamente (variável base), a partir do módulo random e adicionada à sequência de DNA. O programa tem como entrada o tamanho da sequência de DNA, a ser gerada aleatoriamente. A sequência aleatória será mostrada na tela. Para adicionar a base aleatória à sequência de DNA, podemos usar o operador + ou.join([dna,base]). O programa calcula as porcentagens de cada base presente na sequência de DNA gerada e mostra o resultado na tela. 45

46 Programa: randomdna2.py (Trabalho 3) Nesta versão do programa, temos que criar contadores para cada uma das bases do DNA. Para contar as bases, temos que inicialmente atribuir zero aos contadores, como mostrado abaixo: count_c = 0 count_g = 0 count_a = 0 count_t = 0 Os contadores serão atualizados em cada iteração do loop while. Depois de finalizado o loop while, serão calculadas as porcentagens, como segue: if count_bases > 0: perc_c = 100*count_C/count_bases perc_g = 100*count_G/count_bases perc_a = 100*count_A/count_bases perc_t = 100*count_T/count_bases Tomamos o cuidado de testar se o contador de bases (count_bases) é maior que zero, para evitar a divisão por zero. Uma vez pronto o programa, teste para sequências de diferentes tamanhos, por exemplo para 100, 1000 e O que você pode dizer sobre a aleatoriedade do módulo random? 46

47 Programa: randomdna3.py (Trabalho 3) Random DNA (versão 3) Programa: randomdna3.py Resumo Programa para gerar um trecho de DNA com uma sequência aleatória. A sequência do DNA será atribuída a uma variável do tipo string (variável dna), onde cada base será gerada aleatoriamente (variável base), a partir do módulo random e adicionada à sequência de DNA. O programa tem como entradas o tamanho da sequência de DNA, a ser gerada aleatoriamente, e o nome do arquivo de saída, onde a sequência será gravada. A sequência aleatória será mostrada na tela. Para adicionar a base aleatória à sequência de DNA, podemos usar o operador + ou.join([dna,base]). O programa calcula as porcentagens de cada base presente na sequência de DNA gerada e mostra o resultado na 47 tela.

48 Programa: randomdna3.py (Trabalho 3) Agora, a sequência gerada será armazenada num arquivo de saída. Usamos a função input() para ler o nome do arquivo de saída. A função open() é usada para criar o arquivo, onde a sequência do DNA será escrita, como indicado abaixo: # Reads output file name file_in = input("\ngive the DNA file name => ") # Opens DNA file dna_out = open(file_in,"w") Depois de gerada a sequência do DNA, como nos programas anteriores, podemos escrevê-la no arquivo de saída, como mostrado abaixo: # Writes sequence to output file dna_out.write(dna) # Closes DNA file dna_out.close() 48

49 Programa: readgenome.py (Trabalho 3) Read Genome Programa: readgenome.py Resumo Programa para a leitura da sequência de bases de um genoma armazenado num arquivo FASTA. Após a leitura, será mostrada na tela as seguintes informações: Identificador do FASTA, Numero de Adeninas, Numero de Timinas, Numero de Citosinas, Numero de Guaninas, Numero de bases nao identificadas, Numero de Citosinas e Guaninas, Numero de Adeninas e Timinas, Porcentagem de Citosinas e Guaninas, Porcentagem de Adeninas e Timinas, Porcentagem de bases nao identificadas, Numero total de bases lidas, Numero de bases nao identificadas 49

50 Programa: readgenome.py (Trabalho 3) Aplique o código no sequência armazenada no arquivo sequence.fasta. Os resultados esperados são os seguintes: Resultado da contagem de bases do arquivo: sequence.fasta Identificador do fasta: >gi ref NC_ Mycobacterium tuberculosis H37Rv chromosome, complete genome Numero de Adeninas: Numero de Timinas: Numero de Citosinas: Numero de Guaninas: Numero de bases nao identificadas: 0 Numero de Citosinas e Guaninas: Numero de Adeninas e Timinas: Porcentagem de Citosinas e Guaninas: Porcentagem de Adeninas e Timinas: Porcentagem de bases nao identificadas 0 Numero total de bases lidas

51 Programa: readpdb2.py (Trabalho 3) Leitura de arquivos PDB (versão 2) Programa: readpdb2.py Resumo Programa para leitura de arquivo de coordenadas atômicas no formato protein data bank (PDB). Após a leitura do arquivo PDB, o programa mostra na tela as linhas referentes à parte não-proteica da estrutura, identificadas com a palavrachave HETATM. O usuário digita o nome do arquivo PDB de entrada. 51

52 Trabalho 3 Lista de programas do trabalho 3 randomdna1.py randomdna2.py randomdna3.py readgenome.py readpdb2.py Data da entrega: Até o dia 27 de julho

53 Referências -BRESSERT, Eli. SciPy and NumPy. Sebastopol: O Reilly Media, Inc., p. -DAWSON, Michael. Python Programming, for the absolute beginner. 3ed. Boston: Course Technology, p. -HETLAND, Magnus Lie. Python Algorithms. Mastering Basic Algorithms in the Python Language. Nova York: Springer Science+Business Media LLC, p. -IDRIS, Ivan. NumPy 1.5. An action-packed guide dor the easy-to-use, high performance, Python based free open source NumPy mathematical library using real-world examples. Beginner s Guide. Birmingham: Packt Publishing Ltd., p. -KIUSALAAS, Jaan. Numerical Methods in Engineering with Python. 2ed. Nova York: Cambridge University Press, p. -LANDAU, Rubin H., PÁEZ, Manuel José, BORDEIANU, Cristian C. A Survey of Computational Physics. Introductory Computational Physics. Princeton: Princeton University Press, p. -LUTZ, Mark. Programming Python. 4ed. Sebastopol: O Reilly Media, Inc., p. -MODEL, Mitchell L. Bioinformatics Programming Using Python. Sebastopol: O Reilly Media, Inc., p. -TOSI, Sandro. Matplotlib for Python Developers. Birmingham: Packt Publishing Ltd., p. Última atualização: 21 de julho

2016 Dr. Walter F. de Azevedo Jr.

2016 Dr. Walter F. de Azevedo Jr. 2016 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

Bioquímica. Prof. Dr. Walter F. de Azevedo Jr Dr. Walter F. de Azevedo Jr.

Bioquímica. Prof. Dr. Walter F. de Azevedo Jr Dr. Walter F. de Azevedo Jr. 2018 Dr. Walter F. de Azevedo Jr. Bioquímica Prof. Dr. Walter F. de Azevedo Jr. E-mail: walter@azevedolab.net 1 As proteínas que tiveram sua estrutura tridimensional determinadas estão disponíveis no site

Leia mais

2019 Dr. Walter F. de Azevedo Jr.

2019 Dr. Walter F. de Azevedo Jr. 2019 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2015 Dr. Walter F. de Azevedo Jr. www.python.org

2015 Dr. Walter F. de Azevedo Jr. www.python.org 2015 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2019 Dr. Walter F. de Azevedo Jr.

2019 Dr. Walter F. de Azevedo Jr. 2019 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2016 Dr. Walter F. de Azevedo Jr.

2016 Dr. Walter F. de Azevedo Jr. 2016 Dr. Walter F. de Azevedo Jr. > 1 Download do pyzo A partir do pyzo (disponível em http:///), o processo de instalação do Python fica facilitado. A instalação integra, além do Python, um conjunto de

Leia mais

Bioinformática Aplicada

Bioinformática Aplicada 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000 000000000111111111111111111111111000000

Leia mais

2016 Dr. Walter F. de Azevedo Jr. > >

2016 Dr. Walter F. de Azevedo Jr. > > 2016 Dr. Walter F. de Azevedo Jr. > > 1 Download do eclipse www.eclipse.org Antes de fazer o download do eclipse, certifique-se que você tem o Java (JDK) instalado no seu computador. Vá ao site www.eclipse.org.

Leia mais

2019 Dr. Walter F. de Azevedo Jr.

2019 Dr. Walter F. de Azevedo Jr. 2019 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2015 Dr. Walter F. de Azevedo Jr.

2015 Dr. Walter F. de Azevedo Jr. 2015 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2015 Dr. Walter F. de Azevedo Jr.

2015 Dr. Walter F. de Azevedo Jr. 2015 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2017 Dr. Walter F. de Azevedo Jr.

2017 Dr. Walter F. de Azevedo Jr. 2017 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2016 Dr. Walter F. de Azevedo Jr.

2016 Dr. Walter F. de Azevedo Jr. 2016 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2018 Dr. Walter F. de Azevedo Jr. azevedolab.net

2018 Dr. Walter F. de Azevedo Jr. azevedolab.net 2018 Dr. Walter F. de Azevedo Jr. azevedolab.net 1 Programação Orientada a Objeto Iremos ver o uso da abordagem de programação orientada a objeto (object-oriented programming (OOP)). Nosso objetivo é usar

Leia mais

9/24/2014. Prof. André Backes

9/24/2014. Prof. André Backes Prof. André Backes 1 Arquivos Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não sequencial; Acesso concorrente aos

Leia mais

Vimos na aula passada um algoritmo genético simples para resolver o problema do máximo da função x 2. Veremos sua implementação em Python.

Vimos na aula passada um algoritmo genético simples para resolver o problema do máximo da função x 2. Veremos sua implementação em Python. azevedolab.net Implementação de um Algoritmo Genético Simples Vimos na aula passada um algoritmo genético simples para resolver o problema do máimo da função. Veremos sua implementação em Python. Gera

Leia mais

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta? 23 Algoritmos com Repetição Nos exemplos e exercícios vistos até agora, sempre foi possível resolver os problemas com uma sequência de instruções que eram executadas apenas uma vez. Existem três estruturas

Leia mais

Biologia Estrutural. Qualidade de modelos estruturais Prof. Dr. Walter F. de Azevedo Jr. wfdaj.sites.uol.com.br Dr. Walter F. de Azevedo Jr.

Biologia Estrutural. Qualidade de modelos estruturais Prof. Dr. Walter F. de Azevedo Jr. wfdaj.sites.uol.com.br Dr. Walter F. de Azevedo Jr. Biologia Estrutural Qualidade de modelos estruturais Prof. Dr. Walter F. de Azevedo Jr. Biologia Estrutural Resumo SCOP Modelagem molecular SCOP A primeira versão do SCOP foi liberada em 29 de outubro

Leia mais

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016 Mini apostila de Python - Oficina de Vestibulandos PET Computação - UFPR September 2016 1 Sumário 1 Introdução 3 2 Obtenção e Instalação 3 3 Variáveis 3 4 Operações Matemáticas 5 5 Entrada de Dados 6 6

Leia mais

2016 Dr. Walter F. de Azevedo Jr.

2016 Dr. Walter F. de Azevedo Jr. 2016 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2017 Dr. Walter F. de Azevedo Jr.

2017 Dr. Walter F. de Azevedo Jr. 01 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

2016 Dr. Walter F. de Azevedo Jr.

2016 Dr. Walter F. de Azevedo Jr. 2016 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta? 23 Algoritmos com Repetição Nos exemplos e exercícios vistos até agora, sempre foi possível resolver os problemas com uma sequência de instruções que eram executadas apenas uma vez. Existem três estruturas

Leia mais

Arquivos O QUE É, COMO LER E MANIPULAR

Arquivos O QUE É, COMO LER E MANIPULAR Arquivos O QUE É, COMO LER E MANIPULAR Arquivos Variáveis oferecem armazenamento de dados temporariamente Os dados são perdidos quando o escopo da variável é finalizado ou quando o programa termina Arquivos

Leia mais

ACH5531 Introdução à Computação Estruturas de repetição

ACH5531 Introdução à Computação Estruturas de repetição ACH5531 Introdução à Computação Estruturas de repetição Prof. Dr. Grzegorz Kowal grzegorz.kowal@usp.br https://sites.google.com/usp.br/ach5531 1 o sem 2019 sexta-feira, 14h00-15h45 CB, Bloco 3, 2 o andar,

Leia mais

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

Passo-a-passo para desenvolver um Programa usando a Linguagem Python Cursos: Engenharia de Produção / Tecnólogo em Gestão da Qualidade Disciplina: Informática Professora: Flávia Pereira de Carvalho Passo-a-passo para desenvolver um Programa usando a Linguagem Python 1)

Leia mais

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Variáveis e Entrada de Dados Marco André Lopes Mendes  marcoandre.googlepages. Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre@ifc-araquari.edu.br marcoandre@gmail.com marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma

Leia mais

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Aula 09 Strings, Leitura e Escrita de Arquivos (continuação)

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Aula 09 Strings, Leitura e Escrita de Arquivos (continuação) azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Aula 09 Strings, Leitura e Escrita de Arquivos (continuação) 1 Programa read_fasta_01.pde Exercício de programação: Elabore um programa que leia um arquivo

Leia mais

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática Programação 1 Prof. Osório Aula 05 Pag.: 1 UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática PROGRAMAÇÃO I AULA 05 Disciplina: Linguagem

Leia mais

Organização de programas em Python. Vanessa Braganholo

Organização de programas em Python. Vanessa Braganholo Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

Visualização de Hélices

Visualização de Hélices Grupo: Curso: Turma: Data: Visualização de Hélices Objetivos Visualizar a estrutura tridimensional de hélices presentes na estrutura de proteínas e peptídeos, usandose recursos computacionais. Analisar

Leia mais

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Introdução ao SciLab. SciLab O que é? Onde obter o programa: Introdução ao SciLab SciLab O que é? SciLab é uma plataforma interativa para computação numérica composta de uma rica coleção de algoritmos numéricos e de uma linguagem de programação associada. CN04 2010

Leia mais

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON 02/47 O QUE É PYTHON? Python é uma linguagem de propósito geral, de alto nível e interpretada Python será

Leia mais

2016 Dr. Walter F. de Azevedo Jr.

2016 Dr. Walter F. de Azevedo Jr. 2016 Dr. Walter F. de Azevedo Jr. 000000000000000000000000000000000000000 000000000000000000000000000000000000000 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000

Leia mais

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa AULA 2: INTRODUÇÃO A PYTHON Luís Feliphe Silva Costa Sumário Variáveis simples Entrada e Saída de dados Operadores Estruturas Condicionais Estruturas de repetição Funções Tratamento de erros Variáveis

Leia mais

MCG126 Programação de Computadores II

MCG126 Programação de Computadores II MCG126 Programação de Computadores II Turmas: A e B Professor: Isac Mendes Lacerda (Material original cedido gentilmente pela professora Janaína Gomide) 1 Bibliografia 2 Bibliografia Introdução à Programação

Leia mais

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias SCC 124 - Introdução à Programação para Engenharias Comandos Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes 1 Aula de

Leia mais

10 - Ciclo while. Ludwig Krippahl 4/3/2019 ICE-B-10 ICE-B

10 - Ciclo while. Ludwig Krippahl 4/3/2019 ICE-B-10 ICE-B ICE-B 10 - Ciclo while Ludwig Krippahl file:///media/ludi/gaveta/my Documents/Aulas/ICE-B-1819-2/Lectures/10-while.html?print-pdf#/ 1/35 while Resumo Ciclo while Iterar enquanto uma condição for verdadeira

Leia mais

Programação I Aula 6 Números pseudo-aleatórios

Programação I Aula 6 Números pseudo-aleatórios Programação I Aula 6 Números pseudo-aleatórios Pedro Vasconcelos DCC/FCUP 2018 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 6 Números pseudo-aleatórios 2018 1 / 28 Nesta aula 1 Números pseudo-aleatórios

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Mais um tipo numérico print() formatado: clássico pythônico Tuplas

Leia mais

Aula 5 - Mais C e repetição

Aula 5 - Mais C e repetição Vamos nesta aula mostrar mais detalhes e a forma geral dos comandos C vistos até agora. O comando de atribuição A forma geral do comando de atribuição é: = A expressão

Leia mais

Programação I Aula 6 Números pseudo-aleatórios Pedro Vasconcelos DCC/FCUP

Programação I Aula 6 Números pseudo-aleatórios Pedro Vasconcelos DCC/FCUP Programação I Aula 6 Números pseudo-aleatórios DCC/FCUP DCC/FCUP 2019 1/ 28 Nesta aula 1 Números pseudo-aleatórios 2 Jogo Hi-Lo 3 Passeio aleatório DCC/FCUP 2019 2/ 28 Números pseudo-aleatórios Por vezes

Leia mais

Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão /11/2013

Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão /11/2013 Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão 1.0 12/11/2013 SSC0300 Linguagem de Programação e Aplicações Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz

Leia mais

Introdução à Programação 2006/07. Algoritmos

Introdução à Programação 2006/07. Algoritmos Introdução à Programação 2006/07 Algoritmos Cálculo da média de uma sequência Algoritmos: Exercício 1 Pretende-se escrever um programa que, dado um numero indeterminado de números introduzidos pelo teclado,

Leia mais

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Programação Orientada a Objetos em Processing

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Programação Orientada a Objetos em Processing azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Programação Orientada a Objetos em Processing 1 Programação Orientada a Objeto O uso de programação orientada a objeto (POO) não irá introduzir necessariamente

Leia mais

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29 Computação 1 - Python Aula 11 - Teórica Interação com o usuário e programa principal 1/ 29 print: Usado para imprimir informações na tela. >>> print "Qual o seu nome?" Qual o seu nome? # Função que soma

Leia mais

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2 INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2 *Exercícios de provas anteriores escolhidos para você estar preparado para qualquer questão na prova. Resoluções em simplificaaulas.com. Listas(= tipo

Leia mais

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação

Leia mais

TCC 00308: Programação de Computadores I Organização de programas em Python

TCC 00308: Programação de Computadores I Organização de programas em Python TCC 00308: Programação de Computadores I 2017.1 Organização de programas em Python Vamos programar em Python! Como um programa é organizado? Quais são os tipos de dados disponíveis? Como variáveis podem

Leia mais

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação

Leia mais

Introdução. O BOCA Online Contest Administrator é um sistema de correção online de códigos utilizado em competições de programação de computadores.

Introdução. O BOCA Online Contest Administrator é um sistema de correção online de códigos utilizado em competições de programação de computadores. Aula BOCA Introdução O BOCA Online Contest Administrator é um sistema de correção online de códigos utilizado em competições de programação de computadores. A correção é feita através de casos de teste:

Leia mais

Introdução a Programação

Introdução a Programação Introdução a Programação Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula 02 Primeiro Programa Roteiro Primeiros Passos Variáveis Expressões Comandos

Leia mais

2018 Dr. Walter F. de Azevedo Jr.

2018 Dr. Walter F. de Azevedo Jr. 2018 Dr. Walter F. de Azevedo Jr. 000000000000111111111110001100000000000 000000000001111111111111111111000000001 000000000111111111111111111111111000000 000000000111111111111111111111111000000 000000000011111111111111111111100000000

Leia mais

Python 3.x Estrutura de Repetição while

Python 3.x Estrutura de Repetição while Python 3.x Estrutura de Repetição while Introdução à Ciência da Computação Prof. Edison Ishikawa Sumário Atribuição Atualizando variáveis Iterações Revisitando o laço for Laço while Rastreando um programa

Leia mais

Identificação de Padrões em Proteínas Utilizando a Ferramenta de Bioinformática CD- Search

Identificação de Padrões em Proteínas Utilizando a Ferramenta de Bioinformática CD- Search 4ª Jornada Científica e Tecnológica e 1º Simpósio de Pós-Graduação do IFSULDEMINAS 16, 17 e 18 de outubro de 2012, Muzambinho MG Identificação de Padrões em Proteínas Utilizando a Ferramenta de Bioinformática

Leia mais

Ambiente de Programação, rastreamento e entrada de dados. MCG114 Programação de Computadores I. Interpretador de Comandos. Interpretador de Comandos

Ambiente de Programação, rastreamento e entrada de dados. MCG114 Programação de Computadores I. Interpretador de Comandos. Interpretador de Comandos MCG114 Programação de Computadores I Profa. Ambiente de Programação, rastreamento e entrada de dados 1 2 Ambiente Python para Programação Ambiente Python para Programação Até agora... Comandos e funções

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Linguagens de Programação. Programação Funcional e Haskell Programação Interativa Thiago Alves

Linguagens de Programação. Programação Funcional e Haskell Programação Interativa Thiago Alves Linguagens de Programação Programação Funcional e Haskell Programação Interativa Thiago Alves 1 Introdução Vimos como Haskell pode ser usado para escrever programas batch que recebem todas suas entradas

Leia mais

Capítulo 10. MATRIZES

Capítulo 10. MATRIZES Capítulo 10. MATRIZES OBJETIVOS DO CAPÍTULO Conceitos de: conjunto multidimensional (matriz), ciclo implícito, ciclo duplo Comandos do FORTRAN: DIMENSION(:,:), MATMUL 10.1 programa10a.f90 Para inicializar

Leia mais

ANÁLISE DE TANDEM REPEATS CODIFICANTES EM GENOMAS BACTERIANOS

ANÁLISE DE TANDEM REPEATS CODIFICANTES EM GENOMAS BACTERIANOS 5ª Jornada Científica e Tecnológica e 2º Simpósio de Pós-Graduação do IFSULDEMINAS 06 a 09 de novembro de 2013, Inconfidentes/MG ANÁLISE DE TANDEM REPEATS CODIFICANTES EM GENOMAS BACTERIANOS Vinícius A.

Leia mais

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15 Exercício 1 PROGRAMAÇÃO DE COMPUTADORES I BCC701 2017-1 Aula Prática 15 No jogo Inventei, cada posição do tabuleiro é representada por suas coordenadas x e y e contém um número. O tabuleiro pode ser representado

Leia mais

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Apresentação do Professor Professor: José Carlos Perini E-mail: jose.perini@metrocamp.edu.br Blog: http://profperini.com Formação

Leia mais

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá Entrada e saída Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23 Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23 Permite que o programador especifique que o programa deve repetir um conjunto de comandos enquanto uma dada

Leia mais

Aula 4 Introdução ao C

Aula 4 Introdução ao C Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções

Leia mais

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Introdução Arquivos são usados para fazer operações de entrada e saída Disco, monitor, teclado, impressora Representação

Leia mais

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Aula 08 Strings, Leitura e Escrita de Arquivos

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Aula 08 Strings, Leitura e Escrita de Arquivos azevedolab.net 2015 Dr. Walter F. de Azevedo Jr. Aula 08 Strings, Leitura e Escrita de Arquivos 1 Classe String Em Python não precisamos definir o tipo da variável, já em Processing temos que definir os

Leia mais

Estruturas de Repetição. Vanessa Braganholo

Estruturas de Repetição. Vanessa Braganholo Estruturas de Repetição Vanessa Braganholo vanessa@ic.uff.br Estruturas de Repetição } Permitem que um bloco de comandos seja executado diversas vezes } Repetição condicional: executa um bloco de código

Leia mais

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25 Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal 1/ 25 print: Usado para imprimir informações na tela. >>> print "Qual o seu nome?" Qual o seu nome? # Função que soma

Leia mais

Estruturas de Repetição. Leonardo Murta

Estruturas de Repetição. Leonardo Murta Estruturas de Repetição Leonardo Murta leomurta@ic.uff.br Estruturas de Repetição } Permitem que um bloco de comandos seja executado diversas vezes } Dois tipos de Repetição: } Repetição condicional: executa

Leia mais

Programas Interativos

Programas Interativos Programação Funcional DECOM UFOP 2012-1 Aula prática Capítulo 8 Prof. José Romildo Malaquias Programas Interativos Resumo Nesta aula pretende-se explorar construção de programas interativos usando ações

Leia mais

Trabalhando com Arquivos

Trabalhando com Arquivos Trabalhando com Arquivos Dados de um Programa Durante sua execução, um programa típico processa um ou mais conjuntos de dados. dados de entrada (usados pelo programa) e dados de saída (gerados pelo programa)

Leia mais

PYTHON - Strings. Introdução à Programação SI1

PYTHON - Strings. Introdução à Programação SI1 PYTHON - Strings Introdução à Programação SI1 2 Conteúdo String Conceitos Operações Métodos Exemplos Exercícios 3 String Strings no Python são elementos usados para armazenar texto A inicialização de strings

Leia mais

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica 13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física

Leia mais

SSC Linguagem de Programação e Aplicações

SSC Linguagem de Programação e Aplicações SSC0300 - Linguagem de Programação e Aplicações Professor responsável: Fernando Santos Osório Semestre: 2013/2 Prof. Auxiliar: Artur Lovato Cunha Estagiário PAE: Rafael L. Klaser Horário: Sexta Manhã 10h10

Leia mais

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes Desenvolvimento de Software I - 1 Aula 07 Estruturas de Repetição / Dialog Result 1. Definição Em ciência da computação, uma estrutura de repetição é uma estrutura de desvio do fluxo de controle presente

Leia mais

PROGRAMAÇÃO EM JOGOS DIGITAIS

PROGRAMAÇÃO EM JOGOS DIGITAIS PROGRAMAÇÃO EM JOGOS DIGITAIS Frutuoso Silva Paradigmas de Programação Linguagem de programação Paradigmas de programação 1 Linguagem de programação! Para ser útil e confiável, uma linguagem deve ter uma

Leia mais

Arquivos. Introdução à Programação SI1

Arquivos. Introdução à Programação SI1 Arquivos Introdução à Programação SI1 1 Conteúdo Arquivos Conceitos Operações Métodos Exercícios 2 Arquivos Entrada e saída são operações de comunicação de um programa com o mundo externo Essa comunicação

Leia mais

Apostila - Desenvolvimento web com PHP

Apostila - Desenvolvimento web com PHP José Roberto Madureira Junior Adaní Cusin Sacilotti Reginaldo Sacilotti Apostila - Desenvolvimento web com PHP Primeira Edição São Paulo 2017 Sumário 1 INTRODUÇÃO AO PHP... 1 1.1 PREPARAÇÃO DO AMBIENTE

Leia mais

4 MDP. void média e dp(int a[],int n,float em,float ed) 7. Variáveis auxiliares 7. Faça ed igual ao desvio padrão 6 }

4 MDP. void média e dp(int a[],int n,float em,float ed) 7. Variáveis auxiliares 7. Faça ed igual ao desvio padrão 6 } 1 MDP INTRODUCÃO 1 1. Introducão. Esta é uma demonstração do sistema CWEB (veja http://www.ime.usp.br/~pf/ CWEB/) de Knuth e Levy. Um programa CWEB, como este que você está lendo, é uma espécie de jogo

Leia mais

PROGRAMAÇÃO DE COMPUTADORES

PROGRAMAÇÃO DE COMPUTADORES PROGRAMAÇÃO DE COMPUTADORES COMANDOS E FORMATOS DE ENTRADA E SAÍDA 1 COMANDOS E FORMATOS DE ENTRADA E SAÍDA Os comandos de entrada e saída, na sua forma mais simplificada, possuem a seguinte estrutura:

Leia mais

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA Conversão de Bases 1 NOTAÇÃO POSICIONAL - BASE DECIMAL Desde os primórdios da civilização o homem adota formas e métodos específicos para representar números, para contar objetos e efetuar operações aritméticas.

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: estruturas de repetição While / Do While / For Prof. Renato Pimentel 1 Estruturas de repetição O real poder dos computadores está

Leia mais

Capítulo 11. GRÁFICOS COM WGNUPLOT

Capítulo 11. GRÁFICOS COM WGNUPLOT Capítulo 11. GRÁFICOS COM WGNUPLOT OBJETIVOS DO CAPÍTULO Aprender a utilizar o aplicativo Wgnuplot para fazer gráficos Aprender a utilizar o aplicativo Wgnuplot interativamente com um programa em FORTRAN

Leia mais

FFI0750 BIOLOGIA MOLECULAR ESTRUTURAL

FFI0750 BIOLOGIA MOLECULAR ESTRUTURAL AULA PRÁTICA 1 VISUALIZAÇÃO E REPRESENTAÇÃO MOLECULAR Os programas disponíveis para representação molecular variam em função da finalidade desejada. Por exemplo, as ferramentas necessárias para estudos

Leia mais

Estruturas de Repetição. Vanessa Braganholo

Estruturas de Repetição. Vanessa Braganholo Estruturas de Repetição Vanessa Braganholo vanessa@ic.uff.br Estruturas de Repetição } Permitem que um bloco de comandos seja executado diversas vezes } Dois tipos de Repetição: } Repetição condicional:

Leia mais

EP 2 - MAC 2166 Uma solução comentada

EP 2 - MAC 2166 Uma solução comentada EP 2 - MAC 2166 Uma solução comentada Este EP foi proposto originalmente para as turmas que usam Python. Na última página há o link p/ o download do código fonte deste EP na linguagem Python e também em

Leia mais

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Operações básicas + - / * ** ou pow(a,b) % = ==,!=, , = or, and, not Valor dos operadores 10/3 10.0/3 10/3.0 10%3

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

NESSES SLIDES, VOCÊ VAI APRENDER: Configuração de ambiente Variáveis Operadores Ambiguidade Condições e Laços

NESSES SLIDES, VOCÊ VAI APRENDER: Configuração de ambiente Variáveis Operadores Ambiguidade Condições e Laços MÓDULO II NESSES SLIDES, VOCÊ VAI APRENDER: Configuração de ambiente Variáveis Operadores Ambiguidade Condições e Laços SIGA OS PRÓXIMOS PASSOS: 1. INSTALAÇÃO PYTHON : ESCOLHA A VERSÃO MAIS ATUAL E ESTÁVEL

Leia mais

MANUAL DE UTILIZAÇÃO COLETOR OPTIMUS METROLOGIC SP5500

MANUAL DE UTILIZAÇÃO COLETOR OPTIMUS METROLOGIC SP5500 MANUAL DE UTILIZAÇÃO COLETOR OPTIMUS METROLOGIC SP5500 OBJETIVO: AUXILIAR O USUÁRIO A FAZER CONTAGENS DE ESTOQUES E IMPORTÁ-LAS PARA O SIGPOSTO. A CONTAGEM DE ESTOQUE É DIVIDIDA EM 4 ETAPAS, SENDO ELAS:

Leia mais

Busca em banco de dados

Busca em banco de dados Busca em banco de dados Busca em banco de dados A quantidade imensa de dados existentes nos bancos públicos torna critica a existência de ferramentas eficientes que permitam a recuperação de dados desejados

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos Capitulo 11. GRÁFICOS COM GNUPLOT (versão 5.03) OBJETIVOS DO CAPÍTULO Aprender a utilizar o aplicativo Gnuplot para fazer gráficos Aprender a utilizar o aplicativo Gnuplot interativamente com um programa

Leia mais

LINGUAGEM C: COMANDOS DE REPETIÇÃO

LINGUAGEM C: COMANDOS DE REPETIÇÃO LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições

Leia mais

Tutorial Visualização Gráfica com Pymol

Tutorial Visualização Gráfica com Pymol Sobre o Pymol Tutorial Visualização Gráfica com Pymol Aula Prática 21/06/2018 PyMOL é um software de visualização molecular criado por Warren Lyford DeLano. É um programa open source, lançado sob a licença

Leia mais

Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10

Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10 Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10 Estrutura de Repetição while Estrutura que permite a repetição de um conjunto de comandos. Até o momento vimos o while: while

Leia mais

LINGUAGEM ALGORÍTMICA

LINGUAGEM ALGORÍTMICA LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem

Leia mais

Crystal Reports - Gerando seus relatórios.

Crystal Reports - Gerando seus relatórios. Crystal Reports - Gerando seus relatórios. O Crystal Reports é o gerador de relatórios do Visual Basic e com ele desenhamos os relatórios de nossos aplicativos. Embora possua um objeto chamado Printer

Leia mais