2. Quem sou eu?
• Engenheiro da Computação - UPE
• Mestrando em CC – UFPE
• Interesse em Web, móvel e IA
• pbcm.wordpress.com
Péricles Miranda
periclesmiranda@gmail.com
3.
4. Importância biológica
• Medicina {Diagnóstico e tratamento}
• Farmácia {desenvolvimento de novos
fármacos}
• Agricultura {aumento da qualidade e
produtividade dos alimentos}
Péricles Miranda
periclesmiranda@gmail.com
6. Problemas na Biologia?
• A biologia possui muitos problemas:
– Comparação de sequências;
– Mapemento de sequências;
– Identificação de regiões conservadas;
– Identificação de novas espécies;
– Análise de doenças.
Péricles Miranda
periclesmiranda@gmail.com
8. Soluções
• Bioinformática:
– Desenvolvimento de novos algoritmos e técnicas
estatísticas para encontrar relacionamentos entre
atributos em grandes conjuntos de dados;
– Aplicação de ferramentas {implementam AM} de
computação e análise para captura e interpretação de
dados biológicos;
– Desenvolvimento e implementação de ferramentas
que possibilitem o gerenciamento e acesso eficientes
de vários tipos de informação.
Péricles Miranda
periclesmiranda@gmail.com
9. Soluções
• BLAST – Ferramenta de comparação de
sequências ;
– Gera relatórios textuais e gráficos;
– Integrado com vários repositórios;
– Documentação que tende à completude;
– Disponibiliza API.
Péricles Miranda
periclesmiranda@gmail.com
10. Soluções
Biologia Python BioPython
Péricles Miranda
periclesmiranda@gmail.com
11. BioPython
• É um conjunto de ferramentas disponíveis
para computação biológica;
• Agrega bibliotecas e aplicações que satisfazem
as necessidades da bioinformática;
• O código fonte está disponível.
Péricles Miranda
periclesmiranda@gmail.com
12.
13. BioPython
• Converte arquivos em formatos da bioinformática para
objetos do tipo dicionário:
– Blast
– FASTA
– GenBank
– PubMed e Medline
– UniGene
– SwissProt
• Interfaces com os programas mais usados na
bioinformática:
– NCBI
– Programa de alinhamento Clustalw
– Ferramentas de linha de comando EMBOSS
Péricles Miranda
periclesmiranda@gmail.com
14. BioPython
• A classe Sequence lida com sequências e suas
características;
• Ferramentas que operam sobre sequências:
tradução, transcrição e cálculo de pesos;
• Çlassificadores usando k-NN, Naive Bayes ou
SVM;
• Geração de alinhamentos, e definição de matrizes
de pesos;
• Programas baseados em Interface gráfica;
• Integração com o BioSQL.
Péricles Miranda
periclesmiranda@gmail.com
15. Na Prática
>>> from Bio.Seq import Seq
>>> my_seq = Seq("AGTACACTGGT")
>>> my_seq
Seq('AGTACACTGGT', Alphabet())
>>> print my_seq
AGTACACTGGT
Péricles Miranda
periclesmiranda@gmail.com
17. Na Prática
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> my_prot = Seq("AGUACACUGGU", IUPAC.protein)
>>> my_prot
Seq('AGUACACUGGU', IUPACProtein())
>>> my_prot.alphabet
IUPACProtein()
Péricles Miranda
periclesmiranda@gmail.com
18. Na Prática
from Bio import SeqIO
for seq_record in SeqIO.parse("ls_orchid.fasta","fasta"):
print seq_record.id
print repr(seq_record.seq)
print len(seq_record)
Saída:
gi|2765658|emb|Z78533.1|CIZ78533
Seq('CGTAACAAGGTTTCCGTAGGTGCGTGG...CGC', SingleLetterAlphabet())
740
...
gi|2765564|emb|Z78439.1|PBZ78439
Seq('CATTGTTGAGATCACATAATAATTGATCT...GCC', SingleLetterAlphabet())
592
Péricles Miranda
periclesmiranda@gmail.com
19. Na Prática
>>> from Bio import SeqIO
>>> record = SeqIO.read("NC_005816.gb", "genbank")
>>> record
SeqRecord(seq=Seq('TGT...CTGTAGA', IUPACDNA()),
id='NC_005816.1',
name='NC_005816',
description='Microtus str. 91001 plasmid pPCP1,
dbxrefs=['Project:10638'])
Péricles Miranda
periclesmiranda@gmail.com
20. Na Prática
>>> coding_dna
Seq('ATGGCCATTGG', IUPACUnambiguousDNA())
>>> messenger_rna = coding_dna.transcribe()
>>> messenger_rna
Seq('AUGGCCAUUG', IUPACUnambiguousRNA())
Péricles Miranda
periclesmiranda@gmail.com
21. Na Prática
>>> messenger_rna
Seq("AUGGCCAUUG", IUPAC.unambiguous_rna)
>>> messenger_rna.translate()
Seq('MAIVMGR*KGAR*',
HasStopCodon(IUPACProtein(), '*'))
Péricles Miranda
periclesmiranda@gmail.com
22. Na Prática
• Existe uma série de algoritmos biológicos;
• A ideia não é que o usuário os reimplemente;
• Existem programas, acessíveis ao BioPython, que
realiza o trabalho por você.
>>> import Bio.Align.Applications
>>> dir(Bio.Align.Applications)
...['ClustalwCommandline', 'DialignCommandline',
'MafftCommandline', 'MuscleCommandline',
'PrankCommandline', 'ProbconsCommandline',
'TCoffeeCommandline' ...]
Péricles Miranda
periclesmiranda@gmail.com
23. Na Prática
Usando o programa para alinhamento:
>>> from Bio.Align.Applications import ClustalwCommandline
>>> cline = ClustalwCommandline("clustalw2",
infile="opuntia.fasta")
Péricles Miranda
periclesmiranda@gmail.com
24. Na Prática
Alinhamento no BLAST:
>>> from Bio.Blast import NCBIWWW
>>> fasta_string = open("m_cold.fasta").read()
>>> result_handle = NCBIWWW.qblast("blastn", "nr", fasta_string)
>>> from Bio.Blast.Applications import NcbiblastxCommandline
>>> blastx_cline = NcbiblastxCommandline(query="opuntia.fasta",
db="nr", evalue=0.001, ... outfmt=5, out="opuntia.xml")
Péricles Miranda
periclesmiranda@gmail.com
25. Na Prática
• Buscando o lineage do organismo:
>>> from Bio import Entrez
>>> handle = Entrez.esearch(db="Taxonomy",
term="Cypripedioideae")
>>> records[0].keys() [u'Lineage', u'Division', u'ParentTaxId',
u'PubDate', u'LineageEx', u'CreateDate', u'TaxId', u'Rank',
u'GeneticCode', u'ScientificName', u'MitoGeneticCode',
u'UpdateDate']
>>> records[0]["Lineage"] 'cellular organisms; Eukaryota; Viridiplantae;
Streptophyta; Streptophytina; Embryophyta; Tracheophyta;
Euphyllophyta; Spermatophyta; Magnoliophyta; Liliopsida;
Asparagales; Orchidaceae'
Péricles Miranda
periclesmiranda@gmail.com