título da apresentação - lgmb.fmrp.usp.br · expressões regulares funções manipulação de...
TRANSCRIPT
![Page 2: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/2.jpg)
Sumário
Introdução – visão geral
Variáveis e Estrutura de Dados
Referências
Expressões Regulares
Funções
Manipulação de Arquivos
Ordenação
![Page 3: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/3.jpg)
MaterialPerl : Guia de Consulta RápidaDecio Jr. - Ed. Novatec
Learning Perl (4th ed)by Randal L. Schwartz, Tom Phoenix, brian d foy. Ed. O'Reilly
Programming Perl (2nd Edition) by Larry Wall, Tom Christiansen, Randal L. Schwartz,
Stephen Potter Ed. O'Reilly
Advanced Perl Programming (2th ed)by Simon Cozens. Ed. O'Reilly
![Page 4: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/4.jpg)
Introdução
O que é PERL?
“Perl is a language for getting your job done”
Larry Wall
![Page 5: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/5.jpg)
Introdução
• PERL ( Practical Extraction and Report Language ) é uma linguagem de programaçãocriada por Larry Wall em 1987 e que pode ser usada em uma grande variedade detarefas :
● Processamento de texto ;
● Desenvolvimento Web ;
● Administração de sistemas ;
● Acesso a Banco de Dados ;
● Tarefas com soluções multiplataforma ;
![Page 6: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/6.jpg)
Introdução
• Características da PERL
• Linguagem simples ;
• Alto nível ;
•Suporte a várias plataformas (Unix, Mac OS, Windows, ...);
• Modular e Orientadas a Objetos ;
• Desenvolvimento rápido ;
![Page 7: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/7.jpg)
Perl x Bioinformática
http://www.bioperl.org/wiki/How_Perl_saved_human_genome
![Page 8: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/8.jpg)
Perl x Bioinformática
![Page 9: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/9.jpg)
Perl x Bioinformática
![Page 10: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/10.jpg)
Algoritmo
Entrada dos Dados
Processamento
Saída dos Resultados
➔Aritmética Simples : soma de dois números inteiros
Z = X + Y
Y = 8
X = 5
Imprime Z (13)
![Page 11: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/11.jpg)
Variáveis
➔X , Y e Z são variáveis :➔As variáveis guardam valores que serão utilizados posteriormente;
...
E0E1E2
En
E3E4
8
5
...
13
K
...
Y
X
...
Z
Representação das variáveis na memória do computador:
![Page 12: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/12.jpg)
Sintaxe das variáveis
Tipo Caracter Exemplo É um nome para:
Escalar $ $dna
Array @ @genes Uma lista de valores
Hash % %codons
Um valor individual ( números ou string )
Um grupo de valores, indexado por string
![Page 13: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/13.jpg)
Sintaxe das variáveis
Escalares :
$dna = 'ATGCTTATTGTT';
$hits = 5;
$evalue = 5e-120;
$directory = `pwd`;
![Page 14: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/14.jpg)
Sintaxe das variáveis
Array :
@genes = ('BRCA1', 'NAT2' , 'MMP9' , 'MYC');
@cromossomos = (1,3,5,7,9,11,13,15,17,21,'X','Y' );
Os valores podem ser acessados pelos seusíndices:
$gene[0] = ‘BRCA1’;$cromossomos[3] = 7;
![Page 15: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/15.jpg)
Sintaxe das variáveis
Hash :%codons = ( 'ATG'=>'M',
'CTT'=>'L','ATT'=>'I','GTT'=>'V’ );
$var = $codons{'GTT'};O conteúdo de $var é igual a V
![Page 16: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/16.jpg)
Controlando avisos e variáveis
use warnings;use strict;
my $var = 10;
➔ Variáveis em Perl são globais por default
![Page 17: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/17.jpg)
Operadores
Operador Tipo
+ , - , * , / , % , ** , ++ , -- Aritmético
< , <= , == , >= , > , != Comparação Numérica
&& , || , ! , and , or , not Lógicos
lt , gt , le , ge , eq , ne
Atribuição
Comparação de String= , += , -= ,*= , .=
![Page 18: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/18.jpg)
Operadores
➔Exemplos :
my $x = 8;my $y = 2;
$z = $x * $y$z == 16
my $codonA = 'ACG';my $codonB = 'ACg';
$codonA ne $codonB
![Page 19: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/19.jpg)
Instruções if e unless
If : A declaração será executada se aexpressão lógica for verdadeira :
unless: A declaração não será executada se aexpressão for verdadeira :
my $varA = 3;my $varB = 5;if ( $varA < $varB ) {
....}
my $varA = „A‟;unless ( $varA eq 'B' ) {
....}
![Page 20: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/20.jpg)
Instruções de Loop
my $i = 0;while ( $i <= $#genes ){
print “$i : $genes[$i]\n”; $i++;
}
for ( my $i =0 ; $i <= $#genes ; $i++ ) {
print “$i : $genes[$i]\n”; }
foreach my $gene ( @genes ) {
print “$gene\n”; }
@genes = ('BRCA1', 'NAT2' , 'MMP9' , 'MYC');
while (expr) bloco
for(expr;expr;expr) bloco
foreach var (lista) bloco
![Page 21: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/21.jpg)
Formas especiais da instrução do
my $i = 0;do{
print “$genes[$i]\n”;
}while ( $i <= $#genes );
do bloco while expr;
my $i = 0;do{
print “$genes[$i]\n”;
}until ( $i > $#genes );
do bloco until expr;
my @genes = ('BRCA1', 'NAT2' , 'MMP9' , 'MYC');
![Page 22: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/22.jpg)
Um programa Perl
#!/usr/bin/perl
use strict;use warnings;
my $dna;my @array = ('a','c','g','g','a',‟g',„c','t','c','g');for (my $i =0; $i<= $#array; $i++) {
$dna .= $array[$i];print “$dna\n”;
}
perl dna.pl
0 a1 ac2 acg
3 acgg
4 acgga
5 acggag
6 acggagc
7 acggagct
8 acggagctc
9 acggagctcg
![Page 23: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/23.jpg)
Referências
➔Referências são ponteiros para tipos de dados previamente definidos :
my $var = 6;my $ref_var = \$var;
$var
$ref_var
...
E0E1E2
En
E3E4
6
E1
...
E0E1E2
En
E3E4
print $ref_var; # imprime E1
print $$ref_var; # imprime 6
![Page 24: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/24.jpg)
Referências
Referência Definição Valor
Escalar $ref_var = \$var; $$ref_var
Array $ref_array = \@genes; $ref_array->[0]Hash $ref_hash = \%hash; $ref_hash->{'ATG'}
![Page 25: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/25.jpg)
Expressões Regulares
➔ Pesquisa➔ A procura por grandes quantidades de dados de modo conveniente e eficaz é
realizada através da combinação de padrões
expr =~ [ m ] /padrão/[g][i][m][o][v][x]
my $dna = 'ACGTTCCAACA';if ( $dna =~ /aac/i ){
...}
my $dna = 'ACGTTCCAACA';if ( $dna =~ /aac/ ){
...}
![Page 26: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/26.jpg)
Expressões Regulares
➔Substituição➔ Pesquisa uma string procurando um padrão e, se encontrado, troca aquele
padrão pelo texto de substituição
$var =~ s/padrão/substituto/[e][g][i][m][o][s][x]
my $dna = 'acgtccatc--------------ccccatta';$dna =~ s/\-//g;print “$dna”; #imprime acgtccatcccccatta
my $dna = 'TCCTCCATCCG';$dna =~ s/C/c/;print “$dna”; #imprime TcCTCCATCCG
![Page 27: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/27.jpg)
Expressões Regulares
➔Tradução➔ Traduz todas as ocorrências dos caracteres encontrados na lista de pesquisa
pelo caractere correspondente na lista de substitutos.
$var =~ tr/lista_depesquisa/lista_de_substitutos/[c][d][s]
my $dna = 'acgtccatcccccatta';$dna =~ tr/[ACGT]/[TGCA]/;print “$dna”; #imprime tgcaggtagggggtaat
![Page 28: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/28.jpg)
Sub-rotinas
➔ A sub-rotina agrupa uma sequência de declarações e funções quepoderão ser reutilizadas pelo programa.
#!/usr/bin/perl
use strict;use warnings;
my ($x,$y,$sum) = (5,9,0);
$sum= &sum ($x,$y);
print “$x + $x = $sum\n”;
sub sum{
my ($var1,$var2) = @_;
my $sum = $var1 + $var2;
return $sum;}
#!/usr/bin/perl
use strict;use warnings;
my ($x,$y,$sum) = (5,9,0);
&sum ($x,$y,\$sum);
print “$x + $x = $sum\n”;
sub sum{
my ($var1,$var2,$rS_sum) = @_;
$$rS_sum = $var1 + $var2;
return;}
![Page 29: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/29.jpg)
Manipulação de Arquivos
...
open (IN,'arquivo.txt') or die $!;while (<IN>){
print “$_”;}close (IN);
...
...
open (OUT,'>arquivo.txt') or die $!;
print OUT “$var\n”;
close (OUT);
...
![Page 30: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/30.jpg)
Estruturas Avançadas
BRCA1 1BRCA1 3MMP9 2BRCA1 6NAT2 3NAD1 2NAT2 5MMP9 3
BRCA1 1 3 6MMP9 2 3NAT2 3 5NAD1 2
#!/usr/bin/perl
use strict;use warnings;
my %HoA;
my $fileIn = shift or die $!;my @array;open(IN,$fileIn) or die $!;while(<IN>){
chomp;@array = split(“\t”,$_);push ( @ { $HoA{$array[0]} }, $array[1] );
}close(IN);
foreach my $key ( keys %HoA ){
print “$key\n”;print join (“ ”,@{$HoA{$key}} ) , “\n”;
}
Hash de Array
![Page 31: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/31.jpg)
Estruturas Avançadas
BRCA1 1 2BRCA1 3 2MMP9 2 1BRCA1 6 2NAT2 3 4NAD1 2 2NAT2 5 4MMP9 3 1
2BRCA1 1 3 6NAD1 2
1MMP9 2 3
4NAT2 3 5
#!/usr/bin/perl
use strict;use warnings;
my %HoHoA;
my $fileIn = shift or die $!;my @array;open(IN,$fileIn) or die $!;while(<IN>){
chomp;@array = split(“\t”,$_);push ( @ { $HoHoA{$array[2]}{$array[0]} }, $array[1] );
}close(IN);
foreach my $ka ( keys %HoHoA ){
print “$kb\n”;foreach my $kb ( keys %{$HoHoA{$kb}} ){
print “$kb\t”;print join (“ ”,@{$HoHoA{$ka}{$kb}} ) , “\n”;
}}
Hash de Hash de Array
![Page 32: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/32.jpg)
Ordenação
BRCA1 15 10MMP9 10 2NAT2 3 4NAD1 9 25HOX 44 87TP53 60 3
TP53 60 3HOX 44 87BRCA1 15 10MMP9 10 2NAD1 9 25NAT2 3 4
#!/usr/bin/perl
use strict;use warnings;
my %HoA;
my $fileIn = shift or die $!;my @array;open(IN,$fileIn) or die $!;while(<IN>){
chomp;@array = split(“\t”,$_);push ( @ { $HoA{$array[0]} }, @array[1..2] );
}close(IN);
foreach my $key ( sort { $HoA{$b}[0] $HoA{$a}[0] } keys %HoA ){
print “$key\n”;print join (“ ”,@{$HoA{$key}} ) , “\n”;
}
![Page 33: Título da Apresentação - lgmb.fmrp.usp.br · Expressões Regulares Funções Manipulação de Arquivos Ordenação. Material Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec](https://reader031.vdocuments.pub/reader031/viewer/2022031309/5c00d35a09d3f26f1e8bbc03/html5/thumbnails/33.jpg)
Vamos praticar ?
Faça um script para traduzir uma sequência denucleotídeos para uma ORF. Dica :
perldoc split join reverse hash rotina
Enviar para o email [email protected] até 18/2