Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouOtávio Ponte Alterado mais de 10 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.