Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

103
Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados

Transcript of Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Page 1: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Genômica e Proteômica

Sistema Operacional,

Linguagem de Programação Perl

e Banco de Dados

Page 2: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Introdução

Sistemas operacionais, linguagem de programação e banco de dados: O que são ? Para que servem ? Precisamos entender como funcionam e / ou

como os utilizamos ?

??

??

Page 3: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional

Introdução Classificação dos sistemas operacionais Estrutura do sistema operacional

Page 4: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – introdução

Coleção de programas que controla a operação de um computador

Facilitar o acesso aos recursos do sistema Compartilhar os recursos de forma

organizada e protegida

Page 5: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – introdução

Sistema operacional

Aplicativos Utilitários

Dispositivos físicos

Page 6: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – introdução

Organização genérica de um computador

Page 7: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – classificação

Monoprogramáveis / monotarefa Recursos são dedicados a execução de um único

programa Subutilização dos recursos Implementação simples Monousuário

Page 8: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – classificação

Multiprogramáveis / multitarefa Compartilhamento dos recursos entre diferentes

programas A CPU é utilizada por cada programa em

intervalos de tempo (time sharing) Implementação mais complexa Monousuário ou multiusuário Controle de entrada e saída Níveis de proteção do sistema

Page 9: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – classificação

Múltiplos processadores Duas ou mais CPUs interligadas CPUs executam programas diferentes ou o

mesmo programa Implementação complexa Tipicamente multiusuário

Page 10: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – estrutura

O núcleo do sistema deve realizar: Criação e eliminação de processos Tratamento de interrupções Sincronização e comunicação entre processos Escalonamento e controle de processos Gerência de memória Operações de entrada e saída Gerência de dispositivos Contabilização e segurança

Page 11: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – processos

É o ambiente onde se executa um programa O SO mantém informações sobre os processos:

