A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.

Apresentações semelhantes


Apresentação em tema: "Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5."— Transcrição da apresentação:

1 Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5

2 Ludwig Krippahl, 2008 2 Na aula de hoje... Trabalho prático 1 Cálculo do ponto isoeléctrico de proteínas. Como planear um programa Exemplo do trabalho 1 de 06/07

3 Ludwig Krippahl, 2008 3 Proteínas

4 Ludwig Krippahl, 2008 4 Problema Proteínas Sequência de aminoácidos http://en.wikipedia.org/wiki/Amino_acid

5 Ludwig Krippahl, 2008 5 Problema Ponto isoeléctrico Dois grupos protonáveis pKa=10 pKa=2

6 Ludwig Krippahl, 2008 6 Problema Ponto isoeléctrico Henderson-Hasselbalch http://en.wikipedia.org/wiki/Henderson-Hasselbalch_equation

7 Ludwig Krippahl, 2008 7 Problema Ponto isoeléctrico pH=0, carga +1 pKa=10 pKa=2 +1 0

8 Ludwig Krippahl, 2008 8 Problema Ponto isoeléctrico pH=2, carga +0.5 pKa=10 pKa=2 +1 -0.5

9 Ludwig Krippahl, 2008 9 Problema Ponto isoeléctrico pH=7, carga 0 pKa=10 pKa=2 +1

10 Ludwig Krippahl, 2008 10 Problema Ponto isoeléctrico pH=10, carga -0.5 pKa=10 pKa=2 +0.5

11 Ludwig Krippahl, 2008 11 Problema Ponto isoeléctrico pH=12, carga -1 pKa=10 pKa=2 0

12 Ludwig Krippahl, 2008 12 Problema Proteínas

13 Ludwig Krippahl, 2008 13 Problema Proteínas

14 Ludwig Krippahl, 2008 14 Problema Proteínas +1

15 Ludwig Krippahl, 2008 15 Problema Proteínas http://www.biology.arizona.edu/biochemistry/problem_sets/aa/aa.html

16 Ludwig Krippahl, 2008 16 Ficheiro pKas.txt CodigoCOOHNH3C.L.Carga(Desp) A2.39.9-- C1.810.88.6-1 D2104.5-1 E2.29.74.5-1 F1.89.1--... V2.39.6-- W2.49.4-- Y2.29.19.8-1

17 Ludwig Krippahl, 2008 17 Simplificação Estrutura Campo... Só sequência

18 Ludwig Krippahl, 2008 18 Simplificação Calcular a carga a cada pH considerando: NH3 do primeiro da sequência Tem carga 0 desprotonado COOH do último da sequência Tem carga -1 desprotonado Cadeias laterais dos intermédios Ler a carga na tabela

19 Ludwig Krippahl, 2008 19 Cargas em função do pH

20 Ludwig Krippahl, 2008 20 Ficheiro seqs.txt > UniProt/Swiss-Prot|P00273|DESR_DESGI Desulforedoxin ANEGDVYKCELCGQVVKVLEEGGGTLVCCGEDMVKQ >UniProt/Swiss-Prot|P14073|FER_BUTME Ferredoxin AYKITDECIACGSCADQCPVEAISEGSIYEIDEALCTDCGACADQCPVEAIVPED >UniProt/Swiss-Prot|Q46495|DESR_DESBR Desulfoferrodoxin MPERLQVYKCEVCGNIVEVLNGGIGELVCCNQDMKLMSENTVDAAKEKHVPVIEKIDGGY KVKVGAVAHPMEEKHYIQWIELLADDKCYTQFLKPGQAPEAVFLIEAAKVVAREYCNIHG HWKAEN >UniProt/Swiss-Prot|P14393|GLB_APLJU Globin ALSAADAGLLAQSWAPVFANSDANGASFLVALFTQFPESANFFNDFKGKSLADIQASPKL RDVSSRIFARLNEFVSNAADAGKMGSMLQQFATEHAGFGVGSAQFQNVRSMFPGFVASLS APAADAAWNSLFGLIISALQSAGK >UniProt/TrEMBL|Q4VSD1|Q4VSD1_9HIV1 Protease SSCSFPQITLWQRTLVTVKIGGQLKEALLDTGADDTVLEDINLPGKWKPRMIGGIGGFIK VKQYDQILIEICGKKAIGTVLVGPTPVNIIGRNMLTQIGCTLNFPISPI

