Péricles Miranda periclesmiranda@gmail.com
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
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
Importância biológica • Genômica – Análise, edição e manipulação • Proteômica
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
Computação solucionando problemas Péricles Miranda periclesmiranda@gmail.com
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
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
Soluções Biologia Python BioPython Péricles Miranda periclesmiranda@gmail.com
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
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
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
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
Na Prática >>> seq1 = Seq('AGTACACTGGT', Alphabet()) >>> seq1.complement() Seq('TCATGTGACCA',Alphabet()) >>> seq1.reverse_complement() Seq('ACCAGTGTACT', Alphabet()) >>> str(seq1) 'AGTACACTGGT' Péricles Miranda periclesmiranda@gmail.com
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
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
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
Na Prática >>> coding_dna Seq('ATGGCCATTGG', IUPACUnambiguousDNA()) >>> messenger_rna = coding_dna.transcribe() >>> messenger_rna Seq('AUGGCCAUUG', IUPACUnambiguousRNA()) Péricles Miranda periclesmiranda@gmail.com
Na Prática >>> messenger_rna Seq("AUGGCCAUUG", IUPAC.unambiguous_rna) >>> messenger_rna.translate() Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*')) Péricles Miranda periclesmiranda@gmail.com
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
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
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
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
Na Prática • Suporte 3D; • PyMol. Péricles Miranda periclesmiranda@gmail.com
Material • http://biopython.org/ – Tutorial – Downloads – Samples – Fóruns – Documentação – Repositório no Github
Péricles Miranda periclesmiranda@gmail.com

Bio python

  • 1.
  • 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
  • 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
  • 5.
    Importância biológica • Genômica – Análise, edição e manipulação • Proteômica
  • 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
  • 7.
    Computação solucionando problemas 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 • É umconjunto 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
  • 13.
    BioPython • Converte arquivosem 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 classeSequence 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 >>> fromBio.Seq import Seq >>> my_seq = Seq("AGTACACTGGT") >>> my_seq Seq('AGTACACTGGT', Alphabet()) >>> print my_seq AGTACACTGGT Péricles Miranda periclesmiranda@gmail.com
  • 16.
    Na Prática >>> seq1= Seq('AGTACACTGGT', Alphabet()) >>> seq1.complement() Seq('TCATGTGACCA',Alphabet()) >>> seq1.reverse_complement() Seq('ACCAGTGTACT', Alphabet()) >>> str(seq1) 'AGTACACTGGT' Péricles Miranda periclesmiranda@gmail.com
  • 17.
    Na Prática >>> fromBio.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 Bioimport 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 >>> fromBio 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 • Existeuma 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 oprograma 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 noBLAST: >>> 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 • Buscandoo 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
  • 26.
    Na Prática • Suporte3D; • PyMol. Péricles Miranda periclesmiranda@gmail.com
  • 27.
    Material • http://biopython.org/ – Tutorial – Downloads – Samples – Fóruns – Documentação – Repositório no Github
  • 28.