Você está na página 1de 18

ì

 
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.  

Você também pode gostar