Python para Bioinformática

Propaganda
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. 
Download