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

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

The Bioperl toolkit: Perl modules for the life sciences Daniel Guariz Pinheiro, PhD. L aboratório de G enética M olecular e B ioinformática + DBI + CGI.

Apresentações semelhantes


Apresentação em tema: "The Bioperl toolkit: Perl modules for the life sciences Daniel Guariz Pinheiro, PhD. L aboratório de G enética M olecular e B ioinformática + DBI + CGI."— Transcrição da apresentação:

1 The Bioperl toolkit: Perl modules for the life sciences Daniel Guariz Pinheiro, PhD. L aboratório de G enética M olecular e B ioinformática + DBI + CGI

2 O que é BioPerl ? Projeto de colaboração open-source internacional (1996- …) Biblioteca de módulos Perl Soluções para a Pesquisa em Bioinformática, Genômica e Ciências Biológicas; Tarefas complexas e rotineiras utilizando algumas poucas linhas de código; Análise e anotação de seqüências e outras áreas; Licenciado sob a Perl Artistic License; Open Bioinformatics Foundation ( ) Introdução Open Bioinformatics Foundation

3 Reinvenção da roda Pode não ser tão eficiente quanto o esperado!

4 Referências 1: Stajich JE, Block D, Boulez K, Brenner SE, Chervitz SA, Dagdigian C, Fuellen G, Gilbert JG, Korf I, Lapp H, Lehväslaiho H, Matsalla C, Mungall CJ, Osborne BI, Pocock MR, Schattner P, Senger M, Stein LD, Stupka E, Wilkinson MD, Birney E. The Bioperl toolkit: Perl modules for the life sciences. Genome Res Oct;12(10): Arquitetura Geral do Pacote BioPerl 2: Stein LD, Mungall C, Shu S, Caudy M, Mangone M, Day A, Nickerson E, Stajich JE, Harris TW, Arva A, Lewis S. The generic genome browser: a building block for a model organism system database. Genome Res Oct;12(10): Gbrowse – Visualização de Genomas 3: Stajich JE, Hahn MW. Disentangling the effects of demography and selection in human history. Mol Biol Evol Jan;22(1): Epub 2004 Sep 8. GenPop – Genética de Populações Sendu Bala Christopher Fields Hilmar Lapp Heikki Lehväslaiho Aaron Mackey Brian Osborne Jason Stajich Lincoln Stein Responsáveis BioPerl Principais artigos científicos VSNS-BCD – Universität Bielefeld

5 Citações Dados (www.bioperl.org) 1998 – meados 2008 ~600 (projetos e artigos) ~44 (livros) 3 (patentes)

6 Paradigma de programação FUNCIONAMENTO FUNCIONAMENTO: RELACIONAMENTOS E TROCAS DE MENSAGENS ENTRE OS OBJETOS Programação Modular Programação Orientada a Objetos Representação dos conceitos em um sistema - Objetos - Classe (definição) - Comportamento (métodos) - Estados possíveis (atributos) - Relacionamento com outros objetos

7 Conceitos - I Classe: É a modelagem de um conceito do mundo real (abstração de um objeto). As propriedades associadas ao conceito são representadas por atributos e operações. Objeto ou Instância (de uma classe): É a concretização da classe em uma entidade lógica, que contém dados (atributos) e código para manipulá-los (métodos). Cada objeto pertence a uma classe. Mensagem: Comunicação entre objetos. Se manda uma mensagem a um objeto para pedir a ele executar uma operação particular.

8 Conceitos - II Herança: (Especialização/generalização) é o mecanismo pelo qual uma classe (sub- classe) pode estender outra classe (super-classe), aproveitando seus métodos e atributos. No modelo a objetos, uma sub-classe possui todos os atributos e todas as operações da super-classe. A sub-classe pode acrescentar alguns atributos e métodos. Ela pode também redefinir alguns métodos da super-classe. Ela não pode tirar nenhuma propriedade da super-classe. Encapsulamento: Detalhes da implementação são transparentes a quem manipula o objeto; Polimorfismo: É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos. Interface: A Interface é uma classe que possui apenas as especificações sem a implementação.

9 Diagrama de Classes As classes Circle, Square e Triangle redefinem os métodos draw() e erase() da Superclasse Shape

10 – Ênfase nos dados – Modularidade – Reusabilidade – Produtividade – Manutenibilidade – etc... – Melhor representação do mundo real – Ênfase nos dados – Modularidade – Reusabilidade – Produtividade – Manutenibilidade... Vantagens (POO)

11 Desvantagens (POO) – Desempenho baixo no tempo de execução em relação ao código estruturado; – Apropriação (Classes – atributos e métodos – e Hierarquia de classes) – Fragilidade (Necessidade de definições precisas das classes – requer análise cuidadosa do projeto)...

