Python para Bioinformática
Fundamentos de Programação para Bioinformática e Biologia Computacional
Descrição do livro
A bioinformática é uma área multidisciplinar que utiliza técnicas da ciência da computação para análise de dados biológicos. Nos últimos anos, a bioinformática tem revolucionado diversas áreas de pesquisa, acelerando descobertas no entendimento de genomas, proteínas e interações moleculares.
Dominar a programação é fundamental na bioinformática, uma vez que a análise de dados biológicos envolve lidar com volumes massivos e complexos, muitas vezes impossíveis de serem tratados manualmente. Além disso, a bioinformática exige soluções criativas para problemas únicos, e somente com o conhecimento em programação você estará apto para enfrentar esses desafios.
Python, uma linguagem poderosa e de fácil aprendizagem, se destaca como uma das melhores escolhas para a bioinformática.
Neste livro, você aprenderá desde os conceitos básicos de programação em Python até a aplicação de bibliotecas para análises de dados biológicos. Além disso, serão abordados exemplos práticos e estudos de caso, preparando você para resolver problemas reais da área. Neste livro, você encontrará ainda:
• 300 exercícios de fixação com respostas
• 62 exercícios práticos
• 17 exercícios resolvidos
• 11 videoaulas complementares
Prepare-se para dominar o mundo da programação para bioinformática com Python! Vamos nessa?
Ver menos ▲Sumário
- Agradecimentos
- Sobre o autor
- Prefácio
- Capítulo 1: Bioinformática
- Contexto histórico
- Ramificações da bioinformática
- A molécula de DNA
- Projeto genoma
- Dogma central
- Nucleotídeos
- Proteínas
- Tipos de visualização de proteínas
- Níveis de estruturas
- Genoma
- Tamanho de genomas
- Conhecendo um genoma
- Códons
- Sequenciamento
- Sequenciadores NGS
- Desafios da bioinformática
- Montagem de genomas
- Anotação de genomas
- Alinhamentos de sequências
- Alinhamentos estruturais
- Modelagem de proteínas
- Docking e dinâmica molecular
- Mutações
- Computação
- O que são programas de computadores?
- Bancos de dados biológicos
- Linguagens de programação
- Por que aprender a programar em bioinformática?
- Conceitos importantes [17]
- Exercícios de fixação # 1
- Capítulo 2: Introdução à linguagem Python
- História do Python
- Instalação do Python
- Windows
- Linux e macOS
- Construção de seu primeiro programa na linguagem Python
- Exercícios práticos # 1
- Comentários de códigos
- Comentários funcionais
- Execução de um script por uma IDE
- Edição de scripts nas nuvens
- Variáveis
- Palavras reservadas do Python
- Tipos de variáveis
- Exercícios de fixação # 2
- Objetos
- Operações matemáticas
- Operador módulo (%)
- Conversões de tipos
- Entrada de dados
- Exercícios práticos # 2
- Funções nativas
- Módulos
- Exercícios de fixação # 3
- Capítulo 3: Estruturas de controle
- Declaração composta
- Estruturas de seleção
- Exercícios de fixação # 4
- Operadores relacionais e lógicos
- Operadores relacionais
- Exercícios de fixação # 5
- Exercícios práticos # 3
- Operadores lógicos
- Tabela-verdade
- Exercícios práticos # 4
- Exercícios resolvidos # 1
- Construção de uma calculadora
- Exercícios resolvidos # 2
- Operadores relacionais e lógicos
- Estruturas de repetição
- Comando while
- Comando for
- Cláusulas break e continue
- Controle de exceções
- Finally
- Exercícios resolvidos # 3
- Verificação de erros na execução
- Exercícios práticos # 5
- Capítulo 4: Strings
- Funções para manipulação de strings
- Tamanho de uma string
- Partes de uma string
- Separação de strings
- Alterar maiúsculas e minúsculas
- Remoção de espaços e caracteres especiais de extremidades de strings
- Realização de buscas em strings
- Substituição de trechos de uma string
- Exercícios de fixação # 6
- K-mer: janela deslizante
- Exercícios resolvidos # 4
- Determinação do K-mer mais comum em sequências de aminoácidos
- Exercícios resolvidos # 5
- Determinação do K-mer mais comum em sequências de nucleotídeos
- Exercícios de fixação # 7
- Exercícios resolvidos # 4
- Sequências aleatórias
- Capítulo 5: O guia de sobrevivência de expressões regulares em Python
- Metacaracteres
- Categoria 1 – Metacaracteres representantes
- Categoria 2 – Metacaracteres quantificadores
- Categoria 3 – Metacaracteres âncoras
- Categoria 4 – Outros metacaracteres
- Realização de buscas com ER em Python
- Substituição de padrões de texto em Python
- Buscas por diferentes tipos de caracteres
- Exercícios resolvidos # 6
- Exercícios resolvidos # 7
- Exercícios resolvidos # 8
- Exercícios práticos # 6
- Exercícios de fixação # 8
- Capítulo 6: Estruturas de dados sequenciais
- Criação de listas, tuplas e dicionários vazios
- Listas
- Verificação do tamanho de uma lista
- Obtenção do índice
- Verificação de se um item está dentro de uma lista
- Como percorrer listas usando o laço for
- Função split: conversão de uma string em uma lista
- Função join: união de listas em uma string
- Adição de itens a uma lista
- Remoção de itens de uma lista
- Ordenação de listas
- Contagem de ocorrências de um valor
- Tuplas
- Diferenças entre tuplas e listas
- Conversão de tuplas em listas
- Criação de uma barra de progresso no iterador
- Dicionários
- Método items: obtenção de chaves e valores de uma lista
- Conjuntos
- Compreensão de lista (list comprehension)
- Exercícios resolvidos # 9
- Reconstrua o código usando list comprehension
- Exercícios resolvidos # 10
- Contagem de códons de um genoma
- Exercícios de fixação # 9
- Exercícios práticos # 7
- Reconstrua os códigos usando list comprehension
- Exercícios resolvidos # 9
- Enumeração (enumerate)
- Compactação
- Exercícios práticos # 8
- Listas
- Exercícios práticos # 8
- Função filter( )
- Função map()
- Função reduce()
- Exercícios de fixação # 10
- Map, reduce e filter
- Exercícios de fixação # 10
- Se liga aí, que é hora da revisão! ;)
- Principais métodos para listas
- Exercícios de fixação # 11
- Listas, tuplas e dicionários
- Capítulo 7: Arquivos
- Abertura de arquivos
- É possível ler um arquivo duas vezes no mesmo script?
- Contagem do número de linhas de um arquivo
- Como ler arquivos grandes
- Gravação em arquivo
- Gravação em arquivos com print
- Comando with
- Módulo sys
- Recebimento de valores na chamada do script
- Abertura de arquivos enviados como argumento
- Criação de mensagens de ajuda para seu programa
- Leitura de arquivos de uma pasta
- Módulo os
- Módulo glob
- Formato FASTA
- Formato FASTQ
- Qualidade Phred
- Formato MultiFASTQ
- Formato PDB e MMCIF
- Exercícios práticos # 9
- Manipulação de arquivos CSV
- Manipulação de arquivos CSV com Python
- Leitura de arquivos CSV
- Gravação de arquivos CSV
- JSON
- Leitura de arquivos JSON com Python
- Alteração de um arquivo JSON
- Documentos XML
- Biblioteca etree
- Conversão de strings em objetos XML
- Exercícios de fixação # 12
- Estudo de caso: Human Metabolome Database (HMDB)
- Armazenamento em XML
- Análise do arquivo XML de um metabólito
- Se liga aí, que é hora da revisão! ;)
- Capítulo 8: Funções
- Instrução return
- Documentação de uma função
- Escopo de funções
- Variável global
- Funções recursivas
- Aplicação de valores default a parâmetros
- Inserção de um número indefinido de argumentos em uma função
- Exercícios resolvidos # 11
- Funções
- Funções com número indefinido de chaves
- Exercícios práticos # 10
- Exercícios de fixação # 13
- Exercícios resolvidos # 11
- Capítulo 9: Princípios da programação orientada a objetos
- Classes, métodos, atributos e objetos
- Criação de classes em Python
- Exemplo real: classe Nucleotideos
- Quando devo usar a orientação a objetos em meus códigos?
- Exercícios de fixação # 14
- Capítulo 10: BLAST
- Em poucas palavras: o que o BLAST faz?
- Vantagens do BLAST
- Por que o BLAST funciona?
- Compreensão na prática: comparação de sequências de hemoglobinas
- Saiba mais sobre o resultado do BLAST
- Compreensão do algoritmo de alinhamento local e global
- Aplicação do algoritmo de alinhamento global na prática
- Implementação dos algoritmos de Smith-Waterman e Needleman-Wunsch em Python
- NCBI-BLAST+
- Instalação do BLAST
- Uso do BLAST via linha de comando
- Análise de resultados do BLAST usando Python
- Exercícios resolvidos # 12
- Obtenção do percentual de lacunas encontrado no resultado do BLAST
- Exercícios práticos # 11
- Construção de seu próprio banco de dados BLAST
- Exercícios de fixação # 15
- Exercícios resolvidos # 12
- Capítulo 11: Bioinformática estrutural
- Proteínas
- Aminoácidos
- Protein Data Bank (PDB)
- Peptídeos
- Leitura de arquivos PDB com Python
- Leitura de arquivos PDBx/mmCIF
- Leitura de qualquer arquivo PDBx/mmCIF
- Matriz de distância entre átomos
- Distância euclidiana
- Cálculo da matriz
- Contatos
- Ligações de hidrogênio
- Ligações dissulfeto
- Efeito hidrofóbico
- Empilhamento aromático
- Ligações iônicas e repulsivas
- Ponte salina
- Contatos entre resíduos de aminoácidos
- Cálculo de contatos com Python
- Script contatos py
- Mapa de distâncias
- Mapa de contatos
- Exercícios de fixação # 16
- Interações entre diferentes cadeias
- Interações proteína-ligante
- Interações proteína-proteína
- Interações proteína-peptídeo
- Visualização de estruturas moleculares
- PyMOL
- Alguns comandos básicos do PyMOL
- Seleção de átomos próximos a uma região
- ChimeraX
- Exercícios de fixação # 17
- PyMOL
- Cálculo de ligações de hidrogênio considerando ângulos
- Exercícios de fixação # 18
- Capítulo 12: Biopython
- Como instalar o Biopython?
- Instalação do Biopython com pip
- Importação do Biopython
- Manipulação de sequências com Biopython
- Sequência complementar e complementar reversa
- Transcrição
- Tradução
- Concatenação de sequências
- Comparação de sequências
- Análise de arquivos no formato FASTA
- Gravação de sequências
- Análise de arquivos no formato GenBank
- Obtenção do nome de produtos codificados de um arquivo GenBank
- Conversão de arquivos GenBank para FASTA
- Ordenação de sequências por tamanho
- Contagem da quantidade de leituras em um arquivo FASTQ
- Criação de um filtro de qualidade para arquivos FASTQ
- Remoção de primers de arquivos com dados brutos de sequenciamento
- Conversão de arquivos FASTA e QUAL em um arquivo FASTQ
- Pacote PDB (Biopython)
- Download de arquivos PDB
- Obtenção de informações do cabeçalho
- Navegação na estrutura do arquivo PDB
- Remoção de heteroátomos
- Renumeração de resíduos
- Salvamento das alterações realizadas
- Extração de outras informações de átomos e resíduos
- Extração da estrutura primária
- Medição da distância euclidiana entre dois átomos
- Construção de uma matriz de distância todos contra todos
- Exercícios de fixação # 19
- Capítulo 13: Grafos
- Busca em largura (BFS)
- Busca em profundidade (DFS)
- Representações biológicas com grafos
- NetworkX
- Primeiros passos
- Instalação
- Criação de um objeto networkx
- Adição de vértices
- Remoção de vértices
- Desenho do grafo
- Subgrafos
- Conversão de um CSV em um grafo
- Carregamento de um CSV com pandas
- Conversão de um DataFrame do pandas em um grafo do NetworkX
- Salvamento de grafos em CSV
- Leitura de arquivos CSV como grafos
- Resumo do NetworkX
- Montagem de genomas
- Uso de Python para fragmentar um genoma
- Criação de um grafo de leituras de DNA
- Geração de uma sequência consenso com Python
- Assinaturas estruturais baseadas em grafos
- Matriz de Escaneamento de Corte
- Implementação do CSM com Python
- Exercícios práticos # 12
- SSV – Structural Signature Variation
- Exercícios de fixação # 20
- Capítulo 14: NumPy
- Instalação
- Importação do módulo
- Introdução aos arrays
- Intervalos numéricos
- Matrizes de zeros e uns
- Números aleatórios
- Obtenção das dimensões de um array
- Alteração da forma de um array
- Obtenção do maior e do menor valor de um array
- Navegação e manipulação de arrays NumPy
- Fatiamento de um array
- Utilização de passos (step)
- Alteração de valores de parte de um array
- Matrizes multidimensionais
- Obtenção de valores da matriz multidimensional
- Coleta de partes de uma matriz
- Operações lógicas com arrays
- Estudo de caso: coleta de valores pares e ímpares
- Operações com arrays
- Salvamento de uma matriz como CSV
- Exercícios práticos # 13
- Capítulo 15: pandas
- Instalação
- Importação do módulo
- Series
- DataFrame
- Exercícios de fixação # 21
- Criação de uma tabela 4 por 3
- Adição e remoção de colunas
- Operações com colunas
- Importação de arquivos no pandas
- Leitura de arquivos do EXCEL no pandas
- Exercícios resolvidos # 13
- Exercícios práticos # 14
- Capítulo 16: Visualização de dados
- Matplotlib
- Instalação do Matplotlib
- Construção de seu primeiro gráfico com Matplotlib
- Inclusão de títulos no gráfico
- Gráfico de barras
- Gráfico de barras comparativo
- Adição de legendas
- Gráfico de dispersão (scatterplot)
- Alteração de estilos e cores
- Salvamento de figuras
- Exercícios de fixação # 22
- Seaborn
- Histogramas
- Criação de gráficos de barras categóricos
- Exercícios de fixação # 23
- Estudo de caso: comparação de genomas
- Tamanho das sequências
- Contagem de nucleotídeos
- Contagem de dinucleotídeos
- Contagem de trinucleotídeos
- Exercícios práticos # 15
- Capítulo 17: Paralelismo
- Paralelismo via terminal: comando nohup &
- Execução em background (&)
- Avaliação do uso do processador e do tempo de execução
- Execução com nohup
- Múltiplas execuções de um script Python ao mesmo tempo
- Paralelismo usando bibliotecas Python
- Exemplo prático de paralelismo com a biblioteca multiprocessing
- Exercícios resolvidos # 14
- Exercícios de fixação # 24
- Capítulo 18: Web scraping
- Instalação das bibliotecas
- Fundamentos do web scraping
- Coleta de elementos HTML específicos
- Coleta apenas de textos
- Métodos e atributos de um objeto BeautifulSoup
- Coleta de dados do UniProt
- Realização de uma consulta simples por ID
- Realização de buscas avançadas por API no UniProt
- Coleta de dados do PDB
- Coleta de metadados de artigos do PubMed
- Passo 1. Obtenção do PubMed-ID
- Passo 2. Obtenção do resumo (abstract)
- Exercícios práticos # 16
- Capítulo 19: Machine learning
- Fundamentos do aprendizado de máquinas
- Tipos de aprendizagem de máquina
- Exercícios de fixação # 25
- Aprendizagem não supervisionada
- Algoritmos de aprendizagem não supervisionada
- Exercícios de fixação # 26
- Base de dados de flores de íris
- Orange Data Mining
- K-means
- Uso de aprendizagem não supervisionada em bioinformática
- Exercícios de fixação # 27
- Aprendizagem supervisionada
- Classificação binária
- Matriz de confusão
- Métricas de avaliação: sensibilidade, especificidade, acurácia, precisão e F-score
- Exercícios resolvidos # 15
- Métricas de avaliação de modelos
- Exercícios de fixação # 28
- Algoritmos de aprendizagem supervisionada
- Exemplo prático: classificação de peptídeos com machine learning
- Predições
- Machine learning com Python
- Algoritmo KNN
- Exercícios de fixação # 29
- SVD – Decomposição por Valores Singulares
- Comparação de sequências usando SVD
- Passo 1 – converta a sequência em uma matriz binária esparsa
- Passo 2 – Decomposição de uma matriz usando SVD
- Comparação com outras entradas
- Análise de posto
- Capítulo 20: Pipelines
- Fundamentos do Python para a construção de pipelines
- Criação de um programa completo de linha de comando
- Recebimento de argumentos na chamada
- Execução de scripts externos com módulos os e subprocess
- Leitura de arquivo sistematicamente
- Execução de programas em background
- Exercícios resolvidos # 16
- Cópia de arquivos usando Python
- Exercícios resolvidos # 17
- Chamadas externas
- Criação de um programa completo de linha de comando
- Implementação de um exemplo de pipeline
- 2_dna_para_rna py
- 3_rna_para_proteina py
- 1_dna_para_proteina py
- Exercícios práticos # 17
- Exercícios de fixação # 30
- Conclusão
- Resposta dos exercícios
- Referências bibliográficas
- Índice remissivo
Sobre o autor
Diego Mariano é Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados, sistemas web e inteligência artificial. Possui mestrado em Bioinformática, mestrado em Ciência da Computação e realizou pós-doutorado pelo Laboratório de Bioinformática e Sistemas da UFMG. Foi vencedor do Prêmio… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Roberto J de O
O autor conseguiu unir, com bastante habilidade, três poderosos elementos: a biologia, a informática e a linguagem python. O resultado desta interessante e prolífera mistura, nesta obra, é um livro indispensável, cativante, bem escrito e muito promissor para quem atua em todas as áreas envolvidas.






