Скачать презентацию Programação PERL Israel Tojal da Silva itojal usp br Скачать презентацию Programação PERL Israel Tojal da Silva itojal usp br

ab58821d1cde21d619db190bbadea21d.ppt

  • Количество слайдов: 37

Programação PERL Israel Tojal da Silva itojal@usp. br Programação PERL Israel Tojal da Silva [email protected] br

Sumário Introdução – visão geral Variáveis e Estrutura de Dados Referências Expressões Regulares Funções 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

Introdução Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec Learning Perl Introdução Perl : Guia de Consulta Rápida Decio Jr. - Ed. Novatec Learning Perl (4 th ed) by Randal L. Schwartz, Tom Phoenix, brian d foy. Ed. O'Reilly Programming Perl (2 nd Edition) by Larry Wall, Tom Christiansen, Randal L. Schwartz, Stephen Potter Ed. O'Reilly Advanced Perl Programming (2 th ed) by Simon Cozens. Ed. O'Reilly

Introdução O que é PERL? “Perl is a language for getting your job done” Introdução O que é PERL? “Perl is a language for getting your job done” Larry Wall

Introdução • PERL ( Practical Extraction and Report Language ) é uma linguagem de Introdução • PERL ( Practical Extraction and Report Language ) é uma linguagem de programação criada por Larry Wall em 1987 e que pode ser usada em uma grande variedade de tarefas : • Processamento de texto; • Desenvolvimento Web; • Administração de sistemas; • Acesso a Banco de Dados;

Introdução • Características da PERL • Linguagem simples; • Alto nível; • Suporte a 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;

Perl x Bioinformática http: //www. bioperl. org/ Perl x Bioinformática http: //www. bioperl. org/

Perl x Bioinformática Perl x Bioinformática

Perl x Bioinformática Perl x Bioinformática

Perl x Bioinformática Perl x Bioinformática

Primeiro programa hello. pl #!/usr/bin/perl print “Imprimindo uma mensagemn”; $ perl hello. pl Primeiro programa hello. pl #!/usr/bin/perl print “Imprimindo uma mensagemn”; $ perl hello. pl

Variáveis O que são ? Posições na memória do computador, que são usadas para Variáveis O que são ? Posições na memória do computador, que são usadas para guardarem valores E 0 E 1 E 2 E 3 E 4 $var E 0 E 1 E 2 E 3 E 4 6 #!/usr/bin/perl $var = 6; . . . En En

Sintaxe das variáveis Sintaxe das variáveis

Sintaxe das variáveis Escalares : $dna = 'ATGCTTATTGTT'; $hits = 5; $evalue = 5 Sintaxe das variáveis Escalares : $dna = 'ATGCTTATTGTT'; $hits = 5; $evalue = 5 e-120; $directory = `pwd`;

