Programação PERL Israel Tojal da Silva

Slides:



Advertisements
Apresentações semelhantes
Introdução ao Perl Apresentado por: Mário Silva
Advertisements

Programação em Java Prof. Maurício Braga
Linguagem de Programação I
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Laboratório de Programação
Estruturas de Repetição
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
ELEMENTOS DA INFORMÁTICA
Shell Script Professor: João Paulo
Software Básico Silvio Fernandes
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Introdução à Informática
Introdução aos Serviços Web
INTRODUÇÃO À PROGRAMAÇÃO
APL/SNOBOL As primeiras linguagens dinâmicas
Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo
Introdução ao -calculus
Tecnologia para Web JavaScript
Curso de Programação em C++
PROGRAMAÇÃO ou LINGUAGEM C?
Interações do Algoritmo Phred/Phrap
Introdução ao JavaScript
Programação em Perl.
Laboratório de Programação de Computadores I
Prof. Msc. Raul Paradeda Aula 3 Fundamentos
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Revisão da Linguagem C.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
O Portal do Estudante de Computação
Camada de Transporte: Portas, Sockets, Aplicações em Rede
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Análise Semântica e Representação Intermédia
Linguagem de Expressão (EL)
Introdução a Computação e Cálculo Numérico
Introdução à Computação II Isadora Alves Cristo Juliana Ap. da Silva
Introdução à Informática
Aula prática 6 Vetores e Matrizes
Aula 2 Prof. Naércio Filho Técnico em Informática
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
Introdução a Algoritmos e Estruturas de Dados
Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva Acessibilidade e Programação Web PHP.
PROGRAMAÇÃO ESTRUTURADA II
Practical Extraction and Report Language
Estrutura de dados, pseudocódigo
FTIN Formação Técnica em Informática
© 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4.
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Capítulo III Utilizando Arrays.
Conceitos de Lógica Digital
Curso de ISI (Implantação de Sistemas de Informação)
Organização e Arquitetura de Computadores
Vetores e Matrizes Ameliara Freire
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Introdução à programaçao em PERL Levi Lúcio, Vasco Amaral, Programação em PERL, FCA-Editora de Informática.
Introdução a Perl Tema 3B Pablo Gamallo Otero
© 2004 by Pearson Education Computadores: Ferramentas para a Era da Informação Tema 0 PARTE A.
PROGRAMAÇÃO ou LINGUAGEM C?
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Usando Perl para a extracção automática de informação a partir de corpus bruto / cru Tema 4A Pablo Gamallo Otero
Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Técnico em Informática - Senac
* Com o avanço das descobertas acerca dos Ácidos Nucléicos e das Proteínas surgiu o Dogma da biologia Molecular; * Surgimento dos métodos de sequenciamento.
Corpus lingüísticos: proceso de elaboración e extracción automática de información María Paula Santalla del Río Pablo Gamallo Otero Elaboración do material.
 Linguagem do tipo script  Roda do lado do servidor – “server-side”  Suporte à vários BDs (MySQL, Postgres, Oracle, entre outros.)  Ferramentas grátis.
Transcrição da apresentação:

