Você está na página 1de 80

Aplicações da Bioinformática

Universidade Estadual de Campinas


Instituto de Biologia

Pós-graduação em Genética e Biologia Molecular


Disciplina: Bioinformática Aplicada
Turma: NG280

31 de julho de 2020
Campinas -SP
Docente Responsável
Prof. Dr. Marcelo Mendes Brandão

Discentes
Angie Alejandra Calderon Fajardo
Arilson Bernardo dos Santos Pereira Gomes
Augusto Kalsing
Bradley Joseph Smith
Bruna Toledo Nunes Pereira
Damaris Batistão Martim
Davi de Castro Gomes
Felipe Moreira de Almeida
Gisele Cristina de Lima
Irene Layane de Sousa
Larissa Escalfi Tristão
Lucas Souza de Bem
Tamylin Kaori Ishizuka
Yohans Alves de Moura

2
Introdução à Bioinformática 5

Sistema Operacional LINUX 5


Acesso remoto à rede da UNICAMP (VPN) 6
Instalação e configuração do PuTTY 7
Instalação do Ubuntu no Windows 8
Principais comandos do Linux 9
Controle de versão - GIT 13
Controle de versões através do GIT 13
O que é GIT? 14
Guia de comando do GIT 15

Automatização de Análises 16
Conhecendo o Shell Scripting - Programação BASH 17

Técnicas para avaliar a qualidade das bases sequências por técnicas de


sequenciamento de nova geração 22
Sequenciamento de Nova Geração: um breve histórico 22
Controle de qualidade de sequências 25
FastQC 26
Upload de sequências no Galaxy 27
Uso do FastQC na plataforma Galaxy 29
Uso do Trimmomatic na filtragem e seleção de sequências 36
Uso do Cutadapt na Plataforma Galaxy 44
Uso do MultiQC na Plataforma Galaxy 48

Anotação do genoma 55
Anotação estrutural 57
Anotação funcional 58
Ferramentas de anotação 58
Recursos de nucleotídeos 58
Recursos proteicos 58
Recursos no domínio das proteínas 59
Aglomerado de grupos ortólogos 59
Vias metabólicas 59
Interações proteicas 59
Bancos de dados estruturais 59
Programas de previsão de genes: 59
Rodando DeNSAS 60
Coleta de dados 60
Montar descrição 62
Montar anotação 63

Análise da expressão diferencial de genes através da técnica de RNA-seq 63

3
Como Analisar a Expressão Diferencial 63
Usando o RStudio 64
Criando um Projeto e Arquivo Novo 64
Carregamento dos Pacotes e Arquivos 65
Inserção de chunks 65
Bioconductor 66
edgeR 66
limma 67
Lendo e Carregando Tabelas 67
Arquivos DGEList 68
Filtragem dos dados 68
Transformação dos dados 69
Escalonamento Multidimensional 69
Matriz 71
Pesos 71
Remoção de artefatos 72
Ajuste do modelo 72
Investigação da expressão diferencial 73
Visualização da Expressão Diferencial por Heatmap 74
Enriquecimento de GOs 77
Usando TopGO em R 77

Referências 79

4
1. Introdução à Bioinformática

Augusto Kalsing
Arilson Bernardo dos Santos Pereira Gomes
Damaris Batistão Martim
Larissa Escalfi Tristão
Lucas Souza de Bem
Yohans Alves de Moura

A bioinformática é uma linha de pesquisa que envolve aspectos multidisciplinares


que surgiu através da utilização de ferramentas computacionais para análises de dados
genéticos, bioquímicos e de biologia molecular. A bioinformática engloba a união de várias
linhas de conhecimento – a ciência da computação, a engenharia de softwares, a
matemática, a estatística e a biologia molecular – e tem como a principal finalidade,
desvendar grandes quantidades de dados que vêm sendo obtidas através de sequências de
DNA e proteínas. Para o desenvolvimento de genomas completos, a bioinformática foi
essencial pois os recursos computacionais existentes elevaram o avanço da biologia
molecular.
Neste presente tutorial vamos abordar caminhos básicos para a realização de
análises usando ferramentas de Bioinformática. Para a utilização deste documento é
necessário o conhecimento de algumas características essenciais de seu trabalho como: 1)
Conhecimento do organismo de interesse; 2) O que pretende responder com essas
análises; 3) Recursos que estão disponíveis.
Logo adiante, encontrará introduções sobre o ambiente Linux, introdução para logar
em um servidor, introdução sobre scripts e bash, introdução para avaliações de qualidade
de bases sequenciadas por técnicas de sequenciamento de nova geração e introdução
sobre a técnica de RNA-seq.

2. Sistema Operacional LINUX


O Linux foi desenvolvido por Linus Torvalds, sendo reconhecido por ser um sistema
operacional livre. Todos os arquivos utilizados neste sistema são guardados em diretórios e
respondem a linhas de comandos específicas para ações diferentes. Sendo assim, para
utilizá-lo corretamente é necessário conhecer alguns de seus comandos básicos para
realização de tarefas essenciais.
Para acessar um servidor através de um terminal Linux, basta utilizar o nome de
usuário com permissão e o endereço IP do servidor, como no exemplo abaixo. No primeiro
acesso é solicitada a troca da senha. Após esse processo o serviço está pronto para o uso.

5
Comando necessário para estabelecer a conexão:
ssh -p [nome de usuário]@[endereço de IP]
Exemplo: ssh -p 922 x000000@143.106.4.87

Figura 1: Acesso pelo terminal do Linux.

O Sistema Operacional Linux não é o único disponível para os usuários, como


veremos nos próximos tópicos deste tutorial, o acesso a um servidor em Linux também
pode ser realizado através do Sistema Operacional Windows, onde será necessário utilizar
apenas um emulador, como o PuTTY, ou também utilizando o Sistema Operacional Ubuntu.

2.1. Acesso remoto à rede da UNICAMP (VPN)

Para poder se conectar e controlar remotamente o PuTTY, primeiro é preciso ativar


o acesso remoto neles. Uma rede VPN (Virtual Private Network) permite uma comunicação
segura entre o computador e o servidor da rede VPN. Através dessa rede é possível ter
acesso a serviços restritos da universidade, como as máquinas utilizadas durante o curso.
Para acessar a rede da UNICAMP através da VPN basta seguir o passo a passo disponível
em:
Acesso remoto seguro - VPN:
https://www.ccuec.unicamp.br/ccuec/servicos/acesso_remoto_vpn

Após o download, para acessar a VPN é preciso ter um usuário Unicamp, no caso
de alunos o RA que recebeu no ato de sua matrícula é seu usuário Unicamp, e a senha é a
mesma utilizada nos sistemas da UNICAMP, utilize-os para autenticar-se no serviço.

6
Figura 2: Interface VPN para conexão à rede da UNICAMP.

2.2. Instalação e configuração do PuTTY


A utilização de um servidor em Linux através do Sistema Operacional Windows, será
necessário a utilização de um emulador conhecido como PuTTY (Figura 3), é um emulador
de terminal que permite acesso remoto a servidores via SSH (Secure Socket Shell). Através
dele é possível administrar e modificar dados, informações e arquivos por uma
comunicação criptografada entre o computador do usuário e o servidor.

Figura 3: Emulador PuTTY

Para instalação basta fazer o download do arquivo executável disponível em


https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html. O processo é simples e
segue o padrão de instalação de aplicativos. A versão utilizada foi a 0.73.

Para executar o aplicativo PuTTY, é necessário inserir o endereço IP e a “porta” do


servidor, como nos exemplos abaixo (Figura 4), e então é só clicar em “Open”. Feito isso, no
primeiro acesso é solicitada a troca da senha, após esse processo o serviço está pronto
para o uso conforme o exemplo na (Figura 5).

Exemplo:
Host Name (or IP address): 143.106.4.87
Port: 922

7
Figura 4: Interface PuTTY que permite acesso ao servidor.

Figura 5: Interface do software PuTTY onde os comandos são dados.

2.3. Instalação do Ubuntu no Windows

Outra forma de ter acesso a um servidor em Linux utilizando Windows, é através do


Sistema Operacional Ubuntu, onde é possível encontrar e instalar uma versão deste
software no App Store da Microsoft.

Figura 6: Sistema Operacional Ubuntu.

8
O processo é simples, porém podem ocorrer erros. O link a seguir apresenta a
solução dos problemas que podem ocorrer durante a instalação no Windows 10.
Guia de instalação do Subsistema Windows para Linux para Windows 10:
https://docs.microsoft.com/pt-br/windows/wsl/install-win10?redirectedfrom=MSDN

2.4. Principais comandos do Linux


Como dito anteriormente, o conhecimento de comandos básicos do Linux é
fundamental para executar tarefas simples e corriqueiras. No Linux, é possível usar
comandos de forma unitária, sequencial e concomitante. Então para facilitar, listamos
abaixo os comandos mais utilizados em atividades básicas dentro do servidor.

Funcionalidade Comando Linux

Comando de manual e ajuda (help) man nome_comando (manual)


nome_comando --help (ajuda)

Instalar um programa sudo apt-get install nome_do_programa

Cancelar qualquer operação Ctrl + C

Limpar o terminal Ctrl + L ou clear

Remover um programa instalado sudo apt-get remove nome_do_programa

Verificar se há atualizações para o sudo apt-get update


sistema

Atualizar o sistema sudo apt-get upgrade

Remover programas obsoletos sudo apt-get autoremove

Limpar o cache do apt sudo apt-get autoclean

Corrigir pacotes quebrados sudo apt-get install -f

Executar um programa nome_do_programa

Autocompletar diretórios/comando Tab

9
Navegar pelos diretórios cd nome_do_diretório

Atalho para determinado diretório cd ~/nome_do_diretório/

Mudar para o diretório acima cd ..

Mostrar caminho local pwd

Listar conteúdo do diretório atual ls

Listar subdiretórios ls -R

Listar detalhes dos diretórios ls -la ou ls -al

Listar arquivos ocultos ls -a

Ler arquivos de texto less arquivo.txt

Repetir comandos já utilizados setas para cima e para baixo

Listar histórico de comandos history

Criar diretório mkdir nome_do_novo_diretório

Criar diretório em um novo local mkdir nome_do_novo_diretório


/caminho_do_novo_local

Criar múltiplos diretórios mkdir novo_diretório_1 novo_diretório_2


novo_diretório_3

Remover diretórios rmdir nome_do_diretório

Renomear ou mover diretório mv nome_do_diretório


novo_nome_do_diretório (renomear)
ou mv nome_do_diretório
/caminho_do_novo_local (mover)

Criar arquivo vazio touch nome_do_arquivo

Atualizar tempo de arquivos touch nome_do_arquivo_já_existente

10
Criar arquivo com conteúdo cat > nome_do_arquivo

Concatenar arquivos cat nome_do_arquivo1 nome_do_arquivo_2 >


nome_do_novo_arquivo

Exibir conteúdo do arquivo cat nome_do_arquivo (para finalizar aperte


Ctrl + D)

Deletar arquivos rm nome_do_arquivo

Mover arquivos sudo mv nome_do_arquivo /caminho_do


novo_local

Renomear arquivos mv nome_do_arquivo


novo_nome_do_arquivo

Copiar arquivos entre diretórios cp -i /diretório_de_origem/arquivo


/diretório_de_destino_do_arquivo

Copiar diretório dentro de outro diretório cp -r /diretório_de_origem


/diretório_de_destino

Encerrar execução de um programa kill nome_do_programa

Mostrar caminho de um programa which nome_do_programa

Sair da tela do comando q

Verificar resposta de rede ping www.qualquersite.com

Exibir unidades de memória conectados sudo blkid

Emular super usuário por um longo sudo -s (para sair o comando é exit)
tempo

Reiniciar o sistema sudo rebbot ou sudo shutdown -r

Desligar o sistema sudo shutdown -h

11
Desligar sistema em alguns minutos sudo shutdown -h 15

Cancelar desligamento do sistema sudo shutdown -c

Mudar permissões chmode u+x nome_do_arquivo (permissão


para execução “x” ao usuário “u”)
chmode a+rx nome_do_arquivo (permissão
para ler e executar “rx” para todos os usuários
“a”)
chmode a-x nome_do_arquivo (revogar
permissão de execução para todos os
usuários)

Comando sequencial comando 1 | comando 2


(ex.: cp /diretório_de_origem/arquivo.txt
/diretório_de_destino | less
/diretório_de_destino/arquivo.txt)

Verificar integridade de arquivos md5sum -c nome_do_arquivo (checar


integridade)
md5sum -c md5.txt (criar arquivo md5)

Download de dados da internet wget http://sitededownload.com/arquivo


wget arquivo
wget -h (mais dados)

Sincronizar arquivos e pastas rsync -vru –progress /diretório_origem


/diretório_destino

Criar atalho (link simbólico) entre ln -s /diretório_fonte /diretório_alvo


