FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Pathogen identification in HumanCancer cells
Nélson Rafael Soares Dias da Silva Martins
Mestrado Integrado em Engenharia Informática e Computação
Orientador: Professor Rui Camacho (DEI & FEUP)
Co-orientador: Doutor Pedro Ferreira (I3S/IPATIMUP)
24 de Julho de 2018
Pathogen identification in Human Cancer cells
Nélson Rafael Soares Dias da Silva Martins
Mestrado Integrado em Engenharia Informática e Computação
Aprovado em provas públicas pelo Júri:
Presidente: Jorge A. Silva
Arguente: Carlos Ferreira
Vogal: Rui Camacho
24 de Julho de 2018
Resumo
Em 2012 surgiram mais de 14 milhões de novos casos de cancro e mais de 8 milhões de pessoasmorreram no mundo inteiro devido a esta doença. Uma das principais formas de solucionar oproblema que é o cancro, para além do tratamento, é a existência de um prognóstico fidedigno ouseja, antever o problema.
As células humanas podem ser infetadas por bactérias, vírus e outros agentes patogénicosque potenciam o aumento do risco de desenvolvimento do cancro. Esses agentes patogénicospodem substituir o ADN do núcleo e serem multiplicados à medida que as células se replicam.É importante notar que nem todos estes agentes patogénicos causam doenças, mas às vezes acombinação de alguns agentes patogénicos pode desencadear uma patologia.
É neste âmbito que a Bioinformática se torna imprescindível. Resultante da combinação entreCiência de Computadores, Estatística Matemática e Engenharia Informática para interpretar dadosbiológicos, a Bioinformática possibilita a análise de grandes volumes de dados biológicos e aextração de informação relevante e estatisticamente significativa.
O principal objetivo desta tese é o desenvolvimento de uma plataforma Web que permita ajudarinvestigadores a estudar o impacto de agentes patogénicos no cancro, principalmente o papel deinfeções e agentes externos na sua formação e a identificação de tais elementos patogénicos emamostras de genoma humano.
Para tal é necessário que esta plataforma mapeie e alinhe automaticamente sequências de ARNde pacientes humanos com conjuntos de dados existentes, contendo informações sobre agentes pa-togénicos malignos (disponível em repositórios dedicados da Web), dando ao utilizador feedbackestatístico e gráfico, para facilitar a compreensão das informações resultantes.
O objetivo final desta ferramenta é ajudar a prevenir/detetar infeções resultantes de agentesexternos no genoma humano e a expetativa de encontrar correlações importantes e interessantesentre estes agentes e diferentes tipos de cancro.
Palavras-chave: Bioinformática, Cancro, Genómica, Serviços Web, Docker
i
ii
Abstract
In 2012 more than 14 million new cases of cancer have arisen and more than 8 million peopledied worldwide due to this disease. One of the main ways to solve the problem of cancer, apartfrom treatment, is to have a reliable prognosis, that is to anticipate the problem.
Human cells can be infected by bacteria, viruses and other pathogens that potentiate the incre-ased risk of cancer development. These pathogens can replace the nucleus DNA and be multipliedas the cells replicates. It is important to note that not all of these pathogens cause diseases, butsometimes the combination of some pathogens can trigger a pathology.
It is in this context that Bioinformatics becomes indispensable. Resulting from the combina-tion of Computer Science, Mathematical Statistics and Computer Engineering to interpret biologi-cal data, Bioinformatics enables the analysis of large volumes of biological data and the extractionof relevant and statistically significant information.
The main objective of this thesis is the development of a Web platform to help researchersinvestigate the impact of pathogens on cancer, especially the role of infections and external agentsin their formation and the identification of such pathogens in human genome samples.
To do this, it is necessary for this platform to automatically map and align human patientRNA sequences with existing data sets containing information on malignant pathogens (availablein dedicated Web repositories), giving the user statistical and graphical feedback, to facilitate theunderstanding of the resulting information.
The ultimate goal of this tool is to help prevent / detect infections resulting from externalagents in the human genome and the expectation of finding important and interesting correlationsbetween these agents and different types of cancer.
Keywords: Bioinformatics, Cancer, Genomic, Web Services, Docker
iii
iv
Agradecimentos
Chegada a etapa final do meu ciclo universitário, conclusão da presente dissertação, há semprea necessidade de mostrar gratidão por quem nos deu a mão nesta fase das nossas vidas.
Em primeiro lugar agradeço à minha família, em especial aos meus pais e irmã por todo oesforço, apoio e confiança ao longo não só da minha carreira académica como de toda a minhavida.
Agradeço também ao Professor Rui Camacho pela orientação, acompanhamento e ajuda aolongo do desenvolvimento da dissertação e ao Doutor Pedro Ferreira pela ajuda na área de biologiae Bioinformática.
Um obrigado à equipa técnica da GRID da FEUP pela ajuda nas máquinas necessárias aodesenvolvimento deste projeto, estando sempre disponíveis para tal.
Para terminar, um agradecimento especial aos meus amigos e colegas de faculdade que meacompanharam e aturaram ao longo destes anos, nos momentos de trabalho e nos momentos dedescontração.
Muito Obrigado,Nélson Rafael Soares Dias da Silva Martins
v
vi
“What need is there to weep over parts of life?The whole of it calls for tears.”
Seneca the Younger
vii
viii
Conteúdo
1 Introdução 11.1 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Motivação e Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Estrutura da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Conceitos Básicos de Biologia Molecular e Tecnologias Usadas 52.1 Conceitos Básicos da Biologia Molecular . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Genómica e Proteómica . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.2 ADN e ARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.3 Sequenciação de ARN . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.4 Assemblagem de Segmentos de ARN . . . . . . . . . . . . . . . . . . . 7
2.2 Formatos de Dados Biológicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Software de Análise de Dados Genómicos . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Sequenciação de ARN . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.2 Mapeamento e Alinhamento . . . . . . . . . . . . . . . . . . . . . . . . 112.3.3 Controlo de Qualidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.4 Análise Taxonómica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.5 Conversão e Visualização de Ficheiros . . . . . . . . . . . . . . . . . . . 15
2.4 Tecnologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.5 Sumário do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Implementação 213.1 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Solução Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2 Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Sumário do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4 Casos de Estudo 374.1 Amostras Cancerígenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1 Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Amostras de HIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2.1 Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3 Sumário do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
ix
CONTEÚDO
5 Conclusões e Trabalho Futuro 495.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.2 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Referências 51
A Guião de Utilizador 55A.1 Página Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55A.2 Registo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55A.3 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56A.4 Projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57A.5 Novo Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57A.6 Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57A.7 Visualização do Mapeamento Viral e Bacteriano . . . . . . . . . . . . . . . . . . 60
x
Lista de Figuras
2.1 Estruturas do ADN e ARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Diferença no método de assemblagem por de-novo assembly (a) e genome refe-
rence assembly (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Estrutura de funcionamento da pipeline iRAP . . . . . . . . . . . . . . . . . . . 112.4 Representação esquemática da pesquisa do Prefixo Máximo Mapeável no algo-
ritmo STAR para detetar (a) junções de splice,(b) incompatibilidades e (c) caudas[AD13] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Exemplo de um relatório da ferramenta FastQC . . . . . . . . . . . . . . . . . . 152.6 Interação entre o utilizador e os componentes do MVC . . . . . . . . . . . . . . 18
3.1 Diagrama representativo do mapeamento de uma amostra usando Bowtie . . . . . 233.2 Diagrama da arquitetura da plataforma . . . . . . . . . . . . . . . . . . . . . . . 243.3 Diagrama de sequência das mensagens entre o investigador, servidor e máquina
de sequenciação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 Exemplo da interface com a framework Bootstrap . . . . . . . . . . . . . . . . . 253.5 Exemplo de um gráfico usando a framework Highcharts . . . . . . . . . . . . . . 253.6 Exemplo do uso de separadores com o plugin tab-collapse . . . . . . . . . . . . 263.7 Repositório FTP do GenBank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.8 Exemplo de um repositório no Docker Hub do utilizador ei11051 com as imagens
Bowtie, SAMtools, TopHat e base . . . . . . . . . . . . . . . . . . . . . . . . . . 313.9 Diagrama UML da base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 333.10 Diagrama de casos de uso para o ator User . . . . . . . . . . . . . . . . . . . . . 34
4.1 Gráficos representativos do mapeamento da amostra A nos genomas bacteriano eviral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Gráficos representativos do mapeamento da amostra B nos genomas bacteriano eviral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Gráficos representativos do mapeamento da amostra de HIV negativo nos genomasbacteriano e viral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Gráficos representativos do mapeamento da amostra de HIV positivo nos genomasbacteriano e viral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
A.1 Página inicial da plataforma online . . . . . . . . . . . . . . . . . . . . . . . . . 55A.2 Formulário de registo na plataforma . . . . . . . . . . . . . . . . . . . . . . . . 56A.3 Formulário de login na plataforma . . . . . . . . . . . . . . . . . . . . . . . . . 56A.4 Vista geral dos projetos do utilizador . . . . . . . . . . . . . . . . . . . . . . . . 57A.5 Formulário para a criação de um novo projeto . . . . . . . . . . . . . . . . . . . 58A.6 Detalhes do projeto e lista de ficheiros de input na secção Pre-Processing . . . . 58A.7 Formulário de upload de um ficheiro . . . . . . . . . . . . . . . . . . . . . . . . 59
xi
LISTA DE FIGURAS
A.8 Lista de ficheiros de output na secção Pre-Processing . . . . . . . . . . . . . . . 60A.9 Visualização dos resultados da análise de amostras . . . . . . . . . . . . . . . . 61A.10 Gráfico de todas as reads de elementos bacterianos de uma dada amostra . . . . . 61A.11 Gráfico do resultado do mapeamento da amostra para cada elemento patogénico . 62
xii
Lista de Tabelas
2.1 Exemplo do formato FASTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Exemplo do formato FASTQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1 Especificações das máquinas guadiana e magalhaes01 . . . . . . . . . . . . . . 384.2 Resultados da conversão de BAM para FASTQ das amostras A e B . . . . . . . . 384.3 Resultados do mapeamento das amostras A e B contra o genoma humano . . . . 384.4 Resultados do mapeamento das amostras A e B contra os genomas viral e bacteriano 394.5 Resultados do alinhamento das amostras A e B contra os genomas viral e bacteriano 394.6 Resultados do mapeamento da amostra A no genoma bacteriano, sendo que chr
corresponde a chromosome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.7 Resultados do mapeamento da amostra A no genoma viral . . . . . . . . . . . . 414.8 Resultados do mapeamento da amostra B no genoma bacteriano, sendo que chr
corresponde a chromosome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.9 Resultados do mapeamento da amostra B no genoma viral . . . . . . . . . . . . 434.10 Especificações das amostras de HIV . . . . . . . . . . . . . . . . . . . . . . . . 444.11 Resultados do mapeamento das amostras de HIV contra o genoma humano . . . 444.12 Resultados do mapeamento das amostras de HIV contra os genomas viral e bacte-
riano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.13 Resultados do alinhamento das amostras de HIV contra os genomas viral e bacteriano 454.14 Resultados do mapeamento da amostra de HIV negativo no genoma bacteriano,
sendo que chr corresponde a chromosome . . . . . . . . . . . . . . . . . . . . . 454.15 Resultados do mapeamento da amostra de HIV negativo no genoma viral . . . . 464.16 Resultados do mapeamento da amostra de HIV positivo no genoma bacteriano,
sendo que chr corresponde a chromosome . . . . . . . . . . . . . . . . . . . . . 484.17 Resultados do mapeamento da amostra de HIV positivo no genoma viral . . . . . 48
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Símbolos
ADN Ácido DesoxirriboNucleicoAPI Application Programming InterfaceARN Ácido RiboNucleicoARNm Ácido RiboNucleico mensageiroBAM Binary Alignment MapBLAST Basic Local Alignment Search Toolbp base pairsCSS Cascading Style SheetsFTP File Transfer ProtocolGB GigabyteHIV Human Immunodeficiency VirusHTML5 Hyper Text Markup Language 5HTTP Hypertext Transfer ProtocolJSON JavaScript Object NotationkB kiloByteMB MegaByteMVC Model-View-ControllerNCBI National Center for Biotechnology InformationNGS Next Generation SequencingRNA-Seq RiboNucleic Acid SequencingRPKM Reads Per Kilo base per Million mapped readsSAM Sequence Alignment MapSQL Structured Query LanguageSSH Secure SHellTCGA The Cancer Genome AtlasURL Uniform Resource Locator
xv
Capítulo 1
Introdução
Em 2012 surgiram mais de 14 milhões de novos casos de cancro e mais de 8 milhões de pessoas
morreram no mundo inteiro devido a esta doença. Uma das principais formas de solucionar o
problema que é o cancro, para além do tratamento, é a existência de um prognóstico fidedigno ou
seja, antever o problema. É neste âmbito que a Bioinformática se torna imprescindível. Resultante
da combinação entre Ciência de Computadores, Estatística Matemática e Engenharia Informática
para interpretar dados biológicos, a Bioinformática possibilita a análise de grandes volumes de
dados biológicos e a extração de informação relevante e estatisticamente significativas.
1.1 Contexto
As células humanas podem ser infetadas por agentes externos como vírus, bactérias, fungos
ou outros microrganismos. Sabe-se hoje em dia que cerca de 8% do genoma humano é constituído
por elementos patogénicos, e estima-se que entre 15% e 20% dos cancros são devidos a infeções
virais. A presença de determinados vírus e bactérias nas células humanas aumenta o risco e a
probabilidade de contrair cancro.
Hoje em dia é possível obter-se informação relativa a genes e proteínas a partir de repositó-
rios online constituídos por informações de diferentes fontes. Isto implica que especialistas da
área da Biologia Molecular tenham que aceder a vários repositórios na Web de modo a obter o
máximo de informação possível relativa a um determinado elemento molecular, e que tenham um
conhecimento abrangente da vasta gama de ferramentas usadas nesta respetiva área.
A disponibilização de dados relativos a sequências genómicas tanto cancerígenas como pato-
génicas e o desenvolvimento de ferramentas de análise destas, possibilita a obtenção de informa-
ções importantes que ajudam na melhor compreensão da expressão genómica.
De forma a poder analisar-se estas sequências, é necessário filtrar os dados que lá estão conti-
dos, visto que nem toda a informação é relevante para o tema em questão. Para tal, o processo de
“refinação” das sequências passa primeiramente pela sequenciação das amostras, a partir do qual
1
Introdução
se obtêm pequenas leituras correspondentes a segmentos de ARN. Estas leituras por si só não são
suficientemente relevantes, pois não é possível retirar nenhuma conclusão a partir de pequenos
segmentos isolados, havendo a necessidade de se realizar uma “assemblagem” destes, para se con-
seguir obter um genoma completo. Esta “assemblagem” passa pelo mapeamento e alinhamento
das amostras, na qual as duas técnicas mais relevantes são de-novo assembly e genome reference
assembly, que permitem detetar agentes externos dentro do dito genoma. Posteriormente, con-
vém realizar uma análise taxonómica a estes agentes, visto que pequenas mutações nestes podem
resultar na atribuição de espécie de agente patogénico errada.
1.2 Projeto
Esta dissertação visa ao desenvolvimento de uma plataforma Web que permita a um investi-
gador/biólogo analisar sequências genómicas humanas através do seu mapeamento e alinhamento
contra genomas de referência. Para tal, é necessário construir uma estrutura que inclua um servi-
dor, interface Web, base de dados e ferramentas para a análise e conversão de ficheiros.
Assim, a plataforma divide-se em quatro partes alojadas em diferentes máquinas:
• Interface Web - permite ao utilizador a criação de projetos, upload de ficheiros e é respon-
sável pela representação gráfica dos resultados e interação do utilizador com a plataforma.
• Base de Dados - guarda toda a informação necessária para o funcionamento da plataforma,
desde dados sobre utilizadores e projetos até aos dados de genomas de referência e amostras.
• Servidor FTP - é responsável pela transferência bidirecional de ficheiros entre as máquinas.
• Instâncias Docker - são responsáveis pelo alinhamento e mapeamento contra os genomas
de referência e pela conversão e indexação de ficheiros. A utilização de containers torna a
solução escalável e flexível.
1.3 Motivação e Objetivos
A principal motivação deste projeto é o desenvolvimento de uma plataforma que facilite a
obtenção de informação relativa a genes e proteínas e a comparação de sequências de genes hu-
manos e patogénicos fortemente expressos. Com a análise de grandes quantidades de sequências
genómicas pode-se obter suporte científico para a correlação entre certos genes patogénicos, genes
humanos e determinados tipos de cancro, e, possivelmente também a zona da sequência genética
mais propícia para tal. Tendo sempre presente que o cancro é uma doença grave e letal, que tem
um enorme impacto social na nossa sociedade.
2
Introdução
1.4 Estrutura da Dissertação
O Capítulo 2 apresenta os conceitos fundamentais necessários para compreender o projeto.
Primeiramente, são mencionados os conceitos básicos da Biologia Molecular relativos ao tema,
seguidos de ferramentas usadas e acabando com as tecnologias informáticas consideradas relevan-
tes. No Capítulo 3 é descrita a solução proposta, referidos os detalhes relativos ao desenvolvimento
e implementação desta. O capítulo 4 consiste na apresentação de resultados e casos de estudo do
projeto, importantes para a validação do projeto. O Capítulo 5 é o capítulo final, o qual abrange
dois tópicos, as conclusões finais da dissertação e o que se espera do trabalho futuro.
3
Introdução
4
Capítulo 2
Conceitos Básicos de BiologiaMolecular e Tecnologias Usadas
Neste capítulo, apresenta-se os conceitos fundamentais do domínio que permitem perceber o
trabalho realizado. Primeiramente irão ser abordados os conceitos básicos de Biologia relaciona-
dos com o tema, passando para os formatos de dados usados e terminando com as ferramentas e
bibliotecas necessárias para a respetiva análise biológica. São ainda apresentadas as tecnologias
Web e as bases de dados que serão utilizadas para o desenvolvimento do projeto.
2.1 Conceitos Básicos da Biologia Molecular
2.1.1 Genómica e Proteómica
A genómica é a área de conhecimento focada no estudo da estrutura, função, evolução, ma-
peamento e edição do genoma de um organismo. Ao índice completo do ADN que está presente
numa célula ou num organismo chama-se genoma, o qual contém toda a informação hereditária
de um ser.
A proteómica realiza o estudo das proteínas que estão expressas numa célula, tecido ou orga-
nismo. A proteómica pode identificar, fazer categorias e classificar as proteínas em relação às suas
funções e interações estabelecidas entre elas. O proteoma é então complementar ao genoma, uma
vez que os genes podem ser transcritos em ARN (no núcleo da célula) que por sua vez traduzido
em proteínas (nos ribossomas – no citoplasma) [eMPW99].
2.1.2 ADN e ARN
É no núcleo das nossas células, mais propriamente no ADN, que está guardada toda a informa-
ção genética de um organismo e as suas características hereditárias1. Esta informação vem sendo
1há também ADN nas mitocôndrias, mas não vamos considerar esse ADN
5
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Figura 2.1: Estruturas do ADN e ARN
alterada desde os primórdios da humanidade, devido a vários fatores como a evolução, reação
ao meio ambiente e mutações ao longo da nossa história causados por fatores externos. Os ge-
nes são os segmentos de ADN que contêm a informação genética, os restantes segmentos ou têm
importância estrutural ou estão envolvidos na regulação do uso da informação genética [AG00].
O ADN é uma sequência de bases ligadas em dupla-hélice, podendo estas bases ser de quatro
tipos: Adenina (A), Timina (T), Citosina (C) e Guanina (G). Apesar de existirem somente qua-
tro bases, o número de combinações entre estas é essencialmente infinito, o que leva à grande
diversidade da espécie humana.
A principal função do ADN é o armazenamento das informações necessárias para a construção
das proteínas a partir de ARN. A formação de ARN é necessária, pois o ADN existe nos cromos-
somas no núcleo da célula e as proteínas são formadas nos ribossomas, que se encontram fora do
núcleo, sendo assim necessário um processo para traduzir e transportar a informação contida no
ADN nuclear.
De forma a materializar a tradução de código genético em proteínas na célula, o ADN é trans-
crito para um tipo de ARN chamado ARN mensageiro, o qual por sua vez sai do núcleo e viaja até
aos ribossomas onde é traduzido e usado para sintetizar as proteínas.
O ARN apresenta uma estrutura simples de cadeia única e é constituído pelas bases Adenina
(A), Uracilo (U), Citosina (C) e Guanina (G), como se pode verificar na Figura 2.1. O processo de
transcrição de ADN em ARNm ocorre no núcleo das células, o que resulta num tamanho bastante
inferior das cadeias de ARN em relação às de ADN, já que estas são cadeias maturadas. O processo
6
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
de maturação de ARN é denominado de splicing, que consiste na remoção dos intrões2 e junção
dos exões3, que são a parte do ADN para codificar proteínas. O ARN é a cadeia que é lida nos
ribossomas (cada conjunto de três bases de ARN codifica um aminoácido) para a produção de
proteínas sintetizadas e utilizadas pelo organismo [Sha06].
2.1.3 Sequenciação de ARN
O RNA-Seq, ou sequenciação de ARN pertence às técnicas NGS, Next Generation Sequencing,
e é uma técnica usada para revelar a presença e quantidade de ARN numa determinada amostra
biológica. Esta técnica facilita a capacidade de analisar as mudanças contínuas do conjunto de
todas as moléculas de ARN presentes numa célula ou conjunto de células. Com isto, o RNA-Seq
torna-se relevante para a identificação de fusões de genes, mutações e mudanças na expressão
génica [ZW09].
Antes do RNA-Seq, os estudos de expressão génica eram realizados com microarrays baseados
em hibridação. Devido aos problemas resultantes desta abordagem, como a pobre quantificação e
a necessidade de se saber a sequência a priori, passou-se para os métodos de sequenciação.
Estas técnicas em relação às anteriores, as técnicas de Sanger, conseguem produzir uma maior
quantidade de dados em menos tempo, com menor custo e mais fiabilidade. Com a tecnologia
RNA-Seq pode-se obter segmentos de ARN, denominados short-reads, bastante precisos e exatos,
havendo a possibilidade de obter segmentos bastante raros.
2.1.4 Assemblagem de Segmentos de ARN
Como já foi referido, as técnicas de sequenciação NGS produzem short-reads - pequenos seg-
mentos de ARN. Estes short-reads precisam de ser "assemblados", de forma a gerar um genoma
completo sem interrupções. As duas principais técnicas de assemblagem são o de-novo assem-
bly e o genome reference assembly. A principal diferença entre estes é que o de-novo assembly
não utiliza um genoma de referência, o que resulta num método mais moroso e com maior peso
computacional. Ao não utilizar um genoma de referência, o de-novo assembly constrói a sequên-
cia final, fazendo corresponder o fim de um short-read ao início do próximo, como demonstrado
na Figura 2.2. Em termos de resultado final, o genome reference assembly obtém normalmente
sequências com mais informação disponível.
2.2 Formatos de Dados Biológicos
Os formatos apresentados nesta secção têm em comum o facto de guardarem informação de
sequências genómicas, tanto dados como metadados, em formato de texto. Contudo, estes forma-
tos servem diferentes propósitos.
2segmento do gene sem informação codificante3parte do gene com informação codificante
7
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Figura 2.2: Diferença no método de assemblagem por de-novo assembly (a) e genome referenceassembly (b)
FASTA
O formato FASTA representa sequências nucleotídicas ou peptídicas como texto. Neste for-
mato cada sequência é representada em duas partes diferentes: a primeira começa com o símbolo
’>’ e corresponde à descrição da sequência, contendo o nome ou identificador desta, comentários
e a respetiva base de dados; a segunda corresponde a uma série de carateres que representam ba-
ses nucleotídicas ou peptídicas [eDP 1]. Um exemplo do formato FASTA está representado na
Tabela 2.1. A simplicidade do formato e respetiva codificação permite uma maior facilidade na
manipulação e análise desta por diversas ferramentas.
FASTQ
O formato FASTQ é bastante semelhante ao FASTA, mas contém mais informação disponível.
Para além de conter a sequência biológica contém também os resultados qualitativos correspon-
dentes [PJACpr], sendo que toda a informação é codificada com caracteres ASCII. Por norma as
sequências são representadas por quatro linhas, como é especificado abaixo e na Tabela 2.2.
• Linha 1 - começa com o símbolo ’@’ e é seguido pelo identificador da sequência e opcio-
nalmente uma descrição
• Linha 2 - representa as bases que constituem a sequência
8
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Tabela 2.1: Exemplo do formato FASTA
Descrição >gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]Sequência LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSF
WGATVITNLFSAIPYIGTNLVEWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLGLLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVILGLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGXIENY
• Linha 3 - começa com o símbolo ’+’ e opcionalmente pode ter novamente o identificador
da sequência e respetiva descrição
• Linha 4 - contém a codificação da qualidade dos valores da Linha 2 e deve ter o mesmo
número de caracteres da mesma
BAM/SAM
O formato SAM e BAM (representação binária do SAM) guardam informações sobre o ali-
nhamento ou mapeamento de sequências. Como consequência, um registo SAM precisa de guar-
dar mais informação do que a sequência e respetiva qualidade, precisando guardar informações
relativas a aonde e como uma determinada sequência se mapeia no genoma de referência [HL15].
Ao contrário dos formatos anteriores, este formato baseia-se em linhas de 11 colunas obriga-
tórias e outros elementos adicionais, sendo que cada registo ocupa exatamente uma linha, como
se pode verificar na Listagem 2.1.
1 r001 99 chr1 7 30 17M = 37 39 TTAGATAAAGGATACTG IIIIIIIIIIIIIIIII
2 r002 0 chrX 9 30 3S6M1P1I4M * 0 0 AAAAGATAAGGATA IIIIIIIIII6IBI
NM:i:1
Listagem 2.1: Exemplo de registos no formato SAM
Os dados que se podem obter em cada linha de um ficheiro SAM/BAM são os seguintes4:
• Query Name - read em análise no alinhamento
• Flag - Flag com informação para o parsing do alinhamento
• Reference Name -genoma de referência usado para o alinhamento
• Position - posição do primeiro par de bases do alinhamento
4a explicação detalhada de cada um dos campos pode ser encontrada no manual Sequence Alignment/Map FormatSpecification em https://samtools.github.io/hts-specs/SAMv1.pdf
9
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Tabela 2.2: Exemplo do formato FASTQ
Elemento ExemploIdentificação e descrição @SEQ_IDSequência GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAA
TCCATTTGTTCAACTCACAGTTTLinha separadora +Qualidade de cada par de base !”*((((***+))%%%++)(%%%%).1***-+*”))**55CCF»»»C
CCCCCC65
• Mapping Quality - qualidade do alinhamento
• CIGAR - tipo de operação realizada
• Next Reference Name - nome do próximo segmento alinhado
• Next Reference Position - posição do próximo segmento alinhado
• Template Length - tamanho do segmento alinhado
• Segment Sequence - pares de base da sequência alinhada
• Quality - ASCII representativo da qualidade na escala de Phred5
Para além de registar sequências, os ficheiros SAM também têm um cabeçalho no início do
ficheiro, linhas iniciadas com ’@’, que contém informação sobre a referência usada para o mapea-
mento e a ferramenta usada para a criação do respetivo ficheiro. Esta informação aparece antes das
sequências. Este formato consegue assim transmitir a mesma informação que o formato FASTQ,
mais a informação de mapeamento.
O formato SAM quase nunca é usado para armazenamento, em vez disso os ficheiros são
guardados no formato BAM, que é uma representação binária compacta do formato SAM. Este
formato guarda a mesma informação, só que de forma mais eficiente, para além de poder ser usado
em conjunto com um índice de procura permitindo a rápida pesquisa de registos individuais dentro
do ficheiro. Os ficheiros BAM também conseguem ser mais compactados do que ficheiros FASTA
ou FASTQ comprimidos.
2.3 Software de Análise de Dados Genómicos
Atualmente, existe uma enorme quantidade de ferramentas para análise e tratamento de sequên-
cias de ARN. Nesta secção são enumeradas e descritas algumas destas que consideramos mais
relevantes.
5https://genome.sph.umich.edu/wiki/Phred_scale
10
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Figura 2.3: Estrutura de funcionamento da pipeline iRAP
2.3.1 Sequenciação de ARN
iRAP
O iRAP6 é um pipeline computacional flexível entre vários existentes, desenvolvido por Nuno
Fonseca7. Esta pipeline para RNA-Seq integra várias ferramentas para filtrar e mapear reads, quan-
tificando expressões e testando para expressões diferenciais, como demonstrado na Figura 2.3.
2.3.2 Mapeamento e Alinhamento
Bowtie
O Bowtie8 é uma ferramenta ultra-rápida de alinhamento de short-reads com um genoma de
referência desenvolvida pela Johns Hopkins University. É bastante eficaz quando utilizada em ali-
nhamentos de genomas com grandes quantidades de dados e, ao usar o algoritmo Burrows-Wheeler
transform obtém uma baixa taxa de utilização de memória. Este algoritmo usa transformações de
strings para as comprimir, facilitando assim a sua pesquisa [BL09].
O módulo mais comum do Bowtie é o bowtie aligner que recebe um índice e um conjunto de
reads para gerar uma lista de alinhamentos. Um dos pontos fortes desta ferramenta é a grande
variedade de argumentos que podem ser usados para personalizar o comando e consequentemente
o resultado obtido.
Na Listagem 2.2 podemos ver dois comandos: o primeiro indexa as reads e gera dois ficheiros,
um com as sequências mapeadas, outro com as sequências não mapeadas; enquanto que o segundo
comando cria um ficheiro SAM com toda a informação sobre do mapeamento.
1 bowtie2 -x <index> -U <reads> --un unmapped.fq --al mapped.fq
2 bowtie2 -x <index> -U <reads> -S hits.sam
Listagem 2.2: Exemplo dos comandos bowtie para alinhamento e mapeamento de ficheiros
6https://github.com/nunofonseca/irap7www.dcc.fc.up.pt/ nf/resources.html8http://bowtie-bio.sourceforge.net/
11
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Para além de alinhar sequências biológicas, o Bowtie possui também um módulo de indexação
de ficheiros. Este módulo, bowtie-build indexer recebe um ficheiro de input do formato FASTA
e gera um ficheiro índice. Os ficheiros índice servem tanto para referência para alinhamentos de
elevado peso computacional como para a pesquisa rápida de reads em qualquer parte do ficheiro
original.
Na Listagem 2.3 encontramos o comando para criar um índice. Para tal, é necessário que o
ficheiro de input esteja no formato FASTA, e resulta na criação de seis ficheiros BT2 (formato dos
ficheiros índice) que servem como um único índice.
1 bowtie2-build <input_fasta_file> <index_name>
Listagem 2.3: Exemplo do comando bowtie para criar um índice
BLAST
O BLAST9, Basic Local Alignment Search Tool, é um algoritmo que permite a identificação
de regiões de semelhança entre sequências biológicas primárias tais como aminoácidos, proteínas
ou nucleotídeos, calculando estatísticas de significância dos alinhamentos.
O BLAST utiliza um método heurístico, tal como o FASTA, mas consegue ser mais rápido
e igualmente sensível na deteção de similaridades. Recorre à consulta de bibliotecas ou base de
dados para comparar sequências identificando as que estão acima de um determinado grau de se-
melhança, o que pode não resultar numa solução ótima ao contrário de algoritmos de programação
dinâmica.
O algoritmo FASTA encontra curtos padrões comuns em sequências e tenta consultar a base
de dados para os associar a um alinhamento. O BLAST é semelhante ao FASTA, mas torna-se
mais rápido pois procura apenas os padrões mais raros e mais significativos nas sequências de
aminoácidos, nucleotídeos e proteínas.
Este algoritmo tornou-se muito popular devido à sua disponibilidade na Internet através do
Centro Nacional de Informações sobre Biotecnologia (NCBI) entre outros locais, tendo evoluído
bastante para fornecer aos biólogos moleculares um conjunto de ferramentas de pesquisa podero-
sas que estão disponíveis de forma gratuita [Mou07].
TopHat
O TopHat10 é outra ferramenta proveniente da Johns Hopkins University, bastante similar ao
Bowtie mas diferencia-se especialmente por ter bastante sucesso na identificação de splice11 [CT09]
em cadeias de ARN na análise dos resultados de mapeamento de sequências. Esta ferramenta de
9https://blast.ncbi.nlm.nih.gov/Blast.cgi10https://ccb.jhu.edu/software/tophat/11processo que remove os intrões e junta os exões depois da transcrição do ARN
12
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
alinhamento de short-reads é bastante configurável e é normalmente usada em conjunto com o
Bowtie pois são complementares.
Cufflinks
O Cufflinks12 é uma ferramenta que monta transcrições, estima a sua abundância e testa ex-
pressões e regulações diferenciais em amostras de RNA-seq. Tendo como input sequências alinha-
das, o Cufflinks monta os alinhamentos num conjunto parcimonioso de transcrições, estimando a
abundância relativa destas baseado na quantidade de reads que as suportam, tendo em conta os
preconceitos nos protocolos de preparação da biblioteca.
STAR
Muitos dos alinhadores de RNA-seq previamente descritos foram desenvolvidos como exten-
sões de mapeadores de short-reads contíguas (ADN) que são usados para alinhar short-reads a
uma base de dados de junções de splice ou alinhar porções de reads divididas de forma contígua
a um genoma de referência ou uma combinação destas. Em contraste com essas abordagens, o
STAR13 foi projetado para alinhar as sequências não contíguas diretamente ao genoma de referên-
cia. O algoritmo STAR consiste em duas etapas principais: etapa de pesquisa de seeds e etapa de
agrupamento/costura/pontuação.
Na primeira etapa é feita uma pesquisa sequencial de um Prefixo Máximo Mapeável (MMP),
isto é, dada uma read ’L’ com uma determinada localização ’m’ e um genoma de referência ’G’, o
’MMP (L,m,G)’ é definido como a maior subsequência de ’(Lm,Lm+1,..., Lm+MML-1)’ que cor-
responde exatamente a uma ou mais substrings de ’G’, em que ’MML’ é o Comprimento Máximo
Mapeável, como é visível na Figura 2.4.
Na segunda etapa são construídos alinhamentos de toda a sequência lida, unindo todas as se-
eds que foram alinhadas ao genoma na primeira fase. Primeiramente as seeds são agrupadas pela
proximidade de um conjunto selecionado de seeds, após o qual todas as seeds que foram mapeadas
dentro da zona genómica das selecionadas são costuradas juntas, assumindo um modelo de trans-
crição linear local. Por fim, é atribuída uma pontuação a partir de um esquema de alinhamento
local com pontuações definidas pelo utilizador para correspondências, desemparelhamentos, inser-
ções, exclusões e lacunas de junções de splice, permitindo uma avaliação quantitativa da qualidade
e classificação do alinhamento [AD13].
SortMeRNA
O SortMeRNA14 é uma ferramenta de alinhamento de sequências para filtragem, mapeamento e
12http://cole-trapnell-lab.github.io/cufflinks/13https://github.com/alexdobin/STAR14http://bioinfo.lifl.fr/RNA/sortmerna/
13
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Figura 2.4: Representação esquemática da pesquisa do Prefixo Máximo Mapeável no algoritmoSTAR para detetar (a) junções de splice,(b) incompatibilidades e (c) caudas [AD13]
armazenamento em cluster. Tal como o STAR o algoritmo principal é baseado na aproximação de
seeds permitindo a análise detalhada de reads NGS.
A principal aplicação do SortMeRNA é a filtragem de ARN ribossômico a partir de dados
metatranscriptómicos. Para tal a ferramenta recebe como input sequências no formato FASTA ou
FASTQ e um ou vários ficheiros de dados de ARN ribossómico, classificando as reads alinhadas
e rejeitadas em dois ficheiros diferentes.
2.3.3 Controlo de Qualidade
FastQC
Como as ferramentas de sequenciação e mapeamento podem gerar dezenas de milhões de
sequências numa única análise, torna-se necessário antes de analisar as sequências existir alguma
espécie de controlo de qualidade para garantir que os dados brutos estão na melhor condição e
que não há problemas com estes que possam adulterar ou influenciar os resultados e respetivas
conclusões.
É neste âmbito que a ferramenta FastQC15, desenvolvida pela Babraham Bioinformatics visa
identificar problemas e erros gerados pelo "sequenciador"no material da biblioteca inicial, como
se pode ver na Figura 2.5. Sendo uma ferramenta de uso fácil e simplificado, as suas principais
funções são:
• Importação de dados nos diferentes formatos BAM, SAM e FASTQ
• Fornecer uma visão geral com informação das áreas em que pode haver problemas
• Tabelas e gráficos resumidos para a avaliação de dados
15https://www.bioinformatics.babraham.ac.uk/projects/fastqc/
14
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Figura 2.5: Exemplo de um relatório da ferramenta FastQC
• Exportação de resultados para ficheiros baseados em HTML
• Permitir a geração automática de relatórios em modo offline
2.3.4 Análise Taxonómica
MEGAN
Por vezes, um elemento patogénico sofre pequenas mutações. Estas mutações nos pares de
bases de uma sequência de ARN são detetados pelos programas de alinhamento e mapeamento,
que os classificam como diferentes agentes patogénicos. Não obstante, estas sequências, apesar de
diferentes, continuam a representar a mesma espécie, só que de diferentes estirpes. A ferramenta
MEGAN16 ajuda na procura, classificação e agrupamento correto destes elementos como sendo o
mesmo elemento patogénico [eSM11].
2.3.5 Conversão e Visualização de Ficheiros
SAMtools
A ferramenta SAMtools permite a conversão entre ficheiros BAM e SAM , manusear e inde-
xar sequências guardadas em ficheiros com este formato, ordenamento, fusão de ficheiros e a
visualização textual de ficheiros de alinhamento e mapeamento.
16https://ab.inf.uni-tuebingen.de/software/megan6
15
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
2.4 Tecnologias
Este projeto necessita de várias tecnologias para o front-end, back-end e armazenamento da
informação.
Hoje em dia existe uma vasta gama de tecnologias disponíveis para todas as etapas anterior-
mente referidas, sendo que a escolha deve sempre recair nas que mais se adequam ao projeto.
Segue-se uma explicação sucinta sobre as tecnologias utilizadas no desenvolvimento deste
projeto.
JavaScript
O JavaScript17 é uma linguagem de programação de alto nível que foi originalmente imple-
mentada para a execução de scripts por parte dos web browsers [MISc].
Juntamente com o HTML e CSS, o JavaScript é uma das três principais tecnologias da World
Wide Web, pois permite páginas web interativas, algo indispensável em muitas ocasiões.
Python
A linguagem Python é amplamente utilizada para programação em geral, principalmente para
glue de software. As principais razões da escolha desta linguagem são a boa legibilidade do
código, simplicidade da sintaxe envolvida, boa gestão de memória, e uma linguagem orientada
a objetos, possuindo uma vasta coleção de bibliotecas, nomeadamente na área de Bioinformica
[MISf].
AngularJS e NodeJS
AngularJS é uma framework em JavaScript de código aberto, mantida pela Google, que ajuda
na execução de single-page applications [MISa].
NodeJS é um interpretador de código JavaScript que funciona do lado do servidor. O objetivo
desta ferramenta é ajudar na criação de aplicações com grande escalabilidade, como é o caso de um
servidor web, com a possibilidade de manipular milhares de conexões simultaneamente [MISd].
AngularJS e NodeJS estão bastantes vezes ligados um ao outro no desenvolvimento de aplica-
ções Web.
Docker
O Docker18 é um programa que fornece uma camada adicional de abstração e automação nas
17https://www.javascript.com/18https://www.docker.com/
16
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
virtualizações ao nível do sistema operativo, ou seja containerization, permitindo ao kernel a exis-
tência de várias instâncias isoladas no espaço do utilizador. Estas instâncias, denominadas contai-
ners, são como computadores do ponto de vista dos programas que os correm. Os programas que
correm dentro de um container só têm acesso aos conteúdos da instância e aos dispositivos a ela
associados.
Este programa foi feito maioritariamente para Linux devido a características intrínsecas do
kernel, como cgroups, namespaces, union-capable file system como o OverlayFS entre outros,
para permitir que containers independentes corram numa única instância de Linux [Mer14].
O principal objetivo dos containers passa por criar uma certa independência, que consiste na
habilidade de executar diversos processos e aplicações em separado de forma a maximizar o uso
da infraestrutura.
O Docker fornece um modelo de implantação baseado em imagens, facilitando a partilha de
informações, serviços e dependências em vários ambientes. Este programa também automatiza a
implantação da aplicação (ou de conjuntos de processos que constituem uma aplicação) dentro do
ambiente da instância. Algumas das vantagens dos containers Docker são:
• Modularidade - tal como numa arquitetura orientada a serviços, o Docker permite a partilha
de processos entre várias aplicações.
• Camadas - cada arquivo de imagem Docker é composta por várias camadas, e sempre que
existe alguma alteração numa imagem é criada uma nova camada. Isto permite que estas
camadas sejam reutilizadas para a construção de novos containers e otimiza o processo de
criação, tornando-o mais eficiente, rápido e ocupando menos espaço.
• Reversão - como todas as imagens possuem camadas, torna-se mais fácil reverter alterações
quando necessário para versões anteriores. Isto permite ajudar a manter boas práticas de
integração e implementação.
• Implementação rápida - ao se criar, adicionar ou mover um container não é necessária a
inicialização de um sistema operativo, o que resulta numa redução significativa do tempo
de implementação. Também é mais fácil a criação e destruição de dados criados pelos
containers [MISj].
Em suma, o Docker é uma tecnologia que valoriza a eficiência através da sua abordagem
controlável, granular e baseada em micro-serviços.
Em conjunto com o Docker existe também um repositório online, o DockerHub19 que permite
o push e pull de imagens facilitando a transmissão e partilha destas.
Django
19https://hub.docker.com/
17
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
Figura 2.6: Interação entre o utilizador e os componentes do MVC
O Django é uma framework de código aberto de programação de alto nível desenvolvida em
e para Python para o desenvolvimento de aplicações Web.
Esta framework usa o princípio Don’t Repeat Yourself (DRY), pois promove a capacidade de
reutilização de código para um desenvolvimento mais rápido. Também utiliza o padrão Model-
View-Controller (MVC), que se baseia na ideia de que a estrutura de uma aplicação deve ser
modular. Este padrão de arquitetura é apresentado na Figura 2.6 e baseia-se em três componentes:
Model, View e Controller [Dea95].
• Model - é o componente central do padrão, exprimindo o comportamento da aplicação em
termos do domínio do problema. Também é responsável por gerir os dados desta.
• View - pode ser qualquer representação da interface ou saída de informação como um grá-
fico ou diagrama. Interage com o Model para ser atualizada.
• Controller - aceita o input e converte e direciona essa informação para o Model ou View.
BootStrap
O BootStrap é uma framework Web de front-end de código aberto usado para facilitar a cri-
ação de websites e aplicações Web.
Funciona à base de HTML e modelos de design baseados em CSS para navegação e compo-
nentes da interface, possuindo também extensões JavaScript opcionais.
Hoje em dia é a framework de desenvolvimento de front-end mais utilizada a nível mundial
para aplicações Web [MISb].
SQLite
SQLite é uma biblioteca de uso simples desenvolvida em C que implementa uma base de dados
relacional SQL. Foi escolhida esta tecnologia para base de dados ao invés de outras mias popula-
res como MongoDB e MySQL, devido ao facto de a plataforma que se pretende criar conter vários
tipos de informações, baixo tráfego e permitir o upload e download de ficheiros [MISi].
18
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
2.5 Sumário do Capítulo
Neste capítulo foi feita a contextualização da dissertação envolvendo os conhecimentos ne-
cessários para o seu desenvolvimento. Os conceitos biológicos, nomeadamente a genómica e a
proteómica, são essenciais para a compreensão do trabalho que se apresenta, e quando aliados à
informática as possibilidades são imensas.
Posteriormente existe a análise das ferramentas e técnicas relacionadas com a Bioinformática,
e dos tipos de ficheiros que se utilizaram.
Por fim são referidas as tecnologias utilizadas para o desenvolvimento deste projeto.
19
Conceitos Básicos de Biologia Molecular e Tecnologias Usadas
20
Capítulo 3
Implementação
Neste capítulo é descrita a implementação da solução, uma plataforma Web e respetivo servi-
dor, que visa facilitar o trabalho dos especialistas na área da investigação da influência de vírus e
bactérias na origem de cancros.
3.1 Problema
Nos últimos anos tem existido um grande avanço na área da medicina no que diz respeito
ao tratamento, cura e prevenção de doenças. Não obstante, o cancro continua a ser uma doença
complicada pois, como os números sugerem (14 milhões de novos casos de cancro e mais de 8
milhões de mortes em 2012), os tratamentos em fases avançadas da doença costumam ser pouco
ou nada ineficazes, fazendo com que o prognóstico seja essencial.
É neste âmbito que entra a Bioinformática e a Engenharia Informática para processar e in-
terpretar dados biológicos, possibilitando a análise de grandes volumes de dados biológicos e a
extração de informação relevante e estatisticamente significativa.
No âmbito da Bioinformática foram desenvolvidas várias ferramentas para a análise, alinha-
mento e mapeamento de genomas. No entanto estas ferramentas são bastante complexas e especí-
ficas quanto às suas funções e têm um elevado custo computacional e temporal.
Com esta grande variedade e especificidade de ferramentas torna-se necessário para investiga-
dores e biólogos moleculares terem algum conhecimento de informática para as utilizarem, visto
que a maioria destas funcionam através da linha de comando.
Tal como existe variedade nas ferramentas, também existe variedade no tipo de ficheiros usa-
dos, sendo necessário recorrer com frequência a conversões de ficheiros para utilizar determinadas
ferramentas.
No final é necessária a análise dos ficheiros finais gerados pelas ferramentas. Normalmente
estes ficheiros são bastantes complexos e de difícil compreensão sendo necessário recorrer a pro-
gramas de visualização de sequências e alinhamento genómico para a compreensão dos resultados.
21
Implementação
3.2 Solução Proposta
De forma a facilitar o trabalho dos especialistas para analisar sequências genómicas foi desen-
volvida uma plataforma Web denominada genomeFactory para o uso de recursos computacionais
distribuídos.
A utilização desta plataforma é user-friendly, e tem como objetivo permitir ao utilizador criar
projetos, fazer upload e download de ficheiros relativos a genomas e sequências, utilizar remota-
mente as várias ferramentas de análise disponíveis e visualizar os dados analisados e resultados
obtidos graficamente.
Toda a informação é guardada localmente (ficheiros) e numa base de dados que armazena as
informações necessárias para o funcionamento da plataforma. Esta base de dados guarda os geno-
mas de referência, lista atualizada de patogénicos conhecidos, amostras submetidas, ferramentas
utilizadas, dados de execução gerados e respetivos resultados, entre outros.
A máquina de processamento da plataforma contém os docker containers com as ferramentas
necessárias. Estas ferramentas possibilitam a conversão de ficheiros para diferentes formatos,
analisar amostras de sequências ARN e indexar ficheiros e sequências. O servidor gere as trocas
de ficheiros entre o serviço Web e a plataforma online, e vice-versa.
O principal objetivo do uso das ferramentas é isolar elementos bacterianos e virais das amos-
tras, retirando primeiramente as sequências humanas representativas. Isto é possível a partir do
mapeamento e alinhamento da amostra contra o genoma de referência humano usando ferramentas
como o Bowtie como se pode ver na Figura 3.1. Não obstante também é permitido usar índices
que não sejam os já existentes (humano, bacteriano e viral), dando a possibilidade de criar índices
de genomas e mapear a partir destes.
3.2.1 Arquitetura
A solução proposta é constituída por um conjunto de máquinas distintas como se pode verificar
na Figura 3.2. Uma máquina aloja a plataforma Web e base de dados e uma segunda contém as
instâncias docker e o servidor FTP, de modo a dividir tarefas e evitar problemas de excesso de
memória em utilização. A segunda máquina necessita de ser computacionalmente poderosa pois, é
nesta que se executam as ferramentas biológicas que requerem bastante memória para executarem
algoritmos de mapeamento e alinhamento e carregarem índices de genomas. Na Figura 3.3 está
representado o diagrama de sequência de mensagens entre o investigador, servidor e máquina de
sequenciação.
Plataforma Web
A plataforma Web é a interface do utilizador para interagir com a aplicação e usar as ferra-
mentas de análise genómica e foi desenvolvida usando a framework Django que utiliza maiorita-
riamente Python, que é uma linguagem de scripting [Dow09]. Para a interface foram usadas duas
frameworks, o Bootstrap e o Highcharts e o plugin tab-collapse para o Bootstrap.
22
Implementação
Figura 3.1: Diagrama representativo do mapeamento de uma amostra usando Bowtie
O Bootstrap, Figura 3.4, utiliza HTML, CSS e Javascript e é usado tanto para o aspeto gráfico
como para componentes como formulários, botões, tabelas e listagens. A grande vantagem desta
framework é a simplicidade gráfica e estrutural que permite a personalização das páginas.
O Highcharts, Figura A.11, permite a criação de gráficos de análise de dados. Feito em Ja-
vascript, esta framework é suportada em vários Web Browsers e plataformas móveis existentes, e
permite usar várias estruturas de dados nos gráficos, tanto estáticos como dinâmicos.
O tab-collapse é um plugin que permite a criação de separadores dentro de uma página web,
permitindo assim que mais informação esteja disponível sem ocupar tanto espaço na janela, como
é visível na Figura 3.6.
Servidor
No servidor é corrido um servidor simples de Python com recurso à biblioteca pyftpdlib1 que
1https://github.com/giampaolo/pyftpdlib
23
Implementação
Figura 3.2: Diagrama da arquitetura da plataforma
Figura 3.3: Diagrama de sequência das mensagens entre o investigador, servidor e máquina desequenciação
permite a criação de um servidor FTP leve, rápido e escalável. Na Listagem 3.1 apresenta-se o
código do servidor.
1 authorizer = DummyAuthorizer()
2 authorizer.add_user("admin", "admin", "/data1/nelson/data", perm="elradfmw")
3 authorizer.add_anonymous("/data1/nelson/data", perm="elradfmw")
24
Implementação
Figura 3.4: Exemplo da interface com a framework Bootstrap
Figura 3.5: Exemplo de um gráfico usando a framework Highcharts
4 handler = FTPHandler
5 handler.authorizer = authorizer
6 server = FTPServer(("192.168.147.128", 9000), handler)
7 server.serve_forever()
Listagem 3.1: Código do servidor
25
Implementação
Figura 3.6: Exemplo do uso de separadores com o plugin tab-collapse
Esta biblioteca permite definir um diretório para funcionar como Home do servidor. Existem
dois utilizadores definidos, o admin e o anonymous, ou seja o administrador e utilizador anónimo,
sendo este último os utilizadores da plataforma. Também é definido o endereço de IP e a respetiva
porta.
De forma a enviar os ficheiros para o servidor FTP, são apresentadas na Listagem 3.2 três
funções essenciais para o sucesso do upload de um ficheiro para a plataforma.
1 def handle_uploaded_file(file_, file_name, project, part):
2 print("Start uploading " + file_name + " to input files")
3 file_path = ’genesTool/files/’ + project + ’/’ + part + ’/input/’ + file_name
4 with open(file_path, ’wb+’) as destination:
5 for chunk in file_.chunks():
6 destination.write(chunk)
7 uploadFile(project, file_path, part, file_name)
8
9 def establishConnection():
10 ftp = FTP(’’)
11 ftp.connect(’192.168.147.128’,9000)
12 ftp.login()
13 ftp.cwd(’projects’)
14 ftp.retrlines(’LIST’)
15 return ftp
16
17 def uploadFile(project, path, part, name):
18 ftp = establishConnection()
19 file_name = project + "/" + part + "/input/" + name
26
Implementação
20 ftp.storbinary(’STOR ’+file_name, open(path, ’rb’))
21 ftp.quit()
Listagem 3.2: Funções de upload de ficheiros para o servidor
A primeira função handle_uploaded_file serve para guardar o ficheiro localmente, a segunda
função establishConnection estabelece a ligação com o servidor anteriormente definido, e a última
função uploadFile envia o comando de STOR para guardar o ficheiro na máquina remota.
Genomas de Referência
Os genomas de referência usados para este trabalho foram obtidos no repositório FTP do Na-
tional Center for Biotechnology Information2 (NCBI), mais concretamente do GenBank que é
uma das base de dados de todas as sequências genéticas publicamente disponíveis. Na Figura 3.7
podemos ver os diretórios existentes no dito repositório (as sequências humanas estão dentro de
vertebrate_mammalian e, Homo_sapiens).
De forma a gerar índices de genoma foi necessário fazer o download de sequências para a
criação de um ficheiro FASTA que possa ser indexado. Para tal recorreu-se a um script de bash
(ver Listagem 3.3.
1 #!/bin/bash
2 wget ftp://ftp.ncbi.nlm.nih.gov/genomes/genbank/bacteria/assembly_summary.txt
3 awk -F ’\t’ ’{if($12=="Complete Genome") print $20}’ assembly_summary.txt >
assembly_summary_complete_genomes.txt
4 mkdir GbBac
5 for next in $(cat assembly_summary_complete_genomes.txt); do wget -P GbBac "$next"
/*genomic.fna.gz; done
6 gunzip GbBac/*.gz
7 cat GbBac/*.fna > all_complete_Gb_bac.fasta
Listagem 3.3: Bash script para fazer o download de sequências bacterianas e gerar o
correspondente ficheiro FASTA
É feito um wget do ficheiro assembly_summary.txt que contém o nome de todos os ficheiros
existentes e as características correspondentes. Com o comando awk é verificada a 12a coluna de
todas as linhas do ficheiro e, se esta linha tiver a string Complete Genome é feita a cópia da 20a
coluna (endereço do ficheiro correspondente) para um novo ficheiro.
Para cada linha do novo ficheiro é feito o download da sequência correspondente a partir dos
comandos cat e wget. Como os ficheiros vêm comprimidos é necessário a sua descompressão,
sendo usado o comando gunzip. Por último é usado o comando cat para criar um ficheiro final que
contenha todas as informações das sequências adquiridas.
2https://www.ncbi.nlm.nih.gov/
27
Implementação
Figura 3.7: Repositório FTP do GenBank
Envio de Comandos
De forma a enviar os comandos a serem executados na máquina remota de processamento foi
necessário utilizar a biblioteca Pexpect3, mais especificamente o módulo pxssh. A biblioteca Pex-
pect faz do Python uma ferramenta com a possibilidade de controlar outras aplicações, permitindo
a criação e controlo de aplicações filho, respondendo aos padrões esperados de output, e o módulo
pxssh permite o uso de SSH4(Secure SHell).
O SSH é um protocolo de rede criptográfico para a operação de serviços de rede de forma
segura, como por exemplo o login remoto a sistemas de computadores. Este protocolo fornece um
canal seguro sobre uma rede na arquitetura cliente-servidor, conectando um cliente a um servidor
[MISg].
A função responsável pelo envio de comandos para o servidor pode ser vista na Listagem 3.4.
1 def sendCommand(commandList):
2 var = pxssh.pxssh(timeout=None)
3 if not var.login(server, user, password):
4 print("SSH session failed on login.")
5 print(str(var))
6 else:
7 print("SSH session login successful")
8 for x in commandList:
9 var.sendline(x)
10 var.prompt()
11 print(var.before)
12 var.logout()
13 return;
3https://pexpect.readthedocs.io/en/stable/4https://www.ssh.com/
28
Implementação
Listagem 3.4: Função de envio de comandos para o magalhaes01
A função recebe como argumento uma lista de comandos (strings), define o timeout como
sendo nulo, faz a conexão ao servidor com as variáveis server, user e password, estas com a
declaração omitida por razões de privacidade, e caso tenha tido sucesso na conexão ao servidor
envia os comandos um a um, fazendo um print do resultado na linha de comandos.
Docker
Nesta mesma máquina encontram-se as instâncias Docker criadas com base no BioContainers5,
que é uma estrutura de código aberto que fornece ambientes executáveis para a área de Bioinfor-
mática, permitindo que o software seja instalado e executado num ambiente isolado e controlado.
Como exemplo temos a Listagem 3.5 que mostra parte do ficheiro dockerfile de instalação da
ferramenta Bowtie.
1 ENV ZIP=bowtie2-2.2.9-linux-x86_64.zip
2 ENV URL=https://github.com/BenLangmead/bowtie2/releases/download/v2.2.9/
3 ENV FOLDER=bowtie2-2.2.9
4 ENV DST=/home/biodocker/bin
5 RUN wget $URL/$ZIP -O $DST/$ZIP && \
6 unzip $DST/$ZIP -d $DST && \
7 rm $DST/$ZIP && \
8 mv $DST/$FOLDER/* $DST && \
9 rmdir $DST/$FOLDER
10 WORKDIR /data
11 CMD ["bowtie2"]
Listagem 3.5: Conteúdo do dockerfile para a ferramenta Bowtie
As variáveis de ambiente, ENV, servem para definir os nomes usados, neste caso o nome do
ficheiro comprimido, endereço de url, nome da pasta do Bowtie e a pasta final, neste caso dentro
do /home/<user>/bin.
O comando RUN serve para correr comandos, neste caso para a instalação do Bowtie é feito a
transferência do ficheiro usando wget que pode ser dividido em duas partes: a primeira com o url e
o nome do ficheiro comprimido para transferência; a segunda com a pasta de destino e nome outra
vez para o output, isto graças ao parâmetro -O. Depois o ficheiro é descomprimido, procedendo-se
a deslocação dos ficheiros resultantes, e elimina-se a pasta que agora está vazia.
Por fim, é definido o diretório de trabalho, o /data que será aonde todos os ficheiros serão
"trabalhados"com o comando WORKDIR. É também definido com a variável CMD o comando
padrão, neste caso bowtie2, que é útil quando se executa o container.
5http://biocontainers.pro/
29
Implementação
Depois de já se ter uma imagem, para a utilizar é necessário utilizar um comando válido e
específico para aquilo que se quer realizar. Na Listagem 3.6 um exemplo de um comando para
mapear um ficheiro de exemplo com o genoma humano utilizando o Bowtie:
1 $ docker run -v <path>:/data/ <dockerImage> <command> <options> <files>
2 $ docker run -v /home/nelson/Documents/test:/data/ ei11051/bowtie bowtie2 -x human
-U example.fq -S /data/output/result.sam
Listagem 3.6: Exemplo de um comando para correr uma instância docker
O comando run corre a imagem, o comando -v serve para definir um diretório de ficheiros
partilhados, quer para o input e output, denominado data por simplicidade. De seguida segue-se
o nome da imagem ei11051/bowtie, seguido pelo comando bowtie2 com os argumentos -x para o
nome do índice a usar, -U para ficheiros no formato FASTQ a comparar com o índice e, -S para o
resultado, guardado num ficheiro SAM.
Docker Hub
O Docker Hub é um serviço de cloud, categoria ampla que abrange serviços contínuos de
recursos baseados na Internet, que funciona como um repositório de imagens docker. Este ser-
viço permite a criação, armazenamento e teste entre outros, de instâncias fornecendo um recurso
centralizado para a gestão, distribuição e alteração das mesmas [MISe].
Este serviço permite a ligação ao GitHub6 que é um serviço que gere o controlo de versão de
código de projetos. Tendo em conta que as imagens Docker são geradas a partir de um dockerfile, é
bastante comum ver os dois serviços a funcionar em uníssono para o armazenamento das imagens
(Docker Hub) e respetivo controlo de versão (GitHub), facilitando as tarefas de manutenção.
Na Figura 3.8 podemos ver um exemplo de imagens do utilizador ei11051 dentro do Docker
Hub. Para além destas existem também imagens para BLAST, STAR, Picard, MEGAN, SortMeRNA
e Cufflinks, tudo ferramentas para análise de dados biológicos como referido previamente no Ca-
pítulo 2. Não obstante o facto de nem todas estas ferramentas terem sido usadas no projeto final,
as imagens estão disponíveis para qualquer pessoa, a partir de um comando, como se pode ver na
Listagem 3.7.
1 $ docker pull <user>/<image>
2 $ docker pull ei11051/bowtie
Listagem 3.7: Comando para fazer o download de uma instância docker
Tratamento de Dados
6https://github.com/
30
Implementação
Figura 3.8: Exemplo de um repositório no Docker Hub do utilizador ei11051 com as imagensBowtie, SAMtools, TopHat e base
Após as sequências biológicas terem sido mapeadas com os genomas de referência, existe a
necessidade de comparar os resultados deste mapeamento com dados biológicos previamente ana-
lisados. Para este fim foram usadas estas duas bibliotecas externas desenvolvidas em Python:
• BioPython7 - contém classes e métodos representativos de sequências biológicas, permite
o alinhamento de sequências e estruturas de proteínas, contém parsers para vários tipos de
ficheiros biológicos, e possibilita o acesso a repositórios online como o NCBI.
• PySam8 - usada para leitura, manipulação e escrita de datasets genómicos permitindo o uso
de comandos da ferramenta SAMtools.
Estas bibliotecas tornam-se úteis para a análise de ficheiros SAM/BAM, permitindo o seu
parsing. Na Listagem 3.8 é mostrado o que se faz com estes ficheiros.
1 #...
2 bamfile = pysam.AlignmentFile(file_path, "rb")
3 iter = bamfile.fetch(until_eof=True)
4 #...
5 maps_list = []
6 bac_ref = Reference.objects.filter(specie="Bacteria")
7 vir_ref = Reference.objects.filter(specie="Virus")
8 all_genes = GeneSeq.objects.filter(Q(reference=bac_ref) | Q(reference=vir_ref))
9 txt_path = ’genesTool/requests/’ + project + ’/’ + file_name + "_reads.txt"
10 reads_file = open(txt_path, "a")
11 #...
12 for x in iter:
13 maps_list.append(str(x.reference_name))
14 if int(x.reference_end) > 0:
7https://biopython.org/8http://pysam.readthedocs.io/en/latest/api.html
31
Implementação
15 read_length = int(x.reference_end) - int(x.reference_start)
16 start_char = str(x.reference_start)
17 genInfo= x.reference_name.split("|")
18 genID = genInfo[1]
19 last_char = int(start_char)+read_length-1
20 reads_file.write(genID+"-"+str(read_length)+"-"+str(start_char)+"-"+str(
last_char)+"\n")
21 number_reads = number_reads + 1
22 #...
Listagem 3.8: Código de criação de um ficheiro de texto para análise a partir de um ficheiro SAM
Começa-se por indicar o ficheiro, neste caso um ficheiro BAM ("rb" para BAM, apenas "r"
para SAM), e a pedir a sua leitura com a função fetch até ao fim do ficheiro. De seguida vai-se
buscar à base de dados os genomas bacterianos e virais disponíveis e cria-se um ficheiro de texto
para guardar os resultados. Os resultados são guardados num ficheiro de texto porque como podem
ser milhares de reads, convém não sobrecarregar a base de dados.
O ciclo for funciona em torno de cada read dentro do ficheiro BAM. Para cada instância é
adicionado o nome à lista de mapeamentos, calculado o tamanho, obtém-se o caráter inicial e final
e o identificador do gene, guardando-se esta informação toda no ficheiro de texto com o comando
write.
Posteriormente as informações são enviadas para a interface Web com recurso a JSON, que é
um formato de ficheiros open-standard que usa texto legível para transmitir objetos que consistem
em pares de atributo/valor e arrays, sendo usado maioritariamente para a comunicação assíncrona
entre o navegador Web e o servidor.
Base de Dados
A base de dados é uma parte vital de qualquer projeto hoje em dia, pois existe sempre a ne-
cessidade de armazenar informação de forma estruturada e sistemática quer para pesquisa como
para possíveis alterações.
A tecnologia escolhida para a base de dados foi o SQLite pois é relativamente simples de
aprender, lightweight e open-source. Outro aspeto importante para a escolha desta tecnologia foi
o facto de interagir com a framework Django sem a necessidade de bibliotecas extras.
Na Figura 3.9 está representado o diagrama UML do modelo de classes e relações entre os
diferentes modelos de classes e relações entre estas usadas no desenvolvimento da base de dados
da solução.
Em seguida apresenta-se um breve descrição e explicação das tabelas criadas:
• User - guarda o primeiro e último nome, o email e password, que são necessários para
o login, a data de registo, que é gerado automaticamente, e a lista de projetos em que o
utilizador está envolvido.
32
Implementação
Figura 3.9: Diagrama UML da base de dados
• Project - guarda o nome e descrição e gera automaticamente a data e o estado, sendo que
este último por definição está em aberto, podendo posteriormente ser posto em fechado.
• File - guarda o nome, descrição e a parte do projeto em que se insere. Automaticamente
associa o projeto no qual o ficheiro existe, determina o tamanho e tipo de ficheiro e gera
a data de inserção. Caso o ficheiro tenha sido gerado a partir de outro ficheiro, guarda
informação sobre o ficheiro de origem e respetivo diretório.
• Directory - gera automaticamente o nome no formato ano-mês-dia_hora-minuto-segundo
por ser único, associa o ficheiro, projeto, parte e ferramenta em questão e adiciona o/s
ficheiro/s criados.
• Index - guarda a descrição, cria o nome a partir do ficheiro original, guardando a referência
deste, associa o projeto e gera a data de criação.
• Request - guarda o nome e descrição. Sendo um pedido de análise de uma amostra guarda
a informação relativa aos ficheiros finais bacterianos e virais e sobre o resultado final do
mapeamento.
• RequestResult - a partir de um Request são mapeados os elementos patogénicos presentes
nos ficheiros, e por cada um destes elementos mapeado é guardado o seu RPKM, total de
33
Implementação
reads e o respetivo ficheiro. As reads mapeadas são guardadas num ficheiro à parte ao invés
da base de dados para não a sobrecarregar pois normalmente são geradas milhares de reads.
• GeneSequence - cada um dos ficheiros de genomas de referência contém diferentes cro-
mossomas (Homo Sapiens e elementos patogénicos (virais e bacterianos), o que faz com
que exista a necessidade de guardar a informação sobre cada um destes diferentes elemen-
tos. Esta informação passa pelo nome, versão, tamanho da sequência e posição do caráter
inicial no ficheiro do respetivo genoma de referência e o ID na base de dados do NCBI.
• Reference - cada Reference é um genoma de referência diferente, estando cada um associada
a espécie, versão, descrição e respetivo ficheiro com as sequências biológicas.
3.2.2 Casos de Uso
A solução proposta tem apenas um ator, o User, a interagir com a plataforma. A Figura 3.10
representa o diagrama de casos de uso para o ator, e nela é possível visualizar as funcionalida-
des disponíveis na plataforma, desde login, logout e register, as mais triviais, até à conversão,
indexação, mapeamento e análise de ficheiros.
Figura 3.10: Diagrama de casos de uso para o ator User
34
Implementação
3.3 Sumário do Capítulo
Neste capítulo foi aprofundado o problema, descrita a solução proposta, feita uma breve aná-
lise das funcionalidades existentes na plataforma genomeFactory e mencionados alguns detalhes
considerados mais relevantes na sua implementação.
35
Implementação
36
Capítulo 4
Casos de Estudo
Neste capítulo são apresentados os casos de estudo que permitem avaliar e ilustrar as potencia-
lidades da solução proposta. As amostras utilizadas para os testes provêm do The Cancer Genome
Atlas (TCGA1).
O principal objetivo da análise de amostras reais é a avaliação das funcionalidades da pla-
taforma e demonstração das suas potencialidades. Não obstante esse facto, também se procura
verificar a expressão genética dos elementos patogénicos mapeados(segundo o número de reads),
o seu RPKM2 e o respetivo número de pares de base.
O RPKM (fórmula 4.1), é uma unidade normalizada da expressão de transcrição que representa
a relação entre os reads mapeados de um elemento patogénico ("N") e o seu comprimento em
pares de base ("C"), e o total de reads mapeados em toda a amostra ("T"). No final é costume
multiplicar-se por 109 para dar um número superior a 1, pois os resultados costumam ser bastante
pequenos do ponto de vista matemático.
RPKM =N ×109
T ×C(4.1)
As amostras usadas neste capítulo foram todas submetidas às mesmas condições. Para todas as
amostras foram usados genomas de referência e ferramentas iguais na máquina remota. Na Tabela
4.1 é possível ver as especificações das máquinas envolvidas nos testes.
4.1 Amostras Cancerígenas
4.1.1 Análise
Conversão de BAM para FASTQ
1https://cancergenome.nih.gov/2Reads Per Kilo base per Million mapped reads
37
Casos de Estudo
Tabela 4.1: Especificações das máquinas guadiana e magalhaes01
Máquina Processador Memória(GB)
Espaço em Disco(GB)
guadianaIntel(R) Core(TM)2 Quad CPU
Q9300, @ 2.50GHz8 431
magalhaes01Intel(R) Xeon(R) Octa CPU
E5430, @ 2.66GHz32 917
As amostras usadas estavam originalmente no formato BAM, mas para serem mapeadas têm
que estar no formato FASTQ. Para tal utilizou-se a ferramenta SAMtools. Na Tabela 4.2 apresen-
tamos os resultados desta iteração.
Tabela 4.2: Resultados da conversão de BAM para FASTQ das amostras A e B
Amostra Tamanho Inicial(GB)
Tamanho Final(GB)
Tempo(min)
Número Total dereads
A 13 41 1622 226775719B 15 49 1817 271247613
Mapeamento contra o genoma humano
Cada ficheiro FASTQ foi mapeado contra o genoma humano de referência (grCh38) usando
a ferramenta Bowtie. Isto resulta na criação de dois ficheiros de sequências no formato FASTQ.
Um com as sequências mapeadas e o outro com as sequências não mapeadas, como se pode ver
na Tabela 4.3. Para esta experiência podemos descartar as sequências mapeadas obtidas, pois não
são relevantes.
Tabela 4.3: Resultados do mapeamento das amostras A e B contra o genoma humano
Amostra Mapeamento Número de reads(bp)
Tamanho(GB)
Tempo(min)
AMapeados 200259647 36
662Não Mapeados 26516072 4.8
BMapeados 242979357 44
788Não Mapeados 28268256 5.1
Mapeamento contra o genoma bacteriano e viral
38
Casos de Estudo
Nesta iteração foram mapeados os ficheiros com sequências não mapeadas obtidos na itera-
ção anterior contra os genomas viral e bacteriano usando novamente a ferramenta Bowtie como na
iteração anterior. Na Tabela 4.4 são apresentados os dados resultantes desta iteração.
Tabela 4.4: Resultados do mapeamento das amostras A e B contra os genomas viral e bacteriano
Amostra Genoma Mapeamento Número de reads(bp)
Tamanho(kB)
Tempo(min)
ABacteriano
Mapeados 3057 57455
Não Mapeados 26513015 5033164
ViralMapeados 2109 395
54Não Mapeados 26513963 5033164
BBacteriano
Mapeados 2290 42957
Não Mapeados 28265966 5347737
ViralMapeados 3784 395
55Não Mapeados 28264472 5347737
Alinhamento contra o genoma bacteriano e viral
Nesta iteração é utilizada a ferramenta Bowtie para alinhar as sequências mapeadas na iteração
anterior com os genomas de referência bacteriano e viral. Com este passo pretende-se informação
sobre o alinhamento dos genes e elemento patogénicos presentes nas amostras, como se pode ver
na Tabela 4.5. Os ficheiros gerados nesta iteração encontram-se no formato SAM.
Tabela 4.5: Resultados do alinhamento das amostras A e B contra os genomas viral e bacteriano
Amostra GenomaNúmero de
reads(bp)
Reads alinhadas1 vez(bp)
Reads alinhadas> 1 vez
(bp)
ABacteriano 3057 303 (9,91%) 2754 (90,09%)
Viral 2109 941 (44,62%) 1168 (55,38%)
BBacteriano 2290 319 (13,93%) 1971 (86,07%)
Viral 3784 1112 (29,39%) 2672 (70,61%)
Classificação de ficheiros SAM
Antes de procedermos à análise dos ficheiros alinhados anteriormente, existe a necessidade
de os classificar (Sorting), isto é, ter os dados classificados por cromossomas, contigs3, scaffolds4,
3trechos contínuos de sequência que contêm apenas bases A, C, G ou T, sem lacunas4encadeação e junção de contigs usando informações adicionais sobre a posição relativa e orientação dos contigs no
genoma
39
Casos de Estudo
entre outros, com base no genoma de referência usado anteriormente. Isto permite o acesso aos
dados dentro do ficheiro em questão de uma forma mais eficiente.
Para tal, é primeiro necessário converter os ficheiros SAM obtidos anteriormente para BAM,
versão binária do formato SAM, e só depois é que se pode classificar os ficheiros. Para efetuar
estes passos é utilizada a ferramenta SAMtools com o comando view para a conversão e sort para
a classificação.
4.1.2 Resultados
Os resultados gerados provêm da análise dos ficheiros gerados na iteração anterior. Para cada
amostra testada existem figuras representativas do mapeamento nos genomas bacteriano e viral,
tal como tabelas com os elementos mais mapeados.
Amostra A
Na Figura 4.1 é possível identificar as bactérias e vírus mapeados para a amostra, e na Tabela
4.6 estão os detalhes das bactérias mais mapeadas.
Figura 4.1: Gráficos representativos do mapeamento da amostra A nos genomas bacteriano e viral
Na Tabela 4.6 está representada a bactéria Bacteroides fragilis YCH46 DNA com 102 reads e
um RPKM de 5. Esta bactéria é uma potencial causa para a sepsis, condição que surge quando
40
Casos de Estudo
Tabela 4.6: Resultados do mapeamento da amostra A no genoma bacteriano, sendo que chr cor-responde a chromosome
Bactéria Comprimento(bp)
Número de reads(bp) RPKM
Azotobacter vinelandii CA6 5323210 432 25Chelativorans sp. BNC1 chr 4412446 146 8
Bacteroides fragilis YCH46 DNA 5277274 102 5Azorhizobium caulinodans ORS 571 chr 5369772 67 3
Gamma proteobacterium HdN1 chr 4587455 63 3Colwellia psychrerythraea 34H chr 5373180 62 3Hahella chejuensis KCTC 2396 chr 7215267 58 3
Bradyrhizobium sp. BTAi1 chr 8264687 51 2Bacillus subtilis BSn5 chr 4093599 48 2
corpo humano responde uma infeção danificando os seus próprios tecidos e órgãos [MISh]. Pes-
soas com cancro têm um maior risco de contrair sepsis pois:
• Maior quantidade de tempo passado em hospitais significa maior risco de contrair uma in-
feção.
• Cirurgias e procedimentos que danificam e perfuram a pele aumentam o risco de infeção.
• Sistema imunológico danificado, muitas vezes devido ao tratamento do cancro.
• Desnutrição, idade avançada e outras doenças podem aumentar o risco de desenvolver uma
infeção.
Na Figura 4.1 também é possível identificar os vírus mapeados para a amostra, e na Tabela 4.7
estão os detalhes dos vírus mais mapeados.
Tabela 4.7: Resultados do mapeamento da amostra A no genoma viral
Vírus Comprimento(bp)
Número de reads(bp) RPKM
Encephalomyocarditis virus 7835 518 30Abelson murine leukemia virus 5894 411 24
Murine osteosarcoma virus 3811 350 20Hepatitis C virus genotype 2 9711 255 14
Pestivirus Giraffe-1 12602 72 4Pandoravirus salinus 2473870 48 2
Bovine viral diarrhea virus 1 12573 45 2Cyprinid herpesvirus 3 295146 36 2
Na Tabela 4.7 estão representados vários vírus presentes na amostra A, sendo que muitos
destes estão diretamente ligados a doenças, cancro inclusive.
41
Casos de Estudo
O vírus Encephalomyocarditis é um pequeno vírus de non-enveloped single-strand ARN, co-
nhecido por causar miocardites, encefalites, doenças neurológicas, distúrbios reprodutivos e dia-
betes em diversas espécies de mamíferos [eLBK 1].
O vírus Abelson murine leukemia virus é um é um retro-vírus (Classe VI) usado para induzir a
transformação de células linfóides murinas. Como um retro-vírus, possui um genoma de ARN de
sentido positivo e single-strand que se replica por via de um intermediário de ADN mediado por
uma transcriptase reversa. Este vírus é um dos responsáveis pela causa de um tipo de leucemia
que não envolve o timo [eLSR70].
O Murine osteosarcoma virus é responsável por tumores ósseos, e está diretamente ligado ao
Abelson murine leukemia virus analisado anteriormente.
O Hepatitis C virus genotype 2 causa a doença Hepatite C tipo 2, a qual afeta sobretudo o fí-
gado. Esta doença é curável em certos casos (tipo 2), mas a infeção crónica pode ter consequências
graves como cirrose, falha do fígado e cancro do mesmo [FN15].
Amostra B
Na Figura 4.2 é possível identificar as bactérias e vírus mapeados para a amostra, e na Tabela
4.8 estão os detalhes das bactérias mais mapeadas.
Figura 4.2: Gráficos representativos do mapeamento da amostra B nos genomas bacteriano e viral
Na Tabela 4.8 está representada a bactéria Bacteroides fragilis YCH46 DNA, mencionada an-
teriormente com 296 reads e um RPKM de 14.
42
Casos de Estudo
Tabela 4.8: Resultados do mapeamento da amostra B no genoma bacteriano, sendo que chr cor-responde a chromosome
Bactéria Comprimento(bp)
Número de reads(bp) RPKM
Bacteroides fragilis YCH46 DNA 5277274 296 14Azotobacter vinelandii CA 5366370 238 11
Chelativorans sp. BNC1 chr 4412446 149 7Azorhizobium caulinodans ORS 571 chr 5369772 143 7
Bacteroides helcogenes P 36-108 chr 3998906 62 3Caulobacter segnis ATCC 21756 chr 4655622 52 2Gamma proteobacterium HdN1 chr 4587455 47 2
Um dado importante que se pode deduzir é que tanto na amostra A como amostra B as bac-
térias Bacteroides fragilis YCH46 DNA, Azotobacter vinelandii CA, Chelativorans sp. BNC1 ch-
romosome, Azorhizobium caulinodans ORS 571 chromosome e Gamma proteobacterium HdN1
chromosome existem com um número de reads superior a 40.
Tabela 4.9: Resultados do mapeamento da amostra B no genoma viral
Vírus Comprimento(bp)
Número de reads(bp) RPKM
Human herpesvirus 4 complete wild type genome 171823 923 45Murine osteosarcoma virus 3811 448 22Encephalomyocarditis virus 7835 422 20Hepatitis C virus genotype 2 9711 328 16
Pandoravirus salinus 2473870 168 8Abelson murine leukemia virus 5894 154 7
Pestivirus Giraffe-1 12602 154 7Bovine viral diarrhea virus 1 12573 131 6
Na Tabela 4.9 o vírus mais relevante é o Human herpesvirus 4 complete wild type genome
(vírus relacionado com a herpes) com 923 reads e 45 RPKM, valor bastante mais alto que os
outros vírus e bactérias mapeados em ambas as amostras. Não obstante este vírus, é de notar que
todos os outros vírus encontrados na Tabela 4.9 existem na Tabela 4.7, e que em ambas têm um
número considerável de reads.
4.2 Amostras de HIV
4.2.1 Análise
Na Tabela 4.10 estão especificadas os detalhes inicias das duas amostras a serem testadas, uma
com HIV negativo e outra com HIV positivo. A análise feita às amostras de HIV têm o mesmo
43
Casos de Estudo
modus operandi da Secção 4.1.
Tabela 4.10: Especificações das amostras de HIV
Amostra Tamanho Inicial(GB)
Número de reads(bp)
HIV negativo 2.4 20229554HIV positivo 1.3 10891241
Mapeamento contra o genoma humano
Os resultados do mapeamento contra o genoma humano de referência (grCh38) usando a ferra-
menta Bowtie são visíveis Tabela 4.11.
Tabela 4.11: Resultados do mapeamento das amostras de HIV contra o genoma humano
Amostra Mapeamento Número de reads(bp)
Tamanho(MB)
Tempo(min)
HIV negativoMapeados 19472095 2355
36Não Mapeados 757459 91
HIV positivoMapeados 9205991 1126
24Não Mapeados 1685250 204
Mapeamento contra o genoma bacteriano e viral
Os resultados do mapeamento contra os genomas bacteriano e viral de referência com recurso
à ferramenta Bowtie são visíveis na Tabela 4.12.
Tabela 4.12: Resultados do mapeamento das amostras de HIV contra os genomas viral e bacteriano
Amostra Genoma Mapeamento Número de reads(bp)
Tamanho(kB)
Tempo(seg)
HIV negativoBacteriano
Mapeados 32735 3788149
Não Mapeados 724724 89088
ViralMapeados 1665 173
151Não Mapeados 755794 92160
HIV positivoBacteriano
Mapeados 95181 11264344
Não Mapeados 1590069 197632
ViralMapeados 12500 1433
220Não Mapeados 1672750 206848
44
Casos de Estudo
Alinhamento contra o genoma bacteriano e viral
Na Tabela 4.13 são apresentados os resultados do alinhamento das amostras contra os geno-
mas bacteriano e viral de referência.
Tabela 4.13: Resultados do alinhamento das amostras de HIV contra os genomas viral e bacteriano
Amostra GenomaNúmero de
reads(bp)
Reads alinhadas1 vez(bp)
Reads alinhadas> 1 vez
(bp)
HIV negativoBacteriano 32735 12990 (39,68%) 19745 (60,32%)
Viral 1665 1035 (62.16%) 630 (37,84%)
HIV positivoBacteriano 95181 24756 (26,01%) 70425 (73,99%)
Viral 12500 9601 (76,81%) 2899 (23,19%)
4.2.2 Resultados
Amostra de HIV Negativo
Na Figura 4.3 é possível identificar as bactérias e vírus mapeados para a amostra. Na Tabela
4.14 estão os detalhes das bactérias mais mapeadas e na Tabela 4.15 estão os detalhes dos vírus.
Como o tamanho de ambas as amostras de HIV é menor e o número de elementos patogénicos
mapeados é elevado, o RPKM tende a ser maior do que para as amostras A e B apresentadas
anteriormente.
Tabela 4.14: Resultados do mapeamento da amostra de HIV negativo no genoma bacteriano, sendoque chr corresponde a chromosome
Bactéria Comprimento(bp)
Número de reads(bp) RPKM
Alteromonas macleodii str. ’Ionian Sea U8’ 4395035 16179 44431Achromobacter xylosoxidansNBRC 15126 = ATCC 27061
6683584 3659 10048
Glaciecola psychrophila 170 5413691 514 1411Kitasatospora setae KM-6054 8783278 487 1337
Actinoplanes missouriensis 431 8773466 365 1002Candidatus Accumulibacter phosphatis
clade IIA str. UW-1 chr5058518 311 854
Herminiimonas arsenicoxydans chr 3424307 261 716
Tanto a Alteromonas macleodii str. ’Ionian Sea U8’ como Achromobacter xylosoxidans NBRC
45
Casos de Estudo
Figura 4.3: Gráficos representativos do mapeamento da amostra de HIV negativo nos genomasbacteriano e viral
15126 = ATCC 27061 são proteobactérias (filo composto por bactérias gram-negativas5 que é defi-
nido principalmente pela sequência genética 16S de ARN ribossômico). O organismo Candidatus
Accumulibacter phosphatis clade IIA str. UW-1 chr fornece informações sobre as proteínas envol-
vidas na acumulação de polifosfatos ao organismo.
Tabela 4.15: Resultados do mapeamento da amostra de HIV negativo no genoma viral
Vírus Comprimento(bp)
Número de reads(bp) RPKM
Baboon endogenous virusstrain M7 proviral DNA
8507 83 227
Human T-lymphotropic virus 2 8952 69 189Simian T-lymphotropic virus 2 8855 59 162
RD114 retrovirus 8406 47 129
O Vírus Linfotrópico de Células T Humanas Tipo 2, diretamente relacionado com o vírus do
Tipo 1, é um retro-vírus que tem sido implicado em vários tipos de doenças, incluindo linfoma
de células, mielopatia associada ao HTLV-I6, uveíte e outras doenças. Acredita-se que cerca de
5Técnica de Gram6Human T-Lymphotropic Virus 1
46
Casos de Estudo
1% a 5% das pessoas infetadas por este vírus desenvolvam cancro durante suas vidas [KV07]. O
Baboon endogenous virus está diretamente ligado ao Vírus Linfotrópico de Células T Humanas
Tipo 2.
Amostra de HIV Positivo
Na Figura 4.4 é possível identificar as bactérias e vírus mapeados para a amostra. Na Tabela
4.16 estão os detalhes das bactérias mais mapeadas e na Tabela 4.17 estão os detalhes dos vírus.
Figura 4.4: Gráficos representativos do mapeamento da amostra de HIV positivo nos genomasbacteriano e viral
Na Tabela 4.16 podemos encontrar as mesmas proteobactérias que na amostra de HIV nega-
tivo, com um valor de RPKM aproximado. A principal distinção neste caso são as bactérias de
Legionella, as quais vivem naturalmente em ambientes aquáticos mas podem alojar-se nos pul-
mões provocando uma pneumonia grave e eventualmente a morte.
Na Tabela 4.17 o principal destaque vai para o Human immunodeficiency virus 1, lentivírus7
responsável pela imunodeficiência humana, condição de deterioração progressiva do sistema imu-
nitário que propicia o desenvolvimento de infeções oportunistas e cancros potencialmente mortais.
Com um número de 5283 e um RPKM de 25529, pode-se concluir que este vírus é bastante abun-
dante na amostra.
7 vírus com longo período de incubação associados a doenças neurológicas e imunossupressoras
47
Casos de Estudo
Tabela 4.16: Resultados do mapeamento da amostra de HIV positivo no genoma bacteriano, sendoque chr corresponde a chromosome
Bactéria Comprimento(bp)
Número de reads(bp) RPKM
Alteromonas macleodii str. ’Ionian Sea U8’ 4395035 10911 52727Achromobacter xylosoxidansNBRC 15126 = ATCC 27061
6683584 1685 8142
Bdellovibrio bacteriovorus HD100 3782950 1666 8050Cylindrospermum stagnale PCC 7417 7003560 1443 6973
Legionella pneumophila subsp.pneumophila LPE509 chr
3434224 1328 6417
Legionella longbeachae NSW150 chr 4077332 1292 6243Dichelobacter nodosus VCS1703A chr 1389350 1289 6229
Tabela 4.17: Resultados do mapeamento da amostra de HIV positivo no genoma viral
Vírus Comprimento(bp)
Número de reads(bp) RPKM
Human immunodeficiency virus 1 9181 5283 25529Bacillus phage G 497513 590 2851
Shamonda virus N and NSs genes 927 225 1087
4.3 Sumário do Capítulo
A análise de resultados demonstrada neste capítulo procura responder ao problema desta dis-
sertação, que é a identificação de elementos patogénicos em células humanas cancerígenas.
Os casos de estudo utilizados ilustram a utilidade da plataforma desenvolvida. Através das
tabelas e gráficos é fácil a um patologista ver quais os vírus/bactérias mais expressos e avaliar a
sua perigosidade.
Assim sendo, com a realização da análise destes dois testes de estudo procuramos não só
para a validação da solução, mas também a exemplificação das funcionalidades da plataforma
desenvolvida.
48
Capítulo 5
Conclusões e Trabalho Futuro
Neste capítulo são apresentadas as conclusões retiradas ao longo do desenvolvimento do pro-
jeto e mencionadas algumas previsões de trabalho futuro.
5.1 Conclusões
Este projeto culminou com a implementação de uma plataforma Web para a análise de sequên-
cias genómicas, o genomeFactory, que visa a facilitar o trabalho de investigadores e biólogos mo-
leculares. Para tal foi necessário desenvolver uma plataforma dedicada a este tipo de estudo, tendo
em conta os recursos disponíveis e o software atual. A plataforma permite alinhar sequenciar tanto
genoma humano como genomas de vírus e bactérias. O objetivo é constituir uma base de dados
com as assinaturas virais e bacterianas de indivíduos saudáveis e com determinadas doenças de
origem vírica ou bacteriana e usar Machine Learning para prever novos casos descritos pelas suas
assinaturas virais e bacterianas.
Esta plataforma permite a criação de projetos, upload, download, conversão e análise de fi-
cheiros sendo apresentada uma interface Web bastante simples e intuitiva de forma a que qualquer
utilizador a possa usar independentemente do conhecimento informático. Os gráficos e tabelas
apresentados para cada análise permitem identificar com facilidade a distribuição da carga viral/-
bacteriana de modo a avaliar a sua perigosidade. A plataforma também permite a utilização de
genomas de referência e o mapeamento e alinhamento de sequências tendo estes índices como
base, sendo versátil o suficiente para a análise de outras espécies para além de Homo Sapiens e de
outros elementos que não os bacterianos e virais. Com isto esperamos que esta plataforma possa
ser uma mais valia no estudo do impacto de elementos patogénicos na origem do cancro e na sua
prevenção.
Não obstante o facto de os principais objetivos desta dissertação terem sido atingidos com o
desenvolvimento do projeto, há sempre aspetos e funcionalidades que podem ser melhorados ou
implementados.
49
Conclusões e Trabalho Futuro
5.2 Trabalho Futuro
Como foi referido na Secção 5.1 há aspetos que podem ser melhorados e funcionalidades que
podem ser implementadas numa futura continuação de desenvolvimento da plataforma:
• Implementar mais ferramentas - para esta dissertação foram criados vários containers
de ferramentas para o Docker, mas nem todos foram usados para a plataforma. No futuro
a implementação destas ferramentas pode tornar a plataforma mais útil e versátil para os
utilizadores.
• Adicionar repositórios de genes e proteínas - atualmente existem bastantes repositórios
online relacionados com genes como o Ensembl, KEGG e GenBank. Seria um grande up-
grade poder retirar informação destes repositórios para usar diretamente na plataforma.
• Adicionar técnicas de Data Mining - o uso de Data Mining para verificar a existência de
correlações entre genes e elementos de uma sequência tem muito a oferecer aos utilizadores.
A utilização de técnicas como clustering e algoritmos de Machine Learning usando modelos
preditivos e probabilísticos seria uma funcionalidade extra com bastante peso na análise de
resultados.
A principal razão destas funcionalidades não terem sido implementadas na plataforma deve-se
ao facto de não terem sido definidas nem consideradas prioridades inicialmente. Como não são
funcionalidades necessárias ao funcionamento base da plataforma, funcionam como funcionalida-
des extra que aumentariam o grau de utilidade da plataforma para o utilizador.
50
Referências
[AD13] Felix Schlesinger JorgDrenkow-Chris Zaleski Sonali Jha PhilippeBatut MarkChais-son e Thomas R. Gingeras Alexander Dobin, Carrie A. Davis. Star: ultrafast universalrna-seq aligner. Bioinformatics, 29:15–21, 2013. doi:10.1093/bioinformatics/bts635.
[AG00] S. Wessler e S. Carroll A. Griffiths. Introdução à Genética. Grupo Gen - GuanabaraKoogan, 10a edição edition, 2000.
[BL09] M. Pop e S. Salzberg B. Langmead, C. Trapnell. Ultrafast e memory-efficient align-ment of short dna sequences to the human genome. Genome Biology, 10(3):R25,2009. doi:10.1186/gb-2009-10-3-r25.
[CT09] Lior Pachter e Steven L Salzberg Cole Trapnell. Tophat: discovering splice junctionswith rna-seq. Bioinformatics, page 25(9), 2009. doi:10.1093/bioinformatics/btp120.
[Dea95] John Deacon. Model-view-controller (mvc) architecture. Computer Systems Deve-lopment, 1995. doi:10.1007/978-1-4302-5251-1_4.
[Dow09] Allen B. Downey. Python for Software Design: How to Think like a Computer Scien-tist. Cambridge University Press, 2009.
[eDP 1] Armando J. Pinho e Diogo Pratas. Mfcompress: a compression toolfor fasta and multi-fasta data. Bioinformatics, 30:117–118, 2014 Jan 1.doi:10.1093/bioinformatics/btt594.
[eLBK 1] Margot Carocci e Labib Bakkali-Kassimi. The encephalomyocarditis virus. Viru-lence, 3:351–367, 2012 Jun 1. doi:10.4161/viru.20573.
[eLSR70] Herbert T. Abelson e Louise S. Rabstein. Lymphosarcoma: Virus-induced thymic-independent disease in mice. Published August 1970. URL: http://cancerres.aacrjournals.org/content/30/8/2213.long.
[eMPW99] Walter P Blackstock e Malcolm P Weir. Proteomics: quantitative e physical map-ping of cellular proteins. Trends in Biotechnology, 17:121–127, March 1 1999.doi:10.1016/S0167-7799(98)01245-1.
[eSM11] D. Huson e S. Mitra. Comparative Metagenome Analysis Using MEGAN. Handbookof Molecular Microbial Ecology I, 2011. doi:10.1002/9781118010518.ch39.
[FN15] Ghulam Mujtabab e Shumaila Noreenc Faisal Nouroza, Sidra Shaheena. An overviewon hepatitis c virus genotypes and its control. Egyptian Journal of Medical HumanGenetics, 16:291–298, October 2015. doi:10.1016/j.ejmhg.2015.05.003.
51
REFERÊNCIAS
[HL15] Alec Wysoker Tim Fennell Jue Ruan Nils Homer Gabor Marth Goncalo Abe-casis e Richard Durbin Heng Li, Bob Handsaker. The sequence alignment/-map format and samtools. Bioinformatics, 25:2078–2079, 2009 Aug 15.doi:10.1093/bioinformatics/btp352.
[KV07] Sonia Van Dooren Anne-Mieke Vandamme Guido Vanham e Eduardo Gotuzzo Kris-tien Verdonck, Elsa González. Human t-lymphotropic virus 1: recent knowledgeabout an ancient infection. The Lancet: Infectious Diseases, 7:266–281, April 2007.doi:10.1016/S1473-3099(07)70081-6.
[Mer14] Dirk Merkel. Docker: lightweight linux containers for consistent development anddeployment. Linux Journal, 2014(2), March 2014. URL: https://dl.acm.org/citation.cfm?id=2600241.
[MISa] Angularjs. Disponível em https://angularjs.org/, acedido a última vez em25 de Junho 2018.
[MISb] Bootstrap. Disponível em https://getbootstrap.com/, acedido a última vezem 25 de Junho 2018.
[MISc] Javascript. Disponível em https://www.javascript.com/, acedido a últimavez em 25 de Junho 2018.
[MISd] Nodejs. Disponível em https://nodejs.org/en/, acedido a última vez em 25de Junho 2018.
[MISe] Overview of docker hub. Disponível em https://docs.docker.com/docker-hub/, acedido a última vez em 28 de Maio 2018.
[MISf] Python. Disponível em https://python.org/, acedido a última vez em 25 deJunho 2018.
[MISg] The secure shell (ssh) authentication protocol. Disponível em https://tools.ietf.org/pdf/rfc4252.pdf, acedido a última vez em 19 de Maio 2018.
[MISh] Sepsis and cancer. Disponível em https://www.sepsis.org/sepsis-and/cancer/, acedido a última vez em 23 de Junho 2018.
[MISi] Sqlite. Disponível em https://www.sqlite.org/about.html, acedido a úl-tima vez em 25 de Junho 2018.
[MISj] What is docker. Disponível em https://www.redhat.com/en/topics/containers/what-is-docker, acedido a última vez em 15 de Junho 2018.
[Mou07] David W. Mount. Sequence database searching for similar sequences. Bioinformatics:Sequence e Genome Analysis, page Chapter 6, 2007. doi:10.1101/pdb.top17.
[PJACpr] Naohisa Goto Michael L. Heuer e Peter M. Rice Peter J. A. Cock, ChristopherJ. Fields. The sanger fastq file format for sequences with quality scores, andthe solexa/illumina fastq variants. Nucleic Acids Res, 38:1767–1771, 2010 Apr.doi:10.1093/nar/gkp1137.
[Sha06] S. Shabalina. A periodic pattern of mrna secondary structure created by the geneticcode. Nucleic Acids Research, 34(8):2428–2437, 2006. doi:10.1093/nar/gkl287.
52
REFERÊNCIAS
[ZW09] M. Gerstein e M. Snyder Z. Wang. Rna-seq: a revolutionary tool for transcriptomics.Nature Reviews Genetics, 10(1):57–63, 2009. doi:10.1038/nrg2484.
53
REFERÊNCIAS
54
Anexo A
Guião de Utilizador
Este guião de utilizador tem como princípio a exemplificação dos procedimentos relativos ao
serviço web, desde o registo do utilizador na plataforma até à visualização de resultados.
A.1 Página Inicial
Na página inicial da plataforma, Figura A.1, é visível uma breve descrição da plataforma. É
também a partir desta página que se acede ao registo e login de utilizadores para se obter acesso
ao resto da plataforma.
Figura A.1: Página inicial da plataforma online
A.2 Registo
Na Figura A.2 é apresentado o formulário de registo na plataforma (para se chegar a esta página
é necessário carregar no botão Sign Up no canto superior direito) com os seguintes campos:
55
Guião de Utilizador
• Firstname - primeiro nome do utilizador.
• lastname - último nome do utilizador.
• Email - email do utilizador, necessário para o login na plataforma.
• Password - password necessária para o login na plataforma.
Figura A.2: Formulário de registo na plataforma
A.3 Login
A Figura A.3 representa o login na plataforma, necessário para o acesso à totalidade da pla-
taforma e respetivas funcionalidades. Para se fazer o login com sucesso é necessário fornecer um
email e password válidos e registados na plataforma.
Figura A.3: Formulário de login na plataforma
56
Guião de Utilizador
A.4 Projetos
Na Figura A.4 é possível ver os projetos do utilizador, sendo também possível adicionar novos
projetos. Os projetos de cor verde são projetos em aberto(Open) e os de cor vermelha são projetos
dados como terminados(Closed).
Figura A.4: Vista geral dos projetos do utilizador
A.5 Novo Projeto
Na Figura A.5 apresenta-se o formulário para a criação de um novo projeto, nos quais existem
os seguintes campos:
• Nome - nome atribuído ao projeto, obrigatório.
• Descrição - descrição do projeto, obrigatório.
• Colaboradores - email dos utilizadores que serão adicionados como colaboradores ao pro-
jeto, opcional.
A.6 Projeto
A página de projeto é constituída por três partes:
• Detalhes - informações gerais do projeto constituídas pelo nome, descrição, estado, data de
criação e lista de colaboradores.
• Ficheiros - a lista de ficheiros de input e de output.
• Colaboradores - opção de adicionar colaboradores a partir do seu endereço de email.
Na Figura A.6 são apresentados a primeira parte, os detalhes, e os ficheiros de input e respeti-
vas operações disponíveis, as quais dependem do tipo de ficheiro. Também é visível uma lista de
cinco separadores, os quais representam as cinco fases de um determinado projeto:
57
Guião de Utilizador
Figura A.5: Formulário para a criação de um novo projeto
Figura A.6: Detalhes do projeto e lista de ficheiros de input na secção Pre-Processing
• Pre-Processing - permite a conversão de ficheiros FASTA para FASTQ e vice-versa, SAM
para BAM e vice-versa, BAM para FASTA e FASTQ, indexação de ficheiros FASTA e
BAM, sorting de ficheiros BAM e a análise de ficheiros FASTQ, SAM e BAM com recurso
à ferramenta FastQC, referida anteriormente na secção 2.3.3.
• Initial Build - permite a criação de índices de referência a partir de ficheiros FASTA e o
mapeamento de sequências no formato FASTQ contra o genoma de referência humano, ge-
noma de referência viral, genoma de referência bacteriano e genomas de referência criados
58
Guião de Utilizador
pelo utilizador, gerando dois ficheiros FASTQ, um com as sequências mapeadas e o outro
com as sequências não mapeadas.
• Middle Phase - permite a conversão de ficheiros FASTA para FASTQ e vice-versa, SAM
para BAM e vice-versa, BAM para FASTA e FASTQ, indexação de ficheiros FASTA e
BAM, sorting de ficheiros BAM e a análise de ficheiros FASTQ, SAM e BAM com recurso
à ferramenta FastQC.
• Final Run - permite a criação de índices de referência a partir de ficheiros FASTA e o ma-
peamento e alinhamento de sequências no formato FASTQ contra o genoma de referência
humano, genoma de referência viral, genoma de referência bacteriano e genomas de refe-
rência criados pelo utilizador, criando um ficheiros SAM.
• End Phase - permite a conversão de ficheiros FASTA para FASTQ e vice-versa, SAM para
BAM e vice-versa, BAM para FASTA e FASTQ, indexação de ficheiros FASTA e BAM,
sorting de ficheiros BAM e a análise de ficheiros FASTQ, SAM e BAM com recurso à
ferramenta FastQC.
Houve esta separação em cinco fases a pedido do Professor Rui Camacho que achou necessário
permitir aos utilizadores uma maior liberdade na gestão de ficheiros.
Figura A.7: Formulário de upload de um ficheiro
No canto inferior esquerdo da Figura A.6 é visível um botão de upload de ficheiro. Esse botão
abre uma classe modal, Figura A.7, com o seguinte formulário:
• Ficheiro - selecionar o ficheiro que se quer inserir na plataforma.
59
Guião de Utilizador
• Fase - escolher a fase na qual o ficheiro se insere (uma das cinco fases mencionadas anteri-
ormente).
• Descrição - descrição do ficheiro.
Na Figura A.8 são visíveis os ficheiros de output e a terceira parte, adicionar colaborado-
res(Add User). Na parte dos ficheiros existem botões tanto para enviar os ficheiros gerados para
os ficheiros de input(caso seja necessário por exemplo converter um ficheiro SAM para BAM, e
o BAM resultante para FASTQ) e para enviar os ficheiros gerados para a fase seguinte(enviar o
FASTQ gerado na fase Pre-Processing para a fase Initial Build para ser mapeado com genomas
de referência). Também é visível nos ficheiros gerados(output) que na área da descrição aparece o
nome do ficheiro inicial e o nome da ferramenta usada na sua criação.
Tanto na parte dos ficheiros de input como nos de output existem botões para eliminar e fazer
o download de um determinado ficheiro, como é visível em ambas as Figuras A.6 e A.8
Figura A.8: Lista de ficheiros de output na secção Pre-Processing
A.7 Visualização do Mapeamento Viral e Bacteriano
Na página de resultados, Figura A.9, existe na parte lateral esquerda um breve sumário do pro-
cesso de mapeamento e opção de pesquisa de elementos patogénicos segundo vários parâmetros
como string, total de reads, vírus e bactérias. Também existem gráficos disponíveis na mesma
página para todos os elementos encontrados (bacterianos e virais) como é demonstrado na Figura
A.10.
60
Guião de Utilizador
Figura A.9: Visualização dos resultados da análise de amostras
Figura A.10: Gráfico de todas as reads de elementos bacterianos de uma dada amostra
Para cada elemento na Figura A.9 existe um botão(Choose action) que permite a visualização
da respetiva sequência no site do NCBI e, o gráfico especifico desse dado elemento.
O gráfico específico, Figura A.11 contém os reads mapeados ao longo do genoma do elemento
patogénico visíveis com a linha azul, e a barra a preto e vermelho representa as posições de cada
gene.
61
Guião de Utilizador
Figura A.11: Gráfico do resultado do mapeamento da amostra para cada elemento patogénico
62