Programação PERL Israel Tojal da Silva

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 (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

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 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 várias plataformas (Unix, Mac OS, Windows,...); Modular e Orientadas a Objetos; Desenvolvimento rápido ; Introdução

Perl x Bioinformática

Perl x Bioinformática

Primeiro programa #!/usr/bin/perl print Imprimindo uma mensagem\n; $ perl hello.pl hello.pl

Variáveis O que são ? Posições na memória do computador, que são usadas para guardarem valores $var... E0 E1 E2 En E3 E E0 E1 E2 En E3 E4 #!/usr/bin/perl $var = 6;

Sintaxe das variáveis

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

= ('BRCA1', 'NAT2', 'MMP9', = (1,3,5,7,9,11,13,15,17,21,'X','Y); Os valores são acessados pelos seus índices: print $gene[0]; # imprime BRCA1; print $cromossomos[3]; # imprime 7; Tamanho do array print $#gene; # imprime 3; Acessando uma fatia do array print \n; imprime 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 $key\t$codon{$key}\ n; } Sintaxe das variáveis

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

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

Exemplos : $x = 8; $y = 2; $z = $x * $y $z == 16 $codonA = 'ACG'; $codonB = 'ACG'; $codonA ne $codonBOperadores

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

Instruções Interativas (looping) 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 ) { print $gene\n; = ('BRCA1', 'NAT2', 'MMP9', 'MYC','FOX2'); while (expr) bloco for(expr;expr;expr) bloco foreach var (lista) bloco

Formas especiais da instrução do my $i = 0; do{ print $genes[$i]\n; $i++; }while ( $i <= $#genes ); do bloco while expr; my $i = 0; do{ print $genes[$i]\n; $i++; }until ( $i > $#genes ); do bloco until = ('BRCA1', 'NAT2', 'MMP9', 'MYC', 'FOX2');

Desviando do caminho : next e last next; = ('BRCA1', 'NAT2', 'MMP9', 'MYC','FOX2'); my $i = 0; while ( $i <= $#genes ){ next if ( $gene[$i] eq 'MYC' ); print $gene[$i]\n; $i++; } my $i = 0; while ( $i <= $#genes ){ last if ( $gene[$i] eq MYC ); print $gene[$i]\n; $i++; }

Um programa Perl #!/usr/bin/perl use strict; use warnings; my $dna; = ('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 a 1 ac 2 acg 3 acgg 4 acgga 5 acggag 6 acggagc 7 acggagct 8 acggagctc 9 acggagctcg

Referências Referências são ponteiros para tipos de dados previamente definidos : my $var = 6; my $ref_var = \$var; $var $ref_var... E0 E1 E2 En E3 E4 6 E1... E0 E1 E2 En E3 E4 print $ref_var; # imprime E1 print $$ref_var; # imprime 6

Referências

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/ ){... }

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 Expressões Regulares

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); 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; }

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

Estruturas de Dados 1MMP9 2IKZF2 1FOXD3 4WFS1 4RUFY3 3COLQ 4NSUN7 1MMP9FOXD3 2IKZF2 4WFS1RUFY3NSUN7 3COLQ #!/usr/bin/perl use strict; use warnings; my %HoA; my $fileIn = shift or die $!; open(IN,$fileIn) or die $!; while( ){ = split(\t,$_); push { $HoA{$array[0]} }, $array[1] ); } close(IN); foreach my $key ( keys %HoA ){ print $key\t; print join ( ), \n; } Hash de Array

1 BRCA1NM_11 NM_32 FOXD3NM_82 4 WFS1NM_54 RUFY3NM_88 NM_89 NSUN7NM_52 3 COLQNM_92 NM_93 2 IKZF2NM_13 NM_14 #!/usr/bin/perl use strict; use warnings; my %HoHoA; my $fileIn = shift or die $!; open(IN,$fileIn) or die $!; while( ){ = split(\t,$_); push { $HoHoA{$array[0]}{$array[1]} }, $array[2] ); } close(IN); foreach my $ka ( keys %HoHoA ){ print $ka\n; foreach my $kb ( keys %{$HoHoA{$ka}} ){ print $kb\t; print join ), \n; } Hash de Hash de Array 1BRCA1NM_11 1BRCA1NM_32 2IKZF2NM_13 2IKZF2NM_14 1FOXD3NM_82 4WFS1NM_54 4RUFY3NM_88 4RUFY3NM_89 3COLQNM_92 3COLQNM_93 4NSUN7NM_52 Estruturas de Dados

Ordenação BRCA11510 MMP9102 NAT234 NAD1925 HOX4487 TP53603 HOX4487 BRCA11510 MMP9102 NAD1 925 NAT2 34 #!/usr/bin/perl use strict; use warnings; my %HoA; my $fileIn = shift or die $!; open(IN,$fileIn) or die $!; while( ){ = split(\t,$_); push { $HoA{$array[0]} ); } close(IN); foreach my $key ( sort { $HoA{$b}[0] $HoA{$a}[0] } keys %HoA ){ print $key\n; print join ), \n; }

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

Vamos praticar ?

Faça um script para traduzir uma sequência de nucleotídeos para uma ORF. Dica : perldoc split join reverse substr hash rotina