arquivos ou pastas

Filtrar colunas em arquivos cut -f1,3 arquivo (coluna 1 e 3 são exibidas)

12
Rankeamento de colunas sort arquivo
sort -k1 arquivo (ordem alfabética da coluna
1)
sort -k1 -r arquivo (ordem alfabética reversa
da coluna 1)
sort -k1,1 -u arquivo (ordem alfabética de
dados únicos somente da coluna 1)
sort -k5 -u arquivo (ordem numérica de dados
únicos da coluna 5)

Mostrar os primeiros dados do arquivo head arquivo


head -n 3 arquivo (exibe somente as 3
primeiras linhas de dados)

Contar linhas, palavras e caracteres do wc arquivo


arquivo wc -l arquivo (conta apenas número de linhas)
wc -w arquivo (conta apenas número de
palavras)
wc -m arquivo (conta apenas número de
caracteres)

Buscar por padrões dentro do texto grep PADRÃO arquivo


grep -i PADRÃO arquivo (busca pelo padrão
sem se importar com maiúsculas ou
minúsculas)
grep -c PADRÃO arquivo (conta número de
vezes que o padrão aparece no arquivo)
grep -v PADRÃO arquivo (mostra dados onde
o padrão não aparece no arquivo)

2.5. Controle de versão - GIT


2.5.1. Controle de versões através do GIT

Um sistema de controle de versões, VCS (do inglês version control system) ou ainda
SCM (do inglês source code management) na função prática da Ciência da Computação e
da Engenharia de Software, é um software que tem a finalidade de gerenciar diferentes

13
versões (mudanças) no desenvolvimento de um arquivo qualquer. Desta forma, é possível
conferir, checar e retomar versões anteriores dos arquivos, comparar as mudanças entre
cada uma das versões e saber quando e que usuário realizou cada uma das alterações
Esses sistemas são comumente utilizados no desenvolvimento de software para controlar
as diferentes versões (histórico e desenvolvimento) dos códigos fontes e da documentação.
É comum depararmos com duas ou mais “cópias” de um mesmo trabalho, mas que não
sabemos se há (e quais seriam) as diferenças entre eles. Situações como essas e inúmeras
outras podem ser resolvidas facilmente através da adoção de um sistema de controle de
versões no dia-a-dia de profissionais das mais diversas áreas de atuação.

2.5.2. O que é GIT?

GIT é um sistema de controle de versões mais utilizado atualmente e foi


desenvolvido pelo mesmo criador do sistema operacional Linux Kernel. Desde sua criação é
otimizado para garantir características como velocidade, ​design simples, capacidade para
suportar longos projetos, integridade, seguridade e compatibilidade com diversos sistemas,
além de ser gratuito e ​open source.
No GIT todo o trabalho é desenvolvido em ramos, os ​branches. Esses branches são
usados para desenvolver projetos isolados uns aos outros. O ​branch padrão (ramo
principal) é chamado de ​“master”, e a partir dele formam outros ramos com uma cópia de
todos os arquivos do repositório, mas as alterações feita nesses arquivos não irão modificar
o ​branch master. Essas ramificações podem ser novas versões de um repositório,
alterações experimentais ou forquilhas pessoais de um repositório para que os usuários
alterem e testem as alterações realizadas.
Quando as modificações dos branches são confirmadas e enviadas para o
repositório, tem-se o ​commit, dessa forma um mesmo​branch pode ter vários ​commits, mas
um ​commit só pode pertencer a um ​branch. O GIT consiste em três seções (Figura 7), a
primeira é o​ Working Directory, qual contém os arquivos vigentes, que são retirados do
banco de dados compactado no diretório GIT e colocados no disco para serem usados ou
modificados. Após modificados os arquivos são enviados para​Staging, que funciona como
uma área temporária, ela armazena informações sobre o que acontecerá no próximo
​commit. E por fim, tem-se o repositório, que é onde o GIT armazena as alterações feitas e
gera o ​commit, que é a confirmação das alterações feitas.

14
Figura 7: Esquema de seções e fluxo de trabalho no GIT

2.5.3. Guia de comando do GIT

Neste tutorial, especificamos alguns comandos essenciais para a utilização do GIT:

Funcionalidade Comando Lixux

Criar repositório git local: git init repositório_git

Entrar no diretório git local: cd repositório_git

Checar o estado atual do repositório: git status

Enviar todos os arquivos do repositório git add ./


para o staging:

Enviar todos os arquivos do staging git commit -a -m “Mensagem de texto”


para o repositório:

Visualizar versões disponíveis no git log


repositório:
git log –oneline (ver dados em linha simples)

Alternar entre versões (commits) git checkout 0xxxx0x (retorna para a versão
diferentes: 0xxxx0x)

git checkout master (retorna para a versão


mestre - mais recente)

15
Clonar repositório público: git clone /caminho_do_repositório_público

Enviar arquivos para o diretório remoto: git push origin master

Pegar alterações do repositório remoto git pull origin master


(atualizar):

3. Automatização de Análises

O Linux oferece diversas vantagens para utilizar comandos no terminal, dentre


muitas coisas, é possível editar, mover e visualizar arquivos de maneira rápida e eficiente.
Como mostrado anteriormente, o Linux permite realizar processos concomitantes em uma
mesma linha de comando, entretanto, o usuário pode desenvolver uma série de comandos
para realizar uma determinada tarefa e digitar a mesma sequência todas as vezes pode
consumir tempo ou até mesmo gerar erros. Para contornar esse problema, uma solução é
criar um script em bash que automatiza uma série de comandos desejados. É um processo
simples e uma vez pronto a execução do script desencadeará os comandos contidos nele,
poupando o tempo do usuário.
Antes de passar para o script propriamente dito vale ressaltar que embora existam
diversas linguagens de programação todas seguem a mesma lógica. Isso significa que por
mais que a estética dos scripts ou o tratamento de determinadas variáveis mude de
linguagem para linguagem, todas têm elementos centrais em comum. Por exemplo, um
script qualquer irá seguir a lógica dos loops que ele possuir. Os loops de “​if ​” e de “​while ​”
funcionam para estabelecer condições para certa ação. Os loops de “​if ​” irão funcionar se o
requisitado como condição for cumprido, enquanto os loops de “​while ​ ” irão continuar a
funcionar enquanto a condição se cumprir, parando uma vez que esta não se cumprir mais.
Por isso é necessário tomar muito cuidado para não gerar um loop infinito no seu código, o
computador executando o script não vai conseguir identificar que isso não deveria estar
acontecendo.
De uma maneira geral, a abordagem para escrever um script deve ser sequencial e
dar preferência a definir todos os passos com exatidão, uma vez que o computador não
conseguirá identificar nuances que um ser humano consegue. Os scripts em bash podem
ser usados para passar uma série de ordens ao computador de maneira automática o que
pode gerar problemas na hora de fazer o debugging caso o script não funcione. Uma

16
funcionalidade que pode ser adicionada ao script para ajudar no debugging é o comando
“echo”, com ele é possível solicitar que apareça no terminal uma mensagem referente a
linha sendo executada naquele momento.

3.1. Conhecendo o Shell Scripting - Programação BASH


O Shell Script é uma linguagem de script utilizada em vários sistemas operacionais,
com diferentes dialetos, dependendo do interpretador de comandos utilizado. Um dos
interpretadores de comando mais utilizados no mundo Linux é o Bash. Com ele nós
conseguimos criar tarefas para serem executadas de tempos em tempos.
Vamos começar criando um script bem simples, que nos retorna a mensagem “A
turma NG280 2020 é a melhor”. Primeiro criamos um arquivo com o nome FirstScript, e
como estamos falando em um arquivo Shell, vamos colocar a extensão .sh. Ficando assim:
FirstScript.sh. Na primeira linha do arquivo colocamos: #!/bin/bash, para identificar que o
Bash é o nosso interpretador. A partir disso, toda linha nova será um comando ou parte de
uma rotina maior, como um loop. Caso você queira anotar algum comentário em meio ao
código, inicie a linha com o caractere: #. Isso marca a linha como um comentário e é
completamente ignorada pelo shell. A única exceção é quando a primeira linha do arquivo
começa com #!.

Figura 8: Como criar um arquivo Shell.

Figura 9: Como identificar que o Bash é o interpretador de comando.

17
Agora é só chamar o arquivo nano utilizando o comando bash, que é o interpretador
desse arquivo. Ele vai rodar todos os dados e me dar a informação. De forma direta
podemos também simplesmente dar permissão de execução ao arquivo Shell script,
utilizando o comando que vimos acima (chmod u+x FirstScript.sh), fazendo isso, só
precisamos dizer o caminho, ou seja, onde o arquivo se encontra (./).

Figura 10: Como chamar o arquivo.

Ao trabalhar com scripts shell, pode ser necessário verificar se um diretório ou


arquivo existe, ou não, no seu sistema de arquivos. Com base nessa condição, você pode
exibir uma mensagem de aviso para o usuário final. Para verificar se existe um arquivo no
seu sistema de arquivos ou não, utilizando o Bash, você deve usar a opção "-f" e especificar
o arquivo que deseja verificar. Em um script, você escreveria a seguinte instrução if.

Para verificar se um arquivo não existe usando o Bash, você deve usar o "!" seguido
pela opção "-f" e pelo arquivo que você deseja verificar.

18
Agora vamos montar um Script que siga uma lógica dos loops, tais como “​if ” e
“​while”, para automatizar o download de um arquivo em um dado diretório caso ele não
exista naquele diretório, e se ele existir apareça uma mensagem avisando que o arquivo já
existe. Abaixo segue o script verificar.sh.

Figura 11: Como automatizar download de um arquivo.

19
Aplicando o comando: bash verificar.sh

Figura 12: Rodando o script pela primeira vez. Como o arquivo não existia, o comando para baixar o
arquivo foi executado.

Como podemos observar, ele seguiu corretamente todos os comandos contidos no


Script verificar.sh. Agora que já baixou o arquivo aula4.zip e ele já existe, vamos rodar
novamente para ver o que acontece.

Figura 13: Rodando o script novamente.

20
O ponto a ser entendido aqui é que o shell analisa os argumentos antes de
transmiti-los ao programa que está sendo chamado. Nada aconteceu, pois a ação
estabelecida pelo loop “while” já não se cumpre mais.
Agora vamos alterar o script, retirando o “while” para ele apenas nos dizer se esse
arquivo já existe no diretório Tutorial.

Figura 14: Rodando o script sem loop.

Vamos pedir para ele imprimir a variável e ver se funcionou:

Figura 15: Rodando o script sem loop.

21
Como visto o loop if vai funcionar se o requisitado como condição for cumprido, logo
toda vez que rodarmos este script ele vai nos dizer que o arquivo aula4.zip já existe, esta
condição muda se esse arquivo for então apagado do diretório Tutorial.
Como mostrado acima, o interpretador de comandos bash ou shell, podemos criar
códigos ou scripts no sistema Linux. Esses códigos criados facilitam muito a vida do
programador ao economizar tempo, pois permitem automatizar tarefas de rotina e também
tornam mais simples ações como: abrir programas e esvaziar diretórios e lixeira, entre
outras tarefas. Mais comandos e exemplos em bash podem ser encontrados neste link:
https://devhints.io/bash.

4. Técnicas para avaliar a qualidade das bases sequências por técnicas de


sequenciamento de nova geração
Angie Alejandra Calderon Fajardo
Damaris Batistão Martim
Davi de Castro Gomes
Gisele Cristina Lima Palermo
Tamylin Kaori Ishizuka
Yohans Alves de Moura

4.1. Sequenciamento de Nova Geração: um breve histórico


O século XX foi marcado por uma grande revolução na ciência, especificamente no
campo da biologia, graças à descoberta da estrutura tridimensional do ácido
desoxirribonucleico (DNA) na década de 50 – até então desconhecida. A molécula de DNA
é composta por duas longas cadeias polipeptídicas, constituídas por nucleotídeos (A, T, C e
G) e unidas entre si através de pontes de hidrogênio (A=T e C≡G) para manter sua
estabilidade (KULSKI, 2016).
Em 1953, os cientistas Watson e Crick propuseram o modelo de dupla hélice para
descrever o comportamento da molécula de DNA (WATSON & CRICK, 1953),
revolucionando desde então os rumos da ciência moderna. A partir da década de 1970,
percebeu-se a necessidade da determinação da sequência de nucleotídeos do DNA dos
organismos, possibilitando uma melhor compreensão a partir da análise do genoma
completo do indivíduo. Logo, a primeira geração do sequenciamento genético abrangeram
as metodologias desenvolvidas por Fred Sanger et al. e Maxam & Gilbert, ambas
publicadas em 1977.
A técnica de sequenciamento de Maxam & Gilbert utilizava um processo de
degradação química para clivar bases específicas do DNA marcado radioativamente para
posterior corrida de eletroforese. Em paralelo, Sanger desenvolveu o “método de

