bioinformática com biopython

32
Bioinformática com Biopython Marcos Castro Python Brasil 11

Upload: marcos-castro

Post on 09-Jan-2017

680 views

Category:

Science


0 download

TRANSCRIPT

Page 1: Bioinformática com Biopython

Bioinformática com Biopython

Marcos Castro

Python Brasil 11

Page 2: Bioinformática com Biopython

2

Apresentação• Nome: Marcos Castro

• Formação: Ciência da Computação.• Obs.: espero não assassinar a Biologia...

• Grupo de Bioinformática Unifesp-SJC• Apresentações toda sexta.• O café do laboratório é famoso!

• Objetivos da palestra:• Incentivar o uso de Python em Bioinformática.• Uso de Biopython para otimizar o seu tempo.

Page 3: Bioinformática com Biopython

3

Bioinformática

Marcos Castro
A bioinformática é uma área que busca analisar informações provenientes de estudos biológicos. Trata-se de uma área multidisciplinar que combina conhecimentos de várias áreas com o objetivo de resolver problemas biológicos.
Marcos Castro
Resumindo: processamento de dados biológicos
Page 4: Bioinformática com Biopython

4

O que é Biopython?• Conjuntos de ferramentas gratuitas para bioinformática.• Site oficial: http://biopython.org/• Código Biopython: https://github.com/biopython/biopython• Biopython Tutorial: http://biopython.org/DIST/docs/tutorial/Tutorial.pdf• Códigos da apresentação: https://github.com/marcoscastro/pybr11 • Slides: https://speakerdeck.com/marcoscastro/bioinformatica-com-biopython

Marcos Castro
Bibliotecas de ferramentas para facilitar o desenvolvimento de aplicações para bioinformática.
Marcos Castro
Biopython faz parte de Bio projects, tem também BioPerl, BioPHP, tem até BioJava
Page 5: Bioinformática com Biopython

5

Instalação• Suporte para diversos sistemas operacionais:

• http://biopython.org/wiki/Download

• Versões:• http://biopython.org/DIST/

• Pelo pip:• pip install biopython

Marcos Castro
A versão mais atual é a 1.66. A minha é a 1.63
Page 6: Bioinformática com Biopython

6

Hello Biopython

objeto Seq

Marcos Castro
módulo Bio.Seq, classe Seq, similar a string do python, é imutável
Marcos Castro
só lembrando que os nucleotídeos são representados pelos símbolos: A, C, T, G
Page 7: Bioinformática com Biopython

7

Complementar e reverso complementar• Complemento:

• Reverso complementar:

Page 8: Bioinformática com Biopython

8

Transcrição• Transcrição: onde tem “T” troca por “U” (recordando o ensino médio).• IUPAC: define padrões de alfabetos para nucleotídeos/proteínas.

Marcos Castro
É feita a transcrição e transcrição reversa
Page 9: Bioinformática com Biopython

9

Tradução• De RNA para proteína:

• Tradução direta (DNA para proteína):

Marcos Castro
Códon é uma sequência de 3 bases que determina um aminoácido. Se aparecer um * é o stop códon que indica que o processo de tradução chegou ao fim. Código genético degenado: códons diferentes -> mesmo aminoácido.
Page 10: Bioinformática com Biopython

10

Parsers – Bio.SeqIO• O pacote BioSeqIO fornece suporte a vários formatos tais como fasta, fastq etc.• FASTA

• Formato muito utilizado para armazenamento de sequências biológicas.

Page 11: Bioinformática com Biopython

11

Parsers – Bio.SeqIO• Lendo arquivo FASTA:

Marcos Castro
Formato FASTA possui identificador da sequência seguido por descrição.
Page 12: Bioinformática com Biopython

12

Parsers – Bio.SeqIO• Gerando arquivo FASTA:

Marcos Castro
SeqRecord cria uma sequência com ID, descrição
Marcos Castro
SeqRecord contém um objeto Seq e atributos da sequência.
Page 13: Bioinformática com Biopython

13

Parsers – Bio.SeqIO• Lendo arquivo genbank:

Marcos Castro
Genbank é um banco de dados público mantido pelo NCBI (National Center for Biotechnology Information)
Marcos Castro
arquivos genbank englobam informações de sequências de nucleotídeos e sua tradução em aminoácidos, informação de anotações (nomes e posicionamento de genes) de proteinas, regiões codificantes.
Page 14: Bioinformática com Biopython

14

Parsers – Bio.SeqIO• Conversões FASTQ -> FASTA e FASTQ -> QUAL

Marcos Castro
FASTQ é similar ao FASTA, mas inclui informações importantes sobre a qualidade de sequenciamento. Possui escores de qualidade que são importantes para análises de variantes e mutações. O FASTA é as vezes acompanhando por um arquivo QUAL que armazena quality score (inteiro não negativo) para cada base.
Page 15: Bioinformática com Biopython

15

Parsers – Bio.SeqIO• Conversão genbank -> FASTA

Page 16: Bioinformática com Biopython

16

Parsers – Bio.SeqIO• Ordenando arquivos Multi-FASTA pelo tamanho:

Page 17: Bioinformática com Biopython

17

Alinhamentos• Módulo pairwise2: from Bio.pairwise2 import *

