Python para Bioinformática Visão Geral Prof. Alessandro Brawerman
2 O Curso Obje8vo Mostrar a u8lidade de Python para facilitar e automa8zar tarefas que manipulam dados. Entender como a linguagem da suporte para diversas ferramentas de bioinformá8ca. Metodologia Avaliação Ênfase em exercícios prá8cos através de exemplos. Uso de projetos como método de avaliação.
3 Ementa O curso agrega conhecimentos na linguagem Python sempre apresentando exemplos prá8cos e ligando a mesma a área de bioinformá8ca. O conteúdo inicia mostrando os 8pos primi8vos, passa pelos comandos mais comuns, uso de funções, uso do Python como ferramenta de busca, integração com XML e uso de banco de dados. Ao final o aluno deve entender e ser capaz de usar Python como uma ferramenta de busca e/ou análise, integrando o mesmo com banco de dados.
4 Por que Python? Excelente linguagem para análise de texto; Ferramentas computacionais para biologia molecular; Suporta vários formatos de arquivos u8lizados em bioinformá8ca (FASTA, GenBank, etc); Integrado ao BioSQL, um esquema padronizado de banco de dados para sequências biomoleculares. h]p://python.org/ h]p://biopython.org
5 Exemplos de Uso Banco de dados Aplica8vos; Bibliotecas; Protocolos. Ferramentas de busca Ferramentas de análise Análise filogené8ca; Análise esta_s8ca.
6 Python É uma linguagem interpretada. Não há pré- declaração de variáveis, e os 8pos das variáveis são determinados dinamicamente. O controle de bloco é feito apenas por indentação; não há delimitadores do 8po BEGIN e END ou { e }. Oferece 8pos de alto nível: strings, listas, tuplas, dicionários, arquivos, classes. É orientada a objetos; em Python, tudo é um objeto.
7 Interpretador x Compilador Compilador O código- fonte do programa é lido pelo compilador, que cria um arquivo binário, executável diretamente pelo hardware da plataforma- alvo. Interpretador Programas escritos em linguagens interpretadas não são conver8dos em um arquivo executável. Eles são executados u8lizando um outro programa, o interpretador, que lê o código- fonte e o interpreta diretamente, durante a sua execução.
8 Execucanto Programas em Python Para executar um programa Python con8do no arquivo hello.py, por exemplo, u8liza- se algo como: python hello.py Hello World Não há o passo de geração de executável; o interpretador transforma o programa especificado à medida em que é executado.
9 Instalação Possui versões para Windows, Mac OS e Linux. Alguma versão do Python já deve estar instalada: python - V Pacote a ser usado é o python 3.2. Linux: 1. Para compilar o Python alguns pacotes são necessários sudo apt- get install build- essen7al libncursesw5- dev libreadline5- dev libssl- dev libgdbm- dev libc6- dev libsqlite3- dev tk- dev
10 Instalação 2. Download e descompactação wget hap://www.python.org/fp/python/3.2/python- 3.2rc2.tgz && tar - xvf Python- 3.2rc2.tgz 3. Instalação./configure make sudo make al7nstall
11 Iniciando o Python Digite python3.2 Para sair do interpretador pressione Ctrl- D. No Windows, Ctrl- Z.
12 Python IDE Possui uma IDE simples, suficiente para nosso uso. Pode- se usar IDEs mais poderosas. Inicie com idle3.2
13 Módulos Há um grande conjunto de módulos que se instalam com o interpretador Python, alguns dos mais interessantes: sys: oferece várias operações referentes ao próprio interpretador. Ex: path, argv, a lista de parâmetros passados na linha de comando e exit(). 8me: oferece funções para manipular valores de tempo. Inclui: 8me(), sleep(n), e strpime(n). os: oferece funções relacionadas ao ambiente de execução do sistema. Inclui: mkdir(), rename() e system.
14 Módulos os.path: oferece funções de manipulação do caminho independente de plataforma. Inclui: isdir(p), exists(p) e join(p,m). string: oferece funções de manipulação de string (que também estão disponíveis como métodos da string). Inclui: split(c, s, p), lower(c) e strip(c). math: funções matemá8cas gerais. Inclui funções como cos(x), hypot(x, y) e exp(x). random: geração de números randômicos. Inclui: random(), randrange(m,n) e choice(s).
15 Módulos getopt: processamento de argumentos de comando de linha; ou seja, os parâmetros que passamos para o interpretador na linha de execução. Tkinter: um módulo que permite a criação de programas com interface gráfica, incluindo janelas, botões e campos texto.
16 Módulos Independentes Além dos módulos distribuídos com o Python, existem vários módulos auxiliares. win32pipe: permite, na plataforma Windows, executar programas win32 e capturar sua saída em uma string para manipulação posterior. Acompanha a distribuição Ac8vestate Python: h]p://www.ac8vestate.com/products/ac8vepython/ PIL: Python Imaging Library, que oferece funções para processamento, manipulação e exibição de imagens. h]p://www.pythonware.com/products/pil/ NumPy: provê mecanismos simples e de alto desempenho para manipular matrizes mul8- dimensionais; ideal para operações numéricas de alto volume que necessitem de velocidade. h]p://numpy.sourceforge.net/ HTMLgen: uma biblioteca de classes que gera documentos HTML conforme padrões pré- definidos. Oferece classes para manipular tabelas, listas, e outros elementos de formatação. h]p://starship.python.net/crew/friedrich/htmlgen/html/
17 Módulos Independentes DB- API: Database Applica8on Programming Interface; na realidade, um conjunto de módulos que acessam bases de dados de uma forma padronizada. A API especifica uma forma homogênea de se fazer consultas e operações em bases de dados relacionais (SQL); diversos módulos implementam esta API para bases de dados específicas. h]p://www.python.org/topics/database mx: oferece uma série de extensões à linguagem, incluindo operações complexas de data e hora, funções na8vas estendidas, e ferramentas para processamento de texto. h]p://www.egenix.com/files/python/ PyGTK: É outro pacote que permite construir aplicações gráficas com o Python; pode ser usado em conjunto com o Glade, um construtor visual de interfaces. h]p://www.pygtk.org/ wxpython: uma biblioteca de classes que permite construir aplicações gráficas mul8- plataforma usando Python. Há um construtor visual de interfaces disponível, o Boa Constructor. h]p://www.wxpython.org/
18 Módulos Independentes Todos os módulos citados se comportam como módulos Python normais; são u8lizados por meio da instrução import, e boa parte possui documentação e símbolos internos listáveis. Esta não é uma lista exaus8va, e há muitos outros módulos úteis; há boas referências que listam módulos externos, incluindo o índice de pacotes oficial PyPI: h]p://www.python.org/pypi.