Programar ou não programar, eis a questão?

Documentos relacionados
Como produzir e publicar uma apresentação online dinâmica (Prezi)

Ferramentas Web, Web 2.0 e Software Livre em EVT

1. Criar uma nova apresentação

Ferramentas Web, Web 2.0 e Software Livre em EVT

Instalação e utilização do Eclipse / Fortran em Windows

MANUAL DE UTILIZAÇÃO DO EQUIPA TIC

Formador: Carlos Maia

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

MANTENHA-SE INFORMADO

Bem-vindo ao nosso mundo virtual! Guia do Portal de Ensino à Distância da Get Training 1

Guia do Picasa Versão 1

[EIC0110] Concepção e Análise de algoritmos Trabalho de Grupo 2: Tema 4. Auto-Complete. Turma 3 Grupo 13. Maio de 2011

Tutorial :: Introdução ao VHDL em ambiente Design Works

Programação 2009/2010 MEEC MEAer

Instruções para o participante no Curso de e-learning. Esquizofrenia Questões Aprofundadas

INSTALAÇÃO UBUNTU NUM INSTANTE

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)

DotNetNuke. Gestão de Conteúdos. Módulos - II. Inserção de conteúdos nos módulos. Módulo de Text/HTML. Módulo de Sre-Notícias. Módulo de Sre-Formação

QUITETURA AVANÇADA DE SISTEMAS

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)

Manual do Utilizador. Manual do Utilizador Modelo10 no sisgep. Data última versão: Versão : 1.2. Data criação:

TÉCNICAS DE PROGRAMAÇÃO

MAGic. Software para ampliação de ecrã

Ferramentas Web, Web 2.0 e Software Livre em EVT

7. Gestão de ficheiros em X Window O Konqueror

Módulo 1 Microsoft Word 2007 ( 4 Horas)

AMBIENTE DE PROGRAMAÇÃO PYTHON

Aula de JavaScript 05/03/10

Portal do Projeto Tempo de Ser

GeoMafra SIG Municipal

Tarefa Orientada 2 Criar uma base de dados

Cópia de Segurança e Recuperação Manual do utilizador

Prof. Manuel Portelinha. Sumário

UNIDADE 1 TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

Guia rápido de criação e gestão de um espaço no SAPO Campus

Como produzir um texto no computador.

Utilização das Ferramentas e Recursos da

Como criar, editar e finalizar um vídeo (Animoto)

Descrição do Produto. Altus S. A. 1

1 Contextualização 3 2 Administração do Joomla 5 3 Painel de controlo Menu sítio Menu utilizadores Outras funcionalidades 8 4

São visíveis as filas de impressão partilhadas...

MANUAL DE UTILIZAÇÃO

1. Verificar se a Microsoft.NET Framework 2.0 está instalada. Se não estiver, efectuar o download a partir do link e instalar:

Usando o Conference Manager do Microsoft Outlook

Ferramentas Web, Web 2.0 e Software Livre em EVT

B2S SISTEMAS DE INFORMAÇÃO, LDA. RUA ARTILHARIA UM, Nº 67 3º FRT LISBOA TEL: FAX: B2S@B2S.

UNIDADE 6 - PROGRAMAÇÃO MODULAR

Cópia de Segurança e Recuperação Manual do utilizador

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Actualizaç ões e novas funcionalidades. Inoxnet. Versã o (c) EBASE Lda.

Guia da Internet. Página 1

Nota de Aplicação IHM 004

Manual de Utilização - Backoffice

Alguns truques do Excel. 1- Títulos com inclinação. 2- Preencha automaticamente células em branco

Guia de Utilização Gestão de Mensagens Fornecedor Janeiro 2010 PLATAFORMA ELECTRÓNICA VORTAL

MANUAL DE UTILIZAÇÃO. EcclesiaSoft v.01

Mas para iniciar o uso do CRM é necessário efetuar algumas configurações em primeiro lugar.

Ferramentas Web, Web 2.0 e Software Livre em EVT

Ferramentas Web, Web 2.0 e Software Livre em EVT

Apresentação do VisualA

Como criar e publicar um Website na Web 2.0 (Wordpress)

Instruções para instalar o certificado para acesso a normas do IPQ

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia

Visão Artificial Para a Indústria. Manual do Utilizador

Amostras e guias de iniciação Versão 8 Edição 0. Guia de iniciação do Hiring Sample para o IBM Process Designer