Contexto de hardware Contexto de software (identificação do processo e do

usuário, quotas de recursos e privilégios) Espaço de endereçamento (área da memória onde estão o

código do programa e os dados utilizados

Page 12: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – processos

Um processo assume diferentes estados Execução: Quando o processo está sendo

processado pela CPU Pronto: Quando o processo está aguardando a

CPU para ser processado Espera: Quando aguarda algum evento externo

ou por algum recurso para prosseguir o seu processamento

Page 13: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – processos

Tipos: CPU-bound Quando o processo passa a maior

parte do tempo utilizando o processador I/O-bound Quando o processo passa a maior

parte do tempo no estado de espera, pois realiza um elevado número de operações de entrada e a saída

Page 14: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – gerência de memória

Memória principal É a área onde estão armazenados as instruções

e o dados de um programa Pode ser volátil ou não volátil

Memória secundária É a área onde ficam armazenados, de forma

perene, os programas e arquivos. É uma memória não volátil.

Page 15: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – gerência de memória

Memória virtual Técnicas que, através do uso de partes da memória secundária, simulam a memória principal

Page 16: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – entrada e saída

Realiza as funções que são comuns a todos os dispositivos Aspectos específicos de cada dispositivo ficam a

cargo dos respectivos drivers

Garante que os programas possam se comunicar com qualquer dispositivo conectado ao computador

Page 17: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – entrada e saída

Subsistemas de E/SOperações de E/S

Processos

Device driversControladoresDispositivos

Software

Independente dodispositivo

Dependente dodispositivo

Hardware

Page 18: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – sistema de arquivos

Arquivo: Conjunto de informações logicamente relacionadas, podendo representar programas ou dados

O sistema de arquivos oferece um conjunto de chamadas ao sistema operacional que permitem a realização de operações de entrada e saída

Page 19: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – sistema de arquivos

Atributos: São as informações de controle sobre o arquivo Nome Tamanho Proteção (privilégios para usuário, grupo e

outros) Dono e o grupo Data de criação e modificação

Page 20: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Sistema operacional – referências

Arquitetura de Sistemas Operacionais Francis B. Machado e Luiz Paulo Maia.

Livros Técnicos e Cientifícos Editora S.A.ISBN 85-216-1097-1

Sistemas Operacionais Modernos Andrew S. Tanenbaum

Prentice Hall do BrasilISBN 85-7054-059-0

Page 21: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Linguagem

Linguagem É o uso da palavra articulada e escrita como meio de expressão e comunicação

Léxico Conjunto de palavras de uma língua Sintaxe Estudo da disposição das palavras na

frase e a das frases no discurso, bem como a relação lógica das frases entre si

Semântica O significado do discurso

Page 22: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Linguagem de programação

Conjunto de instruções e regras de composição e encadeamento, por meio do qual se expressam ações executáveis por um computador, seja diretamente, seja por meio de processo de compilação, interpretação ou montagem

Page 23: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Linguagem de programação

Montagem Conversão de um programa fonte, escrito em linguagem assembly, para o código de máquina

Compilação Conversão de um programa fonte em um programa executável

Interpretação Conversão, em tempo de execução, de um programa fonte em um programa executável

Page 24: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl

Interpretada Alto nível Suporte a várias plataformas Unix,

Windows, Mac OS, BeOS ... Modular e orientada o objetos

Page 25: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl

Tipo de dados variáveis

Operadores Declarações

de controle e de laço

Funções Manipulação de arquivos e E/S Expressões regulares

Page 26: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – tipo de dados

Tipos de dados Define que tipo de valores podem ser utilizados no do programa Valores escalares Lista de valores

arrays hashes

Page 27: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – tipo de dados

Scalars Armazena uma cadeia de caracteres ou números.

Ex.: Cadeia de caracteres “perl” Números 2, 3.14

Page 28: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – tipo de dados

Array de scalars É uma lista ordenada de scalars acessados

através de um índice. Ex.: array1 = (“c”, “c++”, “perl”) array2 = (1, 3, 5, 7, 9)

O índice sempre começa com o número “0” array1[0] = “c” array2[3] = 7

Page 29: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – tipo de dados

Hash de scalars É um conjunto não ordenados de pares

chave/valor que podem ser acessados usando uma cadeia de caracteres, que é a chave, como índice, para recuperar um scalar que é o valor correspondente para esta chave. Ex.:

hash = (ling1 => “c”, ling2 => “perl”)

Page 30: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – variáveis

Variável Porção de memória que contém um valor de determinado tipo de dado

Variável do tipo scalar $x = “perl” $y = 3.14 $x = 1.41 $y = “c++” $y = 2

$x = 10/$y $x = 5 $y = “teste” $x = 10/$y $x = ???

Erro em tempo de execução (Illegal division by zero at line nnn)

Page 31: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – variáveis

Variável do tipo array @x = (“a”, “b”, “c”) @y = (1, 2, 4) $a = $x[0]

O conteúdo de $a é igual a “a” $b = $y[1]

O conteúdo de $b é igual a 2

Page 32: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – variáveis

Variável do tipo hash %tabela = (Jan => 31 , Fev => 28) $par1 = $tabela{‘Jan’}

O conteúdo de $par1 é igual a 31 $par2 = $tabela{‘Fev’}

O conteúdo de $par2 é igual a 28

Page 33: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Operadores Símbolos que representam as operações possíveis sobre variáveis e arquivos. Podem ser classificados: de acordo com o número de operandos

unários, binários, ternários

ou pelo tipo de operação aritmética, lógica etc

Page 34: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Unário e aritmético $a = 5 ++$a incrementa $a e retorna 6

$a = $a + 1

$a++ retorna 6 e incrementa $a --$a $a--

Page 35: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Binário e aritmético $a + $b, adição $a - $b, subtração $a * $b, multiplicação $a / $b, divisão $a % $b, resto da divisão $a ** $b, potenciação

Page 36: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Binário e string $a . $b, concatenação

$a = “abc” $b = “cde” $c = $a . $b $c = “abccde”

$a x $b, multiplicação $a = “abc” $b = 3 $c = $a x $b $c = “abcabcabc” $b = “c” $c = $a x $b $c = ???

Page 37: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Atribuição $a = 5 $b = $a $b = 5 $a *= 3 $a = 15 $a .= $a $a = “1515” $a x= 3 $a = “151515151515” $a -= 1000000 $a=151514151515

Page 38: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Lógicos$a && $b (and)

falso e falso = falso falso e verdadeiro = falso verdadeiro e falso = falso verdadeiro e verdadeiro = verdadeiro

$a || $b (or) falso ou falso = falso falso ou verdadeiro = verdadeiro verdadeiro ou falso = verdadeiro verdadeiro ou verdadeiro = verdadeiro

!$a (not)

Page 39: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Comparação (números) == igual != diferente < menor > maior <= menor ou igual >= maior ou igual <=> comparação

retorna: 0 se igual, 1 se operando 1 é maior, -1 se operando 2 é maior

Page 40: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Comparação (string) eq igual ne diferente lt menor gt maior le menor ou igual ge maior ou igual cmp comparação

retorna: 0 se igual, 1 se operando 1 é maior, -1 se operando 2 é maior

Page 41: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – operadores

Teste de arquivos -e existe -r permissão de leitura -w permissão de escrita -d verifica se é diretório -f verifica se é um arquivo -T verifica se é um arquivo texto

Page 42: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

Declarações representam ações que desejamos realizar. Podem ser: Simples sempre finalizada com um “;”

print “teste”; Composta um seqüência de declarações

dentro de um mesmo bloco {$a =5; $b = 6; $c = $a*$b; print $c}Obs.: a) Um bloco é delimitado por “{ }” b) A última declaração de um bloco não precisa ser