22
terminação da reação em cadeia”, também denominado de “método de Sanger”, que se
fundamentava na inserção de dideoxinucleotídeos trifosfatados – nucleotídeos com uma
hidroxila a menos (ddNTP) – para a produção de diferentes tamanhos de fragmentos de
DNA, devido à terminação abrupta da cadeia causada pela adição de ddNTP na fita
recém-sintetizada, ademais todo o processo é realizado em ciclos de desnaturação,
anelamento e desnaturação (SANGER et al., 1977). O “método de Sanger” acabou
prevalecendo em comparação com a metodologia de Maxam & Gilbert devido à maior
confiabilidade e ao uso em menor quantidade de compostos tóxicos e radioativos (KULSKI,
2016). Por conseguinte, o reconhecimento de seu trabalho proporcionou à Sanger o Prêmio
Nobel em Química em 1980.
Os aprimoramentos do “método de Sanger” como a utilização da eletroforese capilar,
a redução do uso de reagentes radioativos, a realização de uma reação única de
sequenciamento com fluoróforos e o uso de computadores para análise de dados, foram
essencialmente importantes para o escalonamento e a automatização da análise dos
fragmentos de DNA, levando à criação dos primeiros sequenciadores automáticos
desenvolvidos pela Applied Biosystem Instruments - ABI (SMITH et al., 1986). O
sequenciamento para o Projeto Genoma Humano foi realizado com o auxílio dos
sequenciadores automáticos de eletroforese capilar, como o ABI 3700 (Figura 16), em
consequência da maior geração de dados genômicos em larga escala (MARDIS, 2013).

Figura 16: Primeiro sequenciador automático com eletroforese capilar, o ABI 3700.

Novas plataformas de sequenciamento de DNA foram lançadas a partir de 2005,


passando a serem denominadas de NGS (Next Generation Sequencing). Como
características dessas plataformas de nova geração, pode-se citar a capacidade de realizar
um sequenciamento em larga escala (high throughput) e a geração de reads curtos (em
torno de 30-500 pb), que ao serem analisadas necessitam do desenvolvimento de

23
algoritmos capazes de processar a grande variedade de dados gerados (SEIFI et al., 2017).
Outro fator importante a ser destacado é a diminuição do custo do nucleotídeo a ser
sequenciado, o que de certa forma, “democratiza” o acesso ao sequenciamento genômico
por diversos grupos de pesquisa.
O princípio básico das plataformas NGS reside no fato de imobilizar os fragmentos
de DNA ou de alguma outra molécula biológica em uma superfície sólida e, assim, executar
as reações sequenciais específicas da plataforma para o sequenciamento do material
genético. A tecnologia NGS possui o diferencial de realizar o sequenciamento paralelo de
milhões a bilhões de nucleotídeos de DNA, garantindo uma análise com melhor resolução e
mais ampla (SEIFI et al., 2017). Como exemplos de plataformas NGS há: Roche 454;
Applied BioSystems SOLiD; Illumina Solexa; IonTorrent; PacBio; Oxford Nanopore, entre
outros. Estas novas tecnologias se utilizam de várias estratégias em uma combinação de
preparação de templates, metodologia de sequenciamento, técnicas de imageamento,
alinhamento do genoma e métodos de montagem (METZKER, 2010).
Na Tabela I há um resumo dividindo cada plataforma NGS em gerações e
especificando algumas características, como: metodologia do sequenciamento, tamanho
dos reads por corrida (pb), número de reads por corrida, acurácia, tempo de corrida, o custo
por 1Mb (US$) e as vantagens/desvantagens de cada plataforma.

Tabela I. Principais plataformas NGS e suas características básicas.

24
Fonte: Adaptado de GOODWIN et al.(2016); KULSKI (2016).

O rápido progresso da tecnologia NGS em união com o desenvolvimento das


ferramentas de bioinformática resultou em importantes aplicações no campo da ciência,
possibilitando realizar estudos que até então eram improváveis. Desse modo, a detecção de
SNPs em sequências gênicas; a análise de transcritos e perfis de expressão do RNA de
patógenos por meio do RNA-Seq; o sequenciamento do genoma completo (WGS); a
montagem de novo do genoma; a caracterização e o sequenciamento de sRNAs são
apenas algumas das variadas aplicações possíveis das tecnologias NGS (LEE et al., 2013;
XUAN, 2013; KULSI, 2016).
Definida a plataforma de sequenciamento e prosseguida a análise, o sequenciador
processará o sinal bruto detectado a partir de algoritmos específicos para a tecnologia,
gerando então a sequência de nucleotídeos correspondente àquela amostra (base calling).
No entanto, é necessário determinar se a detecção do sinal foi confiável para determinada
base, logo se utiliza métricas específicas para confirmar a confiabilidade e a qualidade da
base, como o Phred.

4.2. Controle de qualidade de sequências


Ao recebermos os dados de sequenciamento é importante atentar-se para a
plataforma utilizada para obtenção das sequências, pois isso refletirá na maneira de
avaliarmos a sua qualidade. Dados provindos de técnicas de sequenciamento de nova
geração (NGS), como Illumina, são bastante extensos em número de sequências e
necessitam de abordagens específicas para avaliação e controle de qualidade. Portanto, os
erros devem ser identificados, corrigidos e/ou aparados e consistem em basicamente:
identificação incorreta do nucleotídeo, contaminação e resíduos de adaptadores ou vetores.
Os dados dessas plataformas são entregues em arquivos do formato FASTQ, os
quais são arquivos de texto com quatro linhas de informação. Na primeira linha temos
informados o nome da sequência, o tamanho e a plataforma de sequenciamento. Na
segunda temos as bases nitrogenadas representadas pelas letras A, T, C e G que é a
sequência propriamente dita, a terceira linha começa com um sinal de ‘+’ e pode conter
descrições adicionais, porém usualmente não contém informações. Na quarta linha é onde
temos caracteres alfanuméricos que correspondem a qualidade de cada base, como
demonstrado na Figura 17 abaixo.

25
Figura 17: Exemplo de arquivo no formato .fastq.

Os caracteres da quarta linha são interpretados de acordo com Phred Score Quality,
uma escala logarítmica que segue a fórmula: Q = -10 log10 P. P corresponde à probabilidade
da leitura da base ter sido feita corretamente pelo sequenciador e Q é o valor do Quality
Score, como visto na tabela abaixo.

Tabela II. Tabela com os valores de Phred Quality Score.

PQS P(erro) Acuidade

10 1 em 10 90%

20 1 em 100 99%

30 1 em 1000 99,9%

40 1 em 10000 99,99%

50 1 em 100000 99,999%

O objetivo desta etapa da análise dos dados é verificar a qualidade das sequências
e demais problemas que estejam ali, ou seja, retirar dos dados partes que podem
comprometer a robustez e a confiabilidade das análises nos passos posteriores.
Primeiramente deve-se avaliar a qualidade, e para isso o software detalhado aqui será o
FastQC, uma suite de aplicações que permite avaliar vários aspectos das sequências como,
qualidade por base, conteúdo de GC, comprimento, sequências super representadas e etc.

4.2.1. FastQC
O controle da qualidade das sequências pode ser feito através da ferramenta
FastQC Read Quality reports disponível na plataforma Galaxy (Version 0.72+galaxy1). O
FastQC permite a avaliação da qualidade de reads em formatos BAM, SAM ou FastQ
compactados ou não. Durante o processo de avaliação, cada base em cada uma das

26
milhares de sequências (reads) é lida e parâmetros individuais e médios de qualidade são
estimados. Como resultado são gerados dois arquivos: os dados brutos (raw data) e o
FastQ Report webpage. Esses arquivos contém o relatório das avaliações listados em
tópicos, porém representados de maneiras diferentes. No arquivo bruto as informações vem
tabuladas em arquivo de texto simples, já no Web Report há representações gráficas e
tabelas que facilitam a compreensão.

4.2.1.1. Upload de sequências no Galaxy


Antes de utilizar as ferramentas do Galaxy, as sequências de interesse devem estar
disponíveis no “History”. As sequências podem ser obtidas de diversas fontes. Os exemplos
abaixo explicam duas formas de obter os dados: baixando de alguma fonte ou então através
de dados compartilhados dentro do Galaxy.
A figura abaixo indica como obter os dados diretamente do computador ou de algum
link por exemplo. Outras fontes também estão disponíveis para baixar as sequências.

Figura 18: O upload de sequências no Galaxy ou obtenção de sequências de outras fontes podem ser feitos
pelos ícones circulados em vermelho.

Alternativamente, dados compartilhados dentro da plataforma Galaxy podem ser


obtidos através da aba “Shared Data” como indicado na seta da figura abaixo. Dessa forma
as sequências disponibilizadas na biblioteca compartilhada podem ser copiadas para o
“History” para serem analisadas no Galaxy. A opção de download das sequências também
está disponível.

27
Figura 19: Dados compartilhados pelo Galaxy podem ser obtidos pela aba “Shared Data”. As sequências podem
ser baixadas ou transferidas para um “History” dentro do Galaxy.

As sequências são adicionadas ao “History”, e conforme são avaliadas pelas


ferramentas de controle de qualidade, os arquivos gerados também ficam armazenados
nessa seção localizada no lado direito da tela.

Figura 20: O “History’ armazena as sequências e os arquivos gerados pelas ferramentas de controle de
qualidade.

28
4.2.1.2. Uso do FastQC na plataforma Galaxy
O FastQC permite que sejam avaliados reads no formato single-end e pair-end,
também permite que mais de um arquivo seja inserido ao mesmo tempo para a avaliação.
Caso os reads sejam do tipo pair-end (PE) é necessário se atentar que os dois pares
estejam selecionados. A inclusão dos arquivos para avaliação pode ser feita um a um
(single dataset) ou com vários de uma só vez (multiple dataset), basta selecionar o modo
desejado, como mostrado na Figura 21 abaixo.

Figura 21: Opções de seleção de arquivos de entrada no FastQC.

Após a seleção dos reads a serem avaliados, é necessário apenas um clique no


botão ‘Execute’ (Figura 22). Outros parâmetros podem ser alterados conforme a
necessidade de cada projeto, como por exemplo a presença de DNA contaminante e de
adaptadores. Os arquivos aparecerão na aba history, no canto direito da tela, clicando no
ícone em forma de olho do arquivo web page (indicado por uma seta vermelha) serão
abertas as representações gráficas de qualidade na tela central (Figura 23).Também há a
possibilidade de download dos arquivos, nesse caso será baixado um arquivo compactado
em formato zip, contendo o arquivo da webpage em formato html que será aberto em um
navegador e um arquivo .txt que pode ser aberto em qualquer editor de texto.

Figura 22: Botão “Execute” que dá início às avaliações das sequências pelo FastQC.

Cada um dos aspectos denota a qualidade das sequências de diferentes maneira, e


podem sinalizar diferentes problemas, uma avaliação atenciosa dos reports do FastQC
pode indicar maneiras de contornar tais problemas no passo posterior, a seleção de
sequências.

29
Figura 23: Acessando os resultados obtidos via FastQC na plataforma galaxy. A seleção em vermelho indica o
arquivo web page, a seta vermelha indica o ícone a ser selecionado para que os resultados sejam exibidos na
tela central.

Listamos aqui os 11 aspectos avaliados pelo FastQC. É importante ressaltar que na


aba lateral do FastQC report há uma índice (summary) com sinais indicando se cada tópico
está dentro dos conformes (✔), se merece atenção ( ❕) ou se há problemas graves (❌). O
primeiro chamado de “Basic Statistics” corresponde a uma tabela com informações básicas
sobre o arquivo, como nome e tipo do arquivo, codificação, o tipo de sequenciador, tamanho
(pb) e quantidade das sequências e % de bases G e C (Figura 24).

Figura 24: Basic Statistics, sumariza os dados básicos da sequência avaliada.

O segundo tópico “Per base sequence quality” diz respeito a qualidade das bases
em cada sequência do arquivo baseado no Phred Quality Score. É um gráfico cujo eixo Y

30
corresponde ao valor de PQS e o X a posição das bases ao longo das sequências. Os
dados são plotados em box plots com a linha central em azul sendo a média, nas caixinhas
temos em vermelho as medianas em amarelo os limites dos quartis e os valores de máximo
e mínimo em linhas pretas. O fundo do gráficos está dividido em três faixas, sendo a verde
onde estão localizados os valores de qualidade acima de 30, considerados bom. A amarela
com valores intermediários e a vermelha com valores considerados ruins (Figura 25).

Figura 25: Gráfico do tipo box plot que representa a qualidade das bases em valores de Phred Score ao longo
das sequências (posição das bases) contidas no arquivo.