Marcos Castro
Alinhamento é o processo de comparar duas ou mais strings com o objetivo de observar o nível de similaridade entre essas sequências. As regiões similares podem ser consequência de relações evolucionárias por exemplo. O alinhamento global compara as sequências em toda a sua extensão. Já o alinhamento local: dois genes de diferentes espécies podem ser similares em uma região mais curta e diferente no restante. Nesse exemplo só considera matches, mas existem funções que consideram mismtaches, gaps para tentar obter o melhor alinhamento possível baseado na informação disponível.
Page 18: Bioinformática com Biopython

18

BLAST remoto• BLAST: Basic Local Alignment Search Tool• Vários ferramentas: blastn (nucleotídeos), blatsp (proteínas) etc.

Marcos Castro
Esse comando pode demorar um pouco. Importação do módulo NCBIWWW. Lemos o arquivo fasta com SeqIO. Utilizamos o aplicativo blastn que compara uma sequência de nucleotídeos contra uma base de dados de sequências de nucleotídeos. 'nt' é database, passa a sequência e o tipo do formato do resultado. Existem outros formatos: XML (módulo NCBIXML), HTML...
Marcos Castro
o comando qblast faz uma consulta remota à base de dados do NCBI
Marcos Castro
NCBI: Centro Nacional de Informações Biotecnológicas. O NCBI está diretamente envolvido no desenvolvimento de novas ferramentas de análise para permitir um melhor entendimento dos processos genéticos e moleculares. Armazena artigos além de várias outras informações
Page 19: Bioinformática com Biopython

19

BLAST local• Requer que a suíte de aplicativos esteja instalada:

• ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST

Marcos Castro
NcbiblastnCommandline gera a linha de comando. A execução é realizada com a chamada do objeto criado.
Marcos Castro
São vários os parâmetros, tem o tamanho da palavra (word_size), matriz (o padrão é a BLOSUM62) etc.
Marcos Castro
outfmt se refere as opções de visualização de alinhamentos, com outfmt=0 é par a par (textual), tem a opção de formato XML, separado por vírgula etc.
Marcos Castro
Nesse exemplo foi utilizado o blastn, mas é possível realizar alinhamentos com outras ferramentas tais como blastp (proteínas), no caso seria comando NcbiblastpCommandLine.
Page 20: Bioinformática com Biopython

20

Visualização de dados• Necessita do módulo pylab (pip install matplotlib)• Conteúdo GC (GC content):

Marcos Castro
pode-se distinguir espécies através de pequenas discrepâncias do conteúdo GC
Page 21: Bioinformática com Biopython

21

Visualização de dados• Conteúdo GC (GC content):

Page 22: Bioinformática com Biopython

22

Visualização de dados• Quantidade de genes pelo tamanho da sequência codificadora.

Marcos Castro
Por que visualização? Forma de expressar informações para auxiliar na detecção de padrões, é interessante para representar uma grande quantidade de informações.
Marcos Castro
com SeqIO é lido o genoma
Marcos Castro
tem-se uma lista que irá armazenar os tamanhos das sequências codificantes
Marcos Castro
se o tipo for igual a CDS (sequência codificante), então eu obtenho o tamanho da sequência e insiro na lista de tamanhos
Marcos Castro
mostra a quantidade de genes pelo tamanho da sequência codificadora
Marcos Castro
função hist recebe a lista de tamanhos bem como a quantidade de barras do histograma
Marcos Castro
Lembrando: sequência codificante é uma sequência de aminoácidos. O gene possui uma região chamada de região codificadora de proteínas que é onde estão os nucleotídeos que darão origem ao RNA e posteriormente às proteínas
Page 23: Bioinformática com Biopython

23

Visualização de dados

Marcos Castro
Quantidade de genes pelo tamanho da sequência codificadora.
Page 24: Bioinformática com Biopython

24

Cálculo do N50

Marcos Castro
N50 é uma métrica utilizada para avaliar montagens de genomas.
Page 25: Bioinformática com Biopython

25

Árvore Trie• http://bioinformatics.cvr.ac.uk/blog/trie-data-structure/

Marcos Castro
encontra todas as chaves em qualquer lugar da string. Existe função para encontrar a mais longa chave a partir do início da string...
Marcos Castro
a trie consome menos espaço, é mais rápida
Page 26: Bioinformática com Biopython

26

Algoritmos Genéticos• Exemplo:

Page 27: Bioinformática com Biopython

27

Algoritmos Genéticos• Exemplo:

• http://biopython.org/DIST/docs/api/Bio.GA-module.html

Page 28: Bioinformática com Biopython

28

kNN (k-nearest-neighbors classification)• Necessita do pacote numpy.

Page 29: Bioinformática com Biopython

29

Aprendendo Bioinformática• Introdução à Programação para Bioinformática com Biopython:

• http://www.amazon.com/dp/B015IK1C4O/

• Documentação Biopython:• http://pydoc.net/Python/biopython/1.63

• Artigo Biopython:• http://goo.gl/yYSyLs

• Rosalind:• Aprenda Bioinformática resolvendo problemas.• http://rosalind.info/

• Blog Bioinformática: • http://bioinformatica.blog.br/

Page 30: Bioinformática com Biopython

30

Aprendendo Bioinformática• An Introduction to Bioinformatics Algorithms (Pavel Pevzner)• Curso de Bioinformática com Python:

• https://goo.gl/kwiZf7

• Várias apresentações sobre temas relacionados à Bioinformática:• https://speakerdeck.com/marcoscastro • http://slideshare.net/mcastrosouza

Page 31: Bioinformática com Biopython

31

Contato

[email protected]://twitter.com/mcastrosouza

http://bioinformatica.blog.br/

Page 32: Bioinformática com Biopython

32

Dúvidas?