finalizada com “;”

Page 43: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

Declarações de controle Declarações utilizadas para decidir a seqüência de comandos a ser executada pelo programa if Avalia se uma condição é verdadeira e

executa um bloco de comandos unless Avalia se uma condição é falsa e

executa um bloco de comandos

Page 44: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

if ($a == $b) { print “$a é igual a $b”; $a-- }else { print “$a é diferente de $b” }

interpolação de variáveis

Page 45: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

unless ($a == $b)

{

print “$a é diferente que $b\n”

}

Caractere especial de quebra de linha

Page 46: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

if (($a == $b) && ($c == $d)) { print “Todos os números são

iguais\n” }elsif ($a != $b) { print “$a é diferente de $b\n” }elsif ($c != $d) { print “$c é diferente de $d\n” }

if ($a == 1) { print “$a é igual a 1\n” }elsif ($a == 2) { print “$a é igual a 2\n” }else { print “$a é diferente de 1\n”; print “e diferente de 2\n”; }

Page 47: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

Declarações de laço (loop) Utilizadas para decidir quantas vezes um bloco de comandos será executado while Avalia se a condição é verdadeira e executa um

bloco de comandos until Avalia se a condição é falsa e executa um bloco de

comandos

No while e no until uma condição inicial é determinada antes do início do loop e é modificada dentro do bloco de comandos

Page 48: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

for Avalia se a condição é verdadeira e executa um bloco de comandos. A condição inicial é determinada e modificada na declaração do for

foreach Executa um bloco de comandos para cada elemento de uma lista de scalars

Page 49: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

while ($i < 10)

{

print “$i\t”;

$i++

}

print “\n”caracter especial de tabulação

Page 50: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

open FILE, “<teste.txt” if (-e “teste.txt”);

while (<FILE>)

{

print “$_”

}

abertura de arquivo atribuindo-o para o filehandle “FILE”

faz o loop enquanto não chegar ao final do arquivo

variável predefinida, que recebe a linha corrente do arquivo

Page 51: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – declarações

for ($i = 0; $i <= 10; $i++) { print $b[$i].”\n” }

foreach $a (@b) { print $a.”\n” }

foreach $a (keys %b) { print $a.”\n” }

operador de concatenação

Page 52: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – funções

Comandos predefinidos no Perl ou construídos pelo programador Exemplos:

print, open, shift predefinidos somar construído pelo programador

sub somar { $a = shift; $b = shift; $c = $a + $b;return $c }$resultado = somar(5,6);

Page 53: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – manipulação de arquivos e E/S

Existem funções predefinidas para a manipulação de arquivos e E/S open Abre arquivo close Fecha arquivo opendir Abre diretório closedir Fecha diretório readdir Lê o conteúdo do diretório symlink Cria um link chdir Troca de diretório chmod Troca os privilégios de um arquivo print Imprime para uma saída

Page 54: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – manipulação de arquivos e E/S

open FILEIN, “<teste.txt” or die “Erro: $!\n”;open FILEOUT, “>teste.out” or die “Erro: $!\n”;while (<FILEIN>) { chomp; $a = $_ % 2; if ($a = = 0) { print FILEOUT “$_\n” } }close FILEIN; close FILEOUT