No arquivo usado como exemplo na figura acima (Figura 25), deve-se notar que a
qualidade das bases cai muito no final das sequências, ficando em valores muito baixos a
partir da posição 139. Os valores da mediana das sequências também caem, e o primeiro
quartil segue a mesma tendência, o que indica que um número grande de sequências têm
bases com baixas qualidades de leitura nestas posições. A queda no sinal das bases no
final das sequências é um artefato da técnica de sequenciamento utilizada, mas não de
maneira tão pronunciada. Diante disso o ícone vermelho contendo um ‘X’ indica que há um
problema nesse aspecto do arquivo.
O terceiro tópico “Per tile Sequence Quality” representa isso num heatmap baseado
nos valores médios de qualidade e seus desvios de cada cluster da flowcell para cada base
lida durante o sequenciamento. Os heatmaps são escalas quente-frio, onde cores mais
quentes sinalizam valores mais baixos, como vistos a partir da posição 139 (Figura 26).
Essa análise é específica para dados gerados em sequenciadores Illumina e tem como
função detectar se há algo de errado em posições específicas da flowcell.

31
Figura 26: Heatmap Per tile Sequence quality, os clusters mais claros apresentam qualidades mais baixas de
leitura das bases.

O quarto tópico “Per sequence quality score’’ é um gráfico que indica a quantidade
de sequências por valor médio de qualidade PQS. Nota-se no exemplo (Figura 27) que há
um pico no qual a maioria das sequências tiveram valores altos de qualidade (PQS >= 30).

Figura 27: Gráfico “Per sequence quality scores”, representa a quantidade de sequências e seus valores médios
de PQS.

O quinto tópico “Per base sequence content” mostra a quantidade de cada base A,
T, C e G na sequências. É importante observar se as proporções representadas em
porcentagem de A e T, C e G estejam equilibradas, seguindo a regra de Chargaff. No

32
arquivo exemplo (Figura 28) abaixo as proporções estão desbalanceadas no início das
sequências, por isso temos o ícone do X vermelho indicando problemas.

Figura 28: Porcentagem das bases nas sequências ao longo das posições.

O sexto tópico “Per sequence GC content” mostra a quantidade média das bases G
e C nas sequências. É importante atentar para particularidades de alguns organismos que
podem ter mais GC que outros, como os insetos. Neste arquivo (Figura 29) a média está um
pouco acima do comum, pois isso está sinalizado com ícone (!), indicando que este aspecto
precisa de atenção.

Figura 29: Porcentagem da distribuição de GC ao longo das sequências.

33
O sétimo tópico “Per base N content” se refere a porcentagem do número de bases
indeterminadas ao longo da sequências. O gráfico informa a quantidade de sequências no
eixo Y, a posição das bases indeterminadas no eixo X e a % das mesmas numa linha
vermelha (Figura 30).

Figura 30: Representação gráfica do conteúdo de bases com leitura indeterminada.

O oitavo tópico “Sequence Length Distribution” diz respeito aos comprimentos das
sequências em pares de base e como elas estão distribuídas no arquivo (Figura 31). A
uniformidade no tamanho das sequências é o aspecto desejável, principalmente após a
filtragem (passos posteriores das análises), a não uniformidade no tamanho das sequências
pode indicar problemas durante o sequenciamento, como acúmulo de primers e cadeias
não estendidas no decorrer do processo.

Figura 31: Representação gráfica dos comprimentos das sequências em pares de base e suas quantidades
contidas no arquivo analisado.

34
O nono tópico “Sequence Duplication Levels” corresponde à quantidade de
sequências duplicadas no arquivo. Taxas baixas de duplicação indicam que as sequências
de interesse estão bem representadas no arquivo. Porém, taxas de duplicação muito altas
indicam que houve enriquecimento de partes aleatórias via PCR, portanto a cobertura das
sequências alvo não é boa e o sequenciamento pode estar está enviesado. Como no
exemplo da Figura 32 onde apenas 34% das sequências não estão duplicadas.

Figura 32: Representação gráfica dos níveis de duplicação, porcentagem de sequências não duplicadas em
vermelho, total de sequências em azul.

O décimo tópico “Overrepresented sequences” corresponde às sequências que


estão muito representadas no arquivo. Deve-se atentar para esses sequências pois podem
conter adaptadores desconhecidos, contaminações e sequências que indiquem problemas
no preparo das bibliotecas ou da reação de sequenciamento.

Figura 33: Sequências super representadas no arquivo, tabela contendo as sequências em pares de bases, o
número de vezes que aparecem no arquivo, a porcentagem em relação ao total e compatibilidade com alguma
fonte de origem.

35
O último tópico “Adapter content” corresponde às taxas de sequências de
adaptadores presentes usados no processo de sequenciamento pelas principais
plataformas, como exemplo a Illumina. Um alto teor de adaptadores não é desejável e pode
indicar problemas na reação de sequenciamento, como no arquivo do exemplo (Figura 34)
onde temos presença de cerca de 18% de adaptadores Nextera.

Figura 34: Teor de adaptadores e seu posicionamento nas sequências analisadas.

4.2.2. Uso do Trimmomatic na filtragem e seleção de sequências


O Trimmomatic é uma ferramenta de filtragem disponível para o uso no Galaxy com
uma gama de nove funções. A filtragem feita com essa ferramenta se baseia em dois
aspectos, a qualidade das bases e a posição delas nas sequências, também há a
possibilidade se retirar adaptadores com sequências previamente conhecidas.
Primeiramente é necessário que os dados estejam no seu History do Galaxy, caso
ainda não estejam basta adicioná-los como mencionado no tópico anterior de introdução ao
Galaxy. Com os arquivos já inseridos, há a possibilidade de uso de arquivos do tipo
single-end, pair-end (combinados) e pair-end (arquivos distintos). Basta selecionar no
campo “Single-end or Pair-end reads?” (Figuras 35 e 36).

36
Figura 35: Selecionar tipo de sequências no Trimmomatic.

Figura 36: Selecionando reads tipo pair end (PE).

A primeira função a ser escolhida é a ILLUMINACLIP, que permite a remoção de


adaptadores utilizados nas plataformas de sequenciamento Illumina, sendo necessário
apenas que se informe qual o tipo de adaptador deseja remover (Figura 37). Há ainda a
possibilidade de se remover adaptadores de outras plataformas, desde que se conheça
suas sequências, selecionando a opção “custom” (Figura 38). Também estão disponíveis
acertos de similaridade, o alinhamento dos adaptadores e as sequências encontradas no
arquivo que será analisado (Figura 39).

Figura 37: Seleção dos adaptadores a serem removidos via ILLUMINACLIP.

37
Figura 38: Inserindo adaptadores utilizados por outras plataformas de sequenciamento.

Figura 39: Parâmetros de similaridade no alinhamento dos adaptadores nas sequências analisadas.

Serão detalhadas aqui as demais funções disponíveis no Galaxy:


● SLINDINGWINDOW - se baseia na qualidade média de um intervalor de
bases a ser definido, caso a média dos valores de quality score dessas
bases seja inferior ao limite desejado essas bases serão descartadas.
● MINILIEN - exclui sequências (reads inteiros) menores em comprimento (pb)
que o limite desejado.

38
● LEADING - exclui bases com qualidade abaixo do desejado no começo de
todas as sequências. O número de bases pode ser definido.
● TRAILING - exclui bases com qualidade abaixo do desejado no final de todas
as sequências. O número de bases pode ser definido.
● CROP deixa todas as sequências com o tamanho desejado
● HEADCROP - deixa todas as sequências com o tamanho desejado,
contando a partir início de todas as sequências.
● AVGQUAL - exclui sequências inteiras que estiveram com a média de
qualidade abaixo do desejado.
● MAXINFO - balanceia o comprimentos do reads e qualidade na hora de fazer
os cortes e exclusões de bases nas sequências, resultando numa maior
preservação do comprimento. Utilizando essa função há a necessidade de se
definir o comprimento desejado dos reads e o balanço entre a qualidade
das bases e o comprimento das sequências. Valores menores darão mais
prioridade a preservação do comprimentos, e valores maiores a qualidade
das bases, são permitidos valores entre 0,2 e 0,8.
Ao realizar as operações é importante notar que serão gerados dois arquivos para
cada sequência escolhida para a filtragem (no caso de reads do tipo pair end), sendo a
sequência filtrada como single-end (unpaird) e a versão filtrada juntamente com a
complementar em pair-end (paired). Portanto ao dar entrada com arquivos pair-end, é
necessário selecionar a sequência e seu complementar, e teremos como resultados final
quatro arquivos.
O arquivo utilizado aqui é o mesmo avaliado no item Uso do FastQC, que contém
sequências obtidas a partir de sequenciamento de nova geração. Resumidamente, esse
arquivo apresentou alguns problemas, alguns passíveis de correção como bases com
qualidade ruim nas porções finais das sequências (Figura 25), desbalanço da proporção de
Chargaff (Figura 28) no início e no final das sequências e presença de adaptadores (Figura
34). Usaremos as opções de filtro disponíveis citadas acima.

● Problema: Qualidade ruim nas bases finais das sequências


○ Filtro adequado: SLIDINGWINDOW
Selecionar o filtro SLIDINGWINDOW, definir o número de bases utilizadas para o
cálculo da média e o limite mínimo de qualidade desejado.

39
Figura 40: Seleção e configuração do filtro SLINDINGWINDOW no Trimmomatic.

Nota-se o aumento da qualidade média das bases, as sequências também ganham


uniformidade em termos de distribuição em relação a qualidade média (Figura 41) .

Figura 41: Efeito do filtro SLINDINGWINDOW na qualidade das bases nas sequências, antes e depois.

● Problema: Não uniformidade no tamanho das sequências/ muitas sequências


curtas
○ Filtro adequado: MINILEN

Selecionar a opção MINILEN e o tamanho mínimo desejado (Figura 42), lembrando


que as sequências menores que o decidido serão excluídas.

Figura 42: Seleção e configuração do filtro MINILEN no Trimmomatic.

40
Nota-se que não há mais sequências com comprimento menor que 100 pb no
arquivo (Figura 43).

Figura 43: Efeito do uso do filtro MINILEN sob o comprimento da sequências(pb), antes e depois.

● Problema: Desbalanço na proporção de bases no início das sequências.


○ Filtro adequado: HEADCROP

Selecionar o filtro HEADCROP para que as bases iniciais das sequências sejam
removidas (Figura 44).

Figura 44: Seleção e configuração do filtro HEADCROP no Trimmomatic.

41
Nota-se que não há mais desproporção entre as bases (Figura 45).

Figura 45: Efeito do do uso do filtro HEADCROP no descarte de bases iniciais, antes e depois.

● Problemas: Presença de adaptadores utilizados durante o sequenciamento.


○ Filtro adequado: ILLUMINACLIP

Selecionar o filtro ILLUMINACLIP e configurar qual adaptador será buscado e terá


suas sequências descartadas. Nessa opção é possível configurar os parâmetros de
similaridade entre as sequências avaliadas e a sequência do adaptador em questão (Figura
46).

42
Figura 46: Selecionando e configurando o filtro ILLUMINACLIP no Trimmomatic.

Nota-se que não há mais conteúdo de adaptadores nas sequências contidas no


arquivo, anteriormente o adaptador identificado era o Nextera em cerca de 18% das
sequências (Figura 47).

Figura 47: Efeito do filtro ILLUMINACLIP no Trimmomatic, antes e depois.

Há ainda a possibilidade de se usar mais de uma função ao mesmo tempo, basta


clicar no botão ‘Insert Trimmomatic Operation“ (Figura 48) e combinar os filtros escolhidos.
É importante se atentar para o efeito que cada filtro pode ter em mais de um aspecto, por
exemplo ao filtrar por qualidade de bases pode ser que muitas sequências fiquem muito

43
curtas em comprimento. Uma dica é testar os efeitos separadamente e depois usá-los de
maneira combinada ao final prevendo possíveis distorções.

Figura 48: Uso combinado de funções no Trimmomatic, ao clicar no botão destacado em vermelho se tem a
opção de adicionar e configurar novas funções.

4.2.3. Uso do Cutadapt na Plataforma Galaxy


A contaminação do adaptador geralmente ocorre quando o fragmento de DNA de
interesse é menor que o comprimento da leitura do sequenciamento. Isso resulta na
inclusão do primer na sequência da leitura final, levando à contaminação do adaptador.
Além disso, em geral a qualidade do sequenciamento cai no final das sequências. E esses
nucleotídeos potencialmente incorretos, podem influenciar negativamente em análises
posteriores. Logo, as sequências devem ser tratadas para reduzir o viés na análise à
jusante. Em geral, os tratamentos de qualidade incluem: cortar, aparar e mascarar
presenças de adaptadores, início e fim das sequências, regiões com baixo índice de
qualidade; e filtrar sequências com baixo índice de qualidade, sequências curtas demais e
com muitas bases ambíguas (N).
A remoção da contaminação do adaptador e filtragem de sequências no Galaxy
pode ser realizada usando o Cutadapt e a sequência dos primers. O Cutadapt é uma
ferramenta que possibilita o aprimoramento da qualidade de sua sequência, automatizando
cortes de adaptadores e o controle de qualidade. Ele localiza e remove sequências de
adaptadores, primers, caudas poli-A e outros tipos de sequência indesejada de suas leituras
de NGS (sequenciamento de alto rendimento).
Cutadapt ajuda nessas tarefas de corte, e pode fazer muito mais, além de remover
os adaptadores. Existem várias opções de linha de comando que permitem modificar e

