1 / 50

Programação para as Ciências Experimentais 2007/8

Programação para as Ciências Experimentais 2007/8. Teórica 5. 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. Proteínas. Proteínas. Problema. Proteínas Sequência de aminoácidos.

werner
Download Presentation

Programação para as Ciências Experimentais 2007/8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação para as Ciências Experimentais2007/8 Teórica 5 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. Proteínas • Proteínas

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

  5. Problema • Ponto isoeléctrico • Dois grupos protonáveis pKa=2 pKa=10

  6. Problema • Ponto isoeléctrico • Henderson-Hasselbalch http://en.wikipedia.org/wiki/Henderson-Hasselbalch_equation

  7. Problema • Ponto isoeléctrico • pH=0, carga +1 pKa=2 0 pKa=10 +1

  8. Problema • Ponto isoeléctrico • pH=2, carga +0.5 pKa=2 -0.5 pKa=10 +1

  9. Problema • Ponto isoeléctrico • pH=7, carga 0 pKa=2 -1 pKa=10 +1

  10. Problema • Ponto isoeléctrico • pH=10, carga -0.5 pKa=2 -1 pKa=10 +0.5

  11. Problema • Ponto isoeléctrico • pH=12, carga -1 pKa=2 -1 pKa=10 0

  12. Problema • Proteínas

  13. Problema • Proteínas

  14. Problema • Proteínas -1 +1

  15. Problema • Proteínas http://www.biology.arizona.edu/biochemistry/problem_sets/aa/aa.html

  16. Ficheiro pKas.txt Codigo COOH NH3 C.L. Carga(Desp) A 2.3 9.9 - - C 1.8 10.8 8.6 -1 D 2 10 4.5 -1 E 2.2 9.7 4.5 -1 F 1.8 9.1 - - ... V 2.3 9.6 - - W 2.4 9.4 - - Y 2.2 9.1 9.8 -1

  17. Simplificação • Estrutura • Campo • ... • Só sequência

  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. Cargas em função do pH

  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. 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. 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. 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. 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. 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. 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. 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. Ler sequências de proteínas. Ciclo enquanto o ficheiro não chegou ao fim. 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

  29. Ler sequências de proteínas. Lê uma linha e compara o primeiro caracter com “>” (quer dizer que encontrou uma proteína nova) 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

  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. 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. 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. 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. 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. Avaliação • Concepção: 4 valores • Implementação: 10 valores • Copy-paste das funções todas, na integra: function .... ... endfuntion function ... ... endfunction

  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. 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. Exemplo (Trabalho 1 de 06/07) • Calcular concentrações de equilíbrio para um sistema de reacções químicas. • A função recebe: CH3COOH  H+ + CH3COO- H2O  H+ + OH- Concentrações iniciais Constantes

  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. 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. 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. 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. 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. Equilíbrio de uma reacção • Calcular o valor o zero de uma função 2A + B  2D

  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. 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. 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. 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. 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. Dúvidas

More Related