21 Ludwig Krippahl, 2008 21 Ler sequências de proteínas. O formato FASTA é um formato de texto para guardar sequências. As linhas começadas por > identificam a molécula (proteína, RNA, ou DNA): >UniProt/Swiss-Prot|P00273|DE....

22 Ludwig Krippahl, 2008 22 Ler sequências de proteínas. O formato FASTA é um formato de texto para guardar sequências. As restantes linhas contêm a sequência: ALSAADAGLLAQSWAPVFANSDANGASF... RDVSSRIFARLNEFVSNAADAGKMGSML... APAADAAWNSLFGLIISALQSAGK

23 Ludwig Krippahl, 2008 23 Ler sequências de proteínas. O formato FASTA é um formato de texto para guardar sequências. Como no máximo este formato usa 80 caracteres por linha a sequência pode estar partida em várias linhas. ALSAADAGLLAQSWAPVFANSDANGASF... RDVSSRIFARLNEFVSNAADAGKMGSML... APAADAAWNSLFGLIISALQSAGK

24 Ludwig Krippahl, 2008 24 Ler sequências de proteínas. Função [nomes,seqs]=lefasta(nome) Lê o ficheiro cujo nome é fornecido e devolve uma lista de estruturas. Devolva duas tabelas de strings com os nomes (identificadores) e as sequências.

25 Ludwig Krippahl, 2008 25 Ler sequências de proteínas. function [nomes,seqs]=lefasta(nome) id=fopen(nome,r); nomes=""; seqs=""; seq=''; (Ciclo de leitura do ficheiro) fclose(id); endfunction Abre o ficheiro e guarda o identificador

26 Ludwig Krippahl, 2008 26 Ler sequências de proteínas. function [nomes,seqs]=lefasta(nome) id=fopen(nome); nomes=""; seqs=""; seq=''; (Ciclo de leitura do ficheiro) fclose(id); endfunction Cria tabelas vazias Sequência inicial vazia

27 Ludwig Krippahl, 2008 27 Ler sequências de proteínas. function [nomes,seqs]=lefasta(nome) id=fopen(nome); nomes=""; seqs=""; seq=''; (Ciclo de leitura do ficheiro) fclose(id); endfunction Depois de ler o ficheiro, fecha e termina a função