variável predefinida, que recebe a mensagem de errofunção que

retira o caracter “\n”

Page 55: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

É o meio de descrever um conjunto de strings sem conhecer a lista de todas as strings disponíveis, através de um padrão definido pelo programador / usuário, a partir de um conjunto de operadores e caracteres especiais

Page 56: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Operadores m// Verifica a ocorrência do padrão que está entre as

barras Exemplo

while (<FILE>) { if ($_ =~ m/ACGTAGTGT/) if ($_ =~ /ACGTAGTGT/) { print “$_” } }

operador de ligação

Page 57: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Operadores s/PADRÃO_1/ PADRÃO_2/ Verifica a ocorrência do

PADRÃO_1 e o substitue pelo PADRÃO_2 Exemplo

while (<FILE>) { if ($_ =~ s/ACG/TGC/) { print “$_” } }

Page 58: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Operadores tr/LISTA_1/ LISTA_2/ Substitue cada elemento da

LISTA_1 pelos elementos correspondentes na LISTA_2 Exemplo

while (<FILE>) { if ($_ =~ tr/ACGT/acgt/) { print “$_” } }

Page 59: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Metacaracteres \ Para representar caracteres não alfanuméricos | Alternação entre diferentes padrões ( ) Agrupamento. Trata o padrão como um grupo [ ] Cria uma classe de caracteres { } Define o número de ocorrências de um padrão ^ Determina que o padrão deve estar no início da string $ Determina que o padrão deve estar no final da string * O padrão deve ocorrer 0 ou mais vezes + O padrão deve ocorrer uma ou mais vezes ? O padrão deve ocorrer 0 ou uma vez . Qualquer caracter, com exceção do caracter de nova

linha

Page 60: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Metacaracteres Exemplos

m/\t\t/ procura por dois caracteres de tabulação m /[Aa]/ procura por “A” ou “a” m /(TGA)(TGT)/ procura e agrupa por “TGA” e “TGT”.

Agrupar significa que estes valores serão retornados nas variáveis $1 e $2

s/(TGA)(TGT)/$2$1/

Page 61: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Metacaracteres Exemplos

m/TGA|TGT/ procura por “TGA” ou “TGT” m/^TGA / procura por “TGA” no início da string m/TGA$/ procura por “TGA” no final da string m/T.A/ procura por “T”, qualquer caracter e “A”

Page 62: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Metacaracteres Exemplos

m/T*GT/ procura por 0 ou mais “T’s” seguidos de “GT” “TGT”, “TTTTGT” e “GT” satisfazem a esta expressão regular

m/(T+)GT / procura por um ou mais “T’s” seguidos de “GT” e retorna na variável $1 a ocorrência dos “T”

“TGT” ou “TTTTGT” satisfazem a esta expressão regular $1 receberá “T” ou “TTTT”

m/T?GT/ procura por 0 ou um “T” seguido de “GT” “TGT” e “GT” satisfazem a esta expressão regular

Page 63: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

Metasímbolos \w qualquer alfanumérico e o caracter “_” \W qualquer caracter diferente de alfanumérico \d qualquer caracter numérico (0..9) \D qualquer caracter diferente de numérico \s qualquer caracter espaço em branco \S qualquer caracter diferente de espaço em

branco \t caracter de tabulação

Page 64: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – expressões regulares

MetasímbolosExemplos

$nomeSequencia = “XL1010A01.g”$nomeSequencia =~ /\w\w\d\d\d\d\w\d\d\.\w/

$nomeSequencia =~ /\D+\d+\w\d+\.\w/ $nomeSequencia =~ /\w{2}\d{4}\w\d{2}\.\w/

$organ = “XL”;$nomeSequencia =~ /$organ\d{4}\w\d{2}.\w/

Page 65: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – módulos

Módulos É a unidade fundamental para reuso de código no Perl

O Perl vem com um conjunto padrão de módulos Exemplo:

CGI Módulo para implementar CGI (Commom Gateway Interface – Interface padrão para a criação de programas para serem executados através da internet)

Math::Complex Módulo com funções de manipulação de números complexos

CPAN Módulo para automatizar o acesso ao CPAN(Comprehensive Perl Archive Network – Repositório de módulos e documentação para Perl)

Page 66: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – módulos