44
filtrar leituras e redirecioná-las para vários arquivos de saída. Isso inclui remoção do
adaptador, ajuste de qualidade, modificações no nome de leitura etc.
Abaixo segue listadas duas das opções disponíveis para o aprimoramento de suas
sequências utilizando o Cutadapt:
Remover a contaminação do adaptador: Essa opção é utilizada quando as sequências de
adaptadores que foram usadas durante a preparação da biblioteca são conhecidas.
Em ferramentas procure por Cutadapt, ao selecioná-lo a primeira opção será
escolher qual sequenciamento você está trabalhando, neste exemplo vamos seguir com
paired-end reads.

“Single-end or Paired-end reads?”: Paired-end

“Reads in FASTQ format”:


File #1: escolha o arquivo R1 ou (f)
File #2: o R2 ou (r).
Conforme Figura 49 (A ordem correta é importante).

Figura 49: Escolha das sequências utilizadas.

Em “Read 1/2 Options”


+ Insert 3 ' (End) Adapters: Selecione essa opção para adicionar a sequência de um
adaptador ligado à extremidade 3' (Figura 50). Quando esse adaptador é encontrado, a
própria sequência do adaptador e a sequência subsequente (se houver) são cortadas.
Para procurar um adaptador vinculado, separe as duas seqüências com três pontos
(ADAPTER1 ... ADAPTER2).

45
Figura 50: A sequência do adaptador é fornecida com a opção -a. Você precisa substituir AATTGGCC pela
sequência correta do adaptador.

+ Insert 5' (front) Adapters


Presume-se que um adaptador 5 'esteja ligado à extremidade 5' da sua sequência
de interesse. Quando esse adaptador é encontrado, a própria sequência do adaptador e a
sequência que o precede (se houver) são aparadas (Figura 51).

Figura 51: A sequência do adaptador é fornecida com a opção -g. Você precisa substituir AATTGGCC pela
sequência correta do adaptador.

Para Adaptadores Illumina TruSeq: Se você tiver leituras que contêm adaptadores
Illumina TruSeq, por exemplo, siga estas etapas.
● Read 1: Na opção 3 ' (End) Adapters, insira A+ o prefixo “TruSeq Indexed Adapter”
que é comum a todas as sequências do Indexed Adapter, insira:
AGATCGGAAGAGCACACGTCT GAACTCCAGTCAC
Para as segundas leituras de dados emparelhados:
● Read 2: Na opção 3 ' (End) Adapters, insira o complemento reverso do "Adaptador
universal TruSeq":
AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGT

46
ATCATT. As seqüências do adaptador podem ser encontradas no documento
Illumina TruSeq Adapters De-Mystified.
Em adapter options.
Altere apenas o valor do Comprimento mínimo de sobreposição.

"Minimum overlap length”: 5


Como o Cutadapt permite correspondências parciais entre a leitura e a sequência do
adaptador, correspondências curtas podem ocorrer por acaso, levando a bases cortadas
erroneamente. Por exemplo, aproximadamente 25% de todas as leituras terminam com uma
base idêntica à primeira base do adaptador. Para reduzir o número de bases falsamente
aparadas, o algoritmo de alinhamento exige que, por padrão, pelo menos três bases
correspondam entre o adaptador e a leitura.
Obs. Este é só um exemplo geralmente utilizado, as escolhas dos parâmetros podem ser
alteradas de acordo com seu interesse.

Qualidade da sequência: Execute a ferramenta Cutadapt seguindo os principais


parâmetros escolhidos para filtragem de suas sequências.
Em “Filter Options”. Você pode escolher:
“Discard Trimmed Reads”: Sim/Não
Descarte as leituras que contém o adaptador em vez de apará-las. Use a opção
'Comprimento mínimo de sobreposição' para evitar jogar fora muitas leituras
correspondentes aleatoriamente!

“Discard Untrimmed Reads”: Sim/Não


Descarte as leituras que não contêm o adaptador.

“Minimum length”: 25
Ele removerá leituras inferiores ao comprimento escolhido (no exemplo 25 bp), após o corte
de adaptadores e regiões defeituosas.

“Maximum length”: -
Removerá leituras maiores ao comprimento Máximo escolhido

“Max N”: -
Descarte leituras com mais que esse número de bases 'N'.

47
Obs. Você não precisa preencher todos os campos para realizar a filtragem de suas
sequências, preencha apenas os de seu interesse. Neste exemplo acrescentamos apenas
um valor mínimo de comprimento.

Em “Read Modification Options”


“Quality cutoff”: 30
Remove as bases das extremidades (5 'e/ou 3') com baixa qualidade (nesse exemplo
escolhemos remover bases com qualidade inferiores a 30).

Em “Output Options”
“Report”: Yes
Um arquivo .txt será gerado (relatório).

Selecione Executar.
O Cutadapt produzirá um relatório e o arquivo FASTQ limpo. Abra o relatório
Cutadapt selecionando o ícone de olho no painel de histórico. Observe a distribuição de
comprimento da sequência removida.
Por fim, Use o FastQC para examinar as estatísticas de qualidade dos arquivos
FASTQ aparados com Cutadapt e compare com o FastQC original.
Você pode obter mais informações sobre uso e parâmetros utilizados no Cutadapt
no site: https://cutadapt.readthedocs.io/en/stable/guide.html.

4.2.4. Uso do MultiQC na Plataforma Galaxy


O MultiQC é uma ferramenta que reúne os resultados de análises de múltiplas
amostras ou provenientes de diversos softwares em um único relatório, facilitando a
comparação entre os resultados obtidos de diferentes tipos de análise. Como parte
integrante das ferramentas disponíveis na plataforma Galaxy para o controle de qualidade
das montagens, o MultiQC possibilita a visualização rápida de vieses e tendências entre os
resultados derivados de diversas ferramentas de bioinformática, diminuindo a possibilidade
de erros e o tempo de análise (EWELS et al., 2016).
Para iniciar a utilização do MultiQC na plataforma Galaxy, é necessário selecionar a
ferramenta pela qual os dados foram gerados (Figura 52, passo 1). A versão disponível no
Galaxy Version 1.8+galaxy0 apresenta mais de 30 ferramentas para seleção, entre elas o
FastQC, Trimmomatic e CutAdapt, discutidos previamente nesta seção.

48
Após a definição do software de origem dos dados é necessário escolher o tipo de
arquivo que será utilizado e selecionar os arquivos que serão analisados (Figura 52, passo
2 e 3). No exemplo apresentado na Figura 52, os dados foram obtidos pelo FastQC e os
arquivos do tipo “raw data” foram selecionados. Nota-se que é possível escolher mais de
um arquivo do mesmo software, assim como inserir arquivos provindos de outras
plataformas ao selecionar a opção “Insert Results”.

Figura 52: Passos para inserção de arquivos para visualização no MultiQC.

Após a seleção dos dados, é possível nomear o relatório que será gerado inserindo
um título na opção “Report title” e inserir comentários através do “Custom comment”. Caso
possua um grande número de amostras, a opção “Use only flat plots (non-interactive
images)” poderá ser selecionada para economizar espaço no disco, contudo, os resultados
não serão demonstrados pela forma convencional devido a economia dos recursos visuais.
Essa opção é automaticamente selecionada quando o número de amostras for maior ou
igual a 100. A opção “Output the multiQC log file?”, quando selecionada, irá gerar nos
resultados um arquivo Log, o qual é utilizado principalmente quando há necessidade de
depuração dos dados.
Quando todos os parâmetros forem definidos, a seleção do botão “Execute” irá rodar
o MultiQC para os dados selecionados, gerando na aba History do Galaxy as listas “Stats” e
“Plots” e o arquivo “Webpage”. O arquivo Webpage é uma página de resultados com
visualização dinâmica, onde é possível identificar o que cada objeto representa nas mais
diversas apresentações dos dados gerados pelo MultiQC, facilitando as análises de vários

49
dados em conjunto. Para a visualização, é necessário clicar no ícone em formato de olho
localizado abaixo do arquivo Webpage indicado pela seta na Figura 53.

Figura 53: Acessando os resultados obtidos via MultiQC na plataforma galaxy. A seta vermelha indica o ícone a
ser selecionado para a visualização dos resultados.

Os tópicos apresentados pelo arquivo Webpage gerado no MultiQC variam segundo


o tipo de software utilizado, como exemplificado na Figura 54. Os resultados produzidos
pelo MultiQC apresentam diversos aspectos semelhantes a ferramenta de origem dos
dados, com a diferença de que essa ferramenta possui a capacidade de reunir os
resultados provenientes de diversas amostras e/ou softwares para a visualização em
conjunto. A seguir, será descrito como exemplo o arquivo Webpage gerado pelos dados
obtidos utilizando o software FastQC.

50
Figura 54: Os tópicos apresentados pelo MultiQC (em cinza) variam segundo o programa de origem (em azul)
dos dados utilizados.

No início dos resultados do Webpage, é possível ver as estatísticas gerais de todos


os arquivos selecionados através do tópico “General Statistics” (Figura 55). Esse tópico
apresenta a porcentagem de reads duplicados (% Dups), porcentagem média do conteúdo
das bases GC (% GC), o tamanho médio das sequências (Length) e o total de sequências
em milhões (M Seqs).

Figura 55: General Statistics apresenta um resumo com as principais estatísticas dos dados
analisados.

O tópico “Sequence Counts” apresenta em forma de gráfico de barras o número total


de sequências para cada amostra, o qual pode ser visualizado pelo número de reads ou em
porcentagem (Figura 56). O gráfico é dividido pelos reads únicos (azul) ou duplicados
(preto) de cada amostra.

Figura 56: Sequence counts demonstra o número total de sequências em cada amostra, separadas
por reads únicos (em azul) ou duplicados (em preto).

Em “Sequence Quality Histograms” e “Per Sequence Quality Scores” é demonstrado


a qualidade média de cada base segundo a sua posição no read e o número de reads

51
dentro de uma média de qualidade, respectivamente. Ambos os tópicos apresentam 3
níveis de qualidade: em verde estão as amostras que passaram no teste e que possuem um
alto número de bases ou reads com boa qualidade; em amarelo estão as amostras que
necessitam atenção; e em vermelho as amostras que reprovaram no teste e que possuem
um grande número de bases ou reads com baixa qualidade (Figura 57).

Figura 57: Qualidade das bases apresentada pelo Sequence Quality Histograms e Per Sequence
Quality Scores.

O tópico “Per Base Sequence Content” mostra na forma de heatmap a proporção


das bases que foram chamadas em cada posição. Ao clicar em um heatmap de uma
amostra, é possível visualizar o gráfico de linha específico para essa amostra (Figura 58).

52
Figura 58: Per Base Sequence Content. Em cima está o heatmap gerado para todas as amostras e embaixo a
gráfico de linha específico de uma única amostra.

A média do conteúdo GC dos reads é dado no tópico “Per Sequence GC Content”, o


qual demonstra a média pela quantidade de sequências (Counts) ou em porcentagem
(Percentages) (Figura 59, esquerda) . Já a porcentagem de bases uncalled por posição está
demonstrada no tópico “Per Base N Content”, onde N representa uma base que não foi
identificada com segurança pelo sequenciador (Figura 59, direita).

Figura 59: Conteúdo GC (“Per Sequence GC Content”) e bases uncalled (“Per Base N Content”) da sequência.

Os tópicos “Sequence Length Distribution” e “Sequence Duplication Levels”


apresentam a distribuição do tamanho dos reads e o nível relativo de duplicação das
sequências, respectivamente (Figura 60).
A distribuição do tamanho dos fragmentos gerados (Figura 60, esquerda) pode ser
classificada em verde, caso todas as sequências possuam o mesmo tamanho; amarelo, se
as sequências não tiverem o mesmo tamanho; ou vermelho, caso algum fragmento apareça
com o comprimento igual a zero. Para muitas plataformas de sequenciamento é normal a
geração de sequências com diferentes tamanhos e por isso pode ser comum os softwares
de controle de qualidade demonstrarem o aviso amarelo.
O “Sequence Duplication Levels” também é classificado nas três cores verde,
vermelho e amarelo. Como em um biblioteca a maioria das sequências deveria ocorrer
somente uma vez, amostras com baixo nível de duplicação são classificadas pela cor verde,
um nível moderado recebe a cor de aviso amarela e se apresentar um alto nível de
duplicação das sequências irá receber uma classificação vermelha, já que isso demonstra
um possível erro na geração dos dados.