12 package Sequence; sub new { my ($class, $id, $seq, $strand) my $self = bless {}, $class; $self->set_sequence($id,$seq,$strand); return $self; } sub set_sequence { my ($self, $id, $seq, $strand) $self->{ ' sequence ' } = { ' id ' => $id, ' seq ' => $seq, ' strand ' => $strand}; } sub display_fasta_sequence { my $self = shift; my $seq = $self->{ ' sequence ' }->{ ' seq ' }; $seq=~s/(.{1,60})/$1\n/g; print ">$self->{ ' sequence ' }->{ ' id ' }\n$seq"; } 1; Sequence.pm POO em Perl use Sequence; my $seq = Sequence->new( ' Seq1 ', ' ACCACGATCACATG ', ' + ' ); $seq->display_fasta_sequence(); seq.pl Definições simplificadas: Um objeto é simplesmente uma referência à classe a qual ele pertence; Uma classe é simplesmente um pacote que provê métodos para lidar com as referências do objeto; Um método é simplesmente uma sub-rotina que espera uma referência ao objeto como primeiro argumento;

13 CPAN Comprehensive Perl Archive Network Coleção de módulos em Perl e documentação Exemplos: DBD::mysql ; DBI; CGI; GD;

14 Application Programming Interface (API) Conjunto de rotinas e padrões (convenções) estabelecidos por uma aplicação para a utilização/extensão de suas funcionalidades. Provê uma interface de alto nível para uma determinada aplicação. Bio::Perl - API simplificada Exemplo: # Lê um todas as seqüências de um arquivo multifasta = read_all_sequences($filename,'fasta');

15 Arquitetura geral do BioPerl Programação Orientada a Objetos (POO) API (Application Programming Interface) Princípios: Separação entre Interface e Implementação; Generalização de rotinas comuns em um único módulo; Utilização de certos padrões de desenvolvimento reconhecidos (Design Patterns);

16 Separação entre Interface e Implementação Interface (Tipos Abstratos de Dados) Contrato de como os métodos devem ser invocados; I – adicionado ao nome da classe (Ex.: Bio::SeqI e Bio::Seq; Bio::SeqFeatureI e Bio::SeqFeature)

17 Generalização de rotinas comuns (único módulo) Exemplos: Operações básicas de IO (input/output) – Bio::Root::IO Operações de IO (input/output) seqüências – Bio::SeqIO Operações básicas de acesso web – Bio::Root::HTTPget Operações de acesso web – Bio::DB::GenBank

18 Utilização de Padrões de Desenvolvimento Factory – adição de módulos responsáveis pela criação automática de objetos Factory – adicionado ao nome da classe (Ex.: Bio::Seq::SeqFactory - Bio::PrimarySeq ou Bio::Seq::Qual) Strategy – seleção dinâmica de algoritmos Ex.: next_seq() da classe Bio::SeqIO (Diferentes implementações, uma para cada um dos parsers) – seleção em tempo de execução

19 Características Escrito puramente em Perl Padrão de desenvolvimento rigoroso Orientações para a padronização do cógido Testes exaustivos Documentação (POD - Plain Old Documentation) perldoc Requer compilador Perl v5.005 ou superior Plataformas suportadas (Sistemas Operacionais) UNIX-like Linux, Solaris, FreeBSD, … Windows

20 Principais Módulos Bio::SeqSeqüências e suas propriedades Bio::SeqFeature Anotação de seqüências com seus atributos Bio::DB Acesso a bancos de dados de seqüências Bio::SeqIO Usado para ler e gravar seqüências em diferentes formatos Bio::DB::Query::GenBank Consultas a bancos de dados de seqüências (GenBank) Bio::SearchIOObter dados de resultados (Ex.: blast) Bio::Location Manipulação de coordenadas de seqüências Bio::Graphics Gerar imagens de seqüências e atributos de seqüências

21 Documentação $ perldoc Bio::SeqIO

22 Bio::Seq use Bio::Seq; my $sequence_as_string = 'ACGTACAGTACAGTACTAGAAACGTA'; my $seqobj = Bio::Seq->new(-display_id => 'my_id', -seq => $sequence_as_string); print $seqobj->display_id(),"\n"; print $seqobj->seq(),"\n"; print $seqobj->translate()->seq(),"\n"; print $seqobj->trunc(5,10)->revcom()->seq(),"\n"; my $subseqstr = $seqobj->subseq(5,10); print $subseqstr,"\n"; my $revcom = $seqobj->revcom(); print $revcom,"\n"; print $revcom->seq(),"\n"; print $seqobj->desc(),"\n";

