Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Aula - Bioinformática
Prof. Laurence Rodrigues do
Amaral
Apresentação
• Prof. Laurence Rodrigues do Amaral
– Professor da FACOM/UFU em Patos de Minas
– DSc (DC/UFSCar), MSc e BSc (FACOM/UFU) em
Ciência da Computação
–
http://lattes.cnpq.br/6978567037098928
– Trabalhei com aplicações de Bioinformática no
doutorado e mestrado
• DSc – Biocurador automático para o GO
• MSc - Conhecimento de alto nível em dados de expressão
gênica (microarray) de câncer
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Introdução à Computação
• Máquina capaz
– Receber
– Armazenar
– Tratar e
– Produzir informações
• Forma automática, com grande rapidez e precisão.
• Foco: aprimorar e automatizar tarefas em
qualquer área de atuação.
– Diminuir o tempo de execução ou aumentar a
precisão na execução de alguma tarefa
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Software
• São conjuntos de procedimentos básicos que fazem que
o computador seja útil executando alguma função.
• A essas “ordens” preestabelecidas chamamos também
de programas.
• Principal software para um computador é o Sistema
Operacional (SO)
• Device Drivers
Sistema Binário
• Bit é o nome dado a um dígito binário (0
ou 1) que representa um estado binário;
• Byte é o nome dado a um grupo de 8 Bits
(octeto) que pode representar 256
sequências.
– É a unidade de medida básica e universal
para a capacidade de armazenamento de
informações em computação
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Sistema Binário
• Bit - é o "0" ou o "1".
• 1 Byte - é constituído por 8 bits.
• 1 Kilobyte - é constituído por 1024 Bytes.
• 1 Megabyte - é constituído por 1024 Kilobytes.
• 1 Gigabyte - é constituído por 1024 Megabytes.
• 1 Terabyte - é constituído por 1024 Gigabytes.
• 1 Petabyte - é constituído por 1024 Terabytes.
• 1 Exabyte - é constituído por 1024 Petabytes.
• 1 Zettabyte - é constituído por 1024 Exabytes.
História da Computação e dos
Computadores
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
História dos Computadores
• 1ª Geração (1936 a ~1957)
– Válvula
• 2ª Geração (1955-59? a 1965)
– Transistor
• 3ª Geração (1965 a 1971-80?)
– Circuitos integrados (CI)
• 4ª Geração (1980 a …)
– Microprocessadores
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Processo de Software
• Conjunto de atividades/passos voltados à produção de
um produto de software
– Especificação
• Definição das funcionalidades desejadas e das restrições de
operação
– Projeto
• Definição de uma solução de software que atenda às
especificações
– Implementação
• Produção da solução de software projetada
– Validação
• Verificação se o software produzido está de acordo com as
necessidades do cliente
– Evolução
• Necessidade do software evoluir para atender às necessidades
mutáveis do cliente
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Etapas do
desenvolvimento de programas
Estudo do enunciado
do
problema
para
definir
dados
de
entrada,
o
processamento e os
dados de saída
Análise
Algoritmo
Codificação
Ferramentas utilizadas
para
descrever
o
problema com suas
soluções
Transformação
do
algoritmo em códigos
de uma linguagem de
programação
Método para construção
1. Compreender completamente o problema a ser
resolvido, destacando os pontos mais importantes e os
objetos que o compõem
2. Definir os dados de entrada, ou seja, quais dados serão
fornecidos e quais objetos fazem parte desse
cenário-problema
3. Definir o processamento, ou seja, quais cálculos serão
efetuados e quais as restrições para esses cálculos
1. Entrada- Processamento- Saída
4. Definir os dados de saída, ou seja, quais dados serão
gerados depois do processamento
5. Construir o algoritmo
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Sistema operacional
• Faz a “ligação”
entre os softwares
de aplicação e o
hardware
• É o responsável
por todas as
operações dentro
dos computadores
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Linux
• O kernel do Linux foi, originalmente,
escrito por Linus Torvalds, estudante de
Ciência da Computação na Universidade
de Helsinki, Finlândia
– Com a ajuda de vários programadores
voluntários através da Usenet.
Linux
• Linus Torvalds começou o
desenvolvimento do núcleo como um
projeto particular, inspirado pelo seu
interesse no Minix
– Um pequeno sistema UNIX desenvolvido por
Andrew S. Tanenbaum. Ele limitou-se a criar,
nas suas próprias palavras, "um Minix melhor
que o Minix"
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Ubuntu
• É um sistema operacional de código
aberto, construído a partir do kernel Linux
– Baseado na distribuição Debian
• Download e instalação
– https://www.ubuntu.com/#download
• Aprox: 1.8 Gb
– Pode ser instalado “lado a lado” ao Windows
(dual boot)
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Ubuntu
• Download e instalação
– Com o computador ligado à internet, basta
dar boot pelo CD ou pendrive ou utilizar via
máquina virtual
Ubuntu
•
Novas versões do Ubuntu são lançadas duas vezes ao
ano, uma no mês de abril e outra no mês de outubro.
•
Um dos focos principais é a usabilidade
– O uso da ferramenta sudo para tarefas administrativas
– E a oferta de uma gama de recursos completa a partir de
uma instalação padrão
•
Possui um ótimo repositório de softwares
bioinformáticos – BioLinux
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Ubuntu
Ubuntu
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Ubuntu
• Funcionalidades
– Comando sudo
– Gerenciador de pacotes
– Packages pré-compiladas
• *.deb
– Várias interfaces gráficas
• Gnome
• KDE
Programando em linguagem
Perl (
Practical Extraction and Report Language
)
• Perl é uma linguagem poderosa e
adaptável a diversas situações.
• Sua primeira versão foi desenvolvida
por Larry Wall, um linguista que
trabalhava para a NASA na década de
80 como administrador de sistemas. Era
utilizada para facilitar o processamento
de relatórios.
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Um Pouco Sobre Perl
• É uma linguagem criada para processar e
manipular textos.
• Nos dias atuais é utilizada na administração de
sistemas, como interface para permitir a
comunicação entre sistemas diferentes, na
programação para a web, em bioinformática, ou
mesmo em desenvolvimento de aplicativos.
Um Pouco Sobre Perl
• Na programação para web, Perl é muito
utilizada e popular por suas características
de manipulação de texto e rápido
desenvolvimento, tanto que chega a ser
conhecida como a “super fita crepe” da
internet.
• A interface de integração de banco de dados
de Perl suporta diversos bancos de dados
como Oracle, Sybase, Postgre e MySQL.
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Algumas empresas que
usam Perl
Instalando Perl
•
Linux Ubuntu
– Via Package Manager
– Via linha de comando
•
Windows
– Strawberry Perl
• http://strawberryperl.com/
– ActivePerl
• http://www.baixaki.com.br/download/activeperl.htm
– Perl Express
•
http://www.baixaki.com.br/download/perl-express.htm
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Primeiro programa Perl
• Precisamos de um editor de texto
– Kate ou GEdit (Linux)
– Bloco de notas (Windows)
• Cabeçalho
– #!/usr/bin/perl
Primeiro programa Perl
• Via terminal (Linux) ou console ou prompt
(DOS)
– $ perl <nomescript.pl>
– $ perl helloworld.pl
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Perl: sintaxe e código
• Strings: são apresentadas entre aspas,
duplas ou simples.
• Exemplo: Programa Hello World!:
– print “Hello World!”;
– # exibe na tela a string Hello, World
Perl: sintaxe e código
• String entre:
– Aspas simples é considerada literalmente.
– Entre aspas duplas é interpretada.
• Exemplo:
– print ‘Hello, \nWorld!’;
– #exibe Hello, World!\n na tela.
– print “Hello, \nWorld!“;
– #exibe Hello,
– #World! na tela.
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Perl: sintaxe e código
• Perl não tem muita flexibilidade com relação a
operadores de string.
• O único operador básico de string é o de concatenação:
“.” (ponto final)
– print “Aula ” . “Bioinformática ” . “UFU”;
• Obs:
– O sinal + é usado para somar números
– Perl faz a conversão de maneira transparente.
– Se forem somadas coisas que não são números, Perl fará o
possível para convertê-las em números.
Perl: sintaxe e código
• Perl tem 3 tipos de variáveis:
–Escalares, vetores e hashes.
• Escalares: podem ser números, letras ou strings. O nome de
cada variável escalar começa com $. Exemplo:
–$nome = “UFU”;
–$idade = 40;
–$letra = “u”;
• Não é necessário especificar para um escalar que está atribuída
uma letra ou número, pois a conversão é automática.
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Perl: sintaxe e código
Perl: sintaxe e código
• Operadores de atribuição
– ++, --, +=, -=, /= e *=
• Operadores matemáticos:
– +, -, * e /
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Perl: sintaxe e código
• Arrays: são conjuntos de escalares.
• Seus nomes começam com @. A lista é definida
com parênteses. Exemplo:
– @seqsDNA = (“ACGC”, “CCGA”, “TACC”, “AAAA”);
• O funcionamento de arrays em Perl é semelhante a
C e outras linguagens. Exemplo:
– print $seqsDNA[0]; # Isto imprime "ACGC".
– $seqsDNA[2] = "GCGC"; # “TACC” foi renomeado para
"GCGC"
Perl: sintaxe e código
• Se um valor não existe, ele é criado na
atribuição. Exemplo:
– @seqsDNA = (“ACGC”, “CCGA”, “TACC”, “AAAA”);
– $seqsDNA[4] = "TTTT";
• Para saber o número de elementos em um
array, basta atribuí-lo a um escalar: Exemplo:
– $seqCount = @seqsDNA;
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Perl: sintaxe e código
• Perl possui dois operadores condicionais: if e
unless.
–
If
• Executa o bloco seguinte se a condição for verdadeira.
Funciona igual a C.
–
unless
• Executa o bloco seguinte se a condição testada for falsa
• Operadores de comparação
Perl: sintaxe e código
• Exemplo:
$salario = 10000;
if ($salario == 10000) {
print "Salario igual a 10.000";
}
unless ($salario == 9000) {
print “Salario diferente de 9.000";
}
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Perl: sintaxe e código
• Tanto o if quanto o unless podem ser seguidos
por else. Exemplo:
if ($a == 5) {
print “Igual a cinco!";
} else {
print “Diferente de cinco!”;
}
Perl: sintaxe e código
• for: é semelhante a outras linguagens.
Exemplo:
for ($i=0;$i <=5;$i++){
print $i;
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas
Expressões Regulares
• Expressões regulares ou regex são o que
Perl tem de melhor.
• São as ferramentas mais poderosas que Perl
tem no tratamento de strings.
• São tão poderosas e complexas que é
possível escrever um livro inteiro sobre elas.
• É difícil encontrar outras linguagens que
Expressões Regulares
• Ocorrência simples de expressão: são as
expressões regulares mais simples.
• Encontram uma ocorrência de string dentro
de outra, não importa a posição, retornando
verdadeiro.
• São usadas com expressões condicionais.
• O operador =~ é usado na verificação de
Prof. Laurence Rodrigues do Amaral UFU/FACOM/Patos de Minas