53
Figura 60: Distribuição do tamanho dos reads (“Sequence Length Distribution”) e nível relativo de duplicação
das sequências (“Sequence Duplication Levels”).

O MultiQC também apresenta os tópicos “Overrepresented sequences” e “Adapter


Content” das amostras analisadas (Figura 61). Enquanto o FastQC calcula e lista todas as
sequências super representadas de uma amostra, o relatório do MultiQC demonstra no
gráfico o número total dessas sequências super representadas (Figura 61, esquerda). O
gráfico é dividido pelo número de reads que possui a sequência com maior representação
(em azul) e a soma do restante das sequências super representadas (em preto).
Entre as sequências super representadas, pode estar o conteúdo provindo de
adaptadores. O Adapter Content busca de maneira específica a porcentagem cumulativa da
proporção da biblioteca que possui essas sequências de adaptadores, o que ajuda a
verificar a necessidade que realizar o corte (trim) dos adaptadores nas amostras ou não.
Amostras serão classificadas com a cor amarela e vermelha se os adaptadores
apresentarem mais de 5% ou 10% de todos os reads, respectivamente.

Figura 61: Sequências super representadas (Overrepresented sequences) e conteúdo de adaptadores (Adapter
Content) das amostras analisadas.

54
Por fim, o último tópico apresentado pelo MultiQC em análises de resultados
provenientes do FastQC apresenta uma visão geral do status de cada tópico discutido
anteriormente, classificando-os segundo os resultados apresentados: verde demonstra
resultados normais, laranja os resultados que necessitam de alguma atenção e em
vermelho estão os resultados que apresentaram anormalidades (Figura 62).

Figura 62: Visão geral do status dos tópicos apresentados pelo MultiQC.

5. Anotação do genoma

Figura 63: Anotação de um genoma = previsão de genes

55
Consiste na identificação de regiões funcionais ou de relevância biológica, o que
pode incluir:
• Genes codificantes de proteínas.
• Regiões funcionais em proteínas.
• Genes de RNA não-codificantes (tRNAs, rRNAs, etc).
• Regiões de DNA repetitivo.
• Promotores, terminadores, Operons, Riboswitches e outras regiões regulatórias.

Etapas a considerar:

1- Preparação do genoma: Antes de começar, você precisa preparar a montagem


identificando e descartando as partes do genoma que não contêm genes. Essas regiões
geralmente complicam o processo e podem gerar anotações erradas.
2- Fase computacional: Os elementos do genoma são identificados com base em
informações de experimentos de expressão e genes de outros genomas.
3- Mapeamento: Para a sequência do genoma de referência é usada em conjunto para
prever genes quando não há evidências externas e geralmente são usados modelos
matemáticos, combinando os elementos mapeados, anexando informações biológicas a
eles e, finalmente, definindo um conjunto ideal de anotações.
Nota: As duas primeiras fases apresentam bons resultados, mas é necessário
validar as anotações qualitativamente. Isso é realizado através de inspeções
manuais, verificações experimentais e medidas de qualidade.
4- Publicação da anotação em um banco de dados: é possível criar a sua, enviá-la para
um dos assuntos mais importantes ou para algum assunto. Tornar os dados públicos
incentiva a montagem e anotação aprimoradas.

56
Figura 64: Pipeline de anotação de genoma integrado (CHRISTOFFELS et al., 2018).

A anotação do genoma é precedida por um processo de montagem do genoma


usando um método baseado em genoma de referência ou uma abordagem denovo. A
anotação do genoma montado (Figura 64) começa com a identificação e o mascaramento
dos genes de RNA usando RNAmmer. Ferramentas de busca de genes; como Prodigal,
GeneMark e MetageneAnnotator; são usados ​para identificar quadros de leitura abertos
(ORFs) na sequência do genoma. Essas ORFs são pesquisadas pelo BLAST em bancos de
dados como GENBANK e UniProt para identificar funções putativas e evidências de
proteínas. As ORFs são mapeadas para vias metabólicas usando um banco de dados
KEGG. Os domínios de proteína são identificados através de pesquisas no InterProScan.
Esta pesquisa atribui termos GO a cada um dos domínios protéicos e esses recursos são
usados ​posteriormente para realizar análises de enriquecimento funcional. As ORFs são
pesquisadas no banco de dados de domínio conservado que inclui COGs para identificar os
ortólogos correspondentes (CHRISTOFFELS et al., 2018).

5.1. Anotação estrutural

A identificação de regiões funcionais, também denominadas motifs ou domínios, em


um determinado genes ou proteína é denominada anotação estrutural. No caso de
proteínas, ferramentas como SignalP (peptídeos sinais), TMHMM (hélices
transmembrânicas), Interproscan (domínios), e bancos de dados de regiões conservadas

57
como Pfam, PRODOM e SMART, podem ser usados para uma melhor caracterização
estrutural.

5.2. Anotação funcional


É a identificação das funções e processos biológicos associados a ele. Bancos de
dados como Clusters of Orthologous Groups (COG) e o Gene Ontology (GO), organizam
em estruturas hierárquicas estas funções, e usam um conjunto limitado e curado de termos
para a identificação de cada função e processo biológico. Além da determinação da função
de uma proteína, é possível também se reconstruir rotas metabólicas através das funções
preditas para cada proteína do genoma. Ferramentas como KAAS, MinPaths e PathPred
utilizam bancos de dados como o KEGG Pathways e o SEED como base para a
identificação de proteínas ortólogas relacionadas a rotas já elucidadas.

5.3. Ferramentas de anotação

Os pipelines são conjuntos de ferramentas que são executadas em uma sequência


lógica, nos quais a saída (output) de uma é a entrada (input) de outra. Diversas pipelines
estão disponíveis para a anotação de genomas (tanto eucariotos quanto procariotos), e são
capazes identificar diversas tipos de regiões funcionais. Alguns deles em procariotos:
Prokka, RAST, Eugene-PP, BaSys, NCBI genome annotation pipeline e eucariotos: Maker,
Eugene.
Repositórios de dados com curadoria para anotação de genoma: A coleta de dados
fornece a base para uma anotação abrangente do genoma recoletado de CHRISTOFFELS
et al., 2018. Esses bancos de dados podem ser classificados da seguinte maneira:

5.3.1. Recursos de nucleotídeos

A coleção internacional de bancos de dados de sequência de nucleotídeos (consulte


a seção "Sites relevantes") é uma colaboração entre DDBJ, EMBL e GENBANK. Outros
recursos, como RefSeq (PRUITT et al. , 2007 ) no NCBI, fornecem um conjunto integrado
não redundante de nucleotídeos e proteínas para uma variedade de organismos.

5.3.2. Recursos proteicos

O UniProt ( consórcio UniProt, 2007 ) se originou de uma fusão entre os bancos de


dados de proteínas SwissProt e PIR. Esse recurso representa um recurso de anotação com

58
curadoria especializada, inclusão da literatura relevante e inúmeras referências cruzadas. O
volume sem precedentes de dados que exigia curadoria teve que ser subdividido em duas
coleções, a saber: UniProtKB / SwissProt - entradas de proteína validadas manualmente e
UniProtKB / TrEMBL - registros anotados computacionalmente.

5.3.3. Recursos no domínio das proteínas

O InterPro fornece um recurso unificado que vincula bancos de dados como PFAM e
Prosite. Essas proteínas são organizadas em famílias de proteínas com base em suas
assinaturas de domínio proteico.

5.3.4. Aglomerado de grupos ortólogos

As proteínas são agrupadas com base na comparação BLASTP de todas as


proteínas contra todas. Clusters são gerados se houver pelo menos três organismos
relacionados à distância.

5.3.5. Vias metabólicas

Estes são fornecidos por KEGG.

5.3.6. Interações proteicas

O banco de dados STRING integra dados de interação de proteínas previstos e


conhecidos.

5.3.7. Bancos de dados estruturais

PDB armazena estruturas de proteínas em 3D.

5.3.8. Programas de previsão de genes:


● Fgenesh:
http://www.softberry.com/berry.phtml?topic=fgenesh&group=help&subgroup=gfind
● GlimmerM: http://www.cbcb.umd.edu/software/glimmerm/

59
● Genemark: http://exon.gatech.edu/GeneMark/
● DAVID: https://david.ncifcrf.gov/summary.jsp
● GO FEAT: http://computationalbiology.ufpa.br/gofeat/index/about
● Trinotate: https://github.com/griffithlab/rnaseq_tutorial/wiki/Trinotate-Functional-Annotation
● Blast2GO: https://www.blast2go.com/
● BMC Genomics:
https://bmcgenomics.biomedcentral.com/articles/10.1186/s12864-018-5221-9
● Galaxy:
https://galaxyproject.github.io/training-material/topics/genome-annotation/tutorials/genome-
annotation/tutorial.html#:~:text=At%20first%20you%20need%20to,the%20location%20of%
20regulatory%20motifs.
● MAKER: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4286374/
● DeNSAS

5.4. Rodando DeNSAS


Quando o documento do sequenciamento do organismo para o trabalho (formato
Fasta) estiver pronto e após o download e instalação do programa Densas, procederemos
ao seguinte:

5.4.1. Coleta de dados

Dentro do termo, digite a pasta em que você possui Densas e escreva o seguinte
comando:

Figura 65: A. comando para coleta de dados. B. Após a execução do comando.

60
Assim, ele gerará vários arquivos fasta nos quais cada uma dessas seqüências
possui o número (XXXX) dividido que ele colocou. Pode ser verificado com o comando:
grep -c ">" nomedoarquivo

Em seguida, pode-se observar os diferentes bancos de dados como blast XML, onde
mostrará todos os resultados obtidos com o blast, mostrando todos os dados com o nome
da sequência, o GI, o número de acesso, o Score, PFAM e RFAM, mostra os contigs, nome,
código e probabilidade em similaridade (Figuras 66, 67 e 68).

Figura 66: Resultados após a execução do comando: ll blastXLM/ . Obtendo a maneira de comparar as
sequências com diferentes bases de dados.

Figura 67: Banco de dados de Famílias de RNA geradas a partir da anotação.

Figura 68: Banco de dados de Famílias proteica geradas a partir da anotação.

Dica: toda vez que um banco de dados é usado, você deve inserir o arquivo de cada um
para ver os documentos gerados.

61
Com os dados gerados especialmente o Score, podem ser realizadas investigações
com diferentes colaboradores, usando as diferentes informações em diferentes bancos de
dados como RFAM (apresenta as familias dos RNA), PFAM (apresenta as famílias
proteicas) MEROPs e blastXLM .

5.4.2. Montar descrição

Figura 69: A. Montagem descrição. B. Após a execução do comando. C. Arquivo gerado de descrição de cada
uma das contendas.

No arquivo de descrição do conteúdo, é possível ver cada uma das informações,


como o nome da proteína, enzima ou molécula (PFAM, RFAM), código (PFAM, RFAM),
número do gene, de onde essas informações foram obtidas (taxa ID) e inibidores previstos.
Portanto, descreva todas as seqüências de análise.

62
5.4.3. Montar anotação

Figura 70: A. Montagem anotação. B. Após a execução do comando e imprima o arquivo.

O arquivo gerado mostra o nome da sequência do contig, mostra os GOs associados


à sequência, mostra o componente ou função biológica, o nível que gera os GOs (o número
mais próximo de 0 é, mostra maior confiabilidade) e genes anotados. Assim, gerando uma
anotação funcional de uma transcrição ou de um transcriptoma.

6. Análise da expressão diferencial de genes através da técnica de


RNA-seq
Arilson Bernardo dos Santos Pereira Gomes
Bradley Joseph Smith
Bruna Toledo Nunes Pereira
Davi de Castro Gomes
Irene Layane de Sousa

6.1. Como Analisar a Expressão Diferencial


A linguagem de programação chamada R tem sido bastante utilizada em projetos
biológicos e existem vários pacotes para realizar análises diferentes. Através do R, existem
algumas etapas de preparação das amostras no seu estado bruto para serem mais
relevantes às suas perguntas biológicas. Segundo a apresentação do André, são:
1- Certificar que seu computador tem todos os programas, pacotes e dados brutos
disponíveis para realizar suas análises.
a) Para baixar a versão mais recente da R (necessário para utilizar RStudio),
clique aqui.
b) Para baixar a versão mais atualizada do RStudio (interface gráfica para a
linguagem R), clique aqui.

63
2- Importar seus dados brutos, depois filtrando-os e processando-os.
3- Olhar para uma representação gráfica dos seus dados.
4- Definir seu modelo e a variação dos dados.
5- Ajustar seu modelo e análise estatística.
6- Examinar os dados e investigar seus genes de interesse.

6.2. Usando o RStudio