No CPAN (e em outros repositórios) encontram-se vários módulos disponíveis para a execução de diversas tarefas Exemplo:

DBI Para implementar o acesso a banco de dados GD Para manipulação de imagens libwww Para implementar diversos serviços de e

para web bioperl Conjunto de módulos que implementam

diversas ferramentas para bioinformática

Page 67: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – documentação

man perl perldoc

Page 68: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Perl – referências

Programming Perl Larry Wall, Tom Christiansen, Jon Orwant

O’Reilly & Associates, Inc.

ISBN: 0-596-00027-8

www.perl.org ... Bioperl.org Bioperl-l, cascavel-l

Page 69: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados

Banco de dados Coleção de dados inter-relacionados, projetada para atender às necessidades de um grupo específico de aplicações e usuários

Sistema Gerenciador de Banco de Dados Conjunto de programas, de propósito geral, que facilita o processo de construção e manipulação de banco de dados para servir a diversas aplicações

Page 70: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados

SGBD

AplicaçãoAdministrador

BD

Usuário

Page 71: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Modelo de dados Conjunto de conceitos utilizados para descrever a estrutura de um banco de dados Modelo de dados de alto nível

Entidade Relacionamento

Modelo de dados de implementação Tabelas (relações)

Page 72: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Entidades Representa um conjunto de elementos de um mesmo tipo que se deseja representar em um banco de dados, e é caracterizada pelos seus atributos. Ex.: a) Gene (nome, produto, seqüência de

nucleotídeos, seqüência de aminoácidos

b) Categoria (nome, descrição)

Page 73: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Relacionamento Representa associações entre elementos de duas ou mais entidades. É caracterizada pelas entidades participantes, pela sua cardinalidade e por seus atributos Ex.: Gene Categoria

Um gene tem uma categoria e uma categoria caracteriza vários genes

Page 74: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Desenho com um MER

Gene Categoriatem

nomeprodutoseq

nome

descrição

atributos entidades

relacionamento

N 1

cardinalidade

Page 75: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Tabelas (relações) Os dados são organizados em tabelas. As tabelas são formadas por colunas e linhas. As colunas são os atributos definidos para as entidades e relacionamentos. As linhas contêm os valores que os atributos podem assumir.

Page 76: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Chave É um atributo, ou conjunto de atributos, que identifica univocamente uma relação. Ou seja, um atributo chave não apresenta valores duplicados. Se um atributo chave for definido como chave primária não poderá conter o valor nulo

Chave estrangeira Uma chave de uma relação R que referencia a chave primária de uma relação S é chamada de chave estrangeira.

Page 77: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Mapeamento Lógico-Relacional Transforma o modelo de dados de alto nível (Modelo Entidade-Relacionamento – MER) no modelo de dados de implementação (Relacional). A transformação é o mapeamento de cada entidade, relacionamento, e seus respectivos atributos em tabelas.

Page 78: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

nome produto seqüênciadnaA ... ...

recA ... ...

Gene

nome descrição... ...

... ...

Categoria

Criando as tabelas

Page 79: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

nome produto seqüência cat_nomednaA ... ...

recA ... ...

Gene

nome descrição... ...

... ...

Categoria

Criando os relacionamentos

Page 80: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

Mapeamento de entidade Mapeamento de relacionamento

N:1 Se o relacionamento não tem atributos, é inserido na tabela com cardinalidade “N” a chave primária da entidade com cardinalidade “1”

N:1 Se o relacionamento tem atributos, é criada uma nova tabela, com as chaves das tabelas do relacionamento, mais os atributos

N:M O mesmo procedimento acima

Page 81: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SQL (Structured Query Language) Linguagem de definição e manipulação de dados padrão do modelo relacional

Comandos de definição CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP ...

Comandos de manipulação SELECT, UPDATE, INSERT, DELETE ...

Page 82: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

CREATE DATABASE genoma; USE genoma; CREATE TABLE Gene (

id INT(9) NOT NULL,nome CHAR(7) NOT NULL,produto VARCHAR(100) NOT NULL,PRIMARY KEY (id),UNIQUE(nome)

);

Page 83: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

DROP TABLE Gene; DROP DATABASE genome;

Page 84: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

Tipo de dados Define os diferentes valores que um atributo em

uma tabela pode assumir Ex.: INT -2.147.483.648 a 2.147.483.647

