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 ì Ênfase em exercícios prá8cos através de exemplos. ì Avaliação ì 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.