290 likes | 407 Views
WISE2. Algoritmos inteligentes para busca em DNA. http://www.sanger.ac.uk/Software/Wise2/. Tradução. Processo pelo qual a informação genética ( que é estocada na seqüência de nucleotídeos numa molécula de mRNA) é traduzida em uma seqüência de aminoácidos. Intron.
E N D
WISE2 Algoritmos inteligentes para busca em DNA http://www.sanger.ac.uk/Software/Wise2/
Tradução Processo pelo qual a informação genética ( que é estocada na seqüência de nucleotídeos numa molécula de mRNA) é traduzida em uma seqüência de aminoácidos Intron Exon-GU..............................................AG-Exon DNA Exon 1 Intron A Exon 2 Intron B Exon 3 transcrição Transcrito 5’ Exon 1 Intron A Exon 2 Intron B Exon 3 3’ Primário: Códon n Códon n+1 --------------------- Processamento do RNA mRNA Exon 1 Exon 2 Exon 3 -- tradução Polipeptídeo
A: GCTGCCGCAGCG C: TGTTGC D: GATGAC E: GAAGAG F: TTTTTC G: GGTGGCGGAGGG H: CATCAC I: ATTATCATA K: AAAAAG L: TTATTGCTTCTCCTACTG M: ATG N: AATAAC P: CCTCCCCCACCG Q: CAACAG R: CGTCGCCGACGGAGAAGG S: TCTTCCTCATCGAGTAGC T: ACTACCACAACG V: GTTGTCGTAGTG W: TGG X: TAATAGTGA Y: TATTAC
Problema: Dada uma proteína e uma seqüência de DNA, é possível compará-las, apesar de terem unidades distintas, existirem erros de notação e Introns?
O que é o WISE2 ? Wise2 é um pacote orientado à comparação de biopolímeros, comumente seqüências de DNA e proteínas. Mas já não existem outras ferramentas que fazem isso?
Concorrentes: • BLASTpackage ( NCBI) Sequence Searching • Fastapackage (Bill Pearson) Sequence Searching • SAMpackage (UC Santa Cruz) HMM • HMMERpackage (Sean Eddy) HMM • Pfam
Quais as vantagens do WISE2? Manuseio de grandes pedaços de DNA sem estouro de memória; O ponto forte do Wise2 é a comparação de seqüência de DNA a nível de sua tradução protéica . Implementação dos algoritmos mais robusta: Integração tecnológica faz do WISE2 o parceiro ideal para o HMMER e Pfam; Design permite reutilização e alteração do código.
Desvantagens • Entradas de 6 a 80kb levam até 15 minutos para gerar uma saída • Entradas acima de 80 kb produzem erros de saída via WEB • Baixa Velocidade • Opções -u -v ( início e final de cadeia de DNA a ser comparada) Scripts em Pearl - Blastwise e Halfwise • O algoritmo GENEWISE não tenta predizer um gene inteiro, mas regiões que apresentam homologia com a proteína. • Até o momento dispõe somente de arquivos de freqüencia de genes em Humanos e animais inferiores. • Uso de memória Linear com perda de desempenho quando uso de matrizes ultrapassam 20 MB
Modos4 programas principais executáveis: • Genewise Cadeia proteica vs Seqüência simples de DNA • Genewisedb Banco de dados de proteínas vs banco de dados de seqüências de DNA. • Estwise Cadeia proteica vs Seqüência simples de cDNA/EST • Estwisedb Banco de dados de proteínas vs banco de dados de seqüências de cDNA/EST.
OPÇÕES -u Posição inicial no DNA -v Posição final no DNA -trev Comparação do reverso -tfor (default) Comparação standard -both Comparação nos dois sentidos -s Posição inicial na proteína - não aplicável a HMM -t Posição final na proteína - não aplicável a HMM -gap [no] default [12] gap penalty -ext [no] default [2] extension penalty -matrix default [blosum62.bla] Matriz de Comparação. Estima a probabilidade de comparações de aminoácidos -hmmer especifica que o modelo proteico é do tipo HMM -hname Nomeia o HMM -init DEFAULT
GENEWISE genewiseprotein.pep cosmid.dna compara uma seqüência proteica a uma de DNA • genewise -hmmer pkinase.hmm cosmid.dna compara uma seqüência proteica ( HMM) a uma de DNA .
GENEWISEdb genewisedb protein.pep human.fa compara uma seqüência proteica a um banco de DNA genewisedb -hmmer pkinase.hmm human.fa compara uma seqüência proteica (HMM) a um banco de DNA genewisedb -prodb protein.pep -dnas cosmid.dnacompara um banco de seqüências proteicas a uma seqüência de DNA genewisedb -pfam Pfam -dnas cosmid.dnacompara um banco de seqüências proteicas (HMM) a uma seqüência de DNA genewisedb -prodb protein.pep human.facompara um banco de seqüências proteicas a um de seqüências de DNA genewisedb -pfam Pfam human.facompara um banco de seqüências proteicas (HMM) a uma seqüência proteica
ESTWISE estwise protein.pep singleest.fa compara uma seqüência proteica a uma de DNA estwise -hmmer pkinase.hmm singleest.fa compara uma seqüência proteica (HMM) a uma de DNA
ESTWISEdb estwisedb protein.pep est.fa compara uma seqüência proteica a um banco de DNA estwisedb -hmmer pkinase.hmm est.fa compara uma seqüência proteica (HMM) a um banco de DNA estwisedb -prodb protein.pep -dnas singleest.fa compara um banco de seqüências proteicas a uma de DNA estwisedb -pfam Pfam -dnas singleest.fa compara um banco de seqüências proteicas (HMM) a uma de DNA estwisedb -prodb protein.pep est.fa compara um banco de seqüências proteicas a um banco de DNA
genewise fly.pephuman.genomic > genewise.out ENTRADA fly.pep >ROA1_DROME P07909 HETEROGENEOUS NUCLEAR RIBONUCLEOPROTEIN A1 (HNRNP CORE PROTEIN A1-A) (PEN REPEAT CLONE P9). MVNSNQNQNGNSNGHDDDFPQDSITEPEHMRKLFIGGLDYRTTDENLKAHFEKWGNIVDVVVMKDPRTKRSRGFGFITYSHSSMIDEAQKSRPHKIDGRVVEPKRAVPRQDIDSPNAGATVKKLFVGALKDDHDEQSIRDYFQHFGNIVDINIVIDKETGKKRGFAFVEFDDYDPVDKVVLQKQHQLNGKMVDVKKALPKQNDQQGGGGGRGGPGGRAGGNRGNMGGGNYGNQNGGGNWNNGGNNWGNNRGGNDNWGNNSFGGGGGGGGGYGGGNNSWGNNNPWDNGNGGGNFGGGGNNWNNGGNDFGGYQQNYGGGPQRGGGNFNNNRMQPYQGGGGFKAGGGNQGNYGGNNQGFNNGGNNRRY
genewise fly.pephuman.genomic > genewise.out ENTRADA human.genomic >HSHNRNP ACGCAAAGCTAGGACAAACTCCCGCCAACACGCAGGCGCCGTAGGTTCACTGCCTACTCCTGCCCGCCATTTCACGTGTTCTCAGAGGCAGGTGGAACTTCTTAATGCGCCTGCGCAAAACTCGCCATTTTACTACACGTGCGGTCAACAAGAGTTCATTGCAAAAAAATTGTTACCTCCTAGCTGCTTGTCTAATACATAGTGTTAATCATGCTTTGCCAAGCGACTTGACTGTAATATTTGCGCGTGGAAGATTAAAAAGATGTTAAACACCCAAGGTAGATTCAAATGTGAATGATTGGTCGGTTGGCCAATCAGACTGGTTAACAATAACATTACTCGGGAACCAATGGACTCCAAGGGGTGGAGACGGCGTAGAACGACCGAAGGAATGACGTTACACAGCAATGTGGCACCACAGGCCAATAGCAGGGGGAAGCGATTTCAAGTATCCAATCAGAGCTGTTCTAGGGCGGAGTCTACCAATGCCGAAAGCGAGGAGGCGGGGTAAAAAAGAGAGGGCGAAGGTAGGCTGGCAGATACGTTCGTCAGCTTGCTCCTTTCTGCCCGTGGACGCCGCCGAAGAAGCATCGTTAAAGTCTCTCTTCACCCTGCCGTCATGTCTAAGTCAGAGGTGAGTTAGGCGCGCTTTCCCACTTGAATTTTTTCCTCTCCCTTTCCTGAATCGGTAAGATGCTGCTGGGTTTCGTTCCTTGCACCAGCCCATTCTACAGTTCCTTCGGTCGCTGCCACGGCCTACCCCTCCCAAAGTTCAAGTCGCCATTTTGTCCTCTTGATCGCCATGAGGCCGCTCTCCGCCAACCATGTGTTATCATGCGGGACTCGTTACTCGTAGCAAAATTCTTAGGCACACAGGATCTTTGTCTTTTTTTAAACCTTGCCTTGGTGAGCGAGTTTTCTAAAGAGCGATTAGTCCCATTGTGGAGATGCACCCCTACCGCCCAAGCCTTTGTTGCGCGTGCGTCGGAAGGCGACTAGGGACGCATGCGCTTGCGATTTCCTAGCACTCCCAACTCCAGCATACGGCCTCCCTTGATAGGCAGAAGCACGTGTCTTGTTGCGACCTGAACGAACAATAAGTGCTAGGTACACAGTTGGTGTCTAGTTTTTCTTTTCCTCGATGGAAATTGTTTCGTGTTGTAGCCCATTTAACACTTCCCCCTCCCCCCACTCTAGTCTCCTAAAGAGCCCGAACAGCTGAGGAAGCTCTTCATTGGAGGGTTGAGCTTTGAAACAACTGATGAGAGCCTGAGGAGCCATTTTGAGCAATGGGGAACGCTCACGGACTGTGTGGTAAGATTTGGAAGGGACAAAGCAGTAAAACAGCCGATTTCCTTGGCTTATCTTGGTGCAGTCTTCTCCGAATGCTTATGAAAGTAGTTAATAGCATTATAGTTAGAGCTTTGTTGGCAAAGGAACGTCCTGCTTTGATTTTAAAAGCTAACCTCTTAAATCTAAGGGTAGTGGGAAACTGGACGAACTTTTTATAAAAGGCTGGTGTAAAGTTTCCTATTGCCCTATTCAAAGTTAAAATAACAAAAGCTTTTGCGGTCAGACTTTGTGTTACATAAATTAACACTGTTCTCAGGTAATGAGAGATCCAAACACCAAGCGCTCTAGGGGCTTTGGGTTTGTCACATATGCCACTGTGGAGGAGGTGGATGCAGCTATGAATGCAAGGCCACACAAGGTGGATGGAAGAGTTGTGGAACCAAAGAGAGCTGTCTCCAGAGAAGTGAGTGGGTTTTTTTTCTTCTTCTTCTTAAACTTACTTGGATATGTGCTGCTATGAACTTAAGATTCGGGAGTTTTCTAAACTTACCAAAATTTTTTATTCGAGTATAGGCTTTGCTAATCTAAACCTATGGTTTTTCTCCTATTAGGATTCTCAAAGACCAGGTGCCCACTTAACTGTGAAAAAGATATTTGTTGGTGGCATTAAAGAAGACACTGAAGAACATCACCTAAGAGATTATTTTGAACAGTATGGAAAAATTGAAGTGATTGAAATCATGACTGACCGAGGCAGTGGCAAGAAAAGGGGCTTTGCCTTTGTAACCTTTGACGACCATGACTCCGTGGATAAGATTGTCAGTAAGTATCAGATAGTGGCATTTAGTAAGGGTTCCACAATCTGTATGGCATTCTAAACCCTGATACCATGTTGTATCTATGTTTTTTTTTTAGTTCAGAAATACCATACTGTGAATGGCCACAACTGTGAAGTTAGAAAAGCCCTGTCAAAGCAAGAGATGGCTAGTGCTTCATCCAGCCAAAGAGGTATGCTTGTTGCTTAATTAAACCTTAAAGGTAACTTTGAGTTACTCCAGTATGAATGATTTAATGCTTAAACTTCATGTCTTAAGGTCGAAGTGGTTCTGGAAACTTTGGTGGTGGTCGTGGAGGTGGTTTCGGTGGGAATGACAACTTCGGTCGTGGAGGAAACTTCAGTGGTCGTGGTATGTATGGTTTATCTACATGTAGTTCTGACTTCTCACCATCTTTGCTATGAAGATTTTACAGTACGGGAACTGCATTCAGAATGTCACTTTAAGTCCAAGTCATACTTAAAACTTGAAACTTTTTCTTACAGGTGGCTTTGGTGGCAGCCGTGGTGGTGGTGGATATGGTGGCAGTGGGGATGGCTATAATGGATTTGGCAATGATGGTAAGTTTTTTAGGAATAAGTAGAGAAAAATTCCTGGCAACCTGGATCTTTAGAATAGGTTAGTAGAGACTAAAATTCTGGTGCATGTCAAACTCAACTTTGCCCATAACACGCATGCTGTGAGCAGGCCTTCAGCCGTTACACTTGCACAAGTTTTCATTGTCAAATACTTTTGTCTTATTGAGAAGAATTGTATTCTTGTAGGTGGTTATGGAGGAGGCGGCCCTGGTTACTCTGGAGGAAGCAGAGGCTATGGAAGTGGTGGACAGGGTTATGGAAACCAGGGCAGTGGCTATGGCGGGAGTGGCAGCTATGACAGCTATAACAACGGAGGCGGAGGCGGCTTTGGCGGTGGTAGTGGTAGGTATCCAGTGATCCAAGTACTTGGTGTGACAGCTAGATTAGCCTTTTAGAGCTTGGGTTCTGGTGCTGTTGAAGCATTGTGTGGTACACTGCATGGTATATTAAAAACAAATGGGCTTGCTATGCTACCTCCTCCTAGCTTTAAGCTGGGGCCGCCTCACTCCCAAATAGTAGAGATAAGTGGATAGTGTTGTCTTTGAGTTAGATTAGTATCATAGAAGGATTTAGTATTTTAACTCCTTTGGGACCTTAGGCGCTTAGTTGATGTATCCAAGATACTTCTGCTTGCTGTGGCCCTGGATCCGTGAAGGCCTTCAAGGCTGAAGGGTATGCTTGTGCCACTCTGAAAATCTCTTTATTTTATGTCATGGTGAGTTAGGCCAGTTTTCTTTGTATTACTGGATTATTCAACTGAATGCCTTTCCCAGAGAATGAAATGCAAAGATTGGAGTCACCATAGTTTGGGAGAAAGGAAGGCTGATAACTCAACCTTATTTTATTCTGACTGCTAAACAGAATTGGAAACTAACATCATCCTCAGGTAACAGATAAAGGCCCTCTTTCCCATTCATAGGAAGCAATTTTGGAGGTGGTGGAAGCTACAATGATTTTGGGAATTACAACAATCAGTCTTCAAATTTTGGACCCATGAAGGGAGGAAATTTTGGAGGCAGAAGCTCTGGCCCCTATGGCGGTGGAGGCCAATACTTTGCAAAACCACGAAACCAAGGTATGGTATCTATGTAATTTTGGATAATGTCAAAAGAGTGTCTGTAGCTACTGCTGGGAAGAAAGCCCTTTAACTGCTATGTCTGGGCAGCAAAACGTTTATAGTTTAGAACCTTCAGAAAGTGATAATTTGATCACAAATTAGAAAAATCATGGGACCTCTTTACCACCTCCCTTGTAGTAGGGCCATTTTTAAATGGCCAGACACTTGAATTTAACTTTTATTATCCCAAATATGAAAACATTACTGTTGGCACTTTGAAACTTTAAAAGAAAAATTGTACTTTTCAGGTGGCTATGGCGGTTCCAGCAGCAGCAGTAGCTATGGCAGTGGCAGAAGATTTTAATTAGGTAAGTAAGCACCTTTTTGTGTGTTGACATAATTTTTTAAATTGCTGATGAACCCAATAACCCTAATGTAGCTGAGCAGTGCAACATAGTTAACATTATAATTGCAGTAATTGTGGATATAAAGTTAATATTCAGATCAGCAAAATTTGTGGGAAACAAACTTGATATTGGATTGTAGCCTTGAGTCTTAATATGTTTAGATTAACAACTCTATTCCATATTGTTCAACAGGAAACAAAGCTTAGCAGGAGAGGAGAGCCAGAGAAGTGACAGGGAAGCTACAGGTTACAACAGATTTGTGAACTCAGC
Query protein: ROA1_DROME Comp Matrix: blosum62.bla Gap open: 12 Gap extension: 2 Start/End default Target Sequence HSHNRNPA Strand: forward Start/End (protein) default Gene Paras: human.gf Codon Table: codon.table Subs error: 1e-05 Indel error: 1e-05 Model splice? model Model codon bias? flat Model intron bias? tied Null model syn Algorithm 623 genewise output Score 253.10 bits over entire alignment Scores as bits over a synchronous coding model Warning: The bits scores is not probablistically correct for single seqs genewise.out SAÍDA
ROA1_DROME 26 EPEHMRKLFIGGLDYRTTDENLKAHFEKWGNIVDVV EPE +RKLFIGGL + TTDE+L++HFE+WG + D V EPEQLRKLFIGGLSFETTDESLRSHFEQWGTLTDCV HSHNRNPA 1206 gcgccaactaggtatgaaggacaactgctgacagtg acaatgatttggtgtaccaagtggataaggctcagt gcaggggcctaggctaattgcggcttgagagcgctg ROA1_DROME 62 VMKDPRTKRSRGFGFITYSHSSMIDE VM+DP TKRSRGFGF+TY+ +D VMRDPNTKRSRGFGFVTYATVEEVDA HSHNRNPA 1314 GTAAGAT Intron 1 CAGgaagcaaactagtgtgatgagggggg <0-----[1314 : 1608]-0>ttgacacagcggtgttcacctaatac agataccgctgctgtcatctggggta ROA1_DROME 88 AQKSRPHKIDGRVVEPKRAVPRQ DID A +RPHK+DGRVVEPKRAV R+ D AMNARPHKVDGRVVEPKRAVSRE DSQ HSHNRNPA 1687 gaagaccagggagggcaaggtagGTGAGTG Intron 2 TAGgtc ctacgcaataggttacagctcga<0-----[1756 : 1903]-0>aca tgtagacggtaatgaagatccaa tta ROA1_DROME 114 SPNAGATVKKLFVGALKDDHDEQSIRDYFQHFGNIVDINIVIDKETGKK P A TVKK+FVG +K+D +E +RDYF+ +G I I I+ D+ +GKK RPGAHLTVKKIFVGGIKEDTEEHHLRDYFEQYGKIEVIEIMTDRGSGKK HSHNRNPA 1913 acggctagaaatgggaaggaggcccagttgctgaaggagaaagcgagaa gcgcatctaatttggtaaacaaaatgaataaagatattattcaggggaa aatccatgagatttctaactaatcaatttagtaatagtacgtcactcga SAÍDA
Alignment 1 Score 35.31 (Bits) SEED 1 CAPNN-PCSNGGTCVNTPGGSSDNFGGYTCECPPGDYYLSYTGKRC CA++ C++ +CVN + +++C+C PG Y L+ + K C CAEGGHGCQH--QCVNAWA-------MFHCTCNPG-YKLAADNKSC EM:HS453C12 132851 tggggcgtccctgagtgatctatacgtacgggaaat gcaggaggaaagtacgcttagcgacgaatccaaagg ttggattcgcatctcgcgccccccacCGAAATCGCT Alignment 2 Score 45.92 (Bits) SEED 1 CAPNN-PCSNGGTCVNTPGGSSDNFGGYTCECPPGDYYLSYTGKRC CA+++ C + CVN+PG +Y+C+C++G +L+ + + C CAEGTHGCEH--HCVNSPG-------SYFCHCQVG-FVLQQDQRSC EM:HS453C12 134919 tgggacgtgc ctgatcg ttttctcgg tgcccgcaat gcagcaggaa agtaccg catgagatg tttaaaaggg ttagctatgc ccctcac ctctccatc tacggcggcc Ex 2
tggcatggggcgcaggttctctatacaccccccgcccccggctgccaggctctgcggcctcaccttggaactacagggcaagagcttcttccagggggtgaggttttcggtgcagaccacctcccgcggcagcacagcatagcgcagaaagtagtggtcagtgtctgagggagacagaggtctgtctggggtgggccttgggctctgacccctcgggatccacattccagagatgggaatgaccctcctgctccccacaccacctctagcaccacagtctggacagtcccaactgggagtaggactcccttctctccttgggaaaaggcatgcagagatggcacagtattgggggcctgcacacacaggggacttaggatctagcccaggctgaggaagcaggaaactgagggaaaaggaggcaaaggtttgggcaggaggtaagaggaagaaggaaagggctgtaggggttatctcaccattggccagacccaggggtttgaaggaggcagtgggagtgactgtgttggtggagtcgatgaagttgagagaggcgcagaagatccctgagaggacattactgagctccttccaagatttatccacactggatagagacacaaatccactcactgtcctggggctacctctgctccctctttcaaagtccacagctggctgctaaacctatgataggaggaggctgtattcttaactattagacgggccagttgatggagctggaacattgctgcccccagccagcccacttgctgggtctcatcctactcagccccttcttcctcactctcctctggacatctctgcatccccatgggtctctgctcaggtgattcttccttccttgcaagcctttgctaacttctttctgcctaccttcatgatccggctccagtgcttacctcccctccacgaagcctttcctgccctccttaagcacagtctcctctgtgcagtcacggttctgaccatccaagcatcttactaggtccctcctgggagatggctaggtggcagcagcatcgtgtcctgaccaccttttctccctaactaggctgtaagcaacttgaggacaaggaccagtctgggtcatctatgtacttcccctgacaccatggaaagcgcctcatgtatcagagctgaaatgagctcactgatcttccttgaatgtgctgggctgggcaaaacaatgcatactaccctgtgtatactctgggaataaaggtaagtcctgattctactatcatggtgagaagtcttatatccaaaaaagctcactgaacatgggaaaaacaactgttctaggatttcataaaaacatcaaattaaattaatgttcttttcttggagaaatatcaaaagagatttgctctcagtaatagagaaagcataaaacttaataagcactagaaagaattctaagcatttgctccacatttcaggcaattacgggctgagggaagacagtgacagcagagtagacaggaaagggtaggggagccagagttgaggcaagagagaaagtcttggcaagctggggagttactgcttattccttattccttagtgttgtccaggagcttttgataattctatgttcagagcttttcaactgctccaatccttaagcctcaaataaaaatggcaaacttgaagccggaaagctctactcaaaccataaacatgcttcatttggtatgcacaacattgacccgcacagcactcaaaaaatttttaaattacttgctgatatttgaatttgccaattttcacattaaattccagatttctggtatctcttgaaaaatgaggccaggtgtggtggctcttgcctgtaatcccaacactttgggaggctgaggcaggaggatCGCTtgaacccaggagttcgagaccagcctgggcaatatagtgagaccttgtttctacaaaaaatttttagaaacatttgactctgaccacattaggcctctattcccacatggcaacaatccatagaagctgagtggcagagctgtcctcgtggcatggggcgcaggttctctatacaccccccgcccccggctgccaggctctgcggcctcaccttggaactacagggcaagagcttcttccagggggtgaggttttcggtgcagaccacctcccgcggcagcacagcatagcgcagaaagtagtggtcagtgtctgagggagacagaggtctgtctggggtgggccttgggctctgacccctcgggatccacattccagagatgggaatgaccctcctgctccccacaccacctctagcaccacagtctggacagtcccaactgggagtaggactcccttctctccttgggaaaaggcatgcagagatggcacagtattgggggcctgcacacacaggggacttaggatctagcccaggctgaggaagcaggaaactgagggaaaaggaggcaaaggtttgggcaggaggtaagaggaagaaggaaagggctgtaggggttatctcaccattggccagacccaggggtttgaaggaggcagtgggagtgactgtgttggtggagtcgatgaagttgagagaggcgcagaagatccctgagaggacattactgagctccttccaagatttatccacactggatagagacacaaatccactcactgtcctggggctacctctgctccctctttcaaagtccacagctggctgctaaacctatgataggaggaggctgtattcttaactattagacgggccagttgatggagctggaacattgctgcccccagccagcccacttgctgggtctcatcctactcagccccttcttcctcactctcctctggacatctctgcatccccatgggtctctgctcaggtgattcttccttccttgcaagcctttgctaacttctttctgcctaccttcatgatccggctccagtgcttacctcccctccacgaagcctttcctgccctccttaagcacagtctcctctgtgcagtcacggttctgaccatccaagcatcttactaggtccctcctgggagatggctaggtggcagcagcatcgtgtcctgaccaccttttctccctaactaggctgtaagcaacttgaggacaaggaccagtctgggtcatctatgtacttcccctgacaccatggaaagcgcctcatgtatcagagctgaaatgagctcactgatcttccttgaatgtgctgggctgggcaaaacaatgcatactaccctgtgtatactctgggaataaaggtaagtcctgattctactatcatggtgagaagtcttatatccaaaaaagctcactgaacatgggaaaaacaactgttctaggatttcataaaaacatcaaattaaattaatgttcttttcttggagaaatatcaaaagagatttgctctcagtaatagagaaagcataaaacttaataagcactagaaagaattctaagcatttgctccacatttcaggcaattacgggctgagggaagacagtgacagcagagtagacaggaaagggtaggggagccagagttgaggcaagagagaaagtcttggcaagctggggagttactgcttattccttattccttagtgttgtccaggagcttttgataattctatgttcagagcttttcaactgctccaatccttaagcctcaaataaaaatggcaaacttgaagccggaaagctctactcaaaccataaacatgcttcatttggtatgcacaacattgacccgcacagcactcaaaaaatttttaaattacttgctgatatttgaatttgccaattttcacattaaattccagatttctggtatctcttgaaaaatgaggccaggtgtggtggctcttgcctgtaatcccaacactttgggaggctgaggcaggaggatCGCTtgaacccaggagttcgagaccagcctgggcaatatagtgagaccttgtttctacaaaaaatttttagaaacatttgactctgaccacattaggcctctattcccacatggcaacaatccatagaagctgagtggcagagctgtcctcg
Proteína DNA/cDNA Verificação de validade de arquivos e de argumento de entrada Tradução de uma seqüência de DNA • Construção de uma tabela de códons de um arquivo • Construção de um objeto seqüência de um arquivo ( DNA/cDNA) • Uso da função translate no objeto seqüência Comparação de duas seqüências usando Smith Waterman • Construção de uma matriz de comparação • Utilizar a matriz de comparação • Mostrar o alinhamento
Verificação de validade de arquivos e de argumento de entrada • "commandline.dy" • Os arquivos de entrada estão no modo FASTA? • Os argumentos de pesquisa, precedidos por ‘- ‘ são válidos?
Tradução de uma seqüência de DNA Construção de uma tabela de códons de um arquivo /* Function: base_from_char(c) * * Descrip: mapeia um char (atcgn) em um número, * case insensitive base base_from_char(char c) { c = (char)toupper((int)c); ** switch(c) { case 'A' : return BASE_A; case 'T' : return BASE_T; case 'G' : return BASE_G; case 'C' : return BASE_C; case 'N' : return BASE_N; default : return BASE_N; } } Opção de mapeamento simultâneo de bases complementares switch(c) { case 'A' : return BASE_T; case 'T' : return BASE_A; case 'G' : return BASE_C; case 'C' : return BASE_G; case 'N' : return BASE_N; default : return BASE_N; }
Tradução de uma seqüência de DNA Construção de uma tabela de códons de um arquivo 5³ = 125 A C T G N 20 Aminoácidos • Freqüência das bases no DNA entrada • probabilidade de uma base ocupar uma determinada posição no aminoácido A: GCTGCCGCAGCG
Tradução de uma seqüência de DNA Construção de um objeto seqüência de um arquivo ( DNA/cDNA) • Manutenção de bases com baixa probabilidade * • Manutenção de bases com alta probabilidade ** • Substituição de bases prováveis para melhor casamento com respectivos aminoácidos
Tradução de uma seqüência de DNA Uso da função translate no objeto seqüência code é um array de 65 strings, representando a tradução dos 64 códons em ordem AAA, AAC, AAG, AAU, ..., UUA, UUC, UUG, UUU. char * Translate(char *seq, char **code) { int codon; /* index for codon */ char *aaseq; /* RETURN: the translation */ char *aaptr; /* ptr into aaseq */ int i; if (seq == NULL) { squid_errno = SQERR_NODATA; return NULL; } if ((aaseq = (char *) calloc (strlen(seq) + 1, sizeof(char))) == NULL) Die("calloc failed"); aaptr = aaseq; for (; *seq != '\0' && *(seq+1) != '\0' && *(seq+2) != '\0'; seq += 3) { /* calculate the lookup value for this codon */ codon = 0; for (i = 0; i < 3; i++) { codon *= 4; switch (*(seq + i)) { case 'A': case 'a': break; case 'C': case 'c': codon += 1; break; case 'G': case 'g': codon += 2; break; case 'T': case 't': codon += 3; break; case 'U': case 'u': codon += 3; break; default: codon = 64; break; } if (codon == 64) break; } strcpy(aaptr, code[codon]); aaptr += strlen(code[codon]); } return aaseq;} ***** no final do objeto seqüência
Comparação de duas seqüências usando Smith Waterman Smith Waterman algorithm (Pseudo-code) N = length of sequence 1 M = length of sequence 2 best = -infinity Match[N][M] = -infinity Insert[N][M] = -infinity Delete[N][M] = -infinity for( i goes 0 to N-1) for( j goes 0 to M-1) Match(i,j) = max { 0, Match(i-1,j-1), Insert(i-1,j-1), Delete(i-1,j-1) } + MatchScore(seq[i],seq[j]) Insert(i,j) = max { Match(i-1,j) - gap_open, Insert(i-1,j) - gap_ext } Delete(i,j) = max { Match(i,j-1) - gap_open, Delete(i,j-1) - gap_ext } best = max(best,Match(i,j)) return best • 2 Seqüências • Matriz de comparação de 20x20 aminoácidos • Penalidade Open Gap • Penalidade Extensão GAP int gap = (+2); int ext = (+1); int match = (+4); int mismatch = (-3)
Alignment 1 Score 35.31 (Bits) SEED 1 CAPNN-PCSNGGTCVNTPGGSSDNFGGYTCECPPGDYYLSYTGKRC CA++ C++ +CVN + +++C+C PG Y L+ + K C CAEGGHGCQH--QCVNAWA-------MFHCTCNPG-YKLAADNKSC EM:HS453C12 132851 tggggcgtccctgagtgatctatacgtacgggaaat gcaggaggaaagtacgcttagcgacgaatccaaagg ttggattcgcatctcgcgccccccacCGAAATCGCT Alignment 2 Score 45.92 (Bits) SEED 1 CAPNN-PCSNGGTCVNTPGGSSDNFGGYTCECPPGDYYLSYTGKRC CA+++ C + CVN+PG +Y+C+C++G +L+ + + C CAEGTHGCEH--HCVNSPG-------SYFCHCQVG-FVLQQDQRSC EM:HS453C12 134919 tgggacgtgc ctgatcg ttttctcgg tgcccgcaat gcagcaggaa agtaccg catgagatg tttaaaaggg ttagctatgc ccctcac ctctccatc tacggcggcc