28 Ludwig Krippahl, 2008 28 Ler sequências de proteínas. while !feof(id) s=fgetl(id); if strcmp(s(1),'>') if !strcmp(seq,""') nomes=[nomes;nome]; seqs=[seqs;seq]; endif nome=s; seq=""; else seq=[seq,s]; endif endwhile Ciclo enquanto o ficheiro não chegou ao fim.

29 Ludwig Krippahl, 2008 29 Ler sequências de proteínas. while !feof(id) s=fgetl(id); if strcmp(s(1),'>') if !strcmp(seq,""') nomes=[nomes;nome]; seqs=[seqs;seq]; endif nome=s; seq=""; else seq=[seq,s]; endif endwhile Lê uma linha e compara o primeiro caracter com > (quer dizer que encontrou uma proteína nova)

30 Ludwig Krippahl, 2008 30 Ler sequências de proteínas. while !feof(id) s=fgetl(id); if strcmp(s(1),'>') if !strcmp(seq,""') nomes=[nomes;nome]; seqs=[seqs;seq]; endif nome=s; seq=""; else seq=[seq,s]; endif endwhile Se há uma sequência guardada acrescenta à tabela (nomes e seqs) É por isto que a sequência seq começa vazia

31 Ludwig Krippahl, 2008 31 Ler sequências de proteínas. while !feof(id) s=fgetl(id); if strcmp(s(1),'>') if !strcmp(seq,""') nomes=[nomes;nome]; seqs=[seqs;seq]; endif nome=s; seq=""; else seq=[seq,s]; endif endwhile Quando encontra nova proteína guarda o identificador da proteína e limpa a sequência.

32 Ludwig Krippahl, 2008 32 Ler sequências de proteínas. while !feof(id) s=fgetl(id); if strcmp(s(1),'>') if !strcmp(seq,""') nomes=[nomes;nome]; seqs=[seqs;seq]; endif nome=s; seq=""; else seq=[seq,s]; endif endwhile Se não é uma proteína nova então é outra linha da sequência, para juntar à sequência lida até agora

33 Ludwig Krippahl, 2008 33 Ler sequências de proteínas. endwhile if !strcmp(seq,"") nomes=[nomes;nome]; seqs=[seqs;seq]; endif fclose(id); endfunction No final do ciclo acrescentar a última proteína lida, se houver

34 Ludwig Krippahl, 2008 34 Avaliação Concepção: 4 valores Explicar muito resumidamente cada função Função: soma Argumentos: dois valores numéricos (a,b) Valor devolvido: a soma dos argumentos Funcionamento: Soma os valores e devolve o resultado No funcionamento indicar que outras funções usa (das que implementaram)

35 Ludwig Krippahl, 2008 35 Avaliação Concepção: 4 valores Implementação: 10 valores Copy-paste das funções todas, na integra: function....... endfuntion function...... endfunction

36 Ludwig Krippahl, 2008 36 Avaliação Concepção: 4 valores Implementação: 10 valores Testes: 3 valores Listagem dos testes que fizeram. É importante testar cada função individualmente, senão pode ser difícil encontrar erros...

37 Ludwig Krippahl, 2008 37 Avaliação Concepção: 4 valores Implementação: 10 valores Testes: 3 valores Avaliação e crítica: 3 valores Sugestões para melhorias ou vulnerabilidades do código Por exemplo, quando implementámos a função umelem tinha a limitação de assumir elementos com uma só letra.

38 Ludwig Krippahl, 2008 38 Exemplo (Trabalho 1 de 06/07) Calcular concentrações de equilíbrio para um sistema de reacções químicas. A função recebe: CH 3 COOH H + + CH 3 COO - H 2 O H + + OH - Concentrações iniciais Constantes

39 Ludwig Krippahl, 2008 39 Objectivo Calcular concentrações de equilíbrio para um sistema de reacções químicas. A função devolve: Concentrações de equilíbrio

40 Ludwig Krippahl, 2008 40 Objectivo Exemplo: octave:7> mat=['CH3COOH = H+ + CH3COO-';'H2O = H+ + OH-']; octave:8> eks=[1.78e-5,1.8e-16]; octave:9> esps=['CH3COOH';'H+';'CH3COO-';'H2O';'OH-']; octave:10> cis=[0.01,0,0,55.346,0]; octave:11> res=sistema(mat,esps,eks,cis,1e-8) res = 9.5869e-03 4.1309e-04 4.1308e-04 5.5346e+01 6.4431e-09

41 Ludwig Krippahl, 2008 41 Concepção O trabalho pode ser dividido em duas partes autónomas: Parte A: Interpretar o texto das reacções para um formato conveniente Parte B: Calcular as concentrações e equilíbrio Estas partes podem ser implementadas e testadas de forma independente.

42 Ludwig Krippahl, 2008 42 Concepção Parte A: Interpretar o texto das reacções para um formato conveniente Problema: o que é o formato conveniente? Resposta: é o que der jeito para a parte B. O melhor é começar pela B.

43 Ludwig Krippahl, 2008 43 Concepção Parte B: Calcular as concentrações e equilíbrio. B1: calcular o equilíbrio de uma reacção. B2: usar B1 para calcular para todas

44 Ludwig Krippahl, 2008 44 Equilíbrio de uma reacção Calcular o valor o zero de uma função 2A + B 2D

45 Ludwig Krippahl, 2008 45 Equilíbrio de uma reacção Calcular o valor o zero de uma função Precisamos: Coeficientes de estequiometria (um vector) Concentrações iniciais (um vector) Constante de equilibrio.

46 Ludwig Krippahl, 2008 46 Equilíbrio de várias reacções Calcular o equilíbrio de uma Alterar concentrações Fazer o mesmo na próxima, até percorrer todas Repetir até que não mude nada (dentro de uma precisão)

47 Ludwig Krippahl, 2008 47 Equilíbrio de várias reacções Iterar o equilíbrio de cada uma até ficar tudo na mesma. Precisamos: Coeficientes de estequiometria (matriz) Concentrações iniciais (um vector) Constantes de equilibrio (um vector).

48 Ludwig Krippahl, 2008 48 Concepção Parte B: Calcular as concentrações e equilíbrio Precisa de matriz com coeficientes de estequiometria. Parte A: Interpretar o texto das reacções para um formato conveniente Quer dizer, converter numa matriz com os coeficientes de estequiometria.

49 Ludwig Krippahl, 2008 49 Concepção Identificar tarefas separáveis. Onde podemos partir o problema Identificar dependências. O que é que uma parte precisa da outra Fazer e refazer Se ficamos encravados não ter medo de voltar atrás para fazer melhor... Eficiência Por exemplo, ler ficheiros é lento. Ler só uma vez se possível.

50 Ludwig Krippahl, 2008 50 Dúvidas


Carregar ppt "Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5."

Apresentações semelhantes


Anúncios Google