RStudio é uma interface gráfica para facilitar a comunicação entre a linguagem e o
usuário para que não seja preciso usar somente linhas de comando. Sempre que for criar
um projeto novo, é recomendado criar um projeto novo no RStudio também. Dentro de cada
projeto, um ambiente é criado onde é possível ter vários arquivos de programas e dados.

6.2.1. Criando um Projeto e Arquivo Novo


No canto superior direito, tem um botão onde pode criar, abrir, e fechar projetos.
Cada projeto cria seu próprio diretório na pasta especificada quando é criado. Quando um
projeto está aberto, pode criar um arquivo de R Markdown (.Rmd) dentro dele através de
“File -> New File -> R Markdown”.1
Arquivos de R Markdown são um jeito de interpretar e processar os comandos
escritos, facilitando na escrita e leitura dos scripts. Esse formato também habilita funções
como Knit (escrever os resultados de vários chunks em um arquivo só) e Convert (converter
o arquivo em HTML, PDF e Microsoft Word). Para mais informações sobre este formato,
clique aqui.

Figura 71: Visão geral do RStudio com a opção de criar um projeto selecionado e marcado.

Ao criar o arquivo R Markdown podemos ver três componentes básicos:

1
A primeira vez que algumas funções são usadas no RStudio, vai pedir baixar e instalar alguns pacotes
necessários. Depois de atualizar sua versão do RStudio ou R e de vez em quando, verificar para atualizações
dos seus pacotes também através de “Tools -> Check for Package Updates…” Adicionalmente, talvez seja
necessário instalar RTools, pelo link de “R Binaries”.

64
1- Cabeçalho entre o par de três traços (---), com título, autor, data e output do
arquivo.
2- Códigos (partes nos blocos em cinza, chamados chunks), que seguem a sintaxe
da linguagem especificada no cabeçalho do bloco (por padrão é R).
3- Texto (partes em branco), onde podemos adicionar observações sobre o projeto.

Figura 72: Visão geral do arquivo R Markdown. 1 - Cabeçalho; 2 - Chunk; 3 - Texto.

6.2.2. Carregamento dos Pacotes e Arquivos


6.2.2.1. Inserção de chunks

Chunks são os blocos de código que são executados quando o documento é