Instituto Politécnico de Tomar Escola Superior de Tecnologia de Abrantes Curso Superior de Comunicação Social. Exercicio Nº 4 de Word

Início Rápido. Nero BackItUp. Ahead Software AG

Manual de Configuração das impressoras (Fotocopiadoras) do AES

Painel de Navegação Para ver o Painel de Navegação, prima CTRL+F. Pode arrastar os cabeçalhos dos documentos neste painel para reorganizá-los.

2 echo "PHP e outros.";

PLANIFICAÇÃO ANUAL ANO LETIVO DE 2013/2014 Curso de Educação e Formação Tipo 3 Nível 2

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

Migrar para o Access 2010

Editor Eclipse para Programas F

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

ESTRATÉGIAS /ACTIVIDADES. Fazer uma abordagem teórica e simples

Boot Camp Manual de Instalação e Configuração

COMO PROGRAMAR SEU TIME

Treinamento em BrOffice.org Writer

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

Akropole Catequista. Todos os Ficheiros no Akropole Catequista trabalham com uma simples barra de edição, com 4 botões:

Gestor de Janelas Gnome

Implementando uma Classe e Criando Objetos a partir dela

1 Code::Blocks Criação de projetos

O Manual do ssc. Peter H. Grasch

O que é o DigaaiDATAVERSE?

COMO TRABALHAR COM O MICROSOFT FRONTPAGE 2003

Estas orientações foram desenvolvidas para Professores Administradores que se estejam a iniciar no TwinSpace. As orientações irão ajudá-lo a:

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Organização de Computadores Software

MANUAL DE EMISSÃO E INSTALAÇÃO DO CERTIFICADO TIPO A1 (GOOGLE CHROME)

Manual de Transição TWT Sítio de Disciplina para Moodle 2.6

Realizado por: Fábio Rebeca Nº6. Iuri Santos Nº8. Telmo Santos Nº23

JavaScript (ou JScript)

Departamento de Informática

Como incorporar música. numa apresentação de. PowerPoint?

Transcrição:

Programar ou não programar, eis a questão? 2

Etapas de desenvolvimento e refinamento 3

São adaptações de linguagens de programação de uso geral, que receberam um conjunto de novas funcionalidades para tratamento de dados biológicos. As mais usadas exibem propriedades adequadas aos requisitos da bioinformática, como sejam: prototipagem rápida, a facilidade de manipulação de strings, a gestão da memória transparente, a portabilidade, etc. Exemplos (domínio público): BioPerl (desde 1995) http://www.bioperl.org/ BioJava http://biojava.org BioPhyton http://biophyton.org 4

Vantagens gerais: -Velocidade de execução dos programas implementados; -Prototipagem rápida; -Poucas linhas de código para grandes resultados; -É uma linguagem de domínio público (gratuita) e existe código-fonte disponível; - Orientada a objectos. Não é necessário(em oposição a outras linguagens): -Declarar variáveis antes de as usar; -Definir previamente o tipo de dados a incluir na variável; -Reservar espaço em memória para alocar os conteúdos da variáveis. 5

Uma variável é basicamente um contentor de dados, simples ou estruturado. Em Perl existem três tipos básicos de variáveis: - Escalares(inteiros, decimais, texto, etc.); - Listas; - Tabelas (arrays) associativas (tabelas de hash). Prefixos para distinção de variáveis: ($)- Escalares; (@)- Listas; (%)- Tabelas (arrays) associativas. 6

As referências às variáveis iniciam-se sempre com $, quer para acessos quer para atribuições Para escalares: $x = 1; $x = Hello World! ; $x = $y; Para tabelas (arrays) de escalares: $a[1] = 0; $a[1] = $b[1]; 7

As listas são precedidas pelo símbolo arroba @ : @sequencia = (1, 2, 3, 4, 5); @frutos = ( morango, banana, laranja ); @copia_sequencia = @sequencia; Uma lista pode ser entendida como um vector (tabela unidimensional) Índices inteiros podem ser utilizados para referenciar os elementos que integram as listas Para imprimir um elemento de uma lista: print $frutos[2]; 8

Estas variáveis são diferenciadas pela utilização do símbolo percentagem % São destinadas a conter associações entre arrays de escalares, pares chave/valor constituindo tabelas de hash Exemplo: $fred{ a } = aaa ; $fred{ b } = bbb ; $fred{6} = cc ; $fred{1} = 2; Tabela de hash É equivalente, em Perl, a escrever o seguinte código: %fred = ( a, aaa, b, bbb, 6, cc, 1, 2); 9