Sintaxe das variáveis Array: @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' , Sintaxe das variáveis Array: @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' , 'MYC'); @cromossomos = (1, 3, 5, 7, 9, 11, 13, 15, 17, 21, 'X', 'Y’); • Os valores são acessados pelos seus índices: print “$gene[0]”; # imprime BRCA 1; print “$cromossomos[3]”; # imprime 7; • Tamanho do array print “$#gene”; # imprime 3; • Acessando uma fatia do array print join(“t”, @cromossomos[3. . 5]) , “n”; imprime 7 9 11

Sintaxe das variáveis Hash: %codons = ( 'ATG'=>'M', 'CTT'=>'L', 'ATT'=>'I', ); • Acessando o Sintaxe das variáveis Hash: %codons = ( 'ATG'=>'M', 'CTT'=>'L', 'ATT'=>'I', ); • Acessando o valor de uma chave do hash print “$codons{'CTT'}n”; # imprime: L • Acessando os valores de todas as chaves do hash foreach my $key ( keys %codons ){ } print “$keyt$codon{$key} n”;

Controlando avisos e variáveis Variáveis em Perl são globais por default use warnings; use Controlando avisos e variáveis Variáveis em Perl são globais por default use warnings; use strict; my $var = 10;

Operadores = , += , -= , *= , . = Operadores = , += , -= , *= , . =

Operadores Exemplos : $x = 8; $y = 2; $z = $x * $y Operadores Exemplos : $x = 8; $y = 2; $z = $x * $y $z == 16 $codon. A = 'ACG'; $codon. B = 'ACG'; $codon. A ne $codon. B

Instruções if e unless If : A declaração será executada se a expressão lógica Instruções if e unless If : A declaração será executada se a expressão lógica for verdadeira: my $var. A = 3; my $var. B = 5; if ( $var. A < $var. B ) {. . } unless: A declaração não será executada se a expressão for verdadeira: my $var. A = ‘A’; unless ( $var. A eq 'B' ) {. . }

Instruções Interativas (looping) @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' , 'MYC', Instruções Interativas (looping) @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' , 'MYC', 'FOX 2'); my $i = 0; while ( $i <= $#genes ){ while (expr) bloco print “$i : $genes[$i]n”; $i++; } foreach my $gene ( @genes ) { foreach var (lista) bloco print “$genen”; } for ( my $i =0 ; $i <= $#genes ; $i++ ) { for(expr; expr) bloco print “$i : $genes[$i]n”; }

Formas especiais da instrução do @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' Formas especiais da instrução do @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' , 'MYC', 'FOX 2'); do bloco while expr; do bloco until expr; my $i = 0; do{ print “$genes[$i]n”; $i++; }while ( $i <= $#genes ); my $i = 0; do{ print “$genes[$i]n”; $i++; }until ( $i > $#genes );

Desviando do caminho : next e last @genes = ('BRCA 1', 'NAT 2' , Desviando do caminho : next e last @genes = ('BRCA 1', 'NAT 2' , 'MMP 9' , 'MYC', 'FOX 2'); my $i = 0; while ( $i <= $#genes ){ next; next if ( $gene[$i] eq 'MYC' ); print “$gene[$i]n”; $i++; } my $i = 0; while ( $i <= $#genes ){ last; last if ( $gene[$i] eq ‘MYC’ ); print “$gene[$i]n”; $i++; }

Um programa Perl #!/usr/bin/perl use strict; use warnings; my $dna; my @array = ('a', Um programa Perl #!/usr/bin/perl use strict; use warnings; my $dna; my @array = ('a', 'c', 'g', 'a', 'g', 'c', 't', 'c', 'g'); for (my $i =0; $i <= $#array; $i++) { $dna. = $array[$i]; print “$dnan”; } perl dna. pl

Referências são ponteiros para tipos de dados previamente definidos : my $var = 6; Referências são ponteiros para tipos de dados previamente definidos : my $var = 6; my $ref_var = $var; E 0 E 1 E 2 E 3 E 4 print $ref_var; # imprime E 1 $var $ref_var E 0 E 1 E 2 E 3 E 4 . . . E 1 . . . print $$ref_var; # imprime 6 En

Referências Referências

Expressões Regulares Pesquisa A procura por grandes quantidades de dados de modo conveniente e 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/ ){. . . } my $dna = 'ACGTTCCAACA'; if ( $dna =~ /aac/i ){. . . }

Expressões Regulares Substituição Pesquisa uma string procurando um padrão e, se encontrado, troca aquele 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 = 'TCCTCCATCCG'; $dna =~ s/C/c/; print “$dna”; #imprime Tc. CTCCATCCG my $dna = 'acgtccatc-------ccccatta'; $dna =~ s/-//g; print “$dna”; #imprime acgtccatcccccatta

Sub-rotinas A sub-rotina agrupa uma sequência de declarações e funções que poderão ser reutilizadas Sub-rotinas A sub-rotina agrupa uma sequência de declarações e funções que poderão ser reutilizadas pelo programa. #!/usr/bin/perl use strict; use warnings; my ($x, $y, $sum) = (5, 9, 0); $sum= &sum ($x, $y); &sum ($x, $y, $sum); print “$x + $x = $sumn”; sub sum{ my ($var 1, $var 2) = @_; my ($var 1, $var 2, $r. S_sum) = @_; my $sum = $var 1 + $var 2; $$r. S_sum = $var 1 + $var 2; return $sum; } return; }

Manipulação de Arquivos . . . open (IN, 'arquivo. txt') or die $!; while Manipulação de Arquivos . . . open (IN, 'arquivo. txt') or die $!; while (){ print “$_”; } close (IN); . . . open (OUT, '>arquivo. txt') or die $!; print OUT “$varn”; close (OUT); . . .

Estruturas de Dados 1 2 1 4 4 3 4 1 2 4 3 Estruturas de Dados 1 2 1 4 4 3 4 1 2 4 3 MMP 9 IKZF 2 WFS 1 COLQ MMP 9 IKZF 2 FOXD 3 WFS 1 RUFY 3 COLQ NSUN 7 FOXD 3 RUFY 3 NSUN 7

Estruturas de Dados 1 1 2 2 1 4 4 4 3 3 4 Estruturas de Dados 1 1 2 2 1 4 4 4 3 3 4 BRCA 1 IKZF 2 FOXD 3 WFS 1 RUFY 3 COLQ NSUN 7 1 BRCA 1 FOXD 3 4 WFS 1 RUFY 3 NSUN 7 3 COLQ 2 IKZF 2 NM_11 NM_32 NM_13 NM_14 NM_82 NM_54 NM_88 NM_89 NM_92 NM_93 NM_52 NM_11 NM_32 NM_82 NM_54 NM_88 NM_89 NM_52 NM_93 NM_14

Ordenação BRCA 1 MMP 9 NAT 2 NAD 1 HOX TP 53 15 10 Ordenação BRCA 1 MMP 9 NAT 2 NAD 1 HOX TP 53 15 10 3 9 44 60 10 2 4 25 87 3 #!/usr/bin/perl use strict; use warnings; my %Ho. A; my $file. In = shift or die $!; my @array; open(IN, $file. In) or die $!; while(){ TP 53 HOX BRCA 1 MMP 9 NAD 1 NAT 2 60 44 15 10 9 3 3 87 10 2 25 4 chomp; @array = split(“t”, $_); push ( @ { $Ho. A{$array[0]} }, @array[1. . 2] ); } close(IN); foreach my $key ( sort { $Ho. A{$b}[0] $Ho. A{$a}[0] } keys %Ho. A ){ print “$keyn”; print join (“t ”, @{$Ho. A{$key}} ) , “n”; }

Funções PERL length • split • join • sort • substr • push • Funções PERL length • split • join • sort • substr • push • unshift • pop • shift • chomp • glob • reverse • exists •

http: //geekandpoke. typepad. com/geekandpoke/perl/ http: //geekandpoke. typepad. com/geekandpoke/perl/

Vamos praticar ? Vamos praticar ?

Vamos praticar ? http: //xavante. fmrp. usp. br/verao Faça um script para traduzir uma Vamos praticar ? http: //xavante. fmrp. usp. br/verao Faça um script para traduzir uma sequência de nucleotídeos para uma ORF. Dica : perldoc split join reverse substr hash rotina