CHAR(n) Cadeia de caracteres de tamanho “n”

VARCHAR(n) Cadeia de caracteres de tamanho até “n”

Page 85: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

Comando de consulta SELECT FROM Recupera os dados contidos em tabelas

SELECT Nome, Seqüência FROM Gene

Recupera todos os Nomes e Seqüências contidos na tabela Gene

SELECT * FROM Gene Recupera todos os dados contidos na tabela Gene

Page 86: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT DISTINCT Nome FROM Gene Recupera os nomes dos genes sem repetição

Resultado

nome produto seqüência organismodnaA ... ... p. aeroginosa

dnaA ... ... m. genitalium

recA ... ... m. genitalium

Gene

nomednaA

recA

Page 87: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT Nome, TamAA*3 FROM Gene Novas colunas podem ser derivadas a partir de

expressões aritméticas

nome produto seqüência TamAAdnaA ... ... 343

dnaA ... ... 349

recA ... ... 173

Gene

Page 88: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT DISTINCT Nome, TamAA*3

FROM Gene

ORDER BY Nome DESC A cláusula ORDER BY define um critério de

ordenação do resultado Resultado nome TamAA*3

recA 519

dnaA 1029

dnaA 1047

Page 89: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT * FROM Gene

WHERE TamAA > 200 A cláusula WHERE define as condições que

selecionam os dados a serem recuperados Resultado

nome produto seqüência TamAAdnaA ... ... 343

dnaA ... ... 349

Page 90: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – projeto

nome produto seqüência cat_nomednaA ... ...

recA ... ...

Gene

nome descrição... ...

... ...

Categoria

Criando os relacionamentos

Page 91: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT Gene.Nome, Descrição FROM Gene, Categoria

WHERE cat_nome = Categoria.Nome Recupera o nome do gene e a descrição da

categoria quando o nome da categoria em ambas as tabelas são iguais

A junção é realizada para todas as tabelas listadas

na cláusula FROM. As condições na cláusula

WHERE restringem os dados recuperados

Page 92: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT count(*)

FROM Gene

WHERE Organism = “p. aeroginosa” Retorna o número de registros que existem na

tabela Gene que correspondem ao organismo p. aeroginosa

Existem outras funções: SUM, AVG, MAX, MIN

Page 93: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT Nome, count(*) AS num_genes

FROM Gene

GROUP BY Nome Retorna o nome e o número de ocorrências de

cada gene. A cláusula GROUP BY organiza o resultado em grupos lógicos. A palavra AS cria “apelidos” para o nome das colunas

Resultado nome num_genesrecA 1

dnaA 2

Page 94: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

SELECT Nome, count(*) AS num_genes FROM Gene

GROUP BY Nome HAVING count(*) > 1

Retorna o nome e o número de ocorrências de cada gene, onde num_genes for maior que “1”. A cláusula HAVING define quais grupos farão parte da resposta

Resultado nome num_genesdnaA 2

Page 95: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

Forma geral do SELECT

SELECT [DISTINCT] <atributos>

FROM <tabelas>

[WHERE <condição>]

[GROUP BY <atributos>]

[HAVING <condição>]

[ORDER BY <atributos>]

Page 96: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

UPDATE <tabela>

SET <atribuição>

[WHERE <condição>] UPDATE Gene

SET Nome = ‘DNAA’

WHERE Nome = ‘dnaA’

Page 97: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

INSERT

INTO <tabela> [<atributos>]

VALUES <constantes> INSERT

INTO Gene (Nome, TamAA)

VALUES (‘girA’, 493)

Page 98: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – implementação

DELETE

FROM <tabela>

[WHERE <condição>] DELETE

FROM Gene

WHERE Nome = ‘girA’

Page 99: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados – referências

Date Sylberchatz Manual do MySQL

Page 100: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Programas para acesso a BD

Perl, CGI, DBI (Database interface) www.lncc.br/~lgonzaga/gp2004

Page 101: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Banco de dados

SGBD

AplicaçãoAdministrador

BD

Usuário

Page 102: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Programas para acesso a BD

SGBD MySQL

AplicaçãoScript em Perl + DBI

BD MySQL

Usuário

driver MySQL

Page 103: Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados.

Agosto / 2004LABINFO – LNCC / MCT

Referências

Perl DBI man DBI man CGI