Para utilização de programação modular recorre-se à codificação dos sub-programas usando a palavra reservada sub, seguindo a delimitação do código do sub-programa entre chavetas. Exemplo: Sub meusubprograma1 { # Código Perl do módulo. } Antecede os comentários Os módulos são reutilizáveis e, se necessário, de invocação recursiva. A invocação é precedida do símbolo & Exemplo: &meusubprograma1; 10

O Perl está estruturado em módulos de funções pré-programadas (primitivas). O programador normalmente reutiliza essas primitivas para a composição e implementação dos seus programas. Exemplos de módulos: Math; String; Bio Na descriminação dos componentes, estes separam-se do módulo (ou sub-módulo) pelos símbolos :: Exemplos de módulos e do componente específico: Math::Complex Math::Approx String::BitCount String::Approx Bio::Tools::pSW Efectua o alinhamento de seqs (PD) pelo algoritmo de Smith-Waterman 11

O BioPerl não é uma nova linguagem, é apenas uma colecção de módulos que implementam funções necessários para o tratamentos de dados bioinformáticos Facilita o desenvolvimento de aplicações bioinformáticas ou simplesmente de scripts (trechos que implementam acções simples e recorrentes) para utilização em meios de investigação bioinformática O módulo a adicionar ao Perl chama-se Bio, e incluí, em número crescente, componentes para as mais diversas necessidades de análise e tratamento de dados biológicos 12

O (Bio)Perl é uma linguagem vocacionada para a manipulação e processamento de cadeias de símbolos, revelando utilidade em quase todas as operações básicas de análise de sequências biológicas Usando os módulos disponíveis (gratuitamente) do BioPerl, qualquer pessoa com um mínimo de formação pode construir pequenos programas (e scripts) em BioPerl, simplesmente pela invocação dessas funções pré-concebidas No dia a dia do laboratório de bioinformática as necessidades pontuais nem sempre têm resposta nas aplicações bioinformáticas mais implantadas, pelo que a produtividade do investigador pode ser melhorada se detiver competências em BioPerl. O diálogo com os programadores fica mais facilitado. 13

(O software usado é na totalidade de domínio público e gratuito) 1 º Fazer o download do Perl através do site do Perl ActiveState em: http://activestate.com/products/activeperl 2º Fazer a instalação do Perl no sistema 3º Abrir o PPM (Perl Package Manager), que está no grupo de programas instalados do Perl acessível via menu Iniciar/Programas/ActivePerl 4º No PPM, seleccionar no menu Edit a opção Preferences e aceder ao separador Repositories Um por um, adicionar os seguintes módulos (para a versão 5.10): BioPerl Regular Releases http://bioperl.org/dist Kobes http://cpan.uwinnipeg.ca/ppmpackages/10xx/ Bribes http://www.bribes.org/perl/ppm 14

5º Clicar em OK na janela PPM Preferences, verificando se os módulos foram adicionados (ver imagem à direita) 6º No PPM pesquisar por bioperl e marcar o módulo para instalação (botão dir. do rato no módulo e seleccionar a opção) 7º Carregar no botão para executar as operações de instalação marcadas e aguardar que finalize a instalação (resultado igual à imagem) 15

Os módulos do BioPerl invocam-se por Bio::XXX Actualmente existem mais de 1000 módulos do BioPerl! Exemplos: Bio::Align Bio::SeqIO Bio::Annotation Bio::Assembly Bio::Biblio O BioPerl (módulos) está disponível para instalação em: http://www.bioperl.org/ com documentação e exemplos, para facilitar a aprendizagem (Clicar em BioPerl 1.4 Module Documentation) 16

Escrever o código-fonte Na ausência de melhor editor, o Notepad (Bloco de Notas) pode servir perfeitamente. Alternativa: Um IDE (ambiente integrado de desenvolvimento) http://www.enginsite.com/perl.htm Para executar ou depurar o programa Guardar o código num ficheiro com a extensão pl e executar na linha de comandos: >perl nomeprograma.pl 17

Um exemplo básico, sem necessidade de módulos BioPerl # Sequência DNA $DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC'; # Mostrar a sequência no ecran print Aqui esta a sequencia de DNA:\n\n"; print "$DNA\n\n"; # Transcrver a sequência de DNA para RNA substituindo todos os Ts por Us. $RNA = $DNA; $RNA =~ s/t/u/g; # Mostrar no ecran a cadeia de RNA resultante print O resultado da transcrição de DNA para RNA:\n\n"; print "$RNA\n"; Guardar este código num ficheiro como código Perl (extensão: pl), por exemplo com nome exemplo.pl e executar na linha de comandos: > perl exemplo.pl 18

Começar a programar em BioPerl Resultado: substituir por $RNA =~ s/t/u/g; Variável escalar Operador de associação Operador de substituição modificador (globalmente) 19

Começar a programar em BioPerl Outro exemplo básico, usando os módulos: Seq e SeqIO: use Bio::Seq; use Bio::SeqIO; # cria uma nova sequência de ADN com as bases CATGTAGATAG my $seq = Bio::Seq->new(-id => 'seq_teste', -seq => 'CATGTAGATAG'); # imprime alguns detalhes sobre a sequência, o comprimento e a reversa complementar print "A sequencia ", $seq->seq," tem ", $seq->length, " bases \n"; print "A sua reversa complementar: ", $seq->revcom->seq, "\n"; # escreve a sequência num ficheiro usando o formato Fasta my $out = Bio::SeqIO->new(-file => '>seq_teste.fsa', -format => 'Fasta'); $out->write_seq($seq); Guardar este código num ficheiro como código Perl (extensão: pl), por exemplo com nome 3passos.pl e executar na linha de comandos: > perl 3passos.pl 20

O módulo SeqIO permite ler e escrever sequências em vários formatos possibilitando conversões entre os diferentes formatos existentes. Veja-se o seguinte exemplo: use Bio::SeqIO; # lê a sequência de entrada no formato Fasta $in = Bio::SeqIO->new('-file' => "inputfilename.fsa", '-format' => 'Fasta'); #escreve a sequência de saída no formato Raw (básico) $out = Bio::SeqIO->new('-file' => ">outputfilename.raw", '-format' => 'raw'); while ( my $seq = $in->next_seq() ) { $out->write_seq($seq); } Nota: O ficheiro inputfilename.fsa deverá existir, para ser acedido, lido e convertido 21

O módulo PrimarySeq permite efectuar transformações na sequência primária, por exemplo, efectuar a sua tradução para uma cadeia de amino-ácidos. Veja-se o script (exemplo2.pl): use Bio::PrimarySeq; my $seq = new Bio::PrimarySeq(-seq => 'ATGGGACCAAGTA', -display_id => 'exempl01'); print a sequencia tem ", $seq->length, bases \n"; print traducao para amino-acidos: ", $seq->translate()->seq(), "\n"; Resultado da execução: > perl exemplo2.pl a sequencia tem 13 bases traducao para amino-acidos: MGPS 22

O módulo GenBank, permite aceder e descarregar sequências do GenBank (NCBI), para tal é necessário que o computador tenha ligação à Internet. Veja-se o seguinte exemplo: use Bio::DB::GenBank; use Bio::SeqIO; my $gb = new Bio::DB::GenBank; my $seqout = new Bio::SeqIO(-fh => \*STDOUT, -format => 'fasta'); #uma única sequência por id my $seq = $gb->get_seq_by_id('musighba1'); $seqout->write_seq($seq); # ou por accession $seq = $gb->get_seq_by_acc('af303112'); $seqout->write_seq($seq); #ou múltiplas sequências relacionadas, pelo método get_stream_by_id my $seqio = $gb->get_stream_by_id([ qw(j00522 AF303112 2981014)]); Definir destino, se ecrã ou ficheiro while( defined ($seq = $seqio->next_seq )) { $seqout->write_seq($seq); } 23

A Internet é uma fonte imediata de scripts em BioPerl Não se ganha nada em reinventar a roda, reutilizem-se scripts Recursos: Googlar : bioperl scripts ou mais específico: bioperl alignment script Fórum europeu: http://www.openbiosource.org/ Partilha de Scripts Bioperl em: http://www.bioperl.org/wiki/bioperl_scripts http://search.cpan.org/~birney/bioperl-1.2.3/bioscripts.pl 24

Conteúdos de www.bioperl.org James D. Tisdall, Beginning Perl for Bioinformatics: An Introduction to Perl for Biologist, edição de O'Reilly, 2001 Bioperl course, por Catherine Letondal e Katja Schuerer Acessível on-line em: http://www.pasteur.fr/recherche/unites/sis/formation/bioperl/support.pdf D. Curtis Jamison, Perl Programming for Biologists, edição de Wiley-IEEE, 2003 James D. Tisdall, Mastering Perl for Bioinformatics: [Perl programming for Bioinformatics ], edição de O'Reilly, 2003 25