compilado. Para adicionar um novo chunk na linguagem R, selecionamos “Insert -> R”. O
chunk de código é criado por um par de três aspas (```), como podemos ver na imagem
abaixo, na qual R indica a linguagem do código.

Figura 73: Onde criar um novo chunk de código R.

65
Para instalar um pacote do tipo CRAN, digite o comando install.packages (“nome do
pacote”) no chunk. Para rodar este script, pressione as teclas ALT + ENTER ou clique em
Run como indicado na figura abaixo:

Figura 74: Onde encontra-se o botão para rodar um script.

Para carregar o pacote, isto é, para fazer com que suas funções se tornem
disponíveis para uso na sessão, use o comando library(nome do pacote), como no exemplo:

Figura 75: Alguns exemplos de como importar um pacote com o comando library().

6.2.2.2. Bioconductor
Para análises biológicas, além dos pacotes já inclusos na versão base do R, existe
um projeto chamado Bioconductor, que é um repositório que fornece ferramentas para a
análise e compreensão de dados genômicos de alto rendimento. Podemos acessar os
pacotes deste repositório através do site do Bioconductor. Neste tutorial, utilizaremos os
pacotes edgeR e limma.

6.2.2.2.1. edgeR
edgeR é um pacote de software Bioconductor para examinar a expressão diferencial
de dados de contagem replicados. Um modelo de Poisson super disperso é usado para
explicar a variabilidade biológica e técnica. Os métodos empíricos de Bayes são usados
​para moderar o grau de super-dispersão nas transcrições, melhorando a confiabilidade da
inferência. A metodologia pode ser usada mesmo com os níveis mínimos de replicação,
desde que pelo menos um fenótipo ou condição experimental seja replicado. O software
pode ter outros aplicativos além dos dados de sequenciamento, como dados de contagem
de peptídeos proteômicos.

66
6.2.2.2.2. limma
Segundo a documentação do limma, ele é um pacote R/Bioconductor para a análise
de dados de microarray e RNA-seq da expressão gênica, especialmente para o uso de
modelos lineares estatísticos para analisar experimentos e avaliar a expressão diferencial.
Limma possibilita a análise de comparações entre múltiplos alvos de RNA simultaneamente
em experimentos complicados arbitrários. Métodos empíricos de Bayes são usados para
fornecer resultados estáveis, mesmo quando o número de arrays é pequeno. As funções de
normalização e análise de dados são para “two-color spotted microarrays”. As funções de
modelo linear e expressão diferencial se aplicam a todas as tecnologias de microarray,
incluindo Affymetrix e outras plataformas de oligonucleotídeos de único canal.

6.2.3. Lendo e Carregando Tabelas


O comando “read.table()” lê um arquivo de uma tabela no seu ambiente em R para
poder interagir com ele. Existem vários parâmetros para usar essa função, como:
● file = “nome_da_sua_tabela.xyz”
○ Esse é o arquivo lido pelo comando.
● sep = “\t”
○ Esse parâmetro modifica qual é o separador no seu arquivo. Neste caso do
\t, é “tab”.
● header = TRUE
○ Se sua tabela tem uma primeira linha de dados que servem como cabeçalho,
use a variável TRUE, senão FALSE.
Quando esse comando é rodado, os dados da tabela serão lidos mas não salvos no
ambiente do seu projeto. Para fazer isso, basta escrever na mesma linha, antes do
comando, o nome da variável onde quiser carregar a tabela:

Para visualizar uma tabela que está salva como variável no seu ambiente, basta
digitar o nome da variável e a tabela aparecerá já com suas colunas e linhas. Para mostrar
mais dados sobre a tabela, como o número de variáveis, a quantidade de linhas, o tipo de
cada variável, use o comando:

67
Para visualizar a tabela de uma forma mais limpa, tipo Excel, use o comando View.
Se quiser exportar, por exemplo, um segundo parâmetro opcional acrescentará um título à
tabela.

6.2.4. Arquivos DGEList


O formato DGEList (Differential Gene Expression List) cria um objeto baseado numa
tabela de contagens (linhas=características, colunas=amostras), um indicador de grupo
para cada coluna e outras possíveis variáveis. No exemplo da aula:

Esse formato também possui um valor para cada count que é para normalização,
$norm.factors, útil para bibliotecas de tamanhos diferentes. Quando o DGEList é criado, o
valor para cada contagem é 1. Para estabelecer esses valores, pode sobrescrever a mesma
variável com o comando:

6.2.5. Filtragem dos dados


Nos casos de extremamente baixa expressão de um gene (ou se nem é expresso), é
importante remover esses valores para facilitar e melhorar as análises seguintes. Para fazer
isso, a função filterByExpr() é muito útil para filtrar aqueles genes com expressão abaixo
de um valor mínimo estabelecido. O resultado TRUE ou FALSE é então dado para cada
contig, sendo TRUE para os valores dentro do limiar estabelecido e FALSE para os valores
fora do limiar.
Por exemplo, usando nosso DGEList (d0) e uma contagem mínima de 10, salvando
para uma variável keep.expr, o comando seria o seguinte:

2
Lembramos que existe uma diferença entre letras maiúsculas e letras minúsculas. Neste caso, é o
comando View. O comando “view()” não vai funcionar.

68
6.2.6. Transformação dos dados
Nas análises de expressão diferencial, há uma dificuldade intrínseca de considerar a
expressão de um gene na escala bruta, devido às diferenças de cobertura entre as
contagens.Com o objetivo de resolver essa problemática, a função CPM é uma importante
medida descritiva para transformar as contagens brutas em uma contagem por milhão
simples (cpm), levando em conta o tamanho das bibliotecas e normalizando os valores de
expressão para cada amostra mesmo com a diferença de cobertura existente entre os
genes.
A transformação das amostras normalmente é analisada em escala logarítmica
(lcpm) para auxiliar na plotagem dos gráficos. Quando log = TRUE, a função cpm converte
os valores para a escala log2, como observado no comando abaixo para a variável d:

6.2.7. Escalonamento Multidimensional


Escalonamento multidimensional (MDS) é uma série de técnicas que ajudam
pesquisadores a identificar dimensões inerentes a avaliações feitas por respondentes
quanto a objetos, comparações de qualidades físicas, percepções e avaliações de
diferenças culturais entre grupos distintos. O foco principal do MDS é transformar
julgamentos de respondentes quanto à similaridade ou preferências em distâncias
representadas em espaços dimensionais. Este modelo representa relações de similaridade
entre estímulos em termos de um modelo geométrico que consiste em conjuntos de pontos
inseridos em um espaço organizado.
Após a coleta de dados, o escalonamento multidimensional pode contribuir para a
determinação de quais dimensões foram usadas em uma situação e como estão
relacionados em termos de percepção. Diferente de outras técnicas multivariadas, o
escalonamento multidimensional não emprega uma variável estatística.
O MDS é dividido em dois tipos: métrico e não-métrico. O tipo métrico caracteriza-se
pela necessidade de usar os valores das similaridades no processo de ajuste que consiste
em um método para a construção da configuração a partir das distâncias euclidianas entre
os pontos, através de um método altamente relacionado com análise fatorial. O tipo
não-métrico não usa valores das similaridades no processo de ajuste, sendo, portanto,
necessário a ordenação dessas medidas. Assim, quando é fornecida apenas a ordem

69
crescente ou decrescente das similaridades, o algoritmo é quem determina qual a
configuração gráfica que melhor se ajusta aos valores experimentais.

Sendo assim, supondo que temos amostras sequenciadas de insetos da ordem


Lepidoptera que se alimentam de diversas culturas como soja, milho, algodão e feijão e
desejamos observar a distribuição conforme a dieta desses animais. Para isso, inicialmente
precisamos separar essas amostras utilizando os seguintes comandos:

Precisamos selecionar nossas paletas de cores através do pacote brewer.pal


(baixados inicialmente) podendo escolher várias paletas de cores oferecidas pelo pacote.
Neste caso utilizaremos a mais básica que é a “Selt1” (dieta) e “Selt2” (lane) conforme os
comandos abaixo:

Antes de iniciarmos a construção do gráfico devemos trocar a opção fator para


caracteres da dieta e lane, conforme os comandos abaixos:

Agora podemos construir o gráfico utilizando o comando plotMDS conforme mostra


os comandos abaixo:

Executando estes comandos ocorrerá a geração do gráfico conforme abaixo:

70
6.2.8. Matriz

Se quisermos observar genes diferencialmente expressos nas condições de dieta,


considerando que nossos dados apresentaram uma distribuição normal para que
pudéssemos ajustar nossos modelos em dados seguindo uma distribuição. Para isso
precisamos criar uma matriz design (inserir script) e utilizar a função model.matrix
adicionando o alvo de interesse conforme o comando especificado logo abaixo:

6.2.9. Pesos

Para entender os genes diferencialmente expressos em cada condição de dieta, o


pacote limma possui uma função de consideração de pesos para cada observação das
contagens do experimento. Essa função é denominada voom que permite calcular
diferentes pesos para cada observação, para executar essa função é necessário a
utilização do comando especificado logo abaixo:

71
6.2.10. Remoção de artefatos
O pacote sva contém funções para estimar e remover fontes de variação que podem
existir nos experimentos de RNA-seq. As variações, também denominadas de artefatos, são
das mais diversas naturezas e não são facilmente identificáveis, mas podem causar um
enorme impacto negativo no rendimento experimental.
Primeiro, cria-se um modelo nulo (m0) através da função model.matrix, com
apenas um intercept e a variável a ser analisada, que no exemplo a seguir será a “dieta”,
através do seguinte comando:

O próximo passo é a utilização da função sva() para estimar os valores de variação


em cada amostra. O sva é composto por quatro componentes e pelo seguinte comando:

● Os valores de expressão (E) calculados pelo voom (v) anteriormente;


● O modelo de matriz design (m1) já criada anteriormente;
● O modelo nulo (m0) que será usado como referência para comparação com o
modelo m1 no momento de ajuste de dados;
● O número de variáveis que desejamos analisar (n.sv)3.

Ao obter os valores dos artefatos, é necessária a inserção desses dados no novo


modelo m1 e rodar novamente o voom para obter os pesos dessa nova matriz.

6.2.11. Ajuste do modelo


Para o ajuste do modelo são utilizadas três funções, todas pertencentes ao pacote
limma. A função lmFit() ajusta o modelo linear para cada gene dado um arranjo utilizando
como argumentos os valores de expressão obtidos pelo voom (v$E) e a matriz de exame
m1, conforme comando a seguir:

A função makeContrasts() expressa contrastes entre um conjunto de parâmetros


como uma matriz numérica. Os parâmetros são geralmente os coeficientes de um ajuste

3
O argumento n.sv = 3 indica que três variáveis serão analisadas, caso o número de variáveis não
seja especificado, o número de fatores a serem analisados vão ser definidos pelo próprio sistema.

72
linear do modelo, portanto a matriz especifica quais comparações entre os coeficientes
devem ser extraídas do ajuste (mais informações sobre este comando na guia do usuário
do edgeR, seção 4.4.8-9). No exemplo abaixo, são criados três contrastes comparando
diferentes dietas (SvsM, SvsA, MvsF). Além disso, foi definido o nível (levels) como sendo
a matriz de design (fit) que fornecerá os nomes dos parâmetros de contraste como nomes
de colunas.

Por fim, a função contrasts.fit() é utilizada para calcular os coeficientes estimados e


erros padrão para um determinado conjunto de contrastes (contr) a partir do objeto fit. Esse
processamento é necessário e deve ser feito antes da análise estatística com o eBayes()
(descrição a seguir) para a conversão dos coeficientes da matriz em um número arbitrário
de contrastes que devem ser testados iguais a zero.

Para a análise estatística é utilizada a função eBayes(), também do pacote limma,


sob o objeto vfit. Com esta função são calculadas as estatísticas t e F moderadas e
chances de log da expressão diferencial pelo uso dos erros padrão em relação a um valor
comum, sendo possível, dessa forma, classificar os genes em ordem de evidência para
expressão diferencial. É utilizado um método empírico de Bayes para reduzir as variações
de amostra por sonda em direção a um valor comum e aumentar os graus de liberdade para
as variações individuais (SMYTH, 2004).

6.2.12. Investigação da expressão diferencial

A partir do ajuste do modelo estatístico é possível a investigação da expressão


diferencial através da função decideTests() do pacote limma. Esta função permite
identificar quais são os genes expressos de maneira significativa para cada contraste de
um objeto que contém valores de p definido pelo usuário e estatísticas de teste. No código
abaixo, é criada uma variável dt na qual a função decideTests() é aplicada sob o objeto efit
(criado anteriormente no tópico 5.11 Ajuste do modelo) e com um p-valor de 0.05.

73
Com o comando summary(dt) é possível visualizar, em forma de tabela, a contagem
dos genes diferenciados positivamente e negativamente para cada contraste criado (SvsM,
SvsA e MvsF).

Os genes também podem ser observados por ordem de magnitude de expressão


através da função topTable() também do pacote limma. Esta função apresenta uma lista
dos genes com maior probabilidade de expressão diferencial para um determinado
contraste. No exemplo abaixo vemos a aplicação da função topTable dentro uma variável
chamada top_de. Esta função é composta pelos seguintes argumentos:

● efit: objeto criado pela função eBayes (no tópico 5.11 Ajuste do modelo)
● coef: nome da coluna que especifica qual é o contraste do modelo linear de
interesse. No exemplo, foi utilizado o contraste “SvsM”
● p.value: valor de corte para valores-p ajustados. Apenas genes com valores p mais
baixos são listados.
● sort.by: sequência de caracteres que especifica a estatística para classificar os
genes. Foi utilizado “logFC” para ordenação pelo coeficiente absoluto (alteração na
dobra de log)
● n: número máximo de genes a serem listados. Foi escolhido “Inf” que significa que
serão listados todos os genes com valores de p ajustados abaixo do valor
especificado (nesse caso, abaixo do p-valor de 0.05)

6.2.12.1. Visualização da Expressão Diferencial por Heatmap


O heatmap (mapa de calor/intensidade) é uma construção gráfica comumente
utilizada para representar o perfil de expressão de genes (indução e repressão). Nesse
gráfico também é possível a geração de um dendrograma associado ao perfil de expressão

74
dos genes que permite a visualização dos agrupamentos de genes e/ou condições e seus
níveis de similaridade. Na figura 67 um modelo de heatmap é apresentado. Em cada linha
vemos representado um determinado gene enquanto cada coluna representa uma condição
avaliada. A cor azul caracteriza genes positivamente regulados (ativos) e a cor vermelha
genes negativamente regulados (reprimidos). A intensidade de cada uma dessas cores está
relacionada ao grau de expressão ou repressão dos genes avaliados.

Figura 76: Modelo de heatmap.

Para a construção do heatmap no R é utilizada a função heatmap.2( ) do pacote


gplots4. Antes de utilizar esta função é possível ajustar os dados que serão coletados e
definir o esquema de cores utilizado criando outros objetos como mostrado no exemplo de
código a seguir:

4
Consulte a documentação que descreve cada função e respectivos argumentos do pacote gplots.

75
Primeiramente são buscados os 100 genes mais significativos dentro do objeto
top_de armazenados na variável top100. Em seguida é criada uma outra variável idx na
qual são identificadas as posições onde cada gene top100 estão nas contagens por milhão
(lcmp). Com a função as.factor() é feita a conversão da coluna “amostras” do objeto
“samples” em fator5. E, por fim, com a função colorpanel() é gerado um conjunto de cores
que varia suavemente, com a definição do número desejado de elementos de cores no
painel e as cores a serem usadas para os valores mais baixo, médio e mais alto. Definido
esses parâmetros, podemos construir o heatmap conforme o código abaixo:

Em que:
● lcpm[idx,]: matriz numérica dos valores a serem plotados;
● scale = “row”: caractere indicando se os valores devem ser centralizados e
redimensionados na direção da linha ou na direção da coluna ou em nenhum. Aqui
foi escolhido o redimensionamento na direção da linha (“row”);
● trace = “none”: sequência de caracteres de rastreamento indicando se uma linha
sólida de "rastreamento" deve ser traçada na coluna "linha" ou "linha inferior",
"ambas" ou "nenhuma";
● labCol = amostras: aqui utilizamos o objeto amostras como o nome das colunas
no heatmap;
● lhei = c(2,10): controla a altura da linha;
● margins = c(7,17): vetor numérico para definir as margens das linhas e colunas;
● key = F: indica se o “color-key” deve ser mostrado. F (False) - não mostrar;
● cexRow = 0.25: números positivos, usados como eixo na rotulagem da linha;
● col = col: cores usadas para a imagem. Neste exemplo foi utilizado o objeto col
definido anteriormente pela função colorpanel().

5
Um “factor” é um objeto em R que é composto de uma lista de possíveis variáveis, e não de
números numa escala contínua. Isso é útil no modelamento de dados, porque denota que um número
representa uma categoria e não um número inteiro. Para mais informações sobre fatores, consulte a
documentação e este tutorial sobre seu uso da Berkeley.

76
6.2.13. Enriquecimento de GOs
Após gerar uma lista de genes diferencialmente expressos, uma análise pode ser
feita para olhar para o enriquecimento de domínios de GO (Gene Ontology). Existem várias
ferramentas para visualizar uma superexpressão de dados em um desses três domínios.
● CC: Cellular Component, a localização dos produtos dos genes (proteínas) na célula
ou espaço extracelular;
● MF: Molecular Function, as atividades do(s) produto(s) do gene, em termos de
atividade catalítica, domínios proteicos e interações com outros produtos; e
● BP: Biological Process, as vias biológicas que têm um início e fim definidos, e que
desempenham um papel específico na célula ou no organismo.
Para determinar se um conjunto de dados apresenta um enriquecimento de GOs,
várias ferramentas são disponíveis. As que foram mencionadas na aula6 são TopGO
(compatível com R), BiNGO (compatível com Cytoscape) e REVIGO (interface Web com
possibilidade de ser integrado em pipelines particulares).

6.2.13.1. Usando TopGO em R

O processo de achar os termos GO pode ser feito de 3 formas com TopGO. Em


classic, os termos são processados independentemente da hierarquia das ontologias. O
padrão do TopGO é weight01, com duas opções: elim e weight. “Elim” processa os dados
de uma forma eliminatória, começando pelos termos mais baixos, subindo a hierarquia.
Antes de subir um nível, os genes identificados em processos “significantes” são retirados;
isso pode levar a muitos falsos negativos nos níveis mais altos. “Weight” processa os dados
de forma similar, mas quando um nó é destacado, ele olha para os nós conectados para
determinar qual tem uma significância maior.
Depois de carregar e instalar o pacote em R, pode carregar os dados como Strings,
e os mapeamentos, que neste caso foram gerados usando InterProScan 5.

6
Tem várias outras ferramentas que existem para a visualização de dados de GO como DAVID,
Reactome e Metascape, mas essa lista é longe de ser completa.

77
Com esses dados, o próximo passo é selecionar os genes do universo de genes que
encontram-se nos seus dados, salvando-os para uma nova lista. Com isso, pode começar
com os três domínios da GO.

Criando a variável para BP (processos biológicos) da seguinte forma por exemplo,


separando os dados significativos usando um teste Fisher para enriquecimento.

Os dados mais significativos podem ser gravados em uma variável e exportados em


uma tabela usando os seguintes comandos.

O pacote Rgraphviz pode ser usado para visualizar os dados de GO em um formato


hierárquico. Os termos destacados são de retângulo, com a cor mostrando significância
(vermelho = mais; amarelo = menos). Cada nó tem o ID da GO, o nome, o p-valor e o
número de genes significativos em relação ao número total de genes daquele nó.

Os domínios de MF (função molecular) e CC (componente celular) podem ser feitos


da mesma forma, trocando “BP” pelo termo desejado nos passos acima.

78
7. Referências

Batut et al., 2018 Community-Driven Data Analysis Training for Biology Cell Systems
10.1016/j.cels.2018.05.012.

Bérénice Batut, 2020 Quality Control (Galaxy Training Materials). Disponível em: </tra
ining-material/topics/sequence-analysis/tutorials/quality-control/tutorial.html> Acesso em:
08/07/2020.

Galaxy 101- Trimming your Illumina sequencing using Galaxy. Disponível em:
<https://msi-riss.readthedocs.io/en/latest/tutorial/galaxy-101.html>. Acesso em 11/07/2020.

Christoffels, A., & van Heusden, P. (2018). Genome Annotation: Perspective From Bacterial
Genomes. Reference Module in Life Sciences. doi:10.1016/b978-0-12-809633-8.20092-7

GOODWIN, Sara; MCPHERSON, John D.; MCCOMBIE, W. Richard. Coming of age: ten
years of next-generation sequencing technologies. Nature Reviews Genetics, v. 17, n. 6, p.
333, 2016.

KULSKI, Jerzy K. Next-generation sequencing—an overview of the history, tools, and “Omic”
applications. Next Generation Sequencing–Advances, Applications and Challenges, p.
3-60, 2016.

LEE, Chien-Yuen et al. Common applications of next-generation sequencing technologies in


genomic research. Translation Cancer Research, v. 2, n.1, p. 33-45, 2013.

MARDIS, Elaine R. Next-generation sequencing platforms. Annual review of analytical


chemistry, v. 6, p. 287-303, 2013.

MAXAM, Allan M.; GILBERT, Walter. A new method for sequencing DNA. Proceedings of
the National Academy of Sciences, v. 74, n. 2, p. 560-564, 1977.

METZKER, Michael L. Sequencing technologies—the next generation. Nature reviews


genetics, v. 11, n. 1, p. 31-46, 2010.

Philip Ewels, Måns Magnusson, Sverker Lundin, Max Käller. MultiQC: summarize analysis
results for multiple tools and samples in a single report. Bioinformatics, Volume 32,
Issue 19, 1 October 2016, Pages 3047–3048, https://doi.org/10.1093/bioinformatics/btw354.

Robinson MD, McCarthy DJ, Smyth GK. “edgeR: a Bioconductor package for differential
expression analysis of digital gene expression data.” Bioinformatics, 26(1), 139-140, 2010.

SANGER, Frederick; NICKLEN, Steven; COULSON, Alan R. DNA sequencing with


chain-terminating inhibitors. Proceedings of the national academy of sciences, v. 74, n.
12, p. 5463-5467, 1977.

79
SEIFI, Morteza et al. Application of next-generation sequencing in clinical molecular
diagnostics. Brazilian Archives of Biology and Technology, v. 60, 2017.

SMITH, Lloyd M. et al. Fluorescence detection in automated DNA sequence analysis.


Nature, v. 321, n. 6071, p. 674-679, 1986.

SMYTH, G. K. Linear models and empirical Bayes methods for assessing differential
expression in microarray experiments. Statistical Applications in Genetics and Molecular
Biology 3, 2004

User guide. Basic usage. Disponível em: <https://cutadapt.readthedocs.io/


en/stable/guide.html>. Acesso em 13/07/2020.

WATSON, James D.; CRICK, Francis HC. Molecular structure of nucleic acids: a structure
for deoxyribose nucleic acid. Nature, v. 171, n. 4356, p. 737-738, 1953.

XUAN, Jiekun et al. Next-generation sequencing in the clinic: promises and challenges.
Cancer letters, v. 340, n. 2, p. 284-295, 2013.

80

Você também pode gostar