23 Bio::SeqFeature::Generic use Bio::Seq; use Bio::SeqFeature::Generic; my $seqobj = Bio::Seq->new(-display_id => 'my_id', -seq => 'ACGTACAGTACAGTACTAGAAACGTA'); my $feat = new Bio::SeqFeature::Generic (-start => 5, -end => 15,-strand => -1, -primary_tag => 'repeat', -display_name => 'alu family', -tag=>{ test=>[1,2,3], author=>'someone' } ); $seqobj->add_SeqFeature($feat); = $seqobj->get_SeqFeatures(); foreach my $feat ) { print "Feature ",$feat->primary_tag," starts ",$feat->start," ends ", $feat->end," strand ",$feat->strand,"\n"; print "Feature sequence is ",$feat->seq->seq(),"\n"; foreach my $tag ( $feat->get_all_tags() ) { print "\t",$tag,"\n"; foreach my $value ( $feat->each_tag_value($tag) ) { print "\t\t",$value,"\n"; } repeat test author someone primary_tag tagtag valuetagtag value

24 Bio::DB::GenBank use Bio::DB::GenBank; my $gb = new Bio::DB::GenBank; my $seqobj = $gb->get_Seq_by_acc('J00522'); #my $seqobj = $gb->get_Seq_by_version('J '); #my $seqobj = $gb->get_Seq_by_gi('195052'); = $seqobj->get_SeqFeatures(); foreach my $feat ) { print "Feature ",$feat->primary_tag," starts ",$feat->start," ends ", $feat->end," strand ",$feat->strand,"\n"; print "Feature sequence is ",$feat->seq->seq(),"\n"; foreach my $tag ( $feat->get_all_tags() ) { print "\t",$tag,"\n"; foreach my $value ( $feat->each_tag_value($tag) ) { print "\t\t",$value,"\n"; }

25 GenBank LOCUS NM_ bp mRNA linear PRI 27-JAN-2008 DEFINITION Homo sapiens hemoglobin, beta (HBB), mRNA. ACCESSION NM_ VERSION NM_ GI: KEYWORDS. SOURCE Homo sapiens (human) ORGANISM Homo sapiens Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini; Catarrhini; Hominidae; Homo. REFERENCE 1 (bases 1 to 626) AUTHORS Ma,Q., Abel,K., Sripichai,O., Whitacre,J., Angkachatchai,V., Makarasara,W., Winichagoon,P., Fucharoen,S., Braun,A. and Farrer,L.A. TITLE Beta-globin gene cluster polymorphisms are strongly associated with severity of HbE/beta(0)-thalassemia JOURNAL Clin. Genet. 72 (6), (2007) PUBMED REMARK GeneRIF: Forty-five SNPs within the interval including the LCR region and the delta gene showed strong association with disease severity. COMMENT REVIEWED REFSEQ: This record has been curated by NCBI staff. The reference sequence was derived from L On Feb 11, 2003 this sequence version replaced gi: Summary: The alpha (HBA) and beta (HBB) loci determine the structure of the 2 types of polypeptide chains in adult hemoglobin, Hb A. The normal adult hemoglobin tetramer consists of two alpha chains and two beta chains. Mutant beta globin causes sickle cell anemia. Absence of beta chain causes beta-zero-thalassemia. Reduced amounts of detectable beta globin causes beta-plus-thalassemia. The order of the genes in the beta-globin cluster is 5'-epsilon -- gamma-G -- gamma-A -- delta -- beta--3'. Publication Note: This RefSeq record includes a subset of the publications that are available for this gene. Please see the Entrez Gene record to access additional publications. COMPLETENESS: full length. FEATURES Location/Qualifiers source /organism="Homo sapiens" /mol_type="mRNA" /db_xref="taxon:9606" /chromosome="11" /map="11p15.5" gene /gene="HBB" /note="hemoglobin, beta; synonyms: HBD, CD113t-C" /db_xref="GeneID:3043" /db_xref="HGNC:4827" /db_xref="HPRD:HPRD_00786" /db_xref="MIM:141900" exon /gene="HBB" /inference="alignment:Splign" /number=1 CDS /gene="HBB" /GO_component="hemoglobin complex [PMID ] [PMID ]" /GO_function="heme binding; hemoglobin binding [PMID ]; iron ion binding; metal ion binding; oxygen binding [PMID ]; oxygen transporter activity [PMID ] [PMID ]; selenium binding [PMID ]" /GO_process="nitric oxide transport [PMID ]; oxygen transport [PMID ] [PMID ]; positive regulation of nitric oxide biosynthesis [PMID ]; transport /note="beta globin chain" /codon_start=1 /product="beta globin" /protein_id="NP_ " /db_xref="GI: " /db_xref="CCDS:CCDS7753.1" /db_xref="GeneID:3043" /db_xref="HGNC:4827" /db_xref="HPRD:HPRD_00786" /db_xref="MIM:141900" /translation="MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFE SFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPE NFRLLGNVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH" exon /gene="HBB" /inference="alignment:Splign" /number=2 exon /gene="HBB" /inference="alignment:Splign" /number=3 polyA_signal /gene="HBB" polyA_site 626 /gene="HBB" ORIGIN 1 acatttgctt ctgacacaac tgtgttcact agcaacctca aacagacacc atggtgcatc 61 tgactcctga ggagaagtct gccgttactg ccctgtgggg caaggtgaac gtggatgaag 121 ttggtggtga ggccctgggc aggctgctgg tggtctaccc ttggacccag aggttctttg 181 agtcctttgg ggatctgtcc actcctgatg ctgttatggg caaccctaag gtgaaggctc 241 atggcaagaa agtgctcggt gcctttagtg atggcctggc tcacctggac aacctcaagg 301 gcacctttgc cacactgagt gagctgcact gtgacaagct gcacgtggat cctgagaact 361 tcaggctcct gggcaacgtg ctggtctgtg tgctggccca tcactttggc aaagaattca 421 ccccaccagt gcaggctgcc tatcagaaag tggtggctgg tgtggctaat gccctggccc 481 acaagtatca ctaagctcgc tttcttgctg tccaatttct attaaaggtt cctttgttcc 541 ctaagtccaa ctactaaact gggggatatt atgaagggcc ttgagcatct ggattctgcc 601 taataaaaaa catttatttt cattgc // FASTA (Pearson) >gi| |ref|NM_ | Homo sapiens hemoglobin, beta (HBB), mRNA ACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTCAAACAGACACCATGGTGCATCTGACTCCTGA GGAGAAGTCTGCCGTTACTGCCCTGTGGGGCAAGGTGAACGTGGATGAAGTTGGTGGTGAGGCCCTGGGC AGGCTGCTGGTGGTCTACCCTTGGACCCAGAGGTTCTTTGAGTCCTTTGGGGATCTGTCCACTCCTGATG CTGTTATGGGCAACCCTAAGGTGAAGGCTCATGGCAAGAAAGTGCTCGGTGCCTTTAGTGATGGCCTGGC TCACCTGGACAACCTCAAGGGCACCTTTGCCACACTGAGTGAGCTGCACTGTGACAAGCTGCACGTGGAT CCTGAGAACTTCAGGCTCCTGGGCAACGTGCTGGTCTGTGTGCTGGCCCATCACTTTGGCAAAGAATTCA CCCCACCAGTGCAGGCTGCCTATCAGAAAGTGGTGGCTGGTGTGGCTAATGCCCTGGCCCACAAGTATCA CTAAGCTCGCTTTCTTGCTGTCCAATTTCTATTAAAGGTTCCTTTGTTCCCTAAGTCCAACTACTAAACT GGGGGATATTATGAAGGGCCTTGAGCATCTGGATTCTGCCTAATAAAAAACATTTATTTTCATTGC Principais Formatos dos BDs Flat files do NCBI/EBI EMBL ID AY standard; mRNA; HUM; 647 BP. XX AC AY509193; XX SV AY XX DT 20-JAN-2004 (Rel. 78, Created) DT 16-APR-2005 (Rel. 83, Last updated, Version 2) XX DE Homo sapiens hemoglobin beta mRNA, complete cds. XX KW. XX OS Homo sapiens (human) OC Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia; OC Eutheria; Euarchontoglires; Primates; Catarrhini; Hominidae; Homo. XX FH Key Location/Qualifiers FH FT source FT /db_xref="taxon:9606" FT /mol_type="mRNA" FT /organism="Homo sapiens" FT /isolation_source="recovered SARS patient" FT /cell_type="lymphocyte" FT CDS FT /codon_start=1 FT /db_xref="GOA:Q6R7N2" FT /db_xref="HSSP:1BAB" FT /db_xref="InterPro:IPR000971" FT /db_xref="InterPro:IPR002337" FT /db_xref="InterPro:IPR012292" FT /db_xref="UniProtKB/TrEMBL:Q6R7N2" FT /note="differentially expressed in lymphocyte of SARS FT patient" FT /product="hemoglobin beta" FT /protein_id="AAR " FT /translation="MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRLFES FT FGDLFTPDAVMGNPKVKAHGKKVLGAFSDGPAHLDNLKGTFATLSELHCDKLHVDPENF FT RLLGNVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH" XX SQ Sequence 647 BP; 159 A; 158 C; 165 G; 165 T; 0 other; acatttgctt ctgacacaac tgtgttcact agcaacctca aacagacacc atggtgcacc 60 tgactcctga ggagaagtct gccgttactg ccctgtgggg caaggtgaac gtggatgaag 120 ttggtggtga ggccctgggc aggctgctgg tggtctaccc ttggacccag aggctctttg 180 agtcctttgg ggatctgttc actcctgatg ctgttatggg caaccctaag gtgaaggctc 240 atggcaagaa agtgctcggt gcctttagtg atggcccggc tcacctggac aacctcaagg 300 gcacctttgc cacactgagt gagctgcact gtgacaagct gcacgtggat cctgagaact 360 tcaggctcct gggcaacgtg ctggtctgtg tgctggccca tcactttggc aaagaattca 420 ccccaccagt gcaggctgcc tatcagaaag tggtggctgg tgtggctaat gccctggccc 480 acaagtatca ctaagctcgc tttcttgctg tccaatttct attaaaggtt cctttgttcc 540 ctaagtccaa ctactaaact gggggatatt atgaagggcc ttgagcatct ggattctgcc 600 taataaaaaa catttatttt cattgaaaaa aaaaaaaaaa aaaaaaa 647 //

26 Bio::SeqIO use Bio::SeqIO; my $in = Bio::SeqIO->new( -file => "./NAT2.gbwithparts" ); my $out = Bio::SeqIO->new( -file => ">./NAT2.embl", -format=> 'EMBL' ); while ( my $seq = $in->next_seq() ) { print $seq->display_id(),"\t",$seq->desc(),"\n"; $out->write_seq($seq); }

27 Bio::DB::Query::GenBank use Bio::DB::Query::GenBank; use Bio::DB::GenBank; # get a stream via a query string my $query = Bio::DB::Query::GenBank->new( -query =>'NAT2[Gene Name] AND Homo sapiens[Organism] AND mRNA[Filter]', -db => 'nucleotide'); my $count = $query->count(); print "Found $count entries\n"; # get a genbank database handle my $gb = new Bio::DB::GenBank; my $stream = $gb->get_Stream_by_query($query); while (my $seq = $stream->next_seq) { print $seq->display_id(),"\t",$seq->desc(),"\n"; }

28 Bio::Location use Bio::SeqIO; my $in = Bio::SeqIO->new( -file => "./ame_ref_chrLG16.gbk" ); while ( my $seq = $in->next_seq() ) { print $seq->display_id, "\n"; for my $feature ( $seq->get_SeqFeatures ) { next unless ( $feature->primary_tag eq 'mRNA'); if ($feature->has_tag('gene')) { my ($name) = $feature->get_tag_values('gene'); my $exonct = 1; print "\t",$name,"\n"; for my $exon ($feature->location->each_Location ) { # print " ",$exon->start, "..",$exon->end,"\n"; my $exonseq = $seq->trunc($exon); $exonseq->display_id($name.".exon".$exonct++); # print "\t\t",$exonseq->display_id(),"\n"; } print "Exon count: $exonct\n"; my $spliced = $feature- >spliced_seq; print $spliced,"\n; # print $spliced->seq(),"\n"; }

29 Bio::SearchIO use Bio::SearchIO; my $searchio = new Bio::SearchIO( -format => 'blast', -file => 'blast/blast_output'); while( my $result = $searchio->next_result ) { print $result->query_accession(),"\n"; while( my $hit = $result->next_hit ) { print "\t",$hit->accession(),"\t",$hit->description(),"\n"; while( my $hsp = $hit->next_hsp ) { print "\t\t",'Score: ',$hsp->score(),"\n"; print "\t\t",'Identity: ',$hsp->percent_identity(),"\n"; print "\t\t",'e-value: ',$hsp->evalue(),"\n"; print "\t\t",'Query (start,end): ', $hsp->start('query'),', ',$hsp->end('query'),"\n"; print "\t\t",'Subject (start,end): ', $hsp->start('subject'),', ',$hsp->end('subject'),"\n"; }

30 Blast output BLASTN [Mar ] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25: Query= CTC-MA H11 (451 letters) Database: /data/db/hs.fna 21,144 sequences; 56,617,273 total letters Searching done Score E Sequences producing significant alignments: (bits) Value gi| |ref|NM_ | Homo sapiens eukaryotic translation e-88 gi| |ref|NM_ | Homo sapiens eukaryotic translation e-14 gi| |ref|NG_ | Homo sapiens eukaryotic translation e-09 >gi| |ref|NM_ | Homo sapiens eukaryotic translation initiation factor 4A, isoform 2 (EIF4A2), mRNA Length = 1864 Score = 323 bits (163), Expect = 9e-88 Identities = 169/171 (98%) Strand = Plus / Plus Query: 59 gcatggtgacatggaccagaaggagagagatgttatcatgagggaattccggtcagggtc 118 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 924 gcatggtgacatggaccagaaggagagagatgttatcatgagggaattccggtcagggtc 983 Query: 119 aagtcgtgttctgatcactactgacttgtaggctcgcgggattgatgtgcaacaagtgtc 178 ||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||| Sbjct: 984 aagtcgtgttctgatcactactgacttgttggctcgcgggattgatgtgcaacaagtgtc 1043 Query: 179 ttgggttataaattatgatctacctaccaatcgtgaaaactatattcacag 229 || |||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1044 tttggttataaattatgatctacctaccaatcgtgaaaactatattcacag 1094 Score = 208 bits (105), Expect = 4e-53 Identities = 108/109 (99%) Strand = Plus / Plus Query: 340 gaattggcggagggggtcgatttgggaggaaaggtgtggctataaactttgttactgaag 399 |||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1094 gaattggcagagggggtcgatttgggaggaaaggtgtggctataaactttgttactgaag 1153 Query: 400 aagacaagaggattcttcgtgacattgagactttctacaatactacagt 448 ||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1154 aagacaagaggattcttcgtgacattgagactttctacaatactacagt 1202

31 Bio::Graphics use Bio::SearchIO; use Bio::Graphics; use Bio::SeqFeature::Generic; my $searchio = new Bio::SearchIO( -format => 'blast', -file => 'blast/blast_output'); while( my $result = $searchio->next_result ) { my $query_accession = $result->query_accession(); my $panel = Bio::Graphics::Panel->new(-length => $result->query_length(),-width => 800, -pad_left=>10, -pad_right=>10); my $full_length = Bio::SeqFeature::Generic->new(-display_name=>$query_accession, -start=>1, -end=>$result->query_length()); $panel->add_track($full_length, -glyph => 'arrow', -tick => 2, -fgcolor => 'black', -double => 1, -label=>1); my $track = $panel->add_track(-glyph => 'graded_segments', -label => 1, -min_score=>0, -max_score=>1000); while( my $hit = $result->next_hit ) { my $hit_accession = $hit->accession(); while( my $hsp = $hit->next_hsp ) { my $feature = Bio::SeqFeature::Generic->new(-display_name=> $hit_accession, -score=> $hsp->score(), -start=> $hsp->start('query'), -end=> $hsp->end('query')); $track->add_feature($feature); } open(OUT, ">".$query_accession.'.png'); binmode OUT; print OUT $panel->png; close(OUT); }

32 Referências

33 Perguntas… Daniel Guariz Pinheiro

34 Exercícios There s More Than One Way To Do It TIMTOWTDI

35 Exercício 1 1. Obter e imprimir em um arquivo as seguintes informações do cromossomo 16 (contig genômico) de Apis mellifera (ame_ref_chrLG16.gbk): Número de acesso dos contigs genômicos tamanho da seqüência símbolo do gene (Ex.: LOC413891) coordenada do exon (Ex.: ) informação da orientação (strand: plus(1)/minus(-1)) Exemplo: NW_ LOC

36 Exercício 2 2. Obter e imprimir em um arquivo as seguintes informações do arquivo de mRNAs do gene NAT2 (NAT2.gbwithparts) somente para o número de acesso iniciado por NM_ : Número de acesso GenBank Localização no cromossomo exon número do exon coordenada (start..end) Exemplo: NM_ p22 exon exon

37 Exercício 3 3. Fazer uma consulta no GenBank das formas alternativas do gene BRCA1 () através da BioPerl, obter as seguintes informações e imprimir na tela: Número de acesso Descrição números dos exons que compõe essa forma alternativa entre ";" Query: BRCA1[Gene Name] AND Homo sapiens[Organism] AND RefSeq[Filter] AND mRNA[Filter] db: nucleotide Exemplo: NM_ Homo sapiens breast cancer 1, early onset (BRCA1), transcript variant BRCA1-delta b, mRNA. 1b;3;4;5;6;7;8;11a;12;13;14a;15;16;17;18;19;20;21;22;23;24

38 Exercício Baixar o arquivo (exercises/ex4/NW_ gbk) com o contig genômico do cromossomo 16 de Apis mellifera; 4.1. Extrair a seqüência completa para um outro arquivo no formato fasta (contig.fna) e extrair as seqüências dos transcritos (mRNAs) após evento de splicing (spliced_seqs) e compor um arquivo multi-fasta com essas seqüências (transcripts.fna). Utilizar o transcript_id (Ex.: XM_ ) como ID da sequência e o símbolo do Gene (Ex.: LOC413891) como descrição; Exemplo: > XM_ LOC GAATCGAGATATCGAATCGAATTAAGTCAAGTAAGAATGAAATTAAATCGATTTAAAGCA Gerar um arquivo fasta (proteins.fna) com as seqüencias de proteínas traduzidas a partir das informações do CDS. Utilizar o protein_id (Ex.: XP_ ) como ID da sequência e o produto gênico (product) (Ex.: similar to CG1970-PA isoform 1) como descrição; Exemplo: >XP_ similar to CG1970-PA isoform 1 MTVRALGPFFRSNNLLFRTLNENVVTNNRIIPLVNIESQRREAHQWMPDLDEYKHLLKHE...

39 Exercício 5 5. Baixar o arquivo (ex5/blast_out_5.txt), resultado de blast de uma EST x seqüencias de referência (RefSeq) Imprimir o nome da seqüência (query) e somente para os HITS com score > 100. Imprimir o número de acesso GenBank (Ex.: NM_001967) e descrição (Ex.: Homo sapiens eukaryotic translation initiation factor 4A, isoform 2 (EIF4A2), mRNA). Imprimir em seguida os HSPs (como no exemplo abaixo) desse HIT com score >= 150; Exemplo: CTC-MA H11 NM_ Homo sapiens eukaryotic translation initiation factor 4A, isoform 2 (EIF4A2), mRNA Score: 163 Identity: e-value: 9e-88 Query (start,end): 59, 229 Subject (start,end): 924, 1094

40 O módulo DBI define um conjunto de métodos, variáveis e convenções que provêm uma interface consistente e independente do base de dados atual que está sendo utilizada; Conexões: MySQL, MSSQL, Oracle, Informix, PostgreSQL, SQLite, etc. DBD::mysql - MySQL driver para DBI – Interface entre a Perl e o MySQL RDBMS DBD::SQLite - SQLite driver para DBI – Interface entre a Perl e SQLite RDBMS Database independent interface for Perl RDBMS - Relational Database Management System DBD – Data Base Driver API - Application Programming Interface API Módulo DBI

41 Sistemas de Gerenciamento de Bancos de Dados – Programas de computador responsáveis pelo gerenciamento de uma base de dados. Provê ferramentas e mecanismos e convenções que permitem gerenciar o acesso, a manipulação e a organização dos dados. – MySQL, Oracle, PostgreSQL, SQLite, etc. – Modelo Relacional Inspirado na Álgebra Relacional Linguagem SQL (Structured Query Language) – Permite realizar operações relacionais, de consulta e inserção de dados; MySQL – SGBD relacional SQLite – SGBD relacional simplificado Conceitos em Bancos de Dados

42 Representação dos Dados Tabelas –Registros (linhas) –Campos (colunas) idnomecidadeestadocurso 1Paulo Henrique AlvesPorto VelhoROBiologia Experimental 2Matheus Carvalho BürgerLimeiraSPInformática Biomédica 3Ricardo Kazuhiro KavanishiRibeirão PretoSPInformática Biomédica 4Poliana Fernanda GiachettoCampinasSPProdução Animal 5Luiz Carlos Bertucci BarbosaAraraquaraSPBiotecnologia 6André M. Ribeiro dos SantosBelémPACiências Biológicas 7Sylvain DarnetBelémPABiologia molecular e celular 8Luisa Warchavchik HugerthSão PauloSPCiências Moleculares 9Maria Izabela Ruz CafféCampinasSPInformática Biomédica 10Ana Luiza Assin SquillaceMogi MirimSPBiotecnologia 11Myna NakabashiSão PauloSPBiotecnologia 12Guilherme Fernandes Lourenço de OliveiraFrancaSPEngenharia Biotecnológica 13André Luiz de OliveiraJaboticabalSPCiências Biológicas 14Júlio César Botelho de SouzaRibeirão PretoSPInformática Biomédica 15Fernando Moral MayoralSao Jose dos CamposSPCiências Moleculares 16Orzenil Bonfim da Silva JuniorBrasiliaDFQuímica 17Diego Martinez SalvanhaRibeirão PretoSPSistemas de Informação 18Leticia Regina LimaRibeirao PretoSPInformática Biomédica 19Eric Hainer OstroskiSanto AndréSPBioinformática 20Guilherme da Silva PereiraPiracicabaSPGenética e Melhoramento de Plantas

43 Relacionamentos 1:n idnomecidade_idcurso_id 1Paulo Henrique Alves11 2Matheus Carvalho Bürger22 3Ricardo Kazuhiro Kavanishi32 4Poliana Fernanda Giachetto43 5Luiz Carlos Bertucci Barbosa54 6André M. Ribeiro dos Santos65 7Sylvain Darnet66 8Luisa Warchavchik Hugerth77 9Maria Izabela Ruz Caffé42 10Ana Luiza Assin Squillace84 11Myna Nakabashi74 12Guilherme Fernandes Lourenço de Oliveira98 13André Luiz de Oliveira105 14Júlio César Botelho de Souza32 15Fernando Moral Mayoral117 16Orzenil Bonfim da Silva Junior129 17Diego Martinez Salvanha310 18Leticia Regina Lima32 19Eric Hainer Ostroski Guilherme da Silva Pereira1412 idnomeestado 1Porto VelhoRO 2LimeiraSP 3Ribeirão PretoSP 4CampinasSP 5AraraquaraSP 6BelémPA 7São PauloSP 8Mogi MirimSP 9FrancaSP 10JaboticabalSP 11Sao Jose dos CamposSP 12BrasiliaDF 13Santo AndréSP 14PiracicabaSP idnome 1Biologia Experimental 2Informática Biomédica 3Produção Animal 4Biotecnologia 5Ciências Biológicas 6Biologia molecular e celular 7Ciências Moleculares 8Engenharia Biotecnológica 9Química 10Sistemas de Informação 11Bioinformática 12Genética e Melhoramento de Plantas aluno cidade curso

44 Relacionamentos n:m idnome 1Introdução a Perl 2Introdução a BioPerl 3Introdução a Linux aula aluno_idaula_id matricula aluno

45 Diagrama de Entidades e Relacionamentos (DER)

46 Métodos DBI - conexão my $dbh = DBI->connect($data_source, $username, $auth); Conexão Data source my $data_source = dbi:SQLite:test.db; SQLite dbi:DriverName:database_name dbi:DriverName:database=database_name;host=hostname;port=port $dbh->disconnect(); Desconexão

47 Métodos DBI – DML/DDL DML - Linguagem de Manipulação de Dados INSERT UPDATE DELETE $dbh->do($statementl); DDL - Linguagem de Definição de Dados CREATE DROP ALTER TABLE CREATE INDEX ALTER INDEX DROP INDEX CREATE VIEW DROP VIEW $dbh->do(DELETE FROM matricula);Exemplo:

48 Métodos DBI - DQL DQL - Linguagem de Consulta de Dados SELECT Métodos (prepare/execure/fetch) my $sth = $dbh->prepare($statement); $sth->execute(); while ( = $sth->fetchrow_array ) { print } my $ary_ref = $dbh->selectall_arrayref($statement); my $ary_ref = $dbh->selectall_arrayref(SELECT id, nome FROM aluno); Exemplos = $dbh->selecrow_array(SELECT id, nome FROM aluno WHERE id=1);

49 Exercício 6 6. Utilizar o módulo DBI para manipular um Banco de Dados 6.1. Criar um banco de dados (test.db) usando o SQLite e criar uma tabela (transcript) com id, acc e length para armazenar um id numérico chave, um número de acesso GenBank e o tamanho do transcrito; $ sqlite3 test.db sqlite> CREATE TABLE transcript (id int not null primary key, acc varchar(20) not null, length int not null); sqlite> 6.2. Inserir as informações no Banco obtendo a partir das informações contidas no arquivo (exercises/ex4/NW_ gbk) que contém contig genomico do cromossomo 16 de Apis mellifera; 6.3. Recuperar as informações da tabela transcripts e imprimi-las na tela de forma tabulada. Exemplo: 1 XM_ XM_ XM_ XM_ XM_ XM_ XM_

50 Módulo CGI CGI - Common Gateway Interface Manipular requisições e respostas HTTP – Páginas HTML dinâmicas #!/usr/bin/perl use strict; use warnings; use CGI; my $q = CGI->new(); print $q->header; # cria o cabeçalho HTTP print $q->start_html('hello world'); my $nome = $q->param(nome) || ; print $q->h1('hello world'), $q->br(), $nome; print $q->end_html;

51 Exercício 7 7. Utilizar o módulo CGI para criar uma página HTML formatada com as informações de um determinado transcrito, recuperadas do banco de dados (test.db) (utilizando o módulo DBI), passando por parâmetro um id de transcrito.


Carregar ppt "The Bioperl toolkit: Perl modules for the life sciences Daniel Guariz Pinheiro, PhD. L aboratório de G enética M olecular e B ioinformática + DBI + CGI."

Apresentações semelhantes


Anúncios Google