The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source...
Transcript of The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source...
![Page 1: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/1.jpg)
The Bioperl toolkitThe Bioperl toolkit
Daniel Guariz Pinheiro
![Page 2: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/2.jpg)
O que é BioPerl ?
Projeto de colaboração open-source internacional (1995- …)
Biblioteca de módulos PerlSoluções em Bioinformática
Tarefas complexas utilizando algumas poucas linhas de códigoLicenciado sob a Perl Artistic License
IntroduçãoIntrodução
Open Bioinformatics Foundation
![Page 3: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/3.jpg)
ReferênciasReferê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. 2002 Oct;12(10):1611-8.
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. 2002 Oct;12(10):1599-610.
3: Stajich JE, Hahn MW. Disentangling the effects of demography and selection in human history. Mol Biol Evol. 2005 Jan;22(1):63-73. Epub 2004 Sep 8.
Sendu BalaChristopher FieldsHilmar LappHeikki LehväslaihoAaron MackeyBrian Osborne
Jason Stajich
Lincoln Stein
Responsáveis BioPerl
Principais artigos científicos
![Page 4: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/4.jpg)
CitaçõesCitações
1998 – meados 2008
~600 (projetos e artigos)
~40 (livros)
3 (patentes)
![Page 5: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/5.jpg)
Paradigma de programaçãoParadigma de programação
RELACIONAMENTO ETROCA DE MENSAGENSENTRE OS OBJETOS
![Page 6: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/6.jpg)
Conceitos - IConceitos - 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.
![Page 7: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/7.jpg)
Conceitos - IIConceitos - 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.
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 distinto.
Interface:
A Interface é uma classe que possui apenas as especificações sem a implementação.
![Page 8: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/8.jpg)
Diagrama de ClassesDiagrama de Classes
![Page 9: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/9.jpg)
POO em PerlPOO em Perl
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
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;
![Page 10: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/10.jpg)
CPANCPAN
http://www.cpan.org/
Comprehensive Perl Archive NetworkColeção de módulos em Perl e documentação
Exemplos: • DBD::mysql ; • DBI; • CGI;• GD;
![Page 11: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/11.jpg)
Arquitetura geral do BioPerlArquitetura 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);
![Page 12: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/12.jpg)
Separação entre Interface e Separação entre Interface e ImplementaçãoImplementaçã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)
![Page 13: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/13.jpg)
Generalização de rotinas Generalização de rotinas comuns (único módulo)comuns (único módulo)
Exemplos:
Operações básicas de IO (input/output) – Bio::Root::IO
Operações básicas de acesso web – Bio::Root::HTTPget
![Page 14: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/14.jpg)
Utilização de Padrões de Utilização de Padrões de DesenvolvimentoDesenvolvimento
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
![Page 15: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/15.jpg)
CaracterísticasCaracterí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
![Page 16: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/16.jpg)
Principais MódulosPrincipais Módulos
Bio::Seq Seqüências e suas propriedades
Bio::SeqFeatureAnotação de seqüências com seus atributos
Bio::DBAcesso a bancos de dados de seqüências
Bio::SeqIOUsado para ler e gravar seqüências em diferentes formatos
Bio::DB::Query::GenBankConsultas a bancos de dados de seqüências (GenBank)
Bio::SearchIO Obter dados de resultados (Ex.: blast)
Bio::LocationManipulação de coordenadas de seqüências
Bio::GraphicsGerar imagens de seqüências e atributos de seqüências
![Page 17: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/17.jpg)
DocumentaçãoDocumentação
http://docs.bioperl.org$ perldoc Bio::SeqIO
![Page 18: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/18.jpg)
Bio::SeqBio::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";
![Page 19: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/19.jpg)
Bio::SeqFeature::GenericBio::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);
my @features = $seqobj->get_SeqFeatures();
foreach my $feat ( @features ) {
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
authorsomeone
12
3
primary_tag
tag tag value
tag tag value
![Page 20: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/20.jpg)
Bio::DB::GenBankBio::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('J00522.1'); #my $seqobj = $gb->get_Seq_by_gi('195052');
my @features = $seqobj->get_SeqFeatures();foreach my $feat ( @features ) {
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"; } }}
![Page 21: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/21.jpg)
Bio::SeqIOBio::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);}
![Page 22: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/22.jpg)
Bio::DB::Query::GenBankBio::DB::Query::GenBank
use Bio::DB::Query::GenBank;use Bio::DB::GenBank;
# get a stream via a query stringmy $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 handlemy $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";}
![Page 23: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/23.jpg)
Bio::LocationBio::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"; } }}
![Page 24: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/24.jpg)
Bio::SearchIOBio::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"; } }}
![Page 25: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/25.jpg)
Bio::GraphicsBio::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);
}
![Page 26: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/26.jpg)
BibliografiaBibliografia
http://java.sun.com/docs/books/tutorial/java/concepts/
http://perldoc.perl.org/perlboot.html
http://www.bioperl.org/
http://www.ncbi.nlm.nih.gov/pubmed/12368254
http://docs.bioperl.org/
http://lgmb.fmrp.usp.br/~daniel/downloads/cvbioinfo2009
http://stein.cshl.org/genome_informatics/BioGraphics/
![Page 28: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/28.jpg)
ExercíciosExercícios
“There’ s More Than One Way To Do It”
TIMTOWTDI
http://lgmb.fmrp.usp.br/~daniel/downloads/cvbioinfo2009/exercises.txt
![Page 29: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/29.jpg)
Exercício 1Exercício 1
1. Obter e imprimir em um arquivo as seguintes informações do cromossomo 16 de Apis mellifera(ame_ref_chrLG16.gbk):
Número de acesso dos contigs genômicos <TAB> tamanho da seqüência<TAB> símbolo do gene (Ex.: LOC413891)<TAB><TAB> coordenada do exon (Ex.: 8865..9971) <TAB> informação da orientação (strand: plus(1)/minus(-1))
Exemplo:
NW_001253164 745157 LOC408563 666589..666822 1 672756..672973 1 673083..673254 1 673344..673483 1 673847..674257 1 674369..674599 1 674724..675077 1 679210..679317 1 680024..681271 1 681362..681649 1 681734..681958 1 682047..682250 1 682360..682591 1 682805..683048 1
![Page 30: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/30.jpg)
Exercício 2Exercício 2
2. Obter e imprimir em um arquivo as seguintes informações do arquivo de mRNAsdo gene NAT2 (NAT2.gbwithparts) somente para o número de acesso iniciado porNM_ :
Número de acesso GenBankLocalização no cromossomo exon número do exon coordenada (start..end)
Exemplo:
NM_0000158p22 exon 1 1..101 exon 2 102..1317
![Page 31: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/31.jpg)
Exercício 3Exercí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<TAB>Descrição<TAB>números dos exons que compõe essa forma alternativa entre ";"
Exemplo:
NM_007305 Homo sapiens breast cancer 1, early onset (BRCA1), transcript variant BRCA1-delta9-10-11b, mRNA. 1b;3;4;5;6;7;8;11a;12;13;14a;15;16;17;18;19;20;21;22;23;24
![Page 32: The Bioperl toolkit Daniel Guariz Pinheiro. O que é BioPerl ? Projeto de colaboração open-source internacional (1995- …) Biblioteca de módulos Perl Soluções.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc112497959413d8c6a7d/html5/thumbnails/32.jpg)
Exercício 4Exercício 4
4.1 Baixar o arquivo (exercises/ex4/NW_001253146.gbk) com esse contig genômico deApis mellifera extrair a seqüência completa para um outro arquivo (NW_001253146.fas), no formatofasta, e extrair as seqüências dos transcritos após evento de splicing(spliced_seqs) e compor um outro arquivo multi-fasta com essas seqüências(input.fas).
4.2 Após blast entre NW_001253146.fas (database) e input.fas (input). Obter as queries, hits e coordenadas dos hsps, como no exemplo abaixo e imprimir na tela:
Query Subject (hit) subject_start..subject_end
Exemplo:
NW_001253146_2 NW_001253146 881..1435 53..397 635..882 395..638