SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Incorporando efeitos aleatórios na análise de componentes
principais em estudos de associação genômica
Lucas Vitti Rodrigues
Orientadora: Prof. Dra. Júlia Maria Pavan Soler
Bacharelado em Matemática Aplicada
Habilitação em Sistemas e Sinais
Trabalho de conclusão de curso
Instituto de Matemática e Estatística
Universidade de São Paulo
São Paulo, novembro de 2015
ii
Agradecimentos
Meus mais profundos agradecimentos à professora Júlia Pavan, pelo acolhimento, dedicação e
paciência durante o desenvolvimento deste trabalho.
Ao Laboratório de Genética e Cardiologia Molecular do INCOR-USP pela disponibilização da
base de dados do Projeto Trios de São Paulo, utilizada neste trabalho.
Aos meus gestores Maria Theresa Rossi Vilela e Michel Yukyo de Assis Oda da empresa Sem
Parar/Via Fácil por todo apoio dado durante minha graduação.
Às minhas queridas amigas e colegas de classe Vanessa Vasconcelos e Marcia Pardini por todos
os momentos divertidos que passarmos juntos durante os anos de nossa graduação no IME.
A Augusto Santos Batista, por tudo.
A todos vocês e tantos outros que me auxiliaram durante todos esses anos: muito obrigado.
iii
iv AGRADECIMENTOS
Resumo
Estudos de associação em populações baseados no mapeamento do genoma humano são bas-
tante utilizados com o objetivo de auxiliar na análise da resposta dos indivíduos a tratamentos de
diversas doenças. Entretanto, nos casos onde existe estratificação dos indivíduos este tipo de análise
resulta frequentemente em associações enganosas.
Vários autores utilizam a análise de componentes principais nos dados de SNPs (Single-nucleotide
polymorphism) coletados para tentar inferir esta estratificação. Esse tipo de abordagem gera bons
resultados porém assume-se que a amostra utilizada para a análise é coletada de forma independente
(os indivíduos não são relacionados) o que não é verdade para diversos casos práticos.
Este trabalho de conclusão de curso se propõe a estudar esta análise de estratificação de po-
pulações aplicada a estudos de associação genética considerando cenários para ambos os tipos de
amostra (indivíduos independentes e depententes) e apresentar os resultados obtidos em uma base
de dados da população brasileira (projeto “Trios de São Paulo” do INCOR).
Além disso, foi construído o SNPminer, um programa em linguagem Java que permite as etapas
de limpeza e que sejam realizadas via programação visual.
Palavras-chave: associação genômica, componentes principais, genética.
v
vi RESUMO
Sumário
Agradecimentos iii
Resumo v
Lista de Figuras ix
Lista de Tabelas xi
1 Introdução 1
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Conceitos 3
2.1 Genoma, DNA, genes e alelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 SNP (Single-Nucleotide Polymorphism) . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Bases de dados genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 HapMap e o Projeto Trios de São Paulo . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Limpeza e tratamento das bases de dados . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5.1 Minor Allele Frequency (MAF) . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5.2 Equilíbrio de Hardy-Weinberg . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5.3 Linkage disequilibrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5.4 Cromossomos das regiões HLA e de inversão . . . . . . . . . . . . . . . . . . . 9
2.5.5 Orientação dos marcadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Componentes principais para obtenção da ancestralidade em amostras indepen-
dentes 11
3.1 Análise de componentes principais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Componentes principais de ancestralidade . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Preparação dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Script R para obtenção das componentes principais . . . . . . . . . . . . . . . . . . . 13
3.4.1 Desempenho do script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Componentes principais para obtenção da ancestralidade em amostras com es-
trutura familiar 17
4.1 Kinship matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
vii
viii SUMÁRIO
4.2 Estimadores para as matrizes de covariância . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 Componentes principais de ancestralidade e herdabilidade . . . . . . . . . . . . . . . 20
4.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5 SNPminer 25
5.1 Nós e fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Metamodelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.1 Caractetísticas de exibição e identificação do nó . . . . . . . . . . . . . . . . . 28
5.2.2 Recursos de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.3 Data Types e Data Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.4 InputCollections e output data group . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.5 Parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.6 Arquivos gerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2.7 Metanode Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Limitações do metamodelo e qualidade da especificação dos nós . . . . . . . . . . . . 42
6 Conclusões 43
6.1 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Referências Bibliográficas 45
Lista de Figuras
2.1 Cariótipo humano de um indivíduo do sexo masculino (extraída de http://en.wikipedia.
org/wiki/Karyotype). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Estrutura de uma sequência de moléculas de DNA. . . . . . . . . . . . . . . . . . . . 4
2.3 Localização das populações no globo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Orientação das moléculas de DNA. Extraído de [Robinson2010]. . . . . . . . . . . . . 10
3.1 Exemplo de coordenadas principais. Extraído de [Wiki-PCA]. . . . . . . . . . . . . . 11
3.2 Indivíduos segundo a primeira e segunda coordenadas de ancestralidade. . . . . . . . 15
4.1 Exemplo de estrutura familiar representada por um heredograma. Círculos represen-
tam mulheres e quadrados representam homens. . . . . . . . . . . . . . . . . . . . . . 19
4.2 Efeito do parâmetro de penalização λ na direção das componentes principais de
herdabilidade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 (a) Duas primeiras componentes principais da decomposição espectral da matriz Σg,
(b) duas primeiras componentes principais da decomposição espectral da matriz Σe.
Destacado, em ambos os gráficos, um dos trios da base de dados. Os quadrados
representam os pais e o losango representa o filho. . . . . . . . . . . . . . . . . . . . . 22
4.4 Comparação das coordenadas da primeira (à esquerda) e segunda (à direita) compo-
nentes principais segundo o método proposto por [Oualkacha2012], via a decomposi-
ção da matriz Σg, versus a análise considerando indivíduos independentes. . . . . . . 22
4.5 Expansão da estrutura familiar dos trios via simulação, utilizando um indivíduo
selecionado aleatoriamente da base HapMap. . . . . . . . . . . . . . . . . . . . . . . 23
4.6 Indivíduos da base de Trios extendida plotados segundo as duas primeiras compo-
nentes principais de ancestralidade segundo a (a) decomposição da matriz Σg e (b)
decomposição da matriz Σe. As áreas circuladas mostram a ancestralidade dos indi-
víduos do HapMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.7 Indivíduos da base de Trios extendida plotados segundo as duas primeiras compo-
nentes principais de ancestralidade na abordagem para amostras independentes. . . . 24
5.1 Janela principal do SNPminer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2 Janela de propriedades dos nós. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Janela de propriedades do fluxo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4 Componentes da especificação de um nó no SNPminer. . . . . . . . . . . . . . . . . . 28
5.5 Exemplo de nó com várias coleções de entrada. . . . . . . . . . . . . . . . . . . . . . 33
5.6 Exemplo de nó com várias coleções de entrada recebendo mais de um grupo de dados. 33
ix
x LISTA DE FIGURAS
5.7 Decomposição de um comando em parâmetros. . . . . . . . . . . . . . . . . . . . . . 34
5.8 Hierarquia de parâmetros do SNPminer. . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.9 Selection Parameter na janela de propriedades do nó. Acima a caixa de selação.
Abaixo a lista de escolhas de valores do parâmetro. . . . . . . . . . . . . . . . . . . . 39
5.10 Parâmetros da família Valued Parameters na janela de propriedades do nó. . . . . . . 40
5.11 Metanode Manager no SNPminer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.12 Detalhe das funcionalidades do Metanode Manager. . . . . . . . . . . . . . . . . . . . 42
Lista de Tabelas
2.1 Exemplo de arquivo PED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Exemplo de arquivo MAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Populações do projeto HapMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Exemplo do teste para equilíbrio de Hardy-Weinberg. . . . . . . . . . . . . . . . . . . 8
2.5 Linkage disequilibrium: exemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1 Coeficientes da matriz de relacionamento 2*kinship para algumas relações de paren-
tesco, extraído de https://en.wikipedia.org/wiki/Coefficient_of_relationship. . . . . 18
5.1 Lista de imagens disponíveis no SNPminer. . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Tipos de parâmetros da família Valued Parameters e tipos de informação suportada . 39
xi
xii LISTA DE TABELAS
Capítulo 1
Introdução
Estudos de associação genômica (Genome-wide association studies em inglês, abreviado como
GWAS) buscam entender como variações no DNA entre indivíduos de uma mesma espécie se rela-
cionam com alguma característica sob estudo. Usualmente esses estudos trabalham com amostras
caso/controle onde o primeiro grupo é composto por indivíduos que apresentam uma característica
de interesse (doença, por exemplo) e o segundo é composto por indivíduos sem a característica
(indivíduos sadios).
A comparação entre as sequências de DNA, dentro do contexto deste trabalho, é realizada utili-
zando SNPs (sigla em inglês para Single-Nucleotide Polymorphisms) que são variações de um único
nucleotídeo em determinado locus do DNA.
Estudos de associação genômica são bastante utilizados com o objetivo de avaliar a resposta
dos indivíduos a tratamentos de doenças, porém, nos casos em que os indivíduos possuem alguma
estratificação devida à ancestralidade (como em populações miscigenadas, como a brasileira) os
resultados das análises podem levar a conclusões enganosas se essa característica não for levada em
consideração.
Uma técnica bastante utilizada na literatura para tentar identificar esse tipo de estratificação
é a análise de componentes principais (Principal Components Analysis em inglês, abreviada para
PCA). De acordo com [Price2006] esta abordagem gera bons resultados, porém, assume-se que a
amostra de indivíduos é independente, uma hipótese que muitas vezes não é satisfeita pela estrutura
dos dados.
Em muitos casos práticos de análise de doenças as amostras contêm o sequenciamento do DNA
do indivíduo afetado e de alguns membros de sua família (pais, irmãos, etc.). Essa forma de amos-
tragem claramente não possui independência entre os indivíduos. Assumir que os indivíduos da
amostra são independentes e proceder com as análises pode resultar em erros graves de inferência.
Por outro lado descartar os indivíduos relacionados pode ocasionar a perda de informações impor-
tantes sobre a característica sob análise e também implica em desperdício de recursos.
Para contornar esse problema alguns trabalhos ([Konishi1992], [Oualkacha2012], [Andrade2014])
propõem extensões da análise de componentes principais que consideram a dependência entre indi-
víduos.
Desse modo, este trabalho tem como objetivo apresentar as técnicas de PCA para a obten-
ção de características latentes informativas da ancestralidade global dos indivíduos para amostras
independentes e amostras com estrutura familiar (indivíduos dependentes). Vale ressaltar que a li-
teratura apresenta alternativas mais específicas sobre estimativas da ancestralidade dos indivíduos,
por exemplo, o programa STRUCTURE [Falush2003], que permitem incluir informações sobre o
1
2 INTRODUÇÃO 1.2
número de informações ancestrais e o cálculo da proporção de mistura que o indivíduo carrega de
cada uma dessas populações.
Além disso, é muito comum em estudos de associação genômica a necessidade do uso de diversos
softwares para realização das análises que são, em geral, não triviais e envolvendo dados de elevada
dimensão. Este é um fator complicador na difusão das novas análises desenvolvidas pois:
• Nem todos os cientistas e profissionais que trabalham com estudos genômicos são familiariza-
dos com desenvolvimento de scripts e programação.
• O acoplamento de diversos recursos aumenta a complexidade da realização das análises e a
incidência de erros.
Por essas razões este trabalho também contemplou o desenvolvimento de um software, SNPmi-
ner, que permite unificar, por meio de uma interface gráfica amigável, diversos recursos necessários
para realização de análises envolvidas nos estudos de associação genômica (GWAS), como o uso de
dados externos do Projeto HapMap para melhor caracterizar a história ancestral das populações.
1.1 Objetivos
Os objetivos deste trabalho são:
• Apresentar o uso da PCA como ferramenta para identificar estratificações causadas pela histó-
ria ancestral das populações em estudos de associação genômica para amostras de indivíduos
independentes;
• Apresentar as extensões das análises para amostras onde há estrutura familiar (dependência)
entre os indivíduos; e
• Apresentar o SNPMiner, software que permite unificar os diversos recursos de software ne-
cessários para as análises geômicas em uma única ferramenta. São consideradas análises de
controle de qualidade e limpeza de dados genômicos e cálculos de coeficientes de ancestralidade
via PCA.
1.2 Organização do Trabalho
No Capítulo 2 serão apresentados os conceitos de genética utilizados neste trabalho, as bases de
dados genômicas e as rotinas de limpeza e preparação dessas bases para as análises.
Nos Capítulos 3 e 4 são discutidas, respectivamente, as técnidas de análise de componentes
principais para amostra independentes e com estrutura familiar.
No Capítulo 5 apresentamos o software SNPMiner, seu uso e funcionamento. Este capítulo tam-
bém contém um breve tutorial de utilização do software para a realização das análises demonstradas
nos capítulos anteriores.
Finalmente no Capítulo 6 apresentamos conclusões obtidas neste trabalho, trabalhos futuros
relacionados às análises das bases e os próximos passos no aprimoramento do software SNPminer.
Capítulo 2
Conceitos
Neste capítulo serão apresentados alguns conceitos de Genética utilizados neste trabalho, as
bases de dados utilizadas em estudos de associação genômica e as rotinas de limpeza e preparação
dessas bases para as análises.
2.1 Genoma, DNA, genes e alelos
O genoma de um organismo é o conjunto de todo seu código genético (sequências de moléculas
DNA). Em seres eucariontes, como o ser humano, o código genético encontra-se no núcleo das célu-
las ou em organelas especializadas (como o DNA mitocondrial, encontrado dentro das mitocôndrias).
O DNA (sigla, em inglês, para ácido desoxirribonucleico) é a molécula que compõe o genoma.
Cada espécie de organismo possui uma organização única de suas moléculas de DNA (chamada de
cariótipo). Nos seres humanos o cariótipo se organiza em 23 pares de cromossomos. Na Figura 2.1
podemos observar os 23 pares de cromossomos de um ser humano do sexo masculino.
Figura 2.1: Cariótipo humano de um indivíduo do sexo masculino (extraída de http:// en.wikipedia.org/
wiki/ Karyotype).
Apesar da grande variabilidade dos cariótipos entre as espécies o DNA é composto por quatro
bases nitrogenadas (adenina, guanina, citosina e timina, abreviadas, respectivamente, por A, G, C
e T) que se agrupam em pares (adenina com timina, guanina com citosina) ligadas a uma desoxirri-
bose (açúcar) e uma molécula de fosfato. O genoma então, é composto pela sequência e organização
das moléculas de DNA. A Figura 2.2 mostra a estrutura de uma sequência de moléculas de DNA.
Um gene é uma sequência de moléculas de DNA considerada a unidade básica de hereditarie-
dade. De acordo com [Pearson2006], um gene é definido como
3
4 CONCEITOS 2.3
Figura 2.2: Estrutura de uma sequência de moléculas de DNA.
“a locatable region of genomic sequence, corresponding to a unit of inheritance, which
is associated with regulatory regions, transcribed regions, and/or other functional se-
quence regions”
Em tradução livre, um gene é “uma região [locus] no DNA correspondente a uma unidade de
hereditariedade associada com regiões de regulação, transcrição e/ou outras regiões funcionais”.
Estima-se que o genoma humano possua entre 20 e 25 mil genes [NIH-Gene] distribuídos ao longo
de cerca de 3 bilhões de bases no conjunto dos 23 cromossomos.
Nas espécies diplóides (que possuem cromossomos em pares, como os seres humanos), cada
organismo possui duas cópias do mesmo gene, uma em cada um dos cromossomos que compõem
o par. Cada cópia do gene é herdado de um dos pais. As variações de um mesmo gene entre os
indivíduos de uma mesma espécie são chamados alelos. A variação de alelos entre os indivíduos é
responsável, por exemplo, por características físicas dos indivíduos (cor do cabelo, cor dos olhos,
etc.). A complexidade do efeito de genes sobre a variação de características dos indivíduos se dá
devido a efeitos de interação entre os genes e com o ambiente.
2.2 SNP (Single-Nucleotide Polymorphism)
Um SNP (em português, lê-se “snip”) é uma variação de uma única base nitrogenada na sequên-
cia de DNA de indivíduos de uma mesma espécie. De acordo com [Utah-SNP] estima-se que um
SNP ocorra a cada 300 pares de bases nitrogenadas no genoma humano, o que resulta em um total
aproximado de 10 milhões de SNPs, o que faz dos SNPs a forma mais comum de variação genética
no genoma humano.
É importante ressaltar que nem todas as variações de uma única base nitrogenada são conside-
radas SNPs. De acordo com a literatura, considera-se como SNP apenas variações que ocorrem em
mais de 1% da população em estudo (esse percentual pode ser maior, dependendo do autor).
A exemplo dos genes, variações de pares de bases nitrogenadas também são chamadas de alelos.
No genoma humano a maioria dos SNPs são bialélicos [Wiki-SNP], isto é, possuem apenas duas
variações. SNPs trialélicos ocorrem raramente (em casos de alterações como mutações). O software
Plink não trabalha com SNPs trialélicos [Plink2007]).
2.3 BASES DE DADOS GENÉTICOS 5
2.3 Bases de dados genéticos
Bases de dados genéticos são arquivos que contêm o sequenciamento do DNA dos indivíduos
amostrados bem como informações sobre a estrutura familiar da amostra e informações fenotípicas
(presença de alguma doença ou outra característica sob estudo).
Existem diversos softwares disponíveis que trabalham com bases de dados genômicas, cada um
com um formato próprio de representação das informações do sequenciamento do DNA. Neste tra-
balho apresentaremos o formato utilizado pelo software Plink.
O Plink [Plink2007] é um software robusto, disponibilizado gratuitamente e bastante difun-
dido no meio acadêmico. Ele permite realizar grande parte das análises padrão em bases de dados
genéticas e fornece diversos recursos para limpeza e tratamento dos dados. As análises de dados apre-
sentadas neste trabalho serão realizadas utilizando o Plink juntamente com o software R [R2014].
As bases de dados para utilização no formato Plink são usualmente separadas em dois arquivos:
o arquivo de pedigree (usualmente um arquivo com extensão PED), que contém o sequenciamento
do DNA dos indivíduos, a estrutura familiar e as informações fenotípicas, e o arquivo de mape-
amento (extensão MAP) que contém a informação do mapa dos marcadores genéticos disponíveis
no sequenciamento (neste trabalho, os SNPs), como sua localização física no genoma, em pares de
bases (bp), bem como sua localização genética, em unidades de centi-Morgan (cM).
O arquivo PED contém a seguinte estrutura: as seis primeiras colunas contêm as informações da
estrutura familiar, sexo do indivíduo e informação fenotípica. A partir da sexta coluna cada par de
valores representa o valor do marcador genético representando as bases nitrogenadas. A Tabela 2.1
abaixo mostra um exemplo de um arquivo PED.
FID IID PAT MAT SEX PHE SNP1 SNP2 SNP3 ...
F145 I12 0 0 1 0 T C G G 0 0 ...
F145 I15 0 0 2 0 C G C C C G ...
F145 I22 I12 I15 1 1 T C C C C G ...
F212 I37 0 0 1 1 A C C A A A ...
... ... ... ... ... ... ... ... ... ...
Tabela 2.1: Exemplo de arquivo PED.
Nos dados representados na Tabela 2.1 cada linha representa um indivíduo da amostra. A
descrição de cada uma das colunas é dada a seguir.
• FID representa a identificação da família. Todos os indivíduos com o mesmo FID pertencem
à mesma estrutura familiar.
• IID é um código que identifica unicamente o indivíduo na amostra.
• As colunas PAT e MAT representam, respectivamente, os códigos do pai e mãe do indivíduo.
Na terceira linha da Tabela 2.1 o indivíduo I22 é filho dos indivíduos I12 (pai) e I15 (mãe).
Os indivíduos cujos pais não estão presentes na amostra (isto é, os indivíduos independentes)
são chamados de fundadores. Os indivíduos cujos pais estão na amostra são chamados de
não-fundadores.
• A coluna SEX informa o sexo do indivíduo. Na codificação padrão 1 representa indivíduos
do sexo masculino e 2 indivíduos do sexo feminino.
6 CONCEITOS 2.5
• PHE representa o fenótipo do indivíduo, por exemplo, se ele é afetado pela característica
do estudo. A codificação do fenótipo varia dependendo do arquivo e deve ser ajustada com
comandos específicos do Plink.
• As colunas seguintes representam os marcadores genéticos (SNPs). Cada par de valores corres-
ponde a um SNP e a ordem dos SNPs no arquivo é especificada no arquivo MAP. Usualmente
as colunas contêm os valores A, C, T e G ou os números 1, 2, 3 e 4 (representando as bases
nitrogenadas, respectivamente). O valor 0 representa um dado faltante (missing).
O arquivo MAP contém o mapa dos marcadores genéticos que aparecem no arquivo de pedigree.
O formato do arquivo é mostrado na Tabela 2.2.
Chromossome RS Genetic Distance Base-pair position
1 rs125458 0 145225
1 rs254785 0 122455
2 rs215544 0 245585
3 rs254158 0 224555
... ... ... ...
Tabela 2.2: Exemplo de arquivo MAP.
No arquivo cada linha exibe informações sobre um marcador genético. A ordem em que os mar-
cadores aparecem no arquivo é a mesma das colunas do arquivo PED. No arquivo MAP a primeira
coluna representa o cromossomo do marcador. A segunda coluna contém o identificador do mar-
cador genético (sua anotação). No caso de SNPs essa identificação tem o formado parecido com o
mostrado na Tabela 2.2. A terceira e quarta colunas são informações de posição do marcador no
cromossomo. Elas representam, respectivamente, a distância em centimorgans e a posição base-pair.
Os formatos discutidos acima exemplificam a forma geral das bases de dados genéticos para o
Plink. O software aceita outros formatos de arquivos (destacamos, em especial, os formatos binários
do Plink que reduzem o tamanho dos arquivos e aumentam a performance do processamento) mas
a discussão dos detalhes de funcionamento do Plink fogem do escopo deste trabalho.
2.4 HapMap e o Projeto Trios de São Paulo
Serão utilizados neste trabalho dados genômicos de duas fontes: o Hapmap e o projeto Trios de
São Paulo (INCOR-USP).
O HapMap [Hapmap2010] é um catálogo público de variantes genéticas mantido por diversas
Instituições. Em sua terceira fase o projeto contém o sequenciamento de 1.457.897 SNPs de 1.397
indivíduos de 11 populações. As populações presentes nas bases do HapMap são descritas na Tabela
2.3 e suas localizações na Figura 2.3.
A base de dados do Projeto Trios de São Paulo, disponibilizado pelo Laboratório de Genética e
Cardiologia Molecular do Instituto do Coração da USP (INCOR-USP), contém o sequenciamento
de 906.487 SNPs de 214 indivíduos da população brasileira. A amostra contém dados de 70 famílias
compostas por pai, mãe e filho (os “trios”) e uma família com os pais e dois filhos. Os filhos (afe-
tados) apresentam uma cardiopatia e os pais (não afetados) estão livres deste acometimento. Neste
trabalho faremos referência à população brasileira e à base de dados do Projeto Trios de São Paulo
utilizando a sigla BRZ.
2.5 LIMPEZA E TRATAMENTO DAS BASES DE DADOS 7
Sigla População e ancestralidade
ASW Residentes do sudoeste dos Estados Unidos com ancentralidade africana
CEU Residentes de Utah com ancestralidade das regiões norte e central da europa
CHD Residentes da região metropolitana de Denver, Colorado com descencência chinesa
GIH Índios guarajati, Houston, Texas
LWK Luhya residentes em Webuye, Kenya
MEX Residentes em Los Angeles, California com ancestralidade mexicana
MKK Maasai residentes em Kinyawa, Kenia
TSI Toscanos, Itália
YRI Yoruba de Ibadan, Nigeria
JPT Japoneses residentes em Tokio, Japão
CHB Chineses residentes em Pequim, China
Tabela 2.3: Populações do projeto HapMap.
Figura 2.3: Localização das populações no globo.
2.5 Limpeza e tratamento das bases de dados
Como visto na seção 2.3, as bases de dados genéticas podem estar com formatos e codificações
diferentes e conter dados faltantes. Desse modo, antes de utilizar as bases de dados para a realiza-
ção das análises é necessária uma etapa de limpeza e preparação dos dados. Estes procedimentos,
recomendados pela literatura, serão discutidos nesta seção.
2.5.1 Minor Allele Frequency (MAF)
Como explicado na seção 2.2 apenas variações de bases nitrogenadas que ocorrem com frequên-
cia maior que 1% são consideradas SNPs. Dessa forma deseja-se retirar das bases de dados genéticas
marcadores cujo “menor alelo” (isto é, a base nitrogenada com menor frequência) tenha frequência
inferior a determinado limite (usualmente 1%). Esse filtro aplicado aos dados recebe o nome de
Minor Allele Frequency ou MAF.
8 CONCEITOS 2.5
Por convenção utilizamos letras maiúsculas para se referir ao menor alelo (alelo mais raro) e
letras minúsculas para o alelo mais frequente.
No Plink utiliza-se o comando --maf [limite] que realiza o filtro MAF na base de dados
utilizando o limite definido pelo parâmetro limite. O Plink faz os cálculos da frequência apenas
sobre os indivíduos fundadores.
2.5.2 Equilíbrio de Hardy-Weinberg
O equilíbrio de Hardy-Weiberg (Hardy-Weinberg equilibrium, em inglês, abreviado para HWE)
propõe que, na ausência de alguns tipos de distúrbios, a frequência alélica de uma população per-
manece constante entre gerações e, deste modo, a distribuição dos alelos no genótipo segue a in-
dependência. Entre os distúrbios que podem invalidar o princípio estão mutações, seleção natural,
acasalamento não aleatório e genetic drift.
Mutações podem introduzir novos alelos em uma população. Seleção natural e acasalamento não
aleatório tendem a manter entre geracões alelos e genes mais “vantajosos”, alterando a frequência
alélica. Genetic drift é a alteração da frequência alélica que pode ocorrer em uma nova geração
devido a fatores aleatórios na seleção de indivíduos para acasalamento, violando o HWE.
Para o procedimento de limpeza desejamos descartar da base de dados os marcadores que não
satisfazem o HWE. Neste contexto, um marcador está em equilíbrio segundo Hardy-Weinberg se
dadas as probabilidades (marginais) dos alelos p(A) e p(a) as probabilidades (conjuntas) genotípicas
obedecem às equações dadas em 2.1. Isso é feito pois usualmente SNPs que não obecedem ao HWE
apresentam erros (técnicos) de genotipagem.
f(AA) = f(A)2
f(Aa) = 2 × f(A) × f(a)
f(aa) = f(a)2 (2.1)
Para verificar se o marcador obedece às equações aplica-se, por exemplo, um teste qui-quadrado
comparando as frequências observadas dos genótipos f(AA), f(Aa) e f(aa) com as estimadas com
base nas probabilidades alélicas p(A) e p(a).
Como exemplo, vamos utilizar o SNP rs990715 da base BRZ. Removendo os indivíduos
não-fundadores e os dados faltantes restam 138 indivíduos que apresentam proporções alélicas
p(a) = 0, 2101 e p(A) = 0, 7898. A Tabela 2.4 mostra as frequências observadas e esperadas obtidas
para cada genótipo. O p-valor do teste é 0, 008772, logo a um nível de significância de 1% conclui-se
que o marcador não obedece ao princípio de Hardy-Weinberg logo o marcador é descartado na
limpeza das bases.
Genótipo Frequência Observada Frequência esperada
aa 0,007246377*138 0,044160891*138
Aa 0,405797101*138 0,331968074*138
AA 0,586956522*138 0,623871035*138
Tabela 2.4: Exemplo do teste para equilíbrio de Hardy-Weinberg.
O Plink oferece alguns comandos para trabalhar com o equilíbrio de Hardy-Weinberg, entre eles:
2.5 LIMPEZA E TRATAMENTO DAS BASES DE DADOS 9
• O comando --hwe [pvalor] analisa/exclui da base os marcadores que não obedecem o
HWE. Este aplica o teste apenas nos indivíduos fundadores. O parâmetro pvalor recebe o
p-valor do teste.
• O comando --hardy gera um arquivo com a análise do teste HWE para todos os marcadores
da base.
2.5.3 Linkage disequilibrium
O coeficiente de desequilíbrio de ligação Linkage disequilibrium mede o grau de associação entre
marcadores em diferentes loci. Devido ao grande número de marcadores disponíveis nas bases de
dados genéticos é conveniente remover aqueles que apresentem alta correlação, reduzindo assim a
dimensão das matrizes de dados.
Suponha dois marcadores bialélicos com a distribuição conjunta apresentada na Tabela 2.5. O
coeficiente de linkage disequilibrium DAB entre os marcadores é dado pela equação 2.2.
A a Totais
B pAB paB pB
b pAb pab pb
Totais pA pa 1
Tabela 2.5: Linkage disequilibrium: exemplo.
DAB = pAB − pApB (2.2)
Note que podemos obter todas as probabilidades conjuntas utilizando DAB e as probabilidades
marginais de acordo com as equações mostradas em 2.3.
pAB = pApB + DAB
pAb = pApb − DAB
paB = papB − DAB
pab = papb + DAB (2.3)
Considerando que o coeficiente de desequilíbrio de ligação DAB mede o desvio da independência
entre alelos de dois locos diferentes (em geral, no mesmo cromossomo), ou seja, é uma medida da
correlação/associação entre os alelos, utiliza-se o coeficiente de correlação de Pearson [Wiki-LD]
para sua interpretação, sendo dado pela equação 2.4.
r =
DAB
pA(1 − pA)pB(1 − pB)
(2.4)
No Plink utiliza-se o comando --indep [N] [M] [VIF] para realizar a remoção de mar-
cadores devido ao coeficiente de Linkage-Disequilibrium. O parâmetro N indica a janela de SNPs
utilizada para aplicação do filtro, deslocada a cada M SNPs. O parâmetro VIF define o fator de
inflação da variância do SNP sob análise em comparação aos outros SNPs da janela. Um VIF igual
1 indica total independência entre os SNPs. Quanto maior o valor do VIF maior a colinearidade
admitida e, consequentemente, menos marcadores serão removidos.
2.5.4 Cromossomos das regiões HLA e de inversão
Existem marcadores em determinadas regiões do genoma humano que podem apresentar estrati-
ficações para determinadas populações. De acordo com [Turner2011] SNPs da região HLA (Human
leukocyte antigen) do cromossomo 6, no locus da lactase localizado no cromossomo 2 e nas regiões
10 CONCEITOS 2.5
de inversão 8p23 e 17q21.31 são fontes de estratificação da população européia.
Para evitar que essa estratificação interfira nos resultados de ancestralidade neste estudo serão
removidos marcadores localizados nessas regiões.
2.5.5 Orientação dos marcadores
As moléculas de DNA possuem orientação: o lado que possui o fosfato é denominado 5’ e o lado
da desoxiribose é denominado 3’. Isso faz com que a fita de DNA também tenha orientação, como
mostrado na Figura 2.4. Por convenção define-se como sentido “positivo” a leitura da fita do DNA
do 5’ para 3’.
Figura 2.4: Orientação das moléculas de DNA. Extraído de [Robinson2010].
Como mencionado anteriormente, as bases de dados genéticas possuem informação de apenas
uma das fitas de cada cromossomo homólogo. Dependendo de como a leitura do DNA foi realizada
o mesmo SNP pode ter sido lido na fita positiva ou negativa em bases de dados diferentes, o que
gera inconsistencias no momento de unificar as bases.
Para as análises no Plink é necessário que essas inconsistências sejam corrigidas. Para isso
utiliza-se o comando --flip que recebe a lista de SNPs onde detectou-se que a leitura das fitas
foi realizada em sentidos diferentes.
Capítulo 3
Componentes principais para obtenção
da ancestralidade em amostras
independentes
Neste capítulo serão discutidos o método de análise de componentes principais e sua aplicação
para obtenção das componentes de ancestralidade em bases de dados genéticos.
3.1 Análise de componentes principais
De maneira intuitiva, lembrando que medidas de (co)variância são formas quadráticas, as com-
ponentes principais de uma amostra são os eixos que maximizam a variabilidade (total) dos dados.
A Figura 3.1 mostra um conjunto de dados nos eixos originais e as coordenadas principais obtidas.
Figura 3.1: Exemplo de coordenadas principais. Extraído de [Wiki-PCA].
11
12 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS
INDEPENDENTES 3.2
Analiticamente as componentes principais são uma combinação linear das variáveis da amostra,
de modo que o conjunto resultante de novas variáveis seja linearmente independente e maximize a
variação total nas primeiras coordenadas. Seja X um conjunto de dados onde os valores das colunas
estão centrados na média. A equação 3.1 mostra o cálculo dos coeficientes para obtenção da primeira
componente principal (a que possui a maior proporção da variância total dos dados).
β1 = argmax
β1 =1
β1X Xβ1 = argmax
β1X Xβ1
β1β1
(3.1)
A k-ésima componente principal pode ser obtida subtraindo dos dados o efeito das (k − 1) com-
ponentes já obtidas e calculando um novo vetor de coeficientes βk como mostrado na equação 3.2.
βk = argmax
βk =1
βkXkXkβk = argmax
βkXkXkβk
βkβk
(3.2)
onde Xk = X − Σk−1
i=1 X(βi)(βi) .
Utilizando resultados envolvendo coeficientes de Rayleigh, as componentes principais podem ser
obtidas diretamente pela decomposição espectral da matriz X X (que é a matriz empírica de co-
variância dos dados da amostra X), isto é, os autovetores podem ser obtidos fazendo X X = UΛU
onde a matriz U é a matriz de auto-vetores (as cargas dos componentes principais) e Λ é a matriz
de autovalores.
3.2 Componentes principais de ancestralidade
Diversos estudos propõem abordagens para a obtenção de componentes de ancestralidade para
amostras com indivíduos independentes. Entre eles citamos [Bauchet2007] e [Chae2006] que pro-
põe o uso de análise de coordenadas principais (escalonamento multidimensional) e [Price2006] e
[Zhang2003] que propõe o uso de análise de componentes principais. A vantagem dos métodos de
componentes principais, de acordo com [Duarte2015], é que os vetores obtidos são independentes e
ortogonais, o que facilita a análise dos resultados.
Seja GN×M a matriz de dimensão N ×M onde N representa o número de indivíduos (linhas) da
amostra e M o número de marcadores genéticos (colunas). Devido à independência dos indivíduos
não levamos em consideração as informações de estrutura familiar.
Cada elemento gij representa o valor genotípico do i-ésimo indivíduo no j-ésimo marcador ge-
nético (SNPs, neste trabalho) que pode assumir os valores 0, 1 e 2 (ou missing), representando a
quantidade (contagem) de alelos com menor frequência. O arquivo neste formato é obtido expor-
tando, no PLINK, a base de dados para do formato PED/MAP (apresentado na seção 2.3) para o
formato tabular, adequado para as análises no R.
A partir de GN×M obtemos a matriz XN×M que representa os dados normalizados pelas colunas.
Os elementos xij são dados pela equação 3.3 onde ¯gj e sj são, respectivamente, a média aritmética
e o desvio padrão do j-ésimo marcador.
xij =
1
√
N
gij − ¯gj
sj
(3.3)
3.4 PREPARAÇÃO DOS DADOS 13
Valores missing são substituídos por zero na matriz X (ou pela média da coluna na matriz G).
O método proposto por [Zhang2003] faz a decomposição espectral da matriz ΣM×M = X X (ma-
triz de covariância entre os marcadores genéticos). O método de [Price2006] obtém as componentes
principais a partir da decomposição da matriz ΣN×N = XX , que é a matriz de covariância/dis-
tância entre os indivíduos. Pela propriedade dual dos espaços linha e coluna de matrizes estas duas
abordagens são equivalentes. Como em estudos de associação genômica normalmente o número de
marcadores é muito maior que o número de indivíduos (isto é, M >> N) será utilizado o método
proposto por Price, que trabalha com matrizes de dimensão menor.
Segundo Price, as componentes de ancestralidade são obtidas dos autovalores da decomposição
espectral da matriz XX , dada por ΨN×N = UΛΨU . Em estudos de associação genômica, Price
recomenda utilizar as 10 componentes principais mais significantes (isto é, com os maiores autova-
lores) como covariáveis nos modelos de regressão, obtidas da matriz U resultante da decomposição
espectral.
3.3 Preparação dos dados
Nesta seção serão descritos os passos de tratamento e limpeza das bases de dados utilizadas
neste estudo (HAPMAP e BRZ) para a obtenção dos componentes principais de ancestralidade.
O primeiro filtro aplicado é o MAF. Neste passo o MAF deve ser aplicado para cada popula-
ção separadamente. O arquivo BRZ contém apenas a população brasileira, logo isso pode ser feito
diretamente. O arquivo HAPMAP contém as demais 11 populações, que precisam ser separadas e
processadas individualmente.
Os demais passos realizados são descritos a seguir.
1. Remoção de indivíduos com índice de dados faltantes superior a 5%;
2. Remoção de SNPs monomórficos, com o mesmo genótipo para todos os indivíduos da amostra
(sem variação);
3. Remoção de SNPs em desacordo com as hipóteses do equilíbrio de Hardy-Weinberg ao nível
de significância de 5% (detalhes na seção 2.5.2);
4. Remoção de SNPs em dequilíbrio de ligação: para finalidade de cálculo de coeficientes de
ancestralidade não foi realizada a limpeza segundo este critério;
5. Remoção dos SNPs da região HLA (ver seção 2.5.4) e dos cromossomos X e Y.
Após a limpeza e unificação das bases os dados permaneceram 398.136 SNPs e 1.330 indivíduos.
3.4 Script R para obtenção das componentes principais
Após a limpeza dos dados genotípicos as componentes principais são obtidas utilizando o soft-
ware R. O script a seguir é o responsável pela geração das componentes principais que são armaze-
nadas na matriz U criada. Nesta matriz a primeira coluna representa a componente principal mais
relevante (com maior auto-valor), a segunda coluna, a segunda coordenada principal mais relevante
e assim por diante.
14 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS
INDEPENDENTES 3.5
§
library ( "data . table " )
rm( l i s t=ls () )
gc ()
rawFile <− "06_MERGE.RAW"
targetFolder <− "C: Users  lucas . rodrigues DesktopTCC bases_f u l l  bases_
tratadas_v2"
# Define o d i r e t ó r i o de trabalho
setwd( targetFolder )
# Faz a l e i t u r a do arquivo de entrada
data <− fread ( rawFile , header=T, drop=c ( 1 : 6 ) )
G <− data . matrix(data)
# S u b s t i t u i os NAs pela média da coluna
medias <− colMeans (G, na .rm=TRUE) ;
for ( i in 1: ncol (G) ) {
G[ , i ] [ is . na(G[ , i ] ) ] <− medias [ i ] ;
}
# Número de indivíduos na amostra
N <− nrow(G)
# Faz a normalização da matriz por colunas
X = (1/sqrt (N) ) ∗ scale (G)
# Calcula a matriz de covarianvia amostral
COV = tcrossprod (X)
# Calcula a matriz de covariância amostral dos dados padronizados
decompCOV <− eigen (COV)
U <− decompCOV$ vectors
values <− decompCOV$values
¦ ¥
3.4.1 Desempenho do script
O tamanho da base de dados pode oferecer alguns desafios no momento de executar o script. O
R armazena estruturas de matrizes em memória, logo é necessário que o computador onde os dados
serão processados tenha a capacidade de comportar os cálculos.
Uma forma de otimizar o script é remover os objetos que não serão mais utilizados (com o co-
mando rm seguido de uma chamada do garbage collector). Por exemplo, após o cálculo da matriz X
a matriz G não será mais utilizada e pode ser removida. Outra possibilidade é procurar por pacotes
que ofereçam funções com melhor performance, como o uso da função fread para a leitura do
arquivo e tcrossprod para a multiplicação de uma matriz pela sua transposta.
Esgotadas as alternativas de otimização de uso de memória resta executar o script em uma
máquina com maior disponibilidade de recusros (como um servidor, por exemplo). Para as análises
realizadas neste trabalho foi utilizada uma máquina com 12Gb de memória RAM.
3.5 Resultados
A Figura 3.2 mostra os indivíduos das bases de dados Trios de São Paulo e HapMap plotados
segundo as duas primeiras componentes principais. A cor do ponto identifica a população à qual o
3.5 RESULTADOS 15
indivíduo pertence.
Nota-se que apenas nas duas primeiras componentes já é possível identificar uma separação
clara entre as 11 populações do HAPMAP. A população brasileira, por sua vez, está distribuída
entre as populações com ancestralidade Européia e Africana, com alguns indivíduos tendendo para
as populações com ancestralidade asiática.
Figura 3.2: Indivíduos segundo a primeira e segunda coordenadas de ancestralidade.
Obtidos os valores das componentes principais de ancestralidade os mesmos poderão ser incluí-
dos nos modelos de regressão de estudos de associação genômica, reduzindo o viés que populações
miscigenadas (como a brasileira) pode causar.
16 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS
INDEPENDENTES 3.5
Capítulo 4
Componentes principais para obtenção
da ancestralidade em amostras com
estrutura familiar
Neste capítulo será abordada a análise em amostras onde leva-se em consideração a estrutura
familiar entre os indivíduos. Seja uma amostra com N indivíduos pertencentes a F famílias onde,
para cada indivíduo, estão disponíveis os valores de p variáveis representando os marcadores ge-
néticos (SNPs). De maneira geral, podemos modelar a resposta de cada variável de acordo com o
modelo linear misto poligênico dado pela equação 4.1.
yfj = µj + gfj + efj (4.1)
No modelo, yfj é um vetor coluna contendo o valor da j-ésima variável para todos os nf in-
divíduos da f-ésima família da amostra. Esse modelo é composto pela média geral da variável j,
µj (efeitos de covariáveis podem ser incluídos no componente fixo do modelo), um componente
aleatório de variação entre as famílias gfj, chamado de efeito poligênico, e o componente aleatório
devido a erros, associado à variação dentro da família, efj, todos com dimensão nf × 1.
Assume-se que E(gfj) = 0, E(efj) = 0, os efeitos aleatórios (gfj e efj) são independentes, a
matriz de covariância do efeito poligênico é dada por Cov(gfj) = 2Φf σ2
gj e a matriz de covariância
do erro é dada por Cov(efj) = If σ2
ej, onde 2Φf é a matriz kinship (detalhada na seção 4.1) e σ2
gj e
σ2
ej são, respectivamente, as variâncias do efeito poligênico e erro da j-ésima variável (j = 1, ..., p).
Tomando Yf = (yf1, yf2, ..., yfp) o vetor coluna de dimensão nf p × 1 contendo os valores de
todas as variáveis para todos os indivíduos da f-ésima família e considerando um modelo linear
misto poligênico multivariado, temos que E(Yf ) = 1f ⊗ µ e Cov(Yf ) = 2Φf ⊗ Σg + If ⊗ Σe em que:
• “⊗” representa o produto de Kronecker entre matrizes;
• If representa a matriz identidade de dimensão nf ;
• 1f representa um vetor unitário de dimensão nf p×1 (isto é, um vetor onde todas suas entradas
são iguais a 1);
• µ representa o vetor de médias das p variáveis; e
• Σg e Σe são as matrizes de covariância do efeito poligênico e erro, respectivamente (com
dimensão p × p).
17
18 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM
ESTRUTURA FAMILIAR 4.2
Representamos então a amostra como o vetor coluna Y = (Y1, Y2, ..., YF ) de dimensão Np × 1
com E(Y ) = 1N ⊗ µ e Cov(Y ) = diag(2Φf ) ⊗ Σg + IN ⊗ Σe.
Para a obtenção das componentes principais de ancestralidade é necessário estimar as matrizes
Σg e Σe (realizada aqui utilizando os estimadores de momentos propostos por [Oualkacha2012]). A
partir das estimativas pode-se obter as componentes principais por meio da decomposição espectral
das matrizes Σg e Σe ou ainda uma combinação delas, como o componente principal de herdabili-
dade obtido de Σ−1
e Σg.
4.1 Kinship matrix
A matriz de parentesco ou 2*kinship matrix representa a dependência genética entre membros
de uma família. Cada entrada da matriz contém um número entre 0 e 1 onde 0 representa inde-
pendência entre os indivíduos e 1 representa total dependência (gêmeos idênticos, por exemplo). A
Tabela 4.1 mostra o coeficiente da matriz para algumas relações de parentesco.
Grau de parentesco Coeficientes
Gêmeos idênticos, clones 20 = 1
Pai/Mãe e filho 2−1 = 0, 5
Irmãos de mesmos pais 2−2 + 2−2 = 0, 5
Meio-irmãos 2−2 = 0, 25
Avós e netos 2−2 = 0, 25
Primos de primeiro grau 2 × 2−4 = 0, 125
Indivíduos independentes 0
Tabela 4.1: Coeficientes da matriz de relacionamento 2*kinship para algumas relações de parentesco, ex-
traído de https:// en.wikipedia.org/ wiki/ Coefficient_of_relationship.
Como exemplo, seja a família representada pelo heredograma da Figura 4.1. Assume-se que não
há incesto, logo 2 ∗ kinship(1, 2) = 0 e 2 ∗ kinship(3, 4) = 0. O indivíduo 3 é filho do par (3, 4),
logo kinship(1, 3) = 2 ∗ kinship(2, 3) = 0, 5. O indivíduo 2 é avô dos indivíduos de 5 a 6, logo o
coeficiente é 0,25. A matriz (em 4.2) exibe a matriz 2*kinship completa para o heredograma da
Figura 4.1, onde cada entrada 2 ∗ kij representa a relação de parentesco entre os indivíduos i e j.
2Φf =













1 0 0, 5 0 0, 25 0, 25 0, 25 0, 25
0 1 0, 5 0 0, 25 0, 25 0, 25 0, 25
0, 5 0, 5 1 0 0, 5 0, 5 0, 5 0, 5
0 0 0 1 0, 5 0, 5 0, 5 0, 5
0, 25 0, 25 0, 5 0, 5 1 0, 5 0, 5 0, 5
0, 25 0, 25 0, 5 0, 5 0, 5 1 0, 5 0, 5
0, 25 0, 25 0, 5 0, 5 0, 5 0, 5 1 0, 5
0, 25 0, 25 0, 5 0, 5 0, 5 0, 5 0, 5 1













(4.2)
4.2 Estimadores para as matrizes de covariância
Para estimação das matrizes de covariância dos efeitos poligênico e aleatório [Oualkacha2012]
propõem o uso de estimadores de momentos baseados em ANOVA. Sejam Sw e Sb as matrizes como
definidas pelas equações 4.3 e 4.4.
4.3 ESTIMADORES PARA AS MATRIZES DE COVARIÂNCIA 19
Figura 4.1: Exemplo de estrutura familiar representada por um heredograma. Círculos representam mulheres
e quadrados representam homens.
Sw = Σf Σi(yif − ¯yf )(yif − ¯yf ) (4.3)
Sb = Σf nf (¯yf − ¯y)(¯yf − ¯y) (4.4)
A matriz Sb é interpretada como a matriz da soma de quadrados e produtos cruzados referente
à variação que ocorre entre famílias (o índice b é a abreviação de between) e a matriz Sw representa
a variação entre os indivíduos dentro das famílias (o índice w é a abreviação de within).
A partir dessas matrizes [Oualkacha2012] obteve os estimadores para as matrizes Σg e Σe, mos-
tradas, respectivamente, nas equações 4.5 e 4.6.
ˆΣg =
Sb
F−1 − Sw
N−F
τc−
τb
N
F−1 − τa−τc
N−F
(4.5)
ˆΣe =
1
N − F
Sw −
τa − τc
N − F
ˆΣg (4.6)
Onde:
• τa = F
f=1 τ
(f)
a
• τb = F
f=1 τ
(f)
b
• τc = F
f=1
1
nf
τ
(f)
b
• τ
(f)
a = Tr(2Φ(f)) (Tr é a função traço da matriz)
• τ
(f)
b =
nf
j=1
nf
k=1 2Φ
(f)
jk
[Konishi1992] propuseram um estimador semelhante onde se utiliza 2Φ(f) = 1nf
1nf
, isto é,
considera-se que todos os membros de uma mesma família possuem o mesmo grau de parentesco e
igual a 1. Isto equivale a delineamentos que consideraram somente dados de irmãos. Nota-se ainda
que, neste caso, o ajuste do modelo misto poligênico é o mesmo que supor os indivíduos indepen-
dentes (decorrente da equivalência entre os modelos de efeitos fixos e aqueles com somente um fator
aleatório e matriz de correlação uniforme).
20 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM
ESTRUTURA FAMILIAR 4.3
4.3 Componentes principais de ancestralidade e herdabilidade
A partir das matrizes de covariância amostral, estimativas de Σg e Σe, podem ser obtidas as
componentes principais de ancestralidade através da decomposição espectral de Σg, Σe ou da soma
das matrizes Σt = Σg + Σe. Outra alternativa é obter as componentes principais de herdabilidade
(sigla PCH, Principal components of heritability), método proposto por [Ott1992]. A equação 4.7
mostra a obtenção dos coeficientes da primeira componente.
β1 = argmax
β1 =1
β1Σgβ
β1Σeβ
= argmax
β1
β1Σgβ
β1(Σe + Σg)β
(4.7)
As componentes obtidas pela decomposição das matrizes Σg, Σe ou Σt representam as combi-
nações lineares dos marcadores genéticos da amostra que maximizam a variabilidade entre famílias,
dentro das famílias e a variabilidade total, respectivamente. Já as componentes da PCH maximizam
a herdabilidade, que mede a “proporção” da variabilidade total que é devida à estrutura familiar. A
Figura 4.2 ilustra estes componentes principais em termos de direções ótimas de formas quadráticas.
Figura 4.2: Efeito do parâmetro de penalização λ na direção das componentes principais de herdabilidade.
Em bases de dados esparsas e com grande número de variáveis, como o caso das utilizadas em
estudos de associação genômica, a obtenção da decomposição espectral da matriz 4.7 não é direta-
mente aplicável. Segundo [Wang2007] a alta dimensionalidade dos dados fazem com que a matriz
de covariância entre indivíduos Σe apresente autovalores nulos, impossibilitando a decomposição
espectral envolvendo sua inversa, ou seja, o procedimento de maximização para obtenção do auto-
vetor de coeficientes. Para contornar essa dificuldade [Wang2007] propõem o uso de um parâmetro
de penalização λ, dessa forma o vetor de coeficientes da primeira componente principal pode ser
obtido como mostra a equação 4.8.
β1 = argmax
β1 =1
β1Σgβ1
β1Σeβ1 + λ β1
2 (4.8)
Como não há uma variável resposta para a estimação do parâmetro λ não é possível aplicar
procedimentos de minimização de erro, logo o valor do parâmetro pode ser obtido de duas maneiras:
realizar análises testando diversos valores de λ para verificar qual apresenta o ajuste desejado ou,
como proposto por [Wang2007], realizar o procedimento de cross-validation como mostrado na
equação 4.9.
λCV = argmax
λ
1
N
k
(ˆβ1k
λ ) Σ2k
g (ˆβ1k
λ )
(ˆβ1k
λ ) Σ2k
e (ˆβ1k
λ )
(4.9)
4.4 RESULTADOS 21
onde:
• k é um índice escolhido de forma aleatória que cria uma partição das famílias em duas partes;
• N é o número total de partições aleatórias criadas;
• ˆβ1k
λ é a componente principal de herdabilidade calculada utilizando o valor λ na primeira
metade da k-ésima partição;
• Σ2k
g e Σ2k
e são, respectivamente, as matrizes de variação entre famílias e entre indivíduos
calculadas na segunda metade da k-ésima partição.
4.4 Resultados
As análises desta seção foram realizadas utilizando a base de dados “Trios de São Paulo” com os
seguintes filtros: MAF >= 0,05, p-valor=0,05 para o teste de equilíbrio de Hardy-Weinberg; teste
do equilíbrio de ligação utilizando janela de 100 SNPs com VIF=1,01 e deslocamento de 2 SNPs.
Foram também removidos SNPs da região HLA e áreas de inversão (ver seção 2.5.4). Após os filtros
restaram 10.584 SNPs na análise.
Neste caso, a estrutura familiar consta apenas do trio pai, mãe e filho afetado. Também não foi
usada a base de dados do Projeto HapMap. Nas análises realizadas no capítulo anterior, foram con-
siderados apenas os dados dos pais para garantir amostra de indivíduos independentes e agregou-se
os dados das 11 populações do HapMap.
A Figura 4.3 mostra os resultados da decomposição das matrizes Σg e Σe segundo o método
proposto por [Oualkacha2012].
Devido a estrutura familiar pequena na base de dados (composta apenas pelo trio pai, mãe e
filho) espera-se que os resultados sejam próximos aos obtidos aplicando a análise considerando in-
divíduos independentes. A Figura 4.4 mostra a comparação das coordenadas da primeira e segunda
componentes principais obtidas de acordo com cada um dos métodos. O coeficiente de correlação
de Pearson obtido na comparação das coordenadas entre os métodos foi de aproximadamente 0,98,
para ambas as componentes principais.
Para evidenciar a diferença entre as abordagens considerando amostras independentes e com
dependência, a estrutura familiar da base de dados dos Trios de São Paulo foi aumentada via simu-
lação. Para cada trio pertencente à base original foi selecionado, de forma aleatória, um indivíduo
da base de dados do HapMap e foram gerados três novos indivíduos, conforme exemplificado pelo
heredograma da Figura 4.5.
Como resultado a nova amostra é composta de 483 indivíduos, dos quais 207 pertencem à base
de dados originais, 69 são indivíduos “emprestados” (selecionados aleatoriamente) da base HapMap
e 207 são filhos gerados via simulação. Devido à união das bases 789 SNPs foram descartados por
não existirem na amostra do HapMap, logo para os dados da simulação foram utilizados 9.795 SNPs.
A Figura 4.6 mostra os indivíduos da base de dados estendida segundo as duas primeiras co-
ordenadas principais considerando a decomposição espectral das matrizes Σg e Σe e a figura 4.7
apresenta as componentes principais obtidas utilizando a metodologia para indivíduos independen-
tes.
É interessante notar que neste caso os componentes principais extraídos de Σg identificam os in-
divíduos da população brasileira com valores intermediários entre as populações africanas, europeias
22 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM
ESTRUTURA FAMILIAR 4.4
Figura 4.3: (a) Duas primeiras componentes principais da decomposição espectral da matriz Σg, (b) duas
primeiras componentes principais da decomposição espectral da matriz Σe. Destacado, em ambos os gráficos,
um dos trios da base de dados. Os quadrados representam os pais e o losango representa o filho.
Figura 4.4: Comparação das coordenadas da primeira (à esquerda) e segunda (à direita) componentes
principais segundo o método proposto por [Oualkacha2012], via a decomposição da matriz Σg, versus a
análise considerando indivíduos independentes.
e orientais, como é esperado pela sua história de miscigenação, indicando que estes são coeficientes
de ancestralidade. Já os componentes extraídos de Σe simplesmente promovem a separação dos
indivíduos em três grupos, os da população brasileira, aqueles selecionados do HapMap e os filhos
gerados. Essa informação simplesmente recupera a estrutura com que os dados foram construídos.
4.4 RESULTADOS 23
Figura 4.5: Expansão da estrutura familiar dos trios via simulação, utilizando um indivíduo selecionado
aleatoriamente da base HapMap.
Figura 4.6: Indivíduos da base de Trios extendida plotados segundo as duas primeiras componentes princi-
pais de ancestralidade segundo a (a) decomposição da matriz Σg e (b) decomposição da matriz Σe. As áreas
circuladas mostram a ancestralidade dos indivíduos do HapMap.
24 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM
ESTRUTURA FAMILIAR 4.4
Figura 4.7: Indivíduos da base de Trios extendida plotados segundo as duas primeiras componentes princi-
pais de ancestralidade na abordagem para amostras independentes.
Capítulo 5
SNPminer
O SNPminer é uma ferramenta de programação visual desenvolvida em Java 1.8 (em conjunto
com o pacote JavaFX) que tem como objetivos:
• Disponibilizar em um único ambiente diversos softwares de tratamento e análise de dados
genéticos (em especial o Plink e o R);
• Permitir que profissionais sem familiaridade com linguagens de programação e execução de
scripts possam realizar análises em bases de dados genéticos;
• Facilitar a incorporação de novos softwares à interface.
Para facilitar a divulgação do trabalho e o futuro desenvolvimento do software por terceiros o
software foi desenvolvido completamente em inglês (isto é, a interface gráfica e o código fonte).
O funcionamento do software se dá através de nós (nodes) que representam tarefas a serem
executadas sobre bases de dados genéticos. Por tarefa entende-se qualquer ação de alteração, ex-
tração ou análise. Quando conectados, os nós criam um fluxo (stream) que representa a sequência
de processamento dos dados. A Figura 5.1 mostra a janela do SNPminer com um fluxo simples de
tratamento e unificação de duas bases de dados.
O SNPminer não realiza operações de análise de dados. A execução de cada nó faz a chamada
de um software externo (como o Plink) e utiliza as especificações do nó para localizar as bases de
dados a serem trabalhadas e definir a ação que deve ser realizada.
5.1 Nós e fluxo
Os nós são as unidades básicas de funcionamento do SNPminer. Cada nó representa um co-
mando a ser executado por um software, cuja parametrização pode ser alterada pelo usuário de
acordo com o metamodelo definido. As conexões entre os nós definem o fluxo de análise dos dados.
A Figura 5.2 mostra a janela de propriedades de um nó e suas seções. Na seção General o
usuário encontra informações sobre as entradas aceitas pelo nó no fluxo, as saídas geradas, a docu-
mentação do nó, o software que o nó executa e uma seção onde o usuário pode inserir comentários
personalizados.
A guia Parameters contém os parâmetros do nó. Os parâmetros são utilizados para construir
os comandos do software que o nó executa.
25
26 SNPMINER 5.1
Figura 5.1: Janela principal do SNPminer.
Na guia Execution Log se encontra o histórico de execuções do nó. Essa guia auxilia o usuário a
estimar quanto tempo o nó leva para ser executado (bases de dados genéticos podem levar bastante
tempo para serem processadas) baseado no tempo das execuções anteriores.
A última guia, Generated Files, exibe os arquivos gerados pelo nó. Atualmente o SNPminer é
compatível apenas com arquivos de texto e imagens.
Figura 5.2: Janela de propriedades dos nós.
5.2 METAMODELO 27
O fluxo é a “tela” onde os nós são colocados. Para criar um nó basta arrastar o nó da paleta até
o fluxo. O fluxo pode ser salvo em um arquivo (de extensão .snpminer) para poder ser carregado
posteriormente ou enviado a outros usuários.
Do mesmo modo que os nós, os fluxos também possuem uma janela de propriedades (mostrada
na Figura 5.3). A propriedade mais importante do fluxo é seu diretório, que define onde os arquivos
gerados pela execução dos nós serão gravados.
Figura 5.3: Janela de propriedades do fluxo.
5.2 Metamodelo
O funcionamento dos nós no SNPminer é especificado segundo um metamodelo. No metamo-
delo definem-se quais os tipos de arquivo que o nó receberá como entrada, qual o software que será
executado, quais os parâmetros que estarão na linha de comando para execução do software e quais
os tipos de arquivos que serão gerados se a execução for completada com sucesso. A Figura 5.4
esquematiza um nó e seus componentes.
A especificação dos nós disponíveis fica armazenada no arquivo “metanodesSpecifications.xml”
na pasta .snpminer localizada dentro da pasta do usuário no sistema operacional e é carregada
ao iniciar o programa. Se o programa não encontrar o arquivo ele o cria utilizando a especificação
padrão de nós.
O arquivo de especificação do metamodelo é um arquivo XML (Extensible Markup Language).
Esse arquivo contém os dados de todos os nós disponíveis para uso no SNPminer. Para cada nó
devem ser especificadas características de exibição do nó (como nome, descrição e imagem que apa-
rece no fluxo), o software que é utilizado quando o nó é executado, as entradas/saídas geradas pelo
nó e como o SNPminer montará o comando para que o software seja executado. Abaixo o exemplo
da estrutura geral do arquivo XML.
28 SNPMINER 5.2
Figura 5.4: Componentes da especificação de um nó no SNPminer.
§
<?xml version=" 1.0 " encoding="ISO−8859−1" ?>
<metanodeList>
<metanode>
<!−− e s p e c i f i c a ç õ s do nó −−>
</metanode>
<metanode>
<!−− e s p e c i f i c a ç õ s do nó −−>
</metanode>
. . .
</ metanodeList>
¦ ¥
Nas próximas seções serão descritos cada um desses itens juntamente com o código XML que o
representa.
5.2.1 Caractetísticas de exibição e identificação do nó
Os nós possuem duas informações relativas à identificação e quatro informações de exibição.
Cada uma das características é descrita a seguir, de acordo com sua respectiva tag XML.
• mn:name contém o nome interno do nó, utilizado para decidir se dois nós são do mesmo
tipo. O arquivo de especificação não deve conter dois nós com o mesmo nome. O nome deve
conter apenas letras minúsculas no caractere (underline).
• mn:uuid é um identificador universal único (UUID) utilizado para identificar um nó de forma
independente de seu nome (algo equivalente a “versão” da especificação do nó). Se dois nós
foram especificados com um mesmo nome (em momentos diferentes, pois em um arquivo de
especificação não pode haver dois nós com mesmo nome) esse valor é utilizado para que o
SNPminer saiba que, mesmo com o mesmo nome, não se trata do mesmo nó.
• mn:fancyname é o nome que será exibido na paleta e no fluxo. Esse nome pode conter
caracteres especiais, espaços, letras e números.
5.2 METAMODELO 29
• mn:class define em qual seção da paleta o nó será exibido. Essa TAG assume quatro valores:
DATA_MANIPULATION, DATA_ANALYSIS, VISUALIZATION ou MISCELLANEOUS.
• mn:image define uma imagem para representar o nó dentre as 47 imagens disponíveis no
SNPminer. A Tabela 5.1 lista os nomes das imagens que devem ser utilizados nesta tag.
• mn:documentation é utilizada para descrever o funcionamento do nó. Recomenda-se que
a descrição do nó seja a mais detalhada possível. Não é possível inserir objetos (imagens,
tabelas, etc.) na descrição. Se houver necessidade de tais itens recomenda-se criar uma página
html com a documentação completa e inserir na especificação do nó um link para a página.
Imagem Nome Imagem Nome
ADD OBJECTS
ANALYSE OK
BARPLOT OPEN
CANCEL PAUSE
CIRCLE PROPERTIES
CMD QUESTION
COMMENT_QUESTION RECODE
CUBE REDO
DATA REMOVE
DNA RUN
DOCUMENT SAVE
EXPORT SEND
FILTER SOFTWARE
FLUSH STAR
GEAR STOP
GEARS STREAM
HELP TERMINAL
HISTORY TRANSFER
IMPORT UNDO
INFO VISUALIZE
LIST WEB
MERGE WRITE
MISC XML
NEW
Tabela 5.1: Lista de imagens disponíveis no SNPminer.
Abaixo o exemplo do código XML especificando as características de identificação e exibição de
um nó.
30 SNPMINER 5.2
§
<metanode>
<mn: uuid >79d88e03 −0799−4d03−85d3−44540af16126 </mn: uuid>
<mn: name>plinkfile_map_ped </mn: name>
<mn: fancyname>Plink MAP/PED f i l e </mn: fancyname>
<mn: class>DATA_MANIPULATION</mn: class>
<mn: image>DNA</mn: image>
<mn: documentation ><![CDATA[ Alguma documentação a r e s p e i t o do funcionamento do
nó .]] >
</mn: documentation>
<!−− demais e s p e c i f i c a ç õ e s do nó . . . −−>
</metanode>
¦ ¥
5.2.2 Recursos de software
O recurso de software (software resource, em inglês) representa o programa que será executado
pelo nó. Cada nó deve conter seu próprio recurso de software. Se mais de um nó utiliza o mesmo
software ele deve ser especificado em cada um deles.
O recurso de software possui três atributos: um identificador, que é um nome simples utilizado
internamente pelo SNPminer, uma descrição (label) contendo o nome que será exibido para o usuá-
rio e o path, que contém o endereço do arquivo executável no computador onde o SNPminer está
sendo executado.
Como o SNPminer executa os nós via linha de comando é necessário que os recursos de software
aceitem essa forma de execução (como o Plink). No caso do R utiliza-se o “RScript.exe” (na
versão Windows) que permite a execução de scripts via linha de comando.
A especificação do recurso de software é realizada na tag mn:softwareResource. No código a
seguir é exibido um exemplo de especificação de um nó que utiliza o Plink como recurso de software.
§
<metanode>
<mn: uuid >79d88e03 −0799−4d03−85d3−44540af16126 </mn: uuid>
<mn: name>plinkfile_map_ped </mn: name>
<mn: fancyname>Plink MAP/PED f i l e </mn: fancyname>
<mn: class>DATA_MANIPULATION</mn: class>
<mn: image>DNA</mn: image>
<mn: documentation ><![CDATA[ Alguma documentação a r e s p e i t o do funcionamento do
nó .]] >
</mn: documentation>
<mn: softwareResource id="1">
<sr : name>plink </sr : name>
<sr : label ><![CDATA[ Plink v1.7]] > </ sr : label>
<sr : f i l e ><![CDATA[C: Users  lucas . rodrigues  P l i n l  plink . txt ]]></ sr : f i l e >
</mn: softwareResource>
<!−− demais e s p e c i f i c a ç õ e s do nó . . . −−>
</metanode>
¦ ¥
A tag mn:softwareResource possui o atributo id que representa um identificador numérico
único na especificação do nó entre todas as tags que também necessitam de um atributo identifica-
dor. Como a tag do recurso de software é a primeira que necessita do identificador usualmente ela
recebe o valor 1 (embora possa receber qualquer valor, desde que único).
5.2 METAMODELO 31
5.2.3 Data Types e Data Groups
Para que os nós sejam conectados no fluxo de maneira consistente é necessário definir quais
tipos de arquivo o nó pode receber como entrada e saída. Esses dados permitem, por exemplo, que
o SNPminer impeça que um nó que gere uma base de dados em arquivos do tipo PED e MAP possa
ser conectado com um nó que receba como entrada um arquivo em formato tabular.
Um Data Type (ou tipo de arquivo) representa um arquivo que é utilizado como entrada ou
saída por algum dos recursos de software. Por convenção representamos um tipo de arquivo por sua
extensão, dessa forma os arquivos PED, MAP, JPG (arquivo de imagem), por exemplo, representam
data types no SNPminer.
Alguns nós recebem ou geram, simultaneamente, mais de um arquivo tipo de arquivo (citamos
como exemplo as bases de dados no formato Plink que são compostas por mais de um arquivo).
Para que o metamodelo possa absorver essa característica, a entrada e saída de informações dos nós
é definida em termos de grupos de dados (data types, em inglês). Um grupo de dados é composto
por um ou mais tipos de arquivo.
Os tipos de arquivos e grupos de dados utilizados pelo nó devem ser especificados utilizando,
respectivamente, as tags mn:dataTypes e mn:dataGroups.
A tag mn:dataTypes recebe uma lista de tipos de arquivos. Cada tipo de arquivo deve conter
o nome do tipo (usualmente a extensão do arquivo, mas não isso não é obrigatório) e uma descrição
de que informação é representada no arquivo. Como exemplo, o código a seguir mostra a definição
dos arquivos PED e MAP do Plink como tipos de arquivos.
§
<mn: dataTypes>
<dt : dataType id="2">
<dt : extension >ped</dt : extension >
<dt : description ><![CDATA[ Plink PED ( Pedigree ) f i l e s ]]></dt : description >
</dt : dataType>
<dt : dataType id="3">
<dt : extension >map</dt : extension >
<dt : description ><![CDATA[ Plink MAP f i l e s ]]></dt : description >
</dt : dataType>
</mn: dataTypes>
¦ ¥
Cada tipo de arquivo é definido utilizando a tag dt:dataType, que necessita de um id único,
da mesma maneira que mn:softwareResource.
Após a definição dos tipos de arquivo podem ser definidos os grupos de dados. A especificação
dos grupos de dados simplesmente lista os ids dos tipos de arquivo que fazem parte do grupo.§
<mn: dataGroups>
<dg : dataGroup id="5">
<dg : dataTypeId>2</dg : dataTypeId>
<dg : dataTypeId>3</dg : dataTypeId>
</dg : dataGroup>
</mn: dataGroups>
¦ ¥
No exemplo acima é definido um grupo de dados que contém os tipos de arquivo com id 2 e 3,
isto é, o grupo de dados é composto pelos tipos de arquivo PED e MAP. A tag dg:dataGroup
necessita de um identificador único.
O código abaixo mostra o exemplo de um nó onde estão especificadas as informações de identi-
32 SNPMINER 5.2
ficação e exibição, recurso de software, tipos de arquivos e grupos de dados.
§
<metanode>
<mn: uuid >79d88e03 −0799−4d03−85d3−44540af16126 </mn: uuid>
<mn: name>plinkfile_map_ped </mn: name>
<mn: fancyname>Plink MAP/PED f i l e </mn: fancyname>
<mn: class>DATA_MANIPULATION</mn: class>
<mn: image>DNA</mn: image>
<mn: documentation ><![CDATA[ Alguma documentação a r e s p e i t o do funcionamento do
nó .]] >
</mn: documentation>
<mn: softwareResource id="1">
<sr : name>plink </sr : name>
<sr : label ><![CDATA[ Plink v1.7]] > </ sr : label>
<sr : f i l e ><![CDATA[C: Users  lucas . rodrigues  P l i n l  plink . txt ]]></ sr : f i l e >
</mn: softwareResource>
<mn: dataTypes>
<dt : dataType id="2">
<dt : extension >ped</dt : extension >
<dt : description ><![CDATA[ Plink PED ( Pedigree ) f i l e s ]]></dt : description >
</dt : dataType>
<dt : dataType id="3">
<dt : extension >map</dt : extension >
<dt : description ><![CDATA[ Plink MAP f i l e s ]]></dt : description >
</dt : dataType>
</mn: dataTypes>
<mn: dataGroups>
<dg : dataGroup id="5">
<dg : dataTypeId>2</dg : dataTypeId>
<dg : dataTypeId>3</dg : dataTypeId>
</dg : dataGroup>
</mn: dataGroups>
<!−− demais e s p e c i f i c a ç õ e s . . . −−>
</metanode>
¦ ¥
5.2.4 InputCollections e output data group
As entradas e saídas de um nó no fluxo são definidas em termos de grupos de dados. Um nó
pode receber como entrada zero, um ou mais grupos de dados e gerar zero ou um único grupo de
dado como saída para ser propagado para o próximo nó no fluxo. Neste contexto, os termos entrada
e saída se referem à propagação de dados no fluxo entre os nós. Um nó que não gera nenhuma
saída pode, ainda assim, gerar arquivos com resultados de análises. Da mesma forma um nó que
não recebe nenhuma entrada pode ser parametrizado para utilizar arquivos do disco rígido.
As entradas são agrupadas dentro de uma coleção de entradas (input collection em inglês). A
coleção de entrada fornece ao SNPminer informação de quantos e quais nós podem ser conectados,
quais os tipos de saída que esses nós devem gerar e os parâmetros (discutidos na seção 5.2.5) que
esse grupo de entrada necessitam no momento de executar o recurso de software.
A Figura 5.5 mostra um exemplo de nó com três coleções de entradas. Cada coleção aceita um
tipo diferente de grupo de dados e, consequentemente, necessita de um grupo diferente de parâ-
metros para a execução do software. Cada coleção de entrada permite que um nó com uma saída
diferente seja conectado ao nó do exemplo. Na figura, o nó esboçado pode receber conexões de nós
5.2 METAMODELO 33
que forneçam como saída os grupos (ped,map), (bed,bim,fam) e (tped,tmap).
Figura 5.5: Exemplo de nó com várias coleções de entrada.
Uma coleção de entradas também pode receber mais de um grupo de dados. Isso significa que
o nó deve receber entradas de diversos nós. A Figura 5.6 mostra um exemplo de nó que admite
dois tipos de entrada, ambas recebendo conexões de dois nós. Essa flexibilidade do metamodelo foi
implementada para permitir o uso de comandos como o -merge do Plink, que recebe duas bases
de dados (cada uma composta por mais de um arquivo).
Figura 5.6: Exemplo de nó com várias coleções de entrada recebendo mais de um grupo de dados.
A especificação XML das coleções de entrada deve ocorrer após as dos tipos de dados, grupos de
dados e parâmetros. A composição da coleção é feita informando os ids dos grupos de dados e pa-
34 SNPMINER 5.2
râmetros que a compões. É importante salientar que a ordem da especificação dos grupos de dados
dentro das coleções de entrada é relevante, pois são utilizadas pelos parâmetros do tipo Generated-
FileParameter, e a ordem de inserção dos parâmetros define a ordem que eles aparecem no comando.
§
<mn: inputCollections >
<i c : inputCollection id="14">
<i c : inputCollectionItemId >6</i c : inputCollectionItemId >
<i c : inputCollectionItemId >7</i c : inputCollectionItemId >
<i c : inputCollectionItemId >8</i c : inputCollectionItemId >
<i c : inputCollectionItemId >9</i c : inputCollectionItemId >
<i c : inputCollectionItemId >10</ i c : inputCollectionItemId >
<i c : inputCollectionItemId >11</ i c : inputCollectionItemId >
<i c : inputCollectionItemId >12</ i c : inputCollectionItemId >
<i c : inputCollectionItemId >13</ i c : inputCollectionItemId >
</i c : inputCollection >
</mn: inputCollections >
¦ ¥
No exemplo anterior a tag ic:inputCollectionItemId recebe o id ou de um grupo de dados
ou de um parâmetro.
A definição da saída do nó é realizada utilizando a tag mn:output. Ela recebe o id do grupo
do grupo de dados que será propagado para o próximo nó do fluxo. É possível também especificar
um nó terminal, isto é, um nó que não forneça uma saída. Para isso basta deixar a tag mn:output
sem nenhum valor (mas, obrigatoriamente, ela deve ser declarada).
§
<mn: output >10</mn: output>
 l s t s e t {frameround=f t t t }
¦ ¥
5.2.5 Parâmetros
Os parâmetros são os blocos de construção da linha de comando gerada pelo SNPminer para a
execução de um recurso de software. A Figura 5.7 mostra a decomposição de um comando do Plink
em uma série de grupos parâmetro/valor.
Figura 5.7: Decomposição de um comando em parâmetros.
O SNPminer oferece 11 tipos de parâmetros para a construção dos comandos. Cada parâmetro
faz parte de uma das três famílias de parâmetros: abstratos, parâmetros de arquivos gerados por
nós e parâmetros de valores. A Figura 5.8 mostra a hierarquia dos parâmetros e sua classificação
dentro das famílias.
O tipo de parâmetro influencia não apenas seu funcionamento como também sua exibição para
o usuário na janela de propriedades do nó. A seguir serão discutidos o funcionamento e especificação
5.2 METAMODELO 35
Figura 5.8: Hierarquia de parâmetros do SNPminer.
XML de cada um dos tipos de parâmetros.
Todos os tipos de parâmetros possuem propriedades em comum que devem ser fornecidas em
suas especificações. As propriedades comuns dos parâmetros são:
• O tipo de parâmetro está sendo especificado;
• Um nome que identifique o parâmetro, único entre todos os parâmetros do nó;
• O comando a ser dado. No caso do parâmetro ser apenas um valor, essa informação pode ser
deixada em branco.
• A descrição do parâmetro e seu funcionamento.
O código abaixo mostra a especificação XML básica de um parâmetro. A tag par:parameter
necessita do atributo id contendo um identificador numérico único na especificação do nó.
36 SNPMINER 5.2
§
<mn: parameters>
<par : parameter id="6">
<par : class>Tipo do parâmetro</par : class>
<par : name>nome_do_parametro</par : name>
<par : command>−−comando</par : command>
<par : label ><![CDATA[ Descrição do parâmetro]]></par : label>
<par : attributes >
<!−− Atributos do parâmetro . Variam conforme o tipo de parâmetro
e s p e c i f i c a d o . . . −−>
</par : attributes >
</par : parameter>
<!−− demais parâmetros . . . −−>
</mn: parameters>
¦ ¥
Como discutido na seção 5.2.4 o conjunto de parâmetros depende das conexões que o nó recebe.
Dessa forma a janela de propriedades do nó só exibirá os parâmetros se as conexões necessárias
para definir a coleção de entrada a ser utilizada já foram realizadas.
Fixed Parameter
Parâmetros fixos não recebem valores e sempre são inseridos na linha de comando. Um parâme-
tro fixo não possui atributos adicionais. Como exemplo, o parâmetro -noweb do Plink que evita
que a execução do software busque informações de novas atualizações pode ser representado por
um parâmetro fixo, uma vez que não contém nenhum valor.
§
<par : parameter id="6">
<par : class>FixedParameter</par : class>
<par : name>noweb</par : name>
<par : command>−−noweb</par : command>
<par : label ><![CDATA[ Impede que o Plink busque a t u a l i z a ç õ e s ]]></par : label>
<par : attributes >
</par : attributes >
</par : parameter>
¦ ¥
Parâmetros fixos não são exibidos para o usuário na janela de propriedades do nó.
Generated File Parameter
Este parâmetro é utilizado para referenciar um arquivo gerado como saída de um nó anterior,
isto é, na geração do comando o valor do parâmetro será substituído pelo caminho do arquivo ge-
rado. Ele possui como atributos o id do tipo de dado que ele está referenciando e a ordem do grupo
de dados na coleção de entrada a qual o parâmetro se refere.
§
<par : parameter id="10">
<par : class>GeneratedFileParameter </par : class>
<par : name>parametro</par : name>
<par : command>−−comando</par : command>
<par : label ><![CDATA[ Descrição do parâmetro]]></par : label>
<par : attributes >
<dataTypeId>1</dataTypeId>
<dataGroupIndex>1</dataGroupIndex>
</par : attributes >
</par : parameter>
¦ ¥
Utilizando a Figura 5.6, para poder utilizar no comando o parâmetro que faça referência ao
arquivo do tipo MAP, do segundo grupo da primeira coleção de entradas, o parâmetro deve receber
5.2 METAMODELO 37
o valor 2 na tag dataGroupIndex e na tag dataTypeId o id do tipo de arquivo MAP.
§
<par : attributes >
<dataTypeId>1</dataTypeId>
<dataGroupIndex>2</dataGroupIndex>
</par : attributes >
¦ ¥
Node Folder Parameter
Este parâmetro é utilizado para fornecer o diretório do diretório do nó. Ele é normalmente
utilizado juntamente com parâmetros do tipo Script Parameter. A especificação XML não possui
atributos especiais, apenas as propriedades padrão dos parâmetros devem ser especificadas.
Current Node File Parameter
Este tipo de parâmetro é utilizado para fazer referência a um arquivo localizado dentro do di-
retório do nó. A especificação XML recebe como atributo o nome do arquivo que deve existir no
diretório no momento da execução do nó.
§
<par : parameter id="13">
<par : class>CurrentNodeFileParameter </par : class>
<par : name>out</par : name>
<par : command>−−out</par : command>
<par : label ><![CDATA[ out]]></par : label>
<par : attributes >
<filename ><![CDATA[ r e s u l t ]]></ filename>
</par : attributes >
</par : parameter>
¦ ¥
Esse parâmetro pode ser utilizado nas execuções do Plink com o comando -out para indicar o
nome das bases de dados que devem ser geradas.
Script Parameter
Este parâmetro é utilizado para gerar scripts que serão executados em recursos de software. Ele
foi desenvolvido especialmente para trabalhar em conjunto com a aplicação Rscript, versão do R
que executa comandos em um arquivo contendo os comandos a serem executados.
A especificação XML do parâmetro recebe como atributos o nome do arquivo a ser gerado e o
conteúdo do arquivo. No momento da construção do comando o SNPminer cria o arquivo com o
script no diretório do nó e insere na linha de comando a instrução com referência ao arquivo gerado.
38 SNPMINER 5.2
§
<par : parameter id="">
<par : class>ScriptParameter </par : class>
<par : name>script </par : name>
<par : command></par : command>
<par : attributes >
<filename>nome_do_arquivo .R</filename>
<script ><![CDATA[
l i b r a r y ( "data . table " )
l i b r a r y ( " s c a t t e r p l o t 3 d " )
args <− commandArgs(TRUE)
rawFile <− args [ 1 ]
targetFolder <− args [ 2 ]
# . . . restante do s c r i p t . . .
]]></ script >
</par : attributes >
</par : parameter>
¦ ¥
Como o Rscript aceita argumentos este recurso pode ser utilizado, juntamente com os parâ-
metros do SNPminer, para fornecer ao script mais informações sobre a execução.
Boolean Parameter
Os parâmetros desse tipo oferecem ao usuário a opção do comando ser ou não executado. É
apresentado na janela de propriedades do nó uma caixa de seleção. Basta que a opção seja selecio-
nada pelo usuário para que o comando conste na linha de execução do recurso de software.
A especificação XML recebe apenas os dados comuns a todos os parâmetros, da mesma forma
que o tipo Fixed Parameter (ver seção 5.2.5).
Selection Parameter
Este parâmetro mostra para o usuário uma lista de seleção onde o mesmo pode escolher apenas
um valor. A Figura 5.9 mostra um exemplo de como o parâmetro é exibido para o usuário na janela
de propriedades do nó.
A especificação XML do parâmetro contém os atributos labels e items. A tag labels recebe
a lista de valores que serão exibidos ao usuário na caixa de selação. A tag items recebe a lista de
valores que serão utilizados no comando. Os itens devem ser fornecidos separados por "três dois
pontos", isto é, o conjunto de caracteres “:::”. Tanto a lista de labels como a de itens devem conter
o mesmo número de elementos.
§
<par : parameter id="10">
<par : class>SelectionParameter </par : class>
<par : name>parameter </par : name>
<par : command>−−comando</par : command>
<par : label ><![CDATA[ Descrição do parâmetro]]></par : label>
<par : attributes >
<labels ><![CDATA[ Seleção 1 : : : Seleção 2 : : : Seleção 3]]></ labels >
<items ><![CDATA[ valor1 : : : valor2 : : : valor3 ]]></items>
</par : attributes >
</par : parameter>
¦ ¥
5.2 METAMODELO 39
Figura 5.9: Selection Parameter na janela de propriedades do nó. Acima a caixa de selação. Abaixo a lista
de escolhas de valores do parâmetro.
Família dos parâmetros de valores
Com exceção dos parâmetros do tipo Selection e Boolean, todos os outros parâmetros da fa-
mília Valued Parameters funcionam da mesma maneira. Esses parâmetros não possuem atributos
especiais e recebem um valor simples que depende do tipo de parâmetro. A Tabela 5.2 mostra os
parâmetros dessa família e quais valores eles suportam.
Parâmetro Informação suportada
Double Armazena um número decimal
File Recebe um nome de arquivo para fazer referência a um arquivo existente no sistema
Integer Armazena um número inteiro
String Armazena um texto
Tabela 5.2: Tipos de parâmetros da família Valued Parameters e tipos de informação suportada
A especificação XML recebe apenas os dados comuns a todos os parâmetros, da mesma forma
que o tipo Fixed Parameter (ver seção 5.2.5). Na janela de propriedades do nó os parâmetros dessa
família são exibidos como uma caixa de texto para que o usuário insira o valor desejado para a exe-
cução do nó. A Figura 5.10 mostra a tela de propriedades de um nó que recebe quatro parâmetros
da família Valued Parameters.
5.2.6 Arquivos gerados
Arquivos gerados (Generated Files, em inglês) possuem duas funções na especificação: fornecer
ao nó o nome dos arquivos gerados e fornecer informações de como o arquivo deve ser exibido na
janela de propriedades do nó.
Os arquivos gerados devem ser os últimos elementos especificados no nó.
40 SNPMINER 5.2
Figura 5.10: Parâmetros da família Valued Parameters na janela de propriedades do nó.
§
<mn: generatedFiles >
<gf : generatedFile id="12">
<gf : f i l e >imagem . jpg </gf : f i l e >
<gf : dataTypeId>3</gf : dataTypeId>
<gf : fileType >IMAGE</gf : fileType >
<gf : render>true</gf : render>
</gf : generatedFile >
<gf : generatedFile id="13">
<gf : f i l e >arquivo . txt </gf : f i l e >
<gf : dataTypeId>4</gf : dataTypeId>
<gf : fileType >FLATFILE</gf : fileType >
<gf : render>true</gf : render>
</gf : generatedFile >
</mn: generatedFiles >
¦ ¥
As características informadas para os arquivos gerados são descritas a seguir.
• gf:file representa o nome do arquivo que será gerado. O nome dos arquivos gerados devem
ser fixos, isto é, o recurso de software deve gerar sempre o arquivo com o mesmo nome;
• gf:dataTypeId contém o id do tipo de arquivo gerado (especificado anteriormente no nó);
• gf:fileType informa o “tipo” de arquivo que será exibido na janela de propriedades do nó.
Atualmente o SNPminer consegue exibir arquivos de texto plano (FLATFILE) e imagens
(IMAGE);
• gf:render informa ao SNPminer se o arquivo deve ou não ser exibido na janela de propriedades
do nó. A tag pode receber os valores true ou false.
Os tipos de arquivos definidos no grupo de dados de saída do nó devem ser, obrigatoriamente,
cadastrados como arquivos gerados.
5.3 METAMODELO 41
5.2.7 Metanode Manager
O SNPminer oferece uma funcionalidade para o gerenciamento dos nós, o Metanode manager.
Nesta janela (acessada via o menu “Arquivo”) o usuário pode adicionar e remover nós, alterar nós
existentes e substituir a especificação dos nós por outra (enviada, por exemplo, por outro usuário
ou a partir de um fluxo existente).
A janela permite também atualizar o endereço do arquivo executável dos recursos de software,
consultar os tipos de arquivos e grupos de dados. A Figura 5.11 mostra a janela de edição de nós,
que exibe a especificação XML dos nós disponíveis.
Para a criação de novos nós o usuário deve conhecer o metamodelo XML e definir manualmente
a especificação do nó.
Figura 5.11: Metanode Manager no SNPminer.
As especificações dos nós ficam armazenadas em um arquivo XML na pasta .snpminer criada
automaticamente pelo software na pasta padrão do usuário. Esse arquivo define quais nós estarão
disponíveis no software para a criação dos fluxos. Pelo Metanode manager é possível importar ar-
quivos de usuários, mesclar os nós com os existentes em outro fluxos e exportar o arquivo para envio
para outros usuários. A Figura 5.12 mostra o menu com essas opções.
Ao terminar de realizar as alterações o usuário precisa selecionar a opção “Apply specifications
on SNPminer”. Essa ação remove permanentemente os nós excluídos ou editados e os substitui pelos
novos nós. Para garantir que as especificações anteriores não sejam perdidas recomanda-se manter
um backup do arquivo.
Caso o software não encontre o arquivo com especificações na pasta do usuário ele criará esse
arquivo utilizando os nós padrão.
42 SNPMINER 5.3
Figura 5.12: Detalhe das funcionalidades do Metanode Manager.
5.3 Limitações do metamodelo e qualidade da especificação dos nós
Listam-se a seguir as maiores limitações do metamodelo utilizado pelo SNPminer.
1. Cada nó pode executar apenas um recurso de software.
2. Um nó fornece apenas um tipo de grupo de dados como saída. Não é possível parametrizar a
saída de acordo com a coleção de entrada ou qualquer outra característica do nó.
3. Não é possível definir um valor inicial personalizado para os parâmetros da família Valued
Parameters.
4. O nome dos arquivos gerados pelo nó deve ser fixo.
A qualidade na especificação dos nós impacta diretamente no uso do SNPminer, por esse mo-
tivo o usuário deve realizar um estudo minucioso do metamodelo e de como adequar os recursos de
software, parâmetros e transferência de arquivos entre nós no fluxo para maximizar a usabilidade
da ferramenta. Nós especificados de maneira incompleta podem fazer com que o uso do SNPminer
dificulte a análise dos dados.
Capítulo 6
Conclusões
6.1 Considerações Finais
Este trabalho mostrou o poder da análise de componentes principais e suas variações incluindo
efeitos aleatórios para a obtenção da informação latente de ancestralidade em bases de dados gené-
ticas utilizando SNPs. Essas componentes podem então ser utilizadas com variáveis de entradas em
estudos de associação de doenças a variantes genéticas, como sugerido pela literatura, para reduzir
o viés que populações miscigenadas podem causar nos resultados de tais análises.
O trabalho também contemplou o processo de limpeza e preparação das bases de dados para
tais análises e apresentou o SNPminer que tem como objetivo unificar em uma única ferramenta
amigável todos os recursos de software necessários para realização de tais análises.
6.2 Trabalhos futuros
O SNPminer está em fase beta, ou seja, está funcional e deve entrar em fase de testes com
usuários finais para correção de possíveis bugs e ajustes em questões de usabilidade. Para o futuro
planeja-se:
• Criar uma engine que permita que a interface gráfica seja executada localmente (no com-
putador do usuário) porém o processamento de dados seja direcionado para um servidor,
permitindo o uso da interface amigável do SNPminer e do poder de processamento de um
servidor.
• Criar de novos parâmetros e alterações no metamodelo para deixar a especificação dos nós mais
flexível e permitir que o SNPminer seja compatível com mais tipos de recursos de software.
• Disponibilizar uma página web para divulgação e utilização pública do software contendo
instruções de download, documentação da ferramenta e tutoriais de uso.
43
44 CONCLUSÕES 6.2
Referências Bibliográficas
[Andrade2014] Andrade, M., Soler, Julia M. P. Multivariate Polygenic Mixed Model in Admixed
Population. 2014. 1
[Bauchet2007] Bauchet, M., McEvoy, B., Pearson, L. N., Quillen, E. E., Sarkisian, T., Hovhan-
nesyan, K., Deka, R., Bradley, D. G., Shriver, M. D. Measuring Europeans Population Stratifi-
cation with Microarray Genotype Data. The American Journal of Human Genetics 80, 948-956,
2007. 12
[Chae2006] Chae, S. S., Warde, W. D. Effect of using principal coordinates and principal compo-
nents on retrieval of clusters. Computational Statistics and Data Analysis 50, 1407-1417, 2006.
12
[Duarte2015] Duarte, Nubia E.; Giolo, Suely R.; Andrade, Mariza; Soler, Júlia P. On the Equiva-
lence od Methods for Population Stratification and their Applications in Genetic Association
Studies. Revista Colombiana de Estadística. 12
[Falush2003] Falush, Daniel et al. Inference of Population Structure Using Multilocus Genotype
Data: Linked Loci and Correlated Allele Frequencies. Genetics Society of America. 2003.
[Hapmap2010] International HapMap consortium, 2010, http://hapmap.ncbi.nlm.nih.gov/index.
html.en. Acessado em 05/08/2015. 6
[Konishi1992] Konishi, S. and Rao, C. R. Principal component analysis for multivariate family data.
Biometria 79: 631-641, 1992. 1, 19
[NIH-Gene] National Institute of Health, What is a gene?, 2014, http://ghr.nlm.nih.gov/handbook/
basics/gene. Acessado em 01 de maio de 2015. 4
[NIH-SNP] National Institute of Health, What are single nucleotide polymorphisms (SNPs)?, 2014,
http://ghr.nlm.nih.gov/handbook/genomicresearch/snp. Acessado em 01 de setembro de 2014.
[Ott1992] Ott J, Rabinowitz D. A principal components approach based on herdability for combi-
ning phenotype information. Hum Hered 1999;49:106-111. 20
[Oualkacha2012] Oualkacha, K., Labbe, A., Ciampi, A., Roy, M. A. and Maziade, M. Principal
components of heritability for high dimension quantitative traits and general pedigree. Journal
of Statistical Applications in Genetics and Molecular Biology 11(2), Article 4, 2012. ix, 1, 18,
19, 21, 22
[Pearson2006] Pearson, Helen. Genetics: What is a gene?. Nature, Volume 441, Issue 7092, pp.
398-401 (2006). 3
[Plink2007] Purcell S, Neale B, et. al., PLINK: a toolset for whole-genome association and
population-based linkage analysis. American Journal of Human Genetics, http://pngu.mgh.
harvard.edu/purcell/plink/, 2007. 4, 5
[Price2006] Price, Alkes L., et al. Principal components analysis corrects for stratification in
genome-wide association studies. Nature Genetics, 2006. 1, 12, 13
45
46 REFERÊNCIAS BIBLIOGRÁFICAS 6.2
[R2014] R Core Team. R: A language and environment for statistical computing. R Foundation for
Statistical Computing, Vienna, Austria. 2014. URL http://www.R-project.org/. 5
[Robinson2010] Robinson, Tara Rodden. Genetics for Dummies. Wiley Publishing, Inc. 2nd edition.
2010. ix, 10
[Turner2011] Turner, Stephen, et al. Quality Control Procedures for Genome Wide Association
Studies. Curr Protoc Hum Genet. 2011 January ; CHAPTER: Unit1.19. 9
[Utah-SNP] University of Utah, Genetic Science Learning Center. Making SNPs Make Sense, 2014,
http://learn.genetics.utah.edu/content/pharma/snips. Acessado em 01 de maio de 2015. 4
[Wang2007] Yuanjia Wang, Yixin Fang, Man Jin. A Ridge Penalized Principal-Components Ap-
proach Based on Heritability for High-Dimensional Data. Hum Hered 2007; 64:182-191. 20
[Wiki-Genome] Wikipedia, Human genome - Wikipedia, The Free Encyclopedia, 2014, http://en.
wikipedia.org/w/index.php?title=Human_genome&oldid=622056857. Acessado em 01 de se-
tembro de 2014.
[Wiki-LD] Wikipedia, Linkage Disequilibrium - Wikipedia, The Free Encyclopedia, 2015, https:
//en.wikipedia.org/wiki/Linkage_disequilibrium. Acessado em 12 de setembro de 2015. 9
[Wiki-PCA] Wikipedia, Principal Components Analysis - Wikipedia, The Free Encyclopedia, 2014,
http://en.wikipedia.org/wiki/Principal_component_analysis. Acessado em 02 de setembro de
2014. ix, 11
[Wiki-SNP] Wikipedia, Single-nucleotide polymorphism - Wikipedia, The Free Encyclopedia, 2015,
http://en.wikipedia.org/wiki/Single-nucleotide_polymorphism. Acessado em 01 de maio de
2015. 4
[Zhang2003] Zhang, S., Zhu, X., Elston, R. C. On a semiparametric test to detect associations
between quantitative traits ans candidate genes using unrelated individuals. Genetic Epidemi-
ology 24, 44-56, 2003. 12, 13

Mais conteúdo relacionado

Mais procurados

K19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-strutsK19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-strutsCaique Moretto
 
Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)Robson Silva Espig
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caique Moretto
 
K19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdi
K19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdiK19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdi
K19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdiCaique Moretto
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbCaique Moretto
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantesCaique Moretto
 
Dissertação Mestrado
Dissertação MestradoDissertação Mestrado
Dissertação MestradoJoel Carvalho
 
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...Sandro Santana
 
K19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetosK19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetosCaique Moretto
 

Mais procurados (17)

Livro Completo sobre Maple
Livro Completo sobre MapleLivro Completo sobre Maple
Livro Completo sobre Maple
 
K19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-strutsK19 k52-desenvolvimento-web-com-struts
K19 k52-desenvolvimento-web-com-struts
 
2009 me jesusdv_morales
2009 me jesusdv_morales2009 me jesusdv_morales
2009 me jesusdv_morales
 
Curso estatistica descritiva no r
Curso   estatistica descritiva no rCurso   estatistica descritiva no r
Curso estatistica descritiva no r
 
Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)Programacao Orientada A Objetos (Java)
Programacao Orientada A Objetos (Java)
 
Introdução ao SciLab
Introdução ao SciLabIntrodução ao SciLab
Introdução ao SciLab
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71
 
Tutorial de Uppaal
Tutorial de UppaalTutorial de Uppaal
Tutorial de Uppaal
 
Hibernate reference pt-br
Hibernate reference pt-brHibernate reference pt-br
Hibernate reference pt-br
 
K19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdi
K19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdiK19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdi
K19 k22-desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdi
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantes
 
Dissertação Mestrado
Dissertação MestradoDissertação Mestrado
Dissertação Mestrado
 
Apostila JSF 2.0 - K19
Apostila JSF 2.0 - K19Apostila JSF 2.0 - K19
Apostila JSF 2.0 - K19
 
Estrutura de dados 2
Estrutura de dados 2Estrutura de dados 2
Estrutura de dados 2
 
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
 
K19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetosK19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetos
 

Destaque (10)

eCertificate
eCertificateeCertificate
eCertificate
 
Transcript
TranscriptTranscript
Transcript
 
Equity project
Equity projectEquity project
Equity project
 
Discovering Careers Brochure
Discovering Careers BrochureDiscovering Careers Brochure
Discovering Careers Brochure
 
GlobalDdox Extended Services - Prezi
GlobalDdox Extended Services - PreziGlobalDdox Extended Services - Prezi
GlobalDdox Extended Services - Prezi
 
CV Shahin
CV ShahinCV Shahin
CV Shahin
 
Закон, Ваше время истекло!
Закон, Ваше время истекло!Закон, Ваше время истекло!
Закон, Ваше время истекло!
 
Marketing terytorialny
Marketing terytorialnyMarketing terytorialny
Marketing terytorialny
 
Дорожче за життя
Дорожче за життяДорожче за життя
Дорожче за життя
 
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
 

Semelhante a monografia

Monografia fabiano rates
Monografia fabiano ratesMonografia fabiano rates
Monografia fabiano ratesFabiano Rates
 
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...Fabiano Rates
 
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔSUTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔSJesimar Arantes
 
Conceitos básicos de Software R
Conceitos básicos de Software RConceitos básicos de Software R
Conceitos básicos de Software RThais Amaral
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaJooMarcos614503
 
Livro analise de dados amostrais complexos
Livro analise de dados amostrais complexosLivro analise de dados amostrais complexos
Livro analise de dados amostrais complexosDiogo Freire
 
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...Giovani Barili
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Redes de Petri
Redes de PetriRedes de Petri
Redes de Petriuern
 
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Mauricio Volkweis Astiazara
 
História da criptografia
História da criptografiaHistória da criptografia
História da criptografiatiojoffre
 
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...Jesimar Arantes
 

Semelhante a monografia (20)

Monografia fabiano rates
Monografia fabiano ratesMonografia fabiano rates
Monografia fabiano rates
 
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
 
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔSUTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
 
Conceitos básicos de Software R
Conceitos básicos de Software RConceitos básicos de Software R
Conceitos básicos de Software R
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Poojava
PoojavaPoojava
Poojava
 
Livro analise de dados amostrais complexos
Livro analise de dados amostrais complexosLivro analise de dados amostrais complexos
Livro analise de dados amostrais complexos
 
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Redes de Petri
Redes de PetriRedes de Petri
Redes de Petri
 
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
 
Perl
PerlPerl
Perl
 
Scilab programacao
Scilab programacaoScilab programacao
Scilab programacao
 
Apostila curso matlab
Apostila curso matlabApostila curso matlab
Apostila curso matlab
 
História da criptografia
História da criptografiaHistória da criptografia
História da criptografia
 
Estruturas dados
Estruturas dadosEstruturas dados
Estruturas dados
 
Estruturas dados
Estruturas dadosEstruturas dados
Estruturas dados
 
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
 
Apostila geo gebra
Apostila geo gebraApostila geo gebra
Apostila geo gebra
 

monografia

  • 1. Incorporando efeitos aleatórios na análise de componentes principais em estudos de associação genômica Lucas Vitti Rodrigues Orientadora: Prof. Dra. Júlia Maria Pavan Soler Bacharelado em Matemática Aplicada Habilitação em Sistemas e Sinais Trabalho de conclusão de curso Instituto de Matemática e Estatística Universidade de São Paulo São Paulo, novembro de 2015
  • 2. ii
  • 3. Agradecimentos Meus mais profundos agradecimentos à professora Júlia Pavan, pelo acolhimento, dedicação e paciência durante o desenvolvimento deste trabalho. Ao Laboratório de Genética e Cardiologia Molecular do INCOR-USP pela disponibilização da base de dados do Projeto Trios de São Paulo, utilizada neste trabalho. Aos meus gestores Maria Theresa Rossi Vilela e Michel Yukyo de Assis Oda da empresa Sem Parar/Via Fácil por todo apoio dado durante minha graduação. Às minhas queridas amigas e colegas de classe Vanessa Vasconcelos e Marcia Pardini por todos os momentos divertidos que passarmos juntos durante os anos de nossa graduação no IME. A Augusto Santos Batista, por tudo. A todos vocês e tantos outros que me auxiliaram durante todos esses anos: muito obrigado. iii
  • 5. Resumo Estudos de associação em populações baseados no mapeamento do genoma humano são bas- tante utilizados com o objetivo de auxiliar na análise da resposta dos indivíduos a tratamentos de diversas doenças. Entretanto, nos casos onde existe estratificação dos indivíduos este tipo de análise resulta frequentemente em associações enganosas. Vários autores utilizam a análise de componentes principais nos dados de SNPs (Single-nucleotide polymorphism) coletados para tentar inferir esta estratificação. Esse tipo de abordagem gera bons resultados porém assume-se que a amostra utilizada para a análise é coletada de forma independente (os indivíduos não são relacionados) o que não é verdade para diversos casos práticos. Este trabalho de conclusão de curso se propõe a estudar esta análise de estratificação de po- pulações aplicada a estudos de associação genética considerando cenários para ambos os tipos de amostra (indivíduos independentes e depententes) e apresentar os resultados obtidos em uma base de dados da população brasileira (projeto “Trios de São Paulo” do INCOR). Além disso, foi construído o SNPminer, um programa em linguagem Java que permite as etapas de limpeza e que sejam realizadas via programação visual. Palavras-chave: associação genômica, componentes principais, genética. v
  • 7. Sumário Agradecimentos iii Resumo v Lista de Figuras ix Lista de Tabelas xi 1 Introdução 1 1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Conceitos 3 2.1 Genoma, DNA, genes e alelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 SNP (Single-Nucleotide Polymorphism) . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Bases de dados genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 HapMap e o Projeto Trios de São Paulo . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Limpeza e tratamento das bases de dados . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5.1 Minor Allele Frequency (MAF) . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5.2 Equilíbrio de Hardy-Weinberg . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5.3 Linkage disequilibrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5.4 Cromossomos das regiões HLA e de inversão . . . . . . . . . . . . . . . . . . . 9 2.5.5 Orientação dos marcadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Componentes principais para obtenção da ancestralidade em amostras indepen- dentes 11 3.1 Análise de componentes principais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Componentes principais de ancestralidade . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Preparação dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Script R para obtenção das componentes principais . . . . . . . . . . . . . . . . . . . 13 3.4.1 Desempenho do script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4 Componentes principais para obtenção da ancestralidade em amostras com es- trutura familiar 17 4.1 Kinship matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 vii
  • 8. viii SUMÁRIO 4.2 Estimadores para as matrizes de covariância . . . . . . . . . . . . . . . . . . . . . . . 18 4.3 Componentes principais de ancestralidade e herdabilidade . . . . . . . . . . . . . . . 20 4.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5 SNPminer 25 5.1 Nós e fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2 Metamodelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.2.1 Caractetísticas de exibição e identificação do nó . . . . . . . . . . . . . . . . . 28 5.2.2 Recursos de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2.3 Data Types e Data Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.2.4 InputCollections e output data group . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.5 Parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2.6 Arquivos gerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.2.7 Metanode Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.3 Limitações do metamodelo e qualidade da especificação dos nós . . . . . . . . . . . . 42 6 Conclusões 43 6.1 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.2 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Referências Bibliográficas 45
  • 9. Lista de Figuras 2.1 Cariótipo humano de um indivíduo do sexo masculino (extraída de http://en.wikipedia. org/wiki/Karyotype). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Estrutura de uma sequência de moléculas de DNA. . . . . . . . . . . . . . . . . . . . 4 2.3 Localização das populações no globo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Orientação das moléculas de DNA. Extraído de [Robinson2010]. . . . . . . . . . . . . 10 3.1 Exemplo de coordenadas principais. Extraído de [Wiki-PCA]. . . . . . . . . . . . . . 11 3.2 Indivíduos segundo a primeira e segunda coordenadas de ancestralidade. . . . . . . . 15 4.1 Exemplo de estrutura familiar representada por um heredograma. Círculos represen- tam mulheres e quadrados representam homens. . . . . . . . . . . . . . . . . . . . . . 19 4.2 Efeito do parâmetro de penalização λ na direção das componentes principais de herdabilidade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3 (a) Duas primeiras componentes principais da decomposição espectral da matriz Σg, (b) duas primeiras componentes principais da decomposição espectral da matriz Σe. Destacado, em ambos os gráficos, um dos trios da base de dados. Os quadrados representam os pais e o losango representa o filho. . . . . . . . . . . . . . . . . . . . . 22 4.4 Comparação das coordenadas da primeira (à esquerda) e segunda (à direita) compo- nentes principais segundo o método proposto por [Oualkacha2012], via a decomposi- ção da matriz Σg, versus a análise considerando indivíduos independentes. . . . . . . 22 4.5 Expansão da estrutura familiar dos trios via simulação, utilizando um indivíduo selecionado aleatoriamente da base HapMap. . . . . . . . . . . . . . . . . . . . . . . 23 4.6 Indivíduos da base de Trios extendida plotados segundo as duas primeiras compo- nentes principais de ancestralidade segundo a (a) decomposição da matriz Σg e (b) decomposição da matriz Σe. As áreas circuladas mostram a ancestralidade dos indi- víduos do HapMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.7 Indivíduos da base de Trios extendida plotados segundo as duas primeiras compo- nentes principais de ancestralidade na abordagem para amostras independentes. . . . 24 5.1 Janela principal do SNPminer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.2 Janela de propriedades dos nós. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3 Janela de propriedades do fluxo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4 Componentes da especificação de um nó no SNPminer. . . . . . . . . . . . . . . . . . 28 5.5 Exemplo de nó com várias coleções de entrada. . . . . . . . . . . . . . . . . . . . . . 33 5.6 Exemplo de nó com várias coleções de entrada recebendo mais de um grupo de dados. 33 ix
  • 10. x LISTA DE FIGURAS 5.7 Decomposição de um comando em parâmetros. . . . . . . . . . . . . . . . . . . . . . 34 5.8 Hierarquia de parâmetros do SNPminer. . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.9 Selection Parameter na janela de propriedades do nó. Acima a caixa de selação. Abaixo a lista de escolhas de valores do parâmetro. . . . . . . . . . . . . . . . . . . . 39 5.10 Parâmetros da família Valued Parameters na janela de propriedades do nó. . . . . . . 40 5.11 Metanode Manager no SNPminer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.12 Detalhe das funcionalidades do Metanode Manager. . . . . . . . . . . . . . . . . . . . 42
  • 11. Lista de Tabelas 2.1 Exemplo de arquivo PED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Exemplo de arquivo MAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Populações do projeto HapMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Exemplo do teste para equilíbrio de Hardy-Weinberg. . . . . . . . . . . . . . . . . . . 8 2.5 Linkage disequilibrium: exemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1 Coeficientes da matriz de relacionamento 2*kinship para algumas relações de paren- tesco, extraído de https://en.wikipedia.org/wiki/Coefficient_of_relationship. . . . . 18 5.1 Lista de imagens disponíveis no SNPminer. . . . . . . . . . . . . . . . . . . . . . . . 29 5.2 Tipos de parâmetros da família Valued Parameters e tipos de informação suportada . 39 xi
  • 12. xii LISTA DE TABELAS
  • 13. Capítulo 1 Introdução Estudos de associação genômica (Genome-wide association studies em inglês, abreviado como GWAS) buscam entender como variações no DNA entre indivíduos de uma mesma espécie se rela- cionam com alguma característica sob estudo. Usualmente esses estudos trabalham com amostras caso/controle onde o primeiro grupo é composto por indivíduos que apresentam uma característica de interesse (doença, por exemplo) e o segundo é composto por indivíduos sem a característica (indivíduos sadios). A comparação entre as sequências de DNA, dentro do contexto deste trabalho, é realizada utili- zando SNPs (sigla em inglês para Single-Nucleotide Polymorphisms) que são variações de um único nucleotídeo em determinado locus do DNA. Estudos de associação genômica são bastante utilizados com o objetivo de avaliar a resposta dos indivíduos a tratamentos de doenças, porém, nos casos em que os indivíduos possuem alguma estratificação devida à ancestralidade (como em populações miscigenadas, como a brasileira) os resultados das análises podem levar a conclusões enganosas se essa característica não for levada em consideração. Uma técnica bastante utilizada na literatura para tentar identificar esse tipo de estratificação é a análise de componentes principais (Principal Components Analysis em inglês, abreviada para PCA). De acordo com [Price2006] esta abordagem gera bons resultados, porém, assume-se que a amostra de indivíduos é independente, uma hipótese que muitas vezes não é satisfeita pela estrutura dos dados. Em muitos casos práticos de análise de doenças as amostras contêm o sequenciamento do DNA do indivíduo afetado e de alguns membros de sua família (pais, irmãos, etc.). Essa forma de amos- tragem claramente não possui independência entre os indivíduos. Assumir que os indivíduos da amostra são independentes e proceder com as análises pode resultar em erros graves de inferência. Por outro lado descartar os indivíduos relacionados pode ocasionar a perda de informações impor- tantes sobre a característica sob análise e também implica em desperdício de recursos. Para contornar esse problema alguns trabalhos ([Konishi1992], [Oualkacha2012], [Andrade2014]) propõem extensões da análise de componentes principais que consideram a dependência entre indi- víduos. Desse modo, este trabalho tem como objetivo apresentar as técnicas de PCA para a obten- ção de características latentes informativas da ancestralidade global dos indivíduos para amostras independentes e amostras com estrutura familiar (indivíduos dependentes). Vale ressaltar que a li- teratura apresenta alternativas mais específicas sobre estimativas da ancestralidade dos indivíduos, por exemplo, o programa STRUCTURE [Falush2003], que permitem incluir informações sobre o 1
  • 14. 2 INTRODUÇÃO 1.2 número de informações ancestrais e o cálculo da proporção de mistura que o indivíduo carrega de cada uma dessas populações. Além disso, é muito comum em estudos de associação genômica a necessidade do uso de diversos softwares para realização das análises que são, em geral, não triviais e envolvendo dados de elevada dimensão. Este é um fator complicador na difusão das novas análises desenvolvidas pois: • Nem todos os cientistas e profissionais que trabalham com estudos genômicos são familiariza- dos com desenvolvimento de scripts e programação. • O acoplamento de diversos recursos aumenta a complexidade da realização das análises e a incidência de erros. Por essas razões este trabalho também contemplou o desenvolvimento de um software, SNPmi- ner, que permite unificar, por meio de uma interface gráfica amigável, diversos recursos necessários para realização de análises envolvidas nos estudos de associação genômica (GWAS), como o uso de dados externos do Projeto HapMap para melhor caracterizar a história ancestral das populações. 1.1 Objetivos Os objetivos deste trabalho são: • Apresentar o uso da PCA como ferramenta para identificar estratificações causadas pela histó- ria ancestral das populações em estudos de associação genômica para amostras de indivíduos independentes; • Apresentar as extensões das análises para amostras onde há estrutura familiar (dependência) entre os indivíduos; e • Apresentar o SNPMiner, software que permite unificar os diversos recursos de software ne- cessários para as análises geômicas em uma única ferramenta. São consideradas análises de controle de qualidade e limpeza de dados genômicos e cálculos de coeficientes de ancestralidade via PCA. 1.2 Organização do Trabalho No Capítulo 2 serão apresentados os conceitos de genética utilizados neste trabalho, as bases de dados genômicas e as rotinas de limpeza e preparação dessas bases para as análises. Nos Capítulos 3 e 4 são discutidas, respectivamente, as técnidas de análise de componentes principais para amostra independentes e com estrutura familiar. No Capítulo 5 apresentamos o software SNPMiner, seu uso e funcionamento. Este capítulo tam- bém contém um breve tutorial de utilização do software para a realização das análises demonstradas nos capítulos anteriores. Finalmente no Capítulo 6 apresentamos conclusões obtidas neste trabalho, trabalhos futuros relacionados às análises das bases e os próximos passos no aprimoramento do software SNPminer.
  • 15. Capítulo 2 Conceitos Neste capítulo serão apresentados alguns conceitos de Genética utilizados neste trabalho, as bases de dados utilizadas em estudos de associação genômica e as rotinas de limpeza e preparação dessas bases para as análises. 2.1 Genoma, DNA, genes e alelos O genoma de um organismo é o conjunto de todo seu código genético (sequências de moléculas DNA). Em seres eucariontes, como o ser humano, o código genético encontra-se no núcleo das célu- las ou em organelas especializadas (como o DNA mitocondrial, encontrado dentro das mitocôndrias). O DNA (sigla, em inglês, para ácido desoxirribonucleico) é a molécula que compõe o genoma. Cada espécie de organismo possui uma organização única de suas moléculas de DNA (chamada de cariótipo). Nos seres humanos o cariótipo se organiza em 23 pares de cromossomos. Na Figura 2.1 podemos observar os 23 pares de cromossomos de um ser humano do sexo masculino. Figura 2.1: Cariótipo humano de um indivíduo do sexo masculino (extraída de http:// en.wikipedia.org/ wiki/ Karyotype). Apesar da grande variabilidade dos cariótipos entre as espécies o DNA é composto por quatro bases nitrogenadas (adenina, guanina, citosina e timina, abreviadas, respectivamente, por A, G, C e T) que se agrupam em pares (adenina com timina, guanina com citosina) ligadas a uma desoxirri- bose (açúcar) e uma molécula de fosfato. O genoma então, é composto pela sequência e organização das moléculas de DNA. A Figura 2.2 mostra a estrutura de uma sequência de moléculas de DNA. Um gene é uma sequência de moléculas de DNA considerada a unidade básica de hereditarie- dade. De acordo com [Pearson2006], um gene é definido como 3
  • 16. 4 CONCEITOS 2.3 Figura 2.2: Estrutura de uma sequência de moléculas de DNA. “a locatable region of genomic sequence, corresponding to a unit of inheritance, which is associated with regulatory regions, transcribed regions, and/or other functional se- quence regions” Em tradução livre, um gene é “uma região [locus] no DNA correspondente a uma unidade de hereditariedade associada com regiões de regulação, transcrição e/ou outras regiões funcionais”. Estima-se que o genoma humano possua entre 20 e 25 mil genes [NIH-Gene] distribuídos ao longo de cerca de 3 bilhões de bases no conjunto dos 23 cromossomos. Nas espécies diplóides (que possuem cromossomos em pares, como os seres humanos), cada organismo possui duas cópias do mesmo gene, uma em cada um dos cromossomos que compõem o par. Cada cópia do gene é herdado de um dos pais. As variações de um mesmo gene entre os indivíduos de uma mesma espécie são chamados alelos. A variação de alelos entre os indivíduos é responsável, por exemplo, por características físicas dos indivíduos (cor do cabelo, cor dos olhos, etc.). A complexidade do efeito de genes sobre a variação de características dos indivíduos se dá devido a efeitos de interação entre os genes e com o ambiente. 2.2 SNP (Single-Nucleotide Polymorphism) Um SNP (em português, lê-se “snip”) é uma variação de uma única base nitrogenada na sequên- cia de DNA de indivíduos de uma mesma espécie. De acordo com [Utah-SNP] estima-se que um SNP ocorra a cada 300 pares de bases nitrogenadas no genoma humano, o que resulta em um total aproximado de 10 milhões de SNPs, o que faz dos SNPs a forma mais comum de variação genética no genoma humano. É importante ressaltar que nem todas as variações de uma única base nitrogenada são conside- radas SNPs. De acordo com a literatura, considera-se como SNP apenas variações que ocorrem em mais de 1% da população em estudo (esse percentual pode ser maior, dependendo do autor). A exemplo dos genes, variações de pares de bases nitrogenadas também são chamadas de alelos. No genoma humano a maioria dos SNPs são bialélicos [Wiki-SNP], isto é, possuem apenas duas variações. SNPs trialélicos ocorrem raramente (em casos de alterações como mutações). O software Plink não trabalha com SNPs trialélicos [Plink2007]).
  • 17. 2.3 BASES DE DADOS GENÉTICOS 5 2.3 Bases de dados genéticos Bases de dados genéticos são arquivos que contêm o sequenciamento do DNA dos indivíduos amostrados bem como informações sobre a estrutura familiar da amostra e informações fenotípicas (presença de alguma doença ou outra característica sob estudo). Existem diversos softwares disponíveis que trabalham com bases de dados genômicas, cada um com um formato próprio de representação das informações do sequenciamento do DNA. Neste tra- balho apresentaremos o formato utilizado pelo software Plink. O Plink [Plink2007] é um software robusto, disponibilizado gratuitamente e bastante difun- dido no meio acadêmico. Ele permite realizar grande parte das análises padrão em bases de dados genéticas e fornece diversos recursos para limpeza e tratamento dos dados. As análises de dados apre- sentadas neste trabalho serão realizadas utilizando o Plink juntamente com o software R [R2014]. As bases de dados para utilização no formato Plink são usualmente separadas em dois arquivos: o arquivo de pedigree (usualmente um arquivo com extensão PED), que contém o sequenciamento do DNA dos indivíduos, a estrutura familiar e as informações fenotípicas, e o arquivo de mape- amento (extensão MAP) que contém a informação do mapa dos marcadores genéticos disponíveis no sequenciamento (neste trabalho, os SNPs), como sua localização física no genoma, em pares de bases (bp), bem como sua localização genética, em unidades de centi-Morgan (cM). O arquivo PED contém a seguinte estrutura: as seis primeiras colunas contêm as informações da estrutura familiar, sexo do indivíduo e informação fenotípica. A partir da sexta coluna cada par de valores representa o valor do marcador genético representando as bases nitrogenadas. A Tabela 2.1 abaixo mostra um exemplo de um arquivo PED. FID IID PAT MAT SEX PHE SNP1 SNP2 SNP3 ... F145 I12 0 0 1 0 T C G G 0 0 ... F145 I15 0 0 2 0 C G C C C G ... F145 I22 I12 I15 1 1 T C C C C G ... F212 I37 0 0 1 1 A C C A A A ... ... ... ... ... ... ... ... ... ... ... Tabela 2.1: Exemplo de arquivo PED. Nos dados representados na Tabela 2.1 cada linha representa um indivíduo da amostra. A descrição de cada uma das colunas é dada a seguir. • FID representa a identificação da família. Todos os indivíduos com o mesmo FID pertencem à mesma estrutura familiar. • IID é um código que identifica unicamente o indivíduo na amostra. • As colunas PAT e MAT representam, respectivamente, os códigos do pai e mãe do indivíduo. Na terceira linha da Tabela 2.1 o indivíduo I22 é filho dos indivíduos I12 (pai) e I15 (mãe). Os indivíduos cujos pais não estão presentes na amostra (isto é, os indivíduos independentes) são chamados de fundadores. Os indivíduos cujos pais estão na amostra são chamados de não-fundadores. • A coluna SEX informa o sexo do indivíduo. Na codificação padrão 1 representa indivíduos do sexo masculino e 2 indivíduos do sexo feminino.
  • 18. 6 CONCEITOS 2.5 • PHE representa o fenótipo do indivíduo, por exemplo, se ele é afetado pela característica do estudo. A codificação do fenótipo varia dependendo do arquivo e deve ser ajustada com comandos específicos do Plink. • As colunas seguintes representam os marcadores genéticos (SNPs). Cada par de valores corres- ponde a um SNP e a ordem dos SNPs no arquivo é especificada no arquivo MAP. Usualmente as colunas contêm os valores A, C, T e G ou os números 1, 2, 3 e 4 (representando as bases nitrogenadas, respectivamente). O valor 0 representa um dado faltante (missing). O arquivo MAP contém o mapa dos marcadores genéticos que aparecem no arquivo de pedigree. O formato do arquivo é mostrado na Tabela 2.2. Chromossome RS Genetic Distance Base-pair position 1 rs125458 0 145225 1 rs254785 0 122455 2 rs215544 0 245585 3 rs254158 0 224555 ... ... ... ... Tabela 2.2: Exemplo de arquivo MAP. No arquivo cada linha exibe informações sobre um marcador genético. A ordem em que os mar- cadores aparecem no arquivo é a mesma das colunas do arquivo PED. No arquivo MAP a primeira coluna representa o cromossomo do marcador. A segunda coluna contém o identificador do mar- cador genético (sua anotação). No caso de SNPs essa identificação tem o formado parecido com o mostrado na Tabela 2.2. A terceira e quarta colunas são informações de posição do marcador no cromossomo. Elas representam, respectivamente, a distância em centimorgans e a posição base-pair. Os formatos discutidos acima exemplificam a forma geral das bases de dados genéticos para o Plink. O software aceita outros formatos de arquivos (destacamos, em especial, os formatos binários do Plink que reduzem o tamanho dos arquivos e aumentam a performance do processamento) mas a discussão dos detalhes de funcionamento do Plink fogem do escopo deste trabalho. 2.4 HapMap e o Projeto Trios de São Paulo Serão utilizados neste trabalho dados genômicos de duas fontes: o Hapmap e o projeto Trios de São Paulo (INCOR-USP). O HapMap [Hapmap2010] é um catálogo público de variantes genéticas mantido por diversas Instituições. Em sua terceira fase o projeto contém o sequenciamento de 1.457.897 SNPs de 1.397 indivíduos de 11 populações. As populações presentes nas bases do HapMap são descritas na Tabela 2.3 e suas localizações na Figura 2.3. A base de dados do Projeto Trios de São Paulo, disponibilizado pelo Laboratório de Genética e Cardiologia Molecular do Instituto do Coração da USP (INCOR-USP), contém o sequenciamento de 906.487 SNPs de 214 indivíduos da população brasileira. A amostra contém dados de 70 famílias compostas por pai, mãe e filho (os “trios”) e uma família com os pais e dois filhos. Os filhos (afe- tados) apresentam uma cardiopatia e os pais (não afetados) estão livres deste acometimento. Neste trabalho faremos referência à população brasileira e à base de dados do Projeto Trios de São Paulo utilizando a sigla BRZ.
  • 19. 2.5 LIMPEZA E TRATAMENTO DAS BASES DE DADOS 7 Sigla População e ancestralidade ASW Residentes do sudoeste dos Estados Unidos com ancentralidade africana CEU Residentes de Utah com ancestralidade das regiões norte e central da europa CHD Residentes da região metropolitana de Denver, Colorado com descencência chinesa GIH Índios guarajati, Houston, Texas LWK Luhya residentes em Webuye, Kenya MEX Residentes em Los Angeles, California com ancestralidade mexicana MKK Maasai residentes em Kinyawa, Kenia TSI Toscanos, Itália YRI Yoruba de Ibadan, Nigeria JPT Japoneses residentes em Tokio, Japão CHB Chineses residentes em Pequim, China Tabela 2.3: Populações do projeto HapMap. Figura 2.3: Localização das populações no globo. 2.5 Limpeza e tratamento das bases de dados Como visto na seção 2.3, as bases de dados genéticas podem estar com formatos e codificações diferentes e conter dados faltantes. Desse modo, antes de utilizar as bases de dados para a realiza- ção das análises é necessária uma etapa de limpeza e preparação dos dados. Estes procedimentos, recomendados pela literatura, serão discutidos nesta seção. 2.5.1 Minor Allele Frequency (MAF) Como explicado na seção 2.2 apenas variações de bases nitrogenadas que ocorrem com frequên- cia maior que 1% são consideradas SNPs. Dessa forma deseja-se retirar das bases de dados genéticas marcadores cujo “menor alelo” (isto é, a base nitrogenada com menor frequência) tenha frequência inferior a determinado limite (usualmente 1%). Esse filtro aplicado aos dados recebe o nome de Minor Allele Frequency ou MAF.
  • 20. 8 CONCEITOS 2.5 Por convenção utilizamos letras maiúsculas para se referir ao menor alelo (alelo mais raro) e letras minúsculas para o alelo mais frequente. No Plink utiliza-se o comando --maf [limite] que realiza o filtro MAF na base de dados utilizando o limite definido pelo parâmetro limite. O Plink faz os cálculos da frequência apenas sobre os indivíduos fundadores. 2.5.2 Equilíbrio de Hardy-Weinberg O equilíbrio de Hardy-Weiberg (Hardy-Weinberg equilibrium, em inglês, abreviado para HWE) propõe que, na ausência de alguns tipos de distúrbios, a frequência alélica de uma população per- manece constante entre gerações e, deste modo, a distribuição dos alelos no genótipo segue a in- dependência. Entre os distúrbios que podem invalidar o princípio estão mutações, seleção natural, acasalamento não aleatório e genetic drift. Mutações podem introduzir novos alelos em uma população. Seleção natural e acasalamento não aleatório tendem a manter entre geracões alelos e genes mais “vantajosos”, alterando a frequência alélica. Genetic drift é a alteração da frequência alélica que pode ocorrer em uma nova geração devido a fatores aleatórios na seleção de indivíduos para acasalamento, violando o HWE. Para o procedimento de limpeza desejamos descartar da base de dados os marcadores que não satisfazem o HWE. Neste contexto, um marcador está em equilíbrio segundo Hardy-Weinberg se dadas as probabilidades (marginais) dos alelos p(A) e p(a) as probabilidades (conjuntas) genotípicas obedecem às equações dadas em 2.1. Isso é feito pois usualmente SNPs que não obecedem ao HWE apresentam erros (técnicos) de genotipagem. f(AA) = f(A)2 f(Aa) = 2 × f(A) × f(a) f(aa) = f(a)2 (2.1) Para verificar se o marcador obedece às equações aplica-se, por exemplo, um teste qui-quadrado comparando as frequências observadas dos genótipos f(AA), f(Aa) e f(aa) com as estimadas com base nas probabilidades alélicas p(A) e p(a). Como exemplo, vamos utilizar o SNP rs990715 da base BRZ. Removendo os indivíduos não-fundadores e os dados faltantes restam 138 indivíduos que apresentam proporções alélicas p(a) = 0, 2101 e p(A) = 0, 7898. A Tabela 2.4 mostra as frequências observadas e esperadas obtidas para cada genótipo. O p-valor do teste é 0, 008772, logo a um nível de significância de 1% conclui-se que o marcador não obedece ao princípio de Hardy-Weinberg logo o marcador é descartado na limpeza das bases. Genótipo Frequência Observada Frequência esperada aa 0,007246377*138 0,044160891*138 Aa 0,405797101*138 0,331968074*138 AA 0,586956522*138 0,623871035*138 Tabela 2.4: Exemplo do teste para equilíbrio de Hardy-Weinberg. O Plink oferece alguns comandos para trabalhar com o equilíbrio de Hardy-Weinberg, entre eles:
  • 21. 2.5 LIMPEZA E TRATAMENTO DAS BASES DE DADOS 9 • O comando --hwe [pvalor] analisa/exclui da base os marcadores que não obedecem o HWE. Este aplica o teste apenas nos indivíduos fundadores. O parâmetro pvalor recebe o p-valor do teste. • O comando --hardy gera um arquivo com a análise do teste HWE para todos os marcadores da base. 2.5.3 Linkage disequilibrium O coeficiente de desequilíbrio de ligação Linkage disequilibrium mede o grau de associação entre marcadores em diferentes loci. Devido ao grande número de marcadores disponíveis nas bases de dados genéticos é conveniente remover aqueles que apresentem alta correlação, reduzindo assim a dimensão das matrizes de dados. Suponha dois marcadores bialélicos com a distribuição conjunta apresentada na Tabela 2.5. O coeficiente de linkage disequilibrium DAB entre os marcadores é dado pela equação 2.2. A a Totais B pAB paB pB b pAb pab pb Totais pA pa 1 Tabela 2.5: Linkage disequilibrium: exemplo. DAB = pAB − pApB (2.2) Note que podemos obter todas as probabilidades conjuntas utilizando DAB e as probabilidades marginais de acordo com as equações mostradas em 2.3. pAB = pApB + DAB pAb = pApb − DAB paB = papB − DAB pab = papb + DAB (2.3) Considerando que o coeficiente de desequilíbrio de ligação DAB mede o desvio da independência entre alelos de dois locos diferentes (em geral, no mesmo cromossomo), ou seja, é uma medida da correlação/associação entre os alelos, utiliza-se o coeficiente de correlação de Pearson [Wiki-LD] para sua interpretação, sendo dado pela equação 2.4. r = DAB pA(1 − pA)pB(1 − pB) (2.4) No Plink utiliza-se o comando --indep [N] [M] [VIF] para realizar a remoção de mar- cadores devido ao coeficiente de Linkage-Disequilibrium. O parâmetro N indica a janela de SNPs utilizada para aplicação do filtro, deslocada a cada M SNPs. O parâmetro VIF define o fator de inflação da variância do SNP sob análise em comparação aos outros SNPs da janela. Um VIF igual 1 indica total independência entre os SNPs. Quanto maior o valor do VIF maior a colinearidade admitida e, consequentemente, menos marcadores serão removidos. 2.5.4 Cromossomos das regiões HLA e de inversão Existem marcadores em determinadas regiões do genoma humano que podem apresentar estrati- ficações para determinadas populações. De acordo com [Turner2011] SNPs da região HLA (Human leukocyte antigen) do cromossomo 6, no locus da lactase localizado no cromossomo 2 e nas regiões
  • 22. 10 CONCEITOS 2.5 de inversão 8p23 e 17q21.31 são fontes de estratificação da população européia. Para evitar que essa estratificação interfira nos resultados de ancestralidade neste estudo serão removidos marcadores localizados nessas regiões. 2.5.5 Orientação dos marcadores As moléculas de DNA possuem orientação: o lado que possui o fosfato é denominado 5’ e o lado da desoxiribose é denominado 3’. Isso faz com que a fita de DNA também tenha orientação, como mostrado na Figura 2.4. Por convenção define-se como sentido “positivo” a leitura da fita do DNA do 5’ para 3’. Figura 2.4: Orientação das moléculas de DNA. Extraído de [Robinson2010]. Como mencionado anteriormente, as bases de dados genéticas possuem informação de apenas uma das fitas de cada cromossomo homólogo. Dependendo de como a leitura do DNA foi realizada o mesmo SNP pode ter sido lido na fita positiva ou negativa em bases de dados diferentes, o que gera inconsistencias no momento de unificar as bases. Para as análises no Plink é necessário que essas inconsistências sejam corrigidas. Para isso utiliza-se o comando --flip que recebe a lista de SNPs onde detectou-se que a leitura das fitas foi realizada em sentidos diferentes.
  • 23. Capítulo 3 Componentes principais para obtenção da ancestralidade em amostras independentes Neste capítulo serão discutidos o método de análise de componentes principais e sua aplicação para obtenção das componentes de ancestralidade em bases de dados genéticos. 3.1 Análise de componentes principais De maneira intuitiva, lembrando que medidas de (co)variância são formas quadráticas, as com- ponentes principais de uma amostra são os eixos que maximizam a variabilidade (total) dos dados. A Figura 3.1 mostra um conjunto de dados nos eixos originais e as coordenadas principais obtidas. Figura 3.1: Exemplo de coordenadas principais. Extraído de [Wiki-PCA]. 11
  • 24. 12 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS INDEPENDENTES 3.2 Analiticamente as componentes principais são uma combinação linear das variáveis da amostra, de modo que o conjunto resultante de novas variáveis seja linearmente independente e maximize a variação total nas primeiras coordenadas. Seja X um conjunto de dados onde os valores das colunas estão centrados na média. A equação 3.1 mostra o cálculo dos coeficientes para obtenção da primeira componente principal (a que possui a maior proporção da variância total dos dados). β1 = argmax β1 =1 β1X Xβ1 = argmax β1X Xβ1 β1β1 (3.1) A k-ésima componente principal pode ser obtida subtraindo dos dados o efeito das (k − 1) com- ponentes já obtidas e calculando um novo vetor de coeficientes βk como mostrado na equação 3.2. βk = argmax βk =1 βkXkXkβk = argmax βkXkXkβk βkβk (3.2) onde Xk = X − Σk−1 i=1 X(βi)(βi) . Utilizando resultados envolvendo coeficientes de Rayleigh, as componentes principais podem ser obtidas diretamente pela decomposição espectral da matriz X X (que é a matriz empírica de co- variância dos dados da amostra X), isto é, os autovetores podem ser obtidos fazendo X X = UΛU onde a matriz U é a matriz de auto-vetores (as cargas dos componentes principais) e Λ é a matriz de autovalores. 3.2 Componentes principais de ancestralidade Diversos estudos propõem abordagens para a obtenção de componentes de ancestralidade para amostras com indivíduos independentes. Entre eles citamos [Bauchet2007] e [Chae2006] que pro- põe o uso de análise de coordenadas principais (escalonamento multidimensional) e [Price2006] e [Zhang2003] que propõe o uso de análise de componentes principais. A vantagem dos métodos de componentes principais, de acordo com [Duarte2015], é que os vetores obtidos são independentes e ortogonais, o que facilita a análise dos resultados. Seja GN×M a matriz de dimensão N ×M onde N representa o número de indivíduos (linhas) da amostra e M o número de marcadores genéticos (colunas). Devido à independência dos indivíduos não levamos em consideração as informações de estrutura familiar. Cada elemento gij representa o valor genotípico do i-ésimo indivíduo no j-ésimo marcador ge- nético (SNPs, neste trabalho) que pode assumir os valores 0, 1 e 2 (ou missing), representando a quantidade (contagem) de alelos com menor frequência. O arquivo neste formato é obtido expor- tando, no PLINK, a base de dados para do formato PED/MAP (apresentado na seção 2.3) para o formato tabular, adequado para as análises no R. A partir de GN×M obtemos a matriz XN×M que representa os dados normalizados pelas colunas. Os elementos xij são dados pela equação 3.3 onde ¯gj e sj são, respectivamente, a média aritmética e o desvio padrão do j-ésimo marcador. xij = 1 √ N gij − ¯gj sj (3.3)
  • 25. 3.4 PREPARAÇÃO DOS DADOS 13 Valores missing são substituídos por zero na matriz X (ou pela média da coluna na matriz G). O método proposto por [Zhang2003] faz a decomposição espectral da matriz ΣM×M = X X (ma- triz de covariância entre os marcadores genéticos). O método de [Price2006] obtém as componentes principais a partir da decomposição da matriz ΣN×N = XX , que é a matriz de covariância/dis- tância entre os indivíduos. Pela propriedade dual dos espaços linha e coluna de matrizes estas duas abordagens são equivalentes. Como em estudos de associação genômica normalmente o número de marcadores é muito maior que o número de indivíduos (isto é, M >> N) será utilizado o método proposto por Price, que trabalha com matrizes de dimensão menor. Segundo Price, as componentes de ancestralidade são obtidas dos autovalores da decomposição espectral da matriz XX , dada por ΨN×N = UΛΨU . Em estudos de associação genômica, Price recomenda utilizar as 10 componentes principais mais significantes (isto é, com os maiores autova- lores) como covariáveis nos modelos de regressão, obtidas da matriz U resultante da decomposição espectral. 3.3 Preparação dos dados Nesta seção serão descritos os passos de tratamento e limpeza das bases de dados utilizadas neste estudo (HAPMAP e BRZ) para a obtenção dos componentes principais de ancestralidade. O primeiro filtro aplicado é o MAF. Neste passo o MAF deve ser aplicado para cada popula- ção separadamente. O arquivo BRZ contém apenas a população brasileira, logo isso pode ser feito diretamente. O arquivo HAPMAP contém as demais 11 populações, que precisam ser separadas e processadas individualmente. Os demais passos realizados são descritos a seguir. 1. Remoção de indivíduos com índice de dados faltantes superior a 5%; 2. Remoção de SNPs monomórficos, com o mesmo genótipo para todos os indivíduos da amostra (sem variação); 3. Remoção de SNPs em desacordo com as hipóteses do equilíbrio de Hardy-Weinberg ao nível de significância de 5% (detalhes na seção 2.5.2); 4. Remoção de SNPs em dequilíbrio de ligação: para finalidade de cálculo de coeficientes de ancestralidade não foi realizada a limpeza segundo este critério; 5. Remoção dos SNPs da região HLA (ver seção 2.5.4) e dos cromossomos X e Y. Após a limpeza e unificação das bases os dados permaneceram 398.136 SNPs e 1.330 indivíduos. 3.4 Script R para obtenção das componentes principais Após a limpeza dos dados genotípicos as componentes principais são obtidas utilizando o soft- ware R. O script a seguir é o responsável pela geração das componentes principais que são armaze- nadas na matriz U criada. Nesta matriz a primeira coluna representa a componente principal mais relevante (com maior auto-valor), a segunda coluna, a segunda coordenada principal mais relevante e assim por diante.
  • 26. 14 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS INDEPENDENTES 3.5 § library ( "data . table " ) rm( l i s t=ls () ) gc () rawFile <− "06_MERGE.RAW" targetFolder <− "C: Users lucas . rodrigues DesktopTCC bases_f u l l bases_ tratadas_v2" # Define o d i r e t ó r i o de trabalho setwd( targetFolder ) # Faz a l e i t u r a do arquivo de entrada data <− fread ( rawFile , header=T, drop=c ( 1 : 6 ) ) G <− data . matrix(data) # S u b s t i t u i os NAs pela média da coluna medias <− colMeans (G, na .rm=TRUE) ; for ( i in 1: ncol (G) ) { G[ , i ] [ is . na(G[ , i ] ) ] <− medias [ i ] ; } # Número de indivíduos na amostra N <− nrow(G) # Faz a normalização da matriz por colunas X = (1/sqrt (N) ) ∗ scale (G) # Calcula a matriz de covarianvia amostral COV = tcrossprod (X) # Calcula a matriz de covariância amostral dos dados padronizados decompCOV <− eigen (COV) U <− decompCOV$ vectors values <− decompCOV$values ¦ ¥ 3.4.1 Desempenho do script O tamanho da base de dados pode oferecer alguns desafios no momento de executar o script. O R armazena estruturas de matrizes em memória, logo é necessário que o computador onde os dados serão processados tenha a capacidade de comportar os cálculos. Uma forma de otimizar o script é remover os objetos que não serão mais utilizados (com o co- mando rm seguido de uma chamada do garbage collector). Por exemplo, após o cálculo da matriz X a matriz G não será mais utilizada e pode ser removida. Outra possibilidade é procurar por pacotes que ofereçam funções com melhor performance, como o uso da função fread para a leitura do arquivo e tcrossprod para a multiplicação de uma matriz pela sua transposta. Esgotadas as alternativas de otimização de uso de memória resta executar o script em uma máquina com maior disponibilidade de recusros (como um servidor, por exemplo). Para as análises realizadas neste trabalho foi utilizada uma máquina com 12Gb de memória RAM. 3.5 Resultados A Figura 3.2 mostra os indivíduos das bases de dados Trios de São Paulo e HapMap plotados segundo as duas primeiras componentes principais. A cor do ponto identifica a população à qual o
  • 27. 3.5 RESULTADOS 15 indivíduo pertence. Nota-se que apenas nas duas primeiras componentes já é possível identificar uma separação clara entre as 11 populações do HAPMAP. A população brasileira, por sua vez, está distribuída entre as populações com ancestralidade Européia e Africana, com alguns indivíduos tendendo para as populações com ancestralidade asiática. Figura 3.2: Indivíduos segundo a primeira e segunda coordenadas de ancestralidade. Obtidos os valores das componentes principais de ancestralidade os mesmos poderão ser incluí- dos nos modelos de regressão de estudos de associação genômica, reduzindo o viés que populações miscigenadas (como a brasileira) pode causar.
  • 28. 16 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS INDEPENDENTES 3.5
  • 29. Capítulo 4 Componentes principais para obtenção da ancestralidade em amostras com estrutura familiar Neste capítulo será abordada a análise em amostras onde leva-se em consideração a estrutura familiar entre os indivíduos. Seja uma amostra com N indivíduos pertencentes a F famílias onde, para cada indivíduo, estão disponíveis os valores de p variáveis representando os marcadores ge- néticos (SNPs). De maneira geral, podemos modelar a resposta de cada variável de acordo com o modelo linear misto poligênico dado pela equação 4.1. yfj = µj + gfj + efj (4.1) No modelo, yfj é um vetor coluna contendo o valor da j-ésima variável para todos os nf in- divíduos da f-ésima família da amostra. Esse modelo é composto pela média geral da variável j, µj (efeitos de covariáveis podem ser incluídos no componente fixo do modelo), um componente aleatório de variação entre as famílias gfj, chamado de efeito poligênico, e o componente aleatório devido a erros, associado à variação dentro da família, efj, todos com dimensão nf × 1. Assume-se que E(gfj) = 0, E(efj) = 0, os efeitos aleatórios (gfj e efj) são independentes, a matriz de covariância do efeito poligênico é dada por Cov(gfj) = 2Φf σ2 gj e a matriz de covariância do erro é dada por Cov(efj) = If σ2 ej, onde 2Φf é a matriz kinship (detalhada na seção 4.1) e σ2 gj e σ2 ej são, respectivamente, as variâncias do efeito poligênico e erro da j-ésima variável (j = 1, ..., p). Tomando Yf = (yf1, yf2, ..., yfp) o vetor coluna de dimensão nf p × 1 contendo os valores de todas as variáveis para todos os indivíduos da f-ésima família e considerando um modelo linear misto poligênico multivariado, temos que E(Yf ) = 1f ⊗ µ e Cov(Yf ) = 2Φf ⊗ Σg + If ⊗ Σe em que: • “⊗” representa o produto de Kronecker entre matrizes; • If representa a matriz identidade de dimensão nf ; • 1f representa um vetor unitário de dimensão nf p×1 (isto é, um vetor onde todas suas entradas são iguais a 1); • µ representa o vetor de médias das p variáveis; e • Σg e Σe são as matrizes de covariância do efeito poligênico e erro, respectivamente (com dimensão p × p). 17
  • 30. 18 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM ESTRUTURA FAMILIAR 4.2 Representamos então a amostra como o vetor coluna Y = (Y1, Y2, ..., YF ) de dimensão Np × 1 com E(Y ) = 1N ⊗ µ e Cov(Y ) = diag(2Φf ) ⊗ Σg + IN ⊗ Σe. Para a obtenção das componentes principais de ancestralidade é necessário estimar as matrizes Σg e Σe (realizada aqui utilizando os estimadores de momentos propostos por [Oualkacha2012]). A partir das estimativas pode-se obter as componentes principais por meio da decomposição espectral das matrizes Σg e Σe ou ainda uma combinação delas, como o componente principal de herdabili- dade obtido de Σ−1 e Σg. 4.1 Kinship matrix A matriz de parentesco ou 2*kinship matrix representa a dependência genética entre membros de uma família. Cada entrada da matriz contém um número entre 0 e 1 onde 0 representa inde- pendência entre os indivíduos e 1 representa total dependência (gêmeos idênticos, por exemplo). A Tabela 4.1 mostra o coeficiente da matriz para algumas relações de parentesco. Grau de parentesco Coeficientes Gêmeos idênticos, clones 20 = 1 Pai/Mãe e filho 2−1 = 0, 5 Irmãos de mesmos pais 2−2 + 2−2 = 0, 5 Meio-irmãos 2−2 = 0, 25 Avós e netos 2−2 = 0, 25 Primos de primeiro grau 2 × 2−4 = 0, 125 Indivíduos independentes 0 Tabela 4.1: Coeficientes da matriz de relacionamento 2*kinship para algumas relações de parentesco, ex- traído de https:// en.wikipedia.org/ wiki/ Coefficient_of_relationship. Como exemplo, seja a família representada pelo heredograma da Figura 4.1. Assume-se que não há incesto, logo 2 ∗ kinship(1, 2) = 0 e 2 ∗ kinship(3, 4) = 0. O indivíduo 3 é filho do par (3, 4), logo kinship(1, 3) = 2 ∗ kinship(2, 3) = 0, 5. O indivíduo 2 é avô dos indivíduos de 5 a 6, logo o coeficiente é 0,25. A matriz (em 4.2) exibe a matriz 2*kinship completa para o heredograma da Figura 4.1, onde cada entrada 2 ∗ kij representa a relação de parentesco entre os indivíduos i e j. 2Φf =              1 0 0, 5 0 0, 25 0, 25 0, 25 0, 25 0 1 0, 5 0 0, 25 0, 25 0, 25 0, 25 0, 5 0, 5 1 0 0, 5 0, 5 0, 5 0, 5 0 0 0 1 0, 5 0, 5 0, 5 0, 5 0, 25 0, 25 0, 5 0, 5 1 0, 5 0, 5 0, 5 0, 25 0, 25 0, 5 0, 5 0, 5 1 0, 5 0, 5 0, 25 0, 25 0, 5 0, 5 0, 5 0, 5 1 0, 5 0, 25 0, 25 0, 5 0, 5 0, 5 0, 5 0, 5 1              (4.2) 4.2 Estimadores para as matrizes de covariância Para estimação das matrizes de covariância dos efeitos poligênico e aleatório [Oualkacha2012] propõem o uso de estimadores de momentos baseados em ANOVA. Sejam Sw e Sb as matrizes como definidas pelas equações 4.3 e 4.4.
  • 31. 4.3 ESTIMADORES PARA AS MATRIZES DE COVARIÂNCIA 19 Figura 4.1: Exemplo de estrutura familiar representada por um heredograma. Círculos representam mulheres e quadrados representam homens. Sw = Σf Σi(yif − ¯yf )(yif − ¯yf ) (4.3) Sb = Σf nf (¯yf − ¯y)(¯yf − ¯y) (4.4) A matriz Sb é interpretada como a matriz da soma de quadrados e produtos cruzados referente à variação que ocorre entre famílias (o índice b é a abreviação de between) e a matriz Sw representa a variação entre os indivíduos dentro das famílias (o índice w é a abreviação de within). A partir dessas matrizes [Oualkacha2012] obteve os estimadores para as matrizes Σg e Σe, mos- tradas, respectivamente, nas equações 4.5 e 4.6. ˆΣg = Sb F−1 − Sw N−F τc− τb N F−1 − τa−τc N−F (4.5) ˆΣe = 1 N − F Sw − τa − τc N − F ˆΣg (4.6) Onde: • τa = F f=1 τ (f) a • τb = F f=1 τ (f) b • τc = F f=1 1 nf τ (f) b • τ (f) a = Tr(2Φ(f)) (Tr é a função traço da matriz) • τ (f) b = nf j=1 nf k=1 2Φ (f) jk [Konishi1992] propuseram um estimador semelhante onde se utiliza 2Φ(f) = 1nf 1nf , isto é, considera-se que todos os membros de uma mesma família possuem o mesmo grau de parentesco e igual a 1. Isto equivale a delineamentos que consideraram somente dados de irmãos. Nota-se ainda que, neste caso, o ajuste do modelo misto poligênico é o mesmo que supor os indivíduos indepen- dentes (decorrente da equivalência entre os modelos de efeitos fixos e aqueles com somente um fator aleatório e matriz de correlação uniforme).
  • 32. 20 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM ESTRUTURA FAMILIAR 4.3 4.3 Componentes principais de ancestralidade e herdabilidade A partir das matrizes de covariância amostral, estimativas de Σg e Σe, podem ser obtidas as componentes principais de ancestralidade através da decomposição espectral de Σg, Σe ou da soma das matrizes Σt = Σg + Σe. Outra alternativa é obter as componentes principais de herdabilidade (sigla PCH, Principal components of heritability), método proposto por [Ott1992]. A equação 4.7 mostra a obtenção dos coeficientes da primeira componente. β1 = argmax β1 =1 β1Σgβ β1Σeβ = argmax β1 β1Σgβ β1(Σe + Σg)β (4.7) As componentes obtidas pela decomposição das matrizes Σg, Σe ou Σt representam as combi- nações lineares dos marcadores genéticos da amostra que maximizam a variabilidade entre famílias, dentro das famílias e a variabilidade total, respectivamente. Já as componentes da PCH maximizam a herdabilidade, que mede a “proporção” da variabilidade total que é devida à estrutura familiar. A Figura 4.2 ilustra estes componentes principais em termos de direções ótimas de formas quadráticas. Figura 4.2: Efeito do parâmetro de penalização λ na direção das componentes principais de herdabilidade. Em bases de dados esparsas e com grande número de variáveis, como o caso das utilizadas em estudos de associação genômica, a obtenção da decomposição espectral da matriz 4.7 não é direta- mente aplicável. Segundo [Wang2007] a alta dimensionalidade dos dados fazem com que a matriz de covariância entre indivíduos Σe apresente autovalores nulos, impossibilitando a decomposição espectral envolvendo sua inversa, ou seja, o procedimento de maximização para obtenção do auto- vetor de coeficientes. Para contornar essa dificuldade [Wang2007] propõem o uso de um parâmetro de penalização λ, dessa forma o vetor de coeficientes da primeira componente principal pode ser obtido como mostra a equação 4.8. β1 = argmax β1 =1 β1Σgβ1 β1Σeβ1 + λ β1 2 (4.8) Como não há uma variável resposta para a estimação do parâmetro λ não é possível aplicar procedimentos de minimização de erro, logo o valor do parâmetro pode ser obtido de duas maneiras: realizar análises testando diversos valores de λ para verificar qual apresenta o ajuste desejado ou, como proposto por [Wang2007], realizar o procedimento de cross-validation como mostrado na equação 4.9. λCV = argmax λ 1 N k (ˆβ1k λ ) Σ2k g (ˆβ1k λ ) (ˆβ1k λ ) Σ2k e (ˆβ1k λ ) (4.9)
  • 33. 4.4 RESULTADOS 21 onde: • k é um índice escolhido de forma aleatória que cria uma partição das famílias em duas partes; • N é o número total de partições aleatórias criadas; • ˆβ1k λ é a componente principal de herdabilidade calculada utilizando o valor λ na primeira metade da k-ésima partição; • Σ2k g e Σ2k e são, respectivamente, as matrizes de variação entre famílias e entre indivíduos calculadas na segunda metade da k-ésima partição. 4.4 Resultados As análises desta seção foram realizadas utilizando a base de dados “Trios de São Paulo” com os seguintes filtros: MAF >= 0,05, p-valor=0,05 para o teste de equilíbrio de Hardy-Weinberg; teste do equilíbrio de ligação utilizando janela de 100 SNPs com VIF=1,01 e deslocamento de 2 SNPs. Foram também removidos SNPs da região HLA e áreas de inversão (ver seção 2.5.4). Após os filtros restaram 10.584 SNPs na análise. Neste caso, a estrutura familiar consta apenas do trio pai, mãe e filho afetado. Também não foi usada a base de dados do Projeto HapMap. Nas análises realizadas no capítulo anterior, foram con- siderados apenas os dados dos pais para garantir amostra de indivíduos independentes e agregou-se os dados das 11 populações do HapMap. A Figura 4.3 mostra os resultados da decomposição das matrizes Σg e Σe segundo o método proposto por [Oualkacha2012]. Devido a estrutura familiar pequena na base de dados (composta apenas pelo trio pai, mãe e filho) espera-se que os resultados sejam próximos aos obtidos aplicando a análise considerando in- divíduos independentes. A Figura 4.4 mostra a comparação das coordenadas da primeira e segunda componentes principais obtidas de acordo com cada um dos métodos. O coeficiente de correlação de Pearson obtido na comparação das coordenadas entre os métodos foi de aproximadamente 0,98, para ambas as componentes principais. Para evidenciar a diferença entre as abordagens considerando amostras independentes e com dependência, a estrutura familiar da base de dados dos Trios de São Paulo foi aumentada via simu- lação. Para cada trio pertencente à base original foi selecionado, de forma aleatória, um indivíduo da base de dados do HapMap e foram gerados três novos indivíduos, conforme exemplificado pelo heredograma da Figura 4.5. Como resultado a nova amostra é composta de 483 indivíduos, dos quais 207 pertencem à base de dados originais, 69 são indivíduos “emprestados” (selecionados aleatoriamente) da base HapMap e 207 são filhos gerados via simulação. Devido à união das bases 789 SNPs foram descartados por não existirem na amostra do HapMap, logo para os dados da simulação foram utilizados 9.795 SNPs. A Figura 4.6 mostra os indivíduos da base de dados estendida segundo as duas primeiras co- ordenadas principais considerando a decomposição espectral das matrizes Σg e Σe e a figura 4.7 apresenta as componentes principais obtidas utilizando a metodologia para indivíduos independen- tes. É interessante notar que neste caso os componentes principais extraídos de Σg identificam os in- divíduos da população brasileira com valores intermediários entre as populações africanas, europeias
  • 34. 22 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM ESTRUTURA FAMILIAR 4.4 Figura 4.3: (a) Duas primeiras componentes principais da decomposição espectral da matriz Σg, (b) duas primeiras componentes principais da decomposição espectral da matriz Σe. Destacado, em ambos os gráficos, um dos trios da base de dados. Os quadrados representam os pais e o losango representa o filho. Figura 4.4: Comparação das coordenadas da primeira (à esquerda) e segunda (à direita) componentes principais segundo o método proposto por [Oualkacha2012], via a decomposição da matriz Σg, versus a análise considerando indivíduos independentes. e orientais, como é esperado pela sua história de miscigenação, indicando que estes são coeficientes de ancestralidade. Já os componentes extraídos de Σe simplesmente promovem a separação dos indivíduos em três grupos, os da população brasileira, aqueles selecionados do HapMap e os filhos gerados. Essa informação simplesmente recupera a estrutura com que os dados foram construídos.
  • 35. 4.4 RESULTADOS 23 Figura 4.5: Expansão da estrutura familiar dos trios via simulação, utilizando um indivíduo selecionado aleatoriamente da base HapMap. Figura 4.6: Indivíduos da base de Trios extendida plotados segundo as duas primeiras componentes princi- pais de ancestralidade segundo a (a) decomposição da matriz Σg e (b) decomposição da matriz Σe. As áreas circuladas mostram a ancestralidade dos indivíduos do HapMap.
  • 36. 24 COMPONENTES PRINCIPAIS PARA OBTENÇÃO DA ANCESTRALIDADE EM AMOSTRAS COM ESTRUTURA FAMILIAR 4.4 Figura 4.7: Indivíduos da base de Trios extendida plotados segundo as duas primeiras componentes princi- pais de ancestralidade na abordagem para amostras independentes.
  • 37. Capítulo 5 SNPminer O SNPminer é uma ferramenta de programação visual desenvolvida em Java 1.8 (em conjunto com o pacote JavaFX) que tem como objetivos: • Disponibilizar em um único ambiente diversos softwares de tratamento e análise de dados genéticos (em especial o Plink e o R); • Permitir que profissionais sem familiaridade com linguagens de programação e execução de scripts possam realizar análises em bases de dados genéticos; • Facilitar a incorporação de novos softwares à interface. Para facilitar a divulgação do trabalho e o futuro desenvolvimento do software por terceiros o software foi desenvolvido completamente em inglês (isto é, a interface gráfica e o código fonte). O funcionamento do software se dá através de nós (nodes) que representam tarefas a serem executadas sobre bases de dados genéticos. Por tarefa entende-se qualquer ação de alteração, ex- tração ou análise. Quando conectados, os nós criam um fluxo (stream) que representa a sequência de processamento dos dados. A Figura 5.1 mostra a janela do SNPminer com um fluxo simples de tratamento e unificação de duas bases de dados. O SNPminer não realiza operações de análise de dados. A execução de cada nó faz a chamada de um software externo (como o Plink) e utiliza as especificações do nó para localizar as bases de dados a serem trabalhadas e definir a ação que deve ser realizada. 5.1 Nós e fluxo Os nós são as unidades básicas de funcionamento do SNPminer. Cada nó representa um co- mando a ser executado por um software, cuja parametrização pode ser alterada pelo usuário de acordo com o metamodelo definido. As conexões entre os nós definem o fluxo de análise dos dados. A Figura 5.2 mostra a janela de propriedades de um nó e suas seções. Na seção General o usuário encontra informações sobre as entradas aceitas pelo nó no fluxo, as saídas geradas, a docu- mentação do nó, o software que o nó executa e uma seção onde o usuário pode inserir comentários personalizados. A guia Parameters contém os parâmetros do nó. Os parâmetros são utilizados para construir os comandos do software que o nó executa. 25
  • 38. 26 SNPMINER 5.1 Figura 5.1: Janela principal do SNPminer. Na guia Execution Log se encontra o histórico de execuções do nó. Essa guia auxilia o usuário a estimar quanto tempo o nó leva para ser executado (bases de dados genéticos podem levar bastante tempo para serem processadas) baseado no tempo das execuções anteriores. A última guia, Generated Files, exibe os arquivos gerados pelo nó. Atualmente o SNPminer é compatível apenas com arquivos de texto e imagens. Figura 5.2: Janela de propriedades dos nós.
  • 39. 5.2 METAMODELO 27 O fluxo é a “tela” onde os nós são colocados. Para criar um nó basta arrastar o nó da paleta até o fluxo. O fluxo pode ser salvo em um arquivo (de extensão .snpminer) para poder ser carregado posteriormente ou enviado a outros usuários. Do mesmo modo que os nós, os fluxos também possuem uma janela de propriedades (mostrada na Figura 5.3). A propriedade mais importante do fluxo é seu diretório, que define onde os arquivos gerados pela execução dos nós serão gravados. Figura 5.3: Janela de propriedades do fluxo. 5.2 Metamodelo O funcionamento dos nós no SNPminer é especificado segundo um metamodelo. No metamo- delo definem-se quais os tipos de arquivo que o nó receberá como entrada, qual o software que será executado, quais os parâmetros que estarão na linha de comando para execução do software e quais os tipos de arquivos que serão gerados se a execução for completada com sucesso. A Figura 5.4 esquematiza um nó e seus componentes. A especificação dos nós disponíveis fica armazenada no arquivo “metanodesSpecifications.xml” na pasta .snpminer localizada dentro da pasta do usuário no sistema operacional e é carregada ao iniciar o programa. Se o programa não encontrar o arquivo ele o cria utilizando a especificação padrão de nós. O arquivo de especificação do metamodelo é um arquivo XML (Extensible Markup Language). Esse arquivo contém os dados de todos os nós disponíveis para uso no SNPminer. Para cada nó devem ser especificadas características de exibição do nó (como nome, descrição e imagem que apa- rece no fluxo), o software que é utilizado quando o nó é executado, as entradas/saídas geradas pelo nó e como o SNPminer montará o comando para que o software seja executado. Abaixo o exemplo da estrutura geral do arquivo XML.
  • 40. 28 SNPMINER 5.2 Figura 5.4: Componentes da especificação de um nó no SNPminer. § <?xml version=" 1.0 " encoding="ISO−8859−1" ?> <metanodeList> <metanode> <!−− e s p e c i f i c a ç õ s do nó −−> </metanode> <metanode> <!−− e s p e c i f i c a ç õ s do nó −−> </metanode> . . . </ metanodeList> ¦ ¥ Nas próximas seções serão descritos cada um desses itens juntamente com o código XML que o representa. 5.2.1 Caractetísticas de exibição e identificação do nó Os nós possuem duas informações relativas à identificação e quatro informações de exibição. Cada uma das características é descrita a seguir, de acordo com sua respectiva tag XML. • mn:name contém o nome interno do nó, utilizado para decidir se dois nós são do mesmo tipo. O arquivo de especificação não deve conter dois nós com o mesmo nome. O nome deve conter apenas letras minúsculas no caractere (underline). • mn:uuid é um identificador universal único (UUID) utilizado para identificar um nó de forma independente de seu nome (algo equivalente a “versão” da especificação do nó). Se dois nós foram especificados com um mesmo nome (em momentos diferentes, pois em um arquivo de especificação não pode haver dois nós com mesmo nome) esse valor é utilizado para que o SNPminer saiba que, mesmo com o mesmo nome, não se trata do mesmo nó. • mn:fancyname é o nome que será exibido na paleta e no fluxo. Esse nome pode conter caracteres especiais, espaços, letras e números.
  • 41. 5.2 METAMODELO 29 • mn:class define em qual seção da paleta o nó será exibido. Essa TAG assume quatro valores: DATA_MANIPULATION, DATA_ANALYSIS, VISUALIZATION ou MISCELLANEOUS. • mn:image define uma imagem para representar o nó dentre as 47 imagens disponíveis no SNPminer. A Tabela 5.1 lista os nomes das imagens que devem ser utilizados nesta tag. • mn:documentation é utilizada para descrever o funcionamento do nó. Recomenda-se que a descrição do nó seja a mais detalhada possível. Não é possível inserir objetos (imagens, tabelas, etc.) na descrição. Se houver necessidade de tais itens recomenda-se criar uma página html com a documentação completa e inserir na especificação do nó um link para a página. Imagem Nome Imagem Nome ADD OBJECTS ANALYSE OK BARPLOT OPEN CANCEL PAUSE CIRCLE PROPERTIES CMD QUESTION COMMENT_QUESTION RECODE CUBE REDO DATA REMOVE DNA RUN DOCUMENT SAVE EXPORT SEND FILTER SOFTWARE FLUSH STAR GEAR STOP GEARS STREAM HELP TERMINAL HISTORY TRANSFER IMPORT UNDO INFO VISUALIZE LIST WEB MERGE WRITE MISC XML NEW Tabela 5.1: Lista de imagens disponíveis no SNPminer. Abaixo o exemplo do código XML especificando as características de identificação e exibição de um nó.
  • 42. 30 SNPMINER 5.2 § <metanode> <mn: uuid >79d88e03 −0799−4d03−85d3−44540af16126 </mn: uuid> <mn: name>plinkfile_map_ped </mn: name> <mn: fancyname>Plink MAP/PED f i l e </mn: fancyname> <mn: class>DATA_MANIPULATION</mn: class> <mn: image>DNA</mn: image> <mn: documentation ><![CDATA[ Alguma documentação a r e s p e i t o do funcionamento do nó .]] > </mn: documentation> <!−− demais e s p e c i f i c a ç õ e s do nó . . . −−> </metanode> ¦ ¥ 5.2.2 Recursos de software O recurso de software (software resource, em inglês) representa o programa que será executado pelo nó. Cada nó deve conter seu próprio recurso de software. Se mais de um nó utiliza o mesmo software ele deve ser especificado em cada um deles. O recurso de software possui três atributos: um identificador, que é um nome simples utilizado internamente pelo SNPminer, uma descrição (label) contendo o nome que será exibido para o usuá- rio e o path, que contém o endereço do arquivo executável no computador onde o SNPminer está sendo executado. Como o SNPminer executa os nós via linha de comando é necessário que os recursos de software aceitem essa forma de execução (como o Plink). No caso do R utiliza-se o “RScript.exe” (na versão Windows) que permite a execução de scripts via linha de comando. A especificação do recurso de software é realizada na tag mn:softwareResource. No código a seguir é exibido um exemplo de especificação de um nó que utiliza o Plink como recurso de software. § <metanode> <mn: uuid >79d88e03 −0799−4d03−85d3−44540af16126 </mn: uuid> <mn: name>plinkfile_map_ped </mn: name> <mn: fancyname>Plink MAP/PED f i l e </mn: fancyname> <mn: class>DATA_MANIPULATION</mn: class> <mn: image>DNA</mn: image> <mn: documentation ><![CDATA[ Alguma documentação a r e s p e i t o do funcionamento do nó .]] > </mn: documentation> <mn: softwareResource id="1"> <sr : name>plink </sr : name> <sr : label ><![CDATA[ Plink v1.7]] > </ sr : label> <sr : f i l e ><![CDATA[C: Users lucas . rodrigues P l i n l plink . txt ]]></ sr : f i l e > </mn: softwareResource> <!−− demais e s p e c i f i c a ç õ e s do nó . . . −−> </metanode> ¦ ¥ A tag mn:softwareResource possui o atributo id que representa um identificador numérico único na especificação do nó entre todas as tags que também necessitam de um atributo identifica- dor. Como a tag do recurso de software é a primeira que necessita do identificador usualmente ela recebe o valor 1 (embora possa receber qualquer valor, desde que único).
  • 43. 5.2 METAMODELO 31 5.2.3 Data Types e Data Groups Para que os nós sejam conectados no fluxo de maneira consistente é necessário definir quais tipos de arquivo o nó pode receber como entrada e saída. Esses dados permitem, por exemplo, que o SNPminer impeça que um nó que gere uma base de dados em arquivos do tipo PED e MAP possa ser conectado com um nó que receba como entrada um arquivo em formato tabular. Um Data Type (ou tipo de arquivo) representa um arquivo que é utilizado como entrada ou saída por algum dos recursos de software. Por convenção representamos um tipo de arquivo por sua extensão, dessa forma os arquivos PED, MAP, JPG (arquivo de imagem), por exemplo, representam data types no SNPminer. Alguns nós recebem ou geram, simultaneamente, mais de um arquivo tipo de arquivo (citamos como exemplo as bases de dados no formato Plink que são compostas por mais de um arquivo). Para que o metamodelo possa absorver essa característica, a entrada e saída de informações dos nós é definida em termos de grupos de dados (data types, em inglês). Um grupo de dados é composto por um ou mais tipos de arquivo. Os tipos de arquivos e grupos de dados utilizados pelo nó devem ser especificados utilizando, respectivamente, as tags mn:dataTypes e mn:dataGroups. A tag mn:dataTypes recebe uma lista de tipos de arquivos. Cada tipo de arquivo deve conter o nome do tipo (usualmente a extensão do arquivo, mas não isso não é obrigatório) e uma descrição de que informação é representada no arquivo. Como exemplo, o código a seguir mostra a definição dos arquivos PED e MAP do Plink como tipos de arquivos. § <mn: dataTypes> <dt : dataType id="2"> <dt : extension >ped</dt : extension > <dt : description ><![CDATA[ Plink PED ( Pedigree ) f i l e s ]]></dt : description > </dt : dataType> <dt : dataType id="3"> <dt : extension >map</dt : extension > <dt : description ><![CDATA[ Plink MAP f i l e s ]]></dt : description > </dt : dataType> </mn: dataTypes> ¦ ¥ Cada tipo de arquivo é definido utilizando a tag dt:dataType, que necessita de um id único, da mesma maneira que mn:softwareResource. Após a definição dos tipos de arquivo podem ser definidos os grupos de dados. A especificação dos grupos de dados simplesmente lista os ids dos tipos de arquivo que fazem parte do grupo.§ <mn: dataGroups> <dg : dataGroup id="5"> <dg : dataTypeId>2</dg : dataTypeId> <dg : dataTypeId>3</dg : dataTypeId> </dg : dataGroup> </mn: dataGroups> ¦ ¥ No exemplo acima é definido um grupo de dados que contém os tipos de arquivo com id 2 e 3, isto é, o grupo de dados é composto pelos tipos de arquivo PED e MAP. A tag dg:dataGroup necessita de um identificador único. O código abaixo mostra o exemplo de um nó onde estão especificadas as informações de identi-
  • 44. 32 SNPMINER 5.2 ficação e exibição, recurso de software, tipos de arquivos e grupos de dados. § <metanode> <mn: uuid >79d88e03 −0799−4d03−85d3−44540af16126 </mn: uuid> <mn: name>plinkfile_map_ped </mn: name> <mn: fancyname>Plink MAP/PED f i l e </mn: fancyname> <mn: class>DATA_MANIPULATION</mn: class> <mn: image>DNA</mn: image> <mn: documentation ><![CDATA[ Alguma documentação a r e s p e i t o do funcionamento do nó .]] > </mn: documentation> <mn: softwareResource id="1"> <sr : name>plink </sr : name> <sr : label ><![CDATA[ Plink v1.7]] > </ sr : label> <sr : f i l e ><![CDATA[C: Users lucas . rodrigues P l i n l plink . txt ]]></ sr : f i l e > </mn: softwareResource> <mn: dataTypes> <dt : dataType id="2"> <dt : extension >ped</dt : extension > <dt : description ><![CDATA[ Plink PED ( Pedigree ) f i l e s ]]></dt : description > </dt : dataType> <dt : dataType id="3"> <dt : extension >map</dt : extension > <dt : description ><![CDATA[ Plink MAP f i l e s ]]></dt : description > </dt : dataType> </mn: dataTypes> <mn: dataGroups> <dg : dataGroup id="5"> <dg : dataTypeId>2</dg : dataTypeId> <dg : dataTypeId>3</dg : dataTypeId> </dg : dataGroup> </mn: dataGroups> <!−− demais e s p e c i f i c a ç õ e s . . . −−> </metanode> ¦ ¥ 5.2.4 InputCollections e output data group As entradas e saídas de um nó no fluxo são definidas em termos de grupos de dados. Um nó pode receber como entrada zero, um ou mais grupos de dados e gerar zero ou um único grupo de dado como saída para ser propagado para o próximo nó no fluxo. Neste contexto, os termos entrada e saída se referem à propagação de dados no fluxo entre os nós. Um nó que não gera nenhuma saída pode, ainda assim, gerar arquivos com resultados de análises. Da mesma forma um nó que não recebe nenhuma entrada pode ser parametrizado para utilizar arquivos do disco rígido. As entradas são agrupadas dentro de uma coleção de entradas (input collection em inglês). A coleção de entrada fornece ao SNPminer informação de quantos e quais nós podem ser conectados, quais os tipos de saída que esses nós devem gerar e os parâmetros (discutidos na seção 5.2.5) que esse grupo de entrada necessitam no momento de executar o recurso de software. A Figura 5.5 mostra um exemplo de nó com três coleções de entradas. Cada coleção aceita um tipo diferente de grupo de dados e, consequentemente, necessita de um grupo diferente de parâ- metros para a execução do software. Cada coleção de entrada permite que um nó com uma saída diferente seja conectado ao nó do exemplo. Na figura, o nó esboçado pode receber conexões de nós
  • 45. 5.2 METAMODELO 33 que forneçam como saída os grupos (ped,map), (bed,bim,fam) e (tped,tmap). Figura 5.5: Exemplo de nó com várias coleções de entrada. Uma coleção de entradas também pode receber mais de um grupo de dados. Isso significa que o nó deve receber entradas de diversos nós. A Figura 5.6 mostra um exemplo de nó que admite dois tipos de entrada, ambas recebendo conexões de dois nós. Essa flexibilidade do metamodelo foi implementada para permitir o uso de comandos como o -merge do Plink, que recebe duas bases de dados (cada uma composta por mais de um arquivo). Figura 5.6: Exemplo de nó com várias coleções de entrada recebendo mais de um grupo de dados. A especificação XML das coleções de entrada deve ocorrer após as dos tipos de dados, grupos de dados e parâmetros. A composição da coleção é feita informando os ids dos grupos de dados e pa-
  • 46. 34 SNPMINER 5.2 râmetros que a compões. É importante salientar que a ordem da especificação dos grupos de dados dentro das coleções de entrada é relevante, pois são utilizadas pelos parâmetros do tipo Generated- FileParameter, e a ordem de inserção dos parâmetros define a ordem que eles aparecem no comando. § <mn: inputCollections > <i c : inputCollection id="14"> <i c : inputCollectionItemId >6</i c : inputCollectionItemId > <i c : inputCollectionItemId >7</i c : inputCollectionItemId > <i c : inputCollectionItemId >8</i c : inputCollectionItemId > <i c : inputCollectionItemId >9</i c : inputCollectionItemId > <i c : inputCollectionItemId >10</ i c : inputCollectionItemId > <i c : inputCollectionItemId >11</ i c : inputCollectionItemId > <i c : inputCollectionItemId >12</ i c : inputCollectionItemId > <i c : inputCollectionItemId >13</ i c : inputCollectionItemId > </i c : inputCollection > </mn: inputCollections > ¦ ¥ No exemplo anterior a tag ic:inputCollectionItemId recebe o id ou de um grupo de dados ou de um parâmetro. A definição da saída do nó é realizada utilizando a tag mn:output. Ela recebe o id do grupo do grupo de dados que será propagado para o próximo nó do fluxo. É possível também especificar um nó terminal, isto é, um nó que não forneça uma saída. Para isso basta deixar a tag mn:output sem nenhum valor (mas, obrigatoriamente, ela deve ser declarada). § <mn: output >10</mn: output> l s t s e t {frameround=f t t t } ¦ ¥ 5.2.5 Parâmetros Os parâmetros são os blocos de construção da linha de comando gerada pelo SNPminer para a execução de um recurso de software. A Figura 5.7 mostra a decomposição de um comando do Plink em uma série de grupos parâmetro/valor. Figura 5.7: Decomposição de um comando em parâmetros. O SNPminer oferece 11 tipos de parâmetros para a construção dos comandos. Cada parâmetro faz parte de uma das três famílias de parâmetros: abstratos, parâmetros de arquivos gerados por nós e parâmetros de valores. A Figura 5.8 mostra a hierarquia dos parâmetros e sua classificação dentro das famílias. O tipo de parâmetro influencia não apenas seu funcionamento como também sua exibição para o usuário na janela de propriedades do nó. A seguir serão discutidos o funcionamento e especificação
  • 47. 5.2 METAMODELO 35 Figura 5.8: Hierarquia de parâmetros do SNPminer. XML de cada um dos tipos de parâmetros. Todos os tipos de parâmetros possuem propriedades em comum que devem ser fornecidas em suas especificações. As propriedades comuns dos parâmetros são: • O tipo de parâmetro está sendo especificado; • Um nome que identifique o parâmetro, único entre todos os parâmetros do nó; • O comando a ser dado. No caso do parâmetro ser apenas um valor, essa informação pode ser deixada em branco. • A descrição do parâmetro e seu funcionamento. O código abaixo mostra a especificação XML básica de um parâmetro. A tag par:parameter necessita do atributo id contendo um identificador numérico único na especificação do nó.
  • 48. 36 SNPMINER 5.2 § <mn: parameters> <par : parameter id="6"> <par : class>Tipo do parâmetro</par : class> <par : name>nome_do_parametro</par : name> <par : command>−−comando</par : command> <par : label ><![CDATA[ Descrição do parâmetro]]></par : label> <par : attributes > <!−− Atributos do parâmetro . Variam conforme o tipo de parâmetro e s p e c i f i c a d o . . . −−> </par : attributes > </par : parameter> <!−− demais parâmetros . . . −−> </mn: parameters> ¦ ¥ Como discutido na seção 5.2.4 o conjunto de parâmetros depende das conexões que o nó recebe. Dessa forma a janela de propriedades do nó só exibirá os parâmetros se as conexões necessárias para definir a coleção de entrada a ser utilizada já foram realizadas. Fixed Parameter Parâmetros fixos não recebem valores e sempre são inseridos na linha de comando. Um parâme- tro fixo não possui atributos adicionais. Como exemplo, o parâmetro -noweb do Plink que evita que a execução do software busque informações de novas atualizações pode ser representado por um parâmetro fixo, uma vez que não contém nenhum valor. § <par : parameter id="6"> <par : class>FixedParameter</par : class> <par : name>noweb</par : name> <par : command>−−noweb</par : command> <par : label ><![CDATA[ Impede que o Plink busque a t u a l i z a ç õ e s ]]></par : label> <par : attributes > </par : attributes > </par : parameter> ¦ ¥ Parâmetros fixos não são exibidos para o usuário na janela de propriedades do nó. Generated File Parameter Este parâmetro é utilizado para referenciar um arquivo gerado como saída de um nó anterior, isto é, na geração do comando o valor do parâmetro será substituído pelo caminho do arquivo ge- rado. Ele possui como atributos o id do tipo de dado que ele está referenciando e a ordem do grupo de dados na coleção de entrada a qual o parâmetro se refere. § <par : parameter id="10"> <par : class>GeneratedFileParameter </par : class> <par : name>parametro</par : name> <par : command>−−comando</par : command> <par : label ><![CDATA[ Descrição do parâmetro]]></par : label> <par : attributes > <dataTypeId>1</dataTypeId> <dataGroupIndex>1</dataGroupIndex> </par : attributes > </par : parameter> ¦ ¥ Utilizando a Figura 5.6, para poder utilizar no comando o parâmetro que faça referência ao arquivo do tipo MAP, do segundo grupo da primeira coleção de entradas, o parâmetro deve receber
  • 49. 5.2 METAMODELO 37 o valor 2 na tag dataGroupIndex e na tag dataTypeId o id do tipo de arquivo MAP. § <par : attributes > <dataTypeId>1</dataTypeId> <dataGroupIndex>2</dataGroupIndex> </par : attributes > ¦ ¥ Node Folder Parameter Este parâmetro é utilizado para fornecer o diretório do diretório do nó. Ele é normalmente utilizado juntamente com parâmetros do tipo Script Parameter. A especificação XML não possui atributos especiais, apenas as propriedades padrão dos parâmetros devem ser especificadas. Current Node File Parameter Este tipo de parâmetro é utilizado para fazer referência a um arquivo localizado dentro do di- retório do nó. A especificação XML recebe como atributo o nome do arquivo que deve existir no diretório no momento da execução do nó. § <par : parameter id="13"> <par : class>CurrentNodeFileParameter </par : class> <par : name>out</par : name> <par : command>−−out</par : command> <par : label ><![CDATA[ out]]></par : label> <par : attributes > <filename ><![CDATA[ r e s u l t ]]></ filename> </par : attributes > </par : parameter> ¦ ¥ Esse parâmetro pode ser utilizado nas execuções do Plink com o comando -out para indicar o nome das bases de dados que devem ser geradas. Script Parameter Este parâmetro é utilizado para gerar scripts que serão executados em recursos de software. Ele foi desenvolvido especialmente para trabalhar em conjunto com a aplicação Rscript, versão do R que executa comandos em um arquivo contendo os comandos a serem executados. A especificação XML do parâmetro recebe como atributos o nome do arquivo a ser gerado e o conteúdo do arquivo. No momento da construção do comando o SNPminer cria o arquivo com o script no diretório do nó e insere na linha de comando a instrução com referência ao arquivo gerado.
  • 50. 38 SNPMINER 5.2 § <par : parameter id=""> <par : class>ScriptParameter </par : class> <par : name>script </par : name> <par : command></par : command> <par : attributes > <filename>nome_do_arquivo .R</filename> <script ><![CDATA[ l i b r a r y ( "data . table " ) l i b r a r y ( " s c a t t e r p l o t 3 d " ) args <− commandArgs(TRUE) rawFile <− args [ 1 ] targetFolder <− args [ 2 ] # . . . restante do s c r i p t . . . ]]></ script > </par : attributes > </par : parameter> ¦ ¥ Como o Rscript aceita argumentos este recurso pode ser utilizado, juntamente com os parâ- metros do SNPminer, para fornecer ao script mais informações sobre a execução. Boolean Parameter Os parâmetros desse tipo oferecem ao usuário a opção do comando ser ou não executado. É apresentado na janela de propriedades do nó uma caixa de seleção. Basta que a opção seja selecio- nada pelo usuário para que o comando conste na linha de execução do recurso de software. A especificação XML recebe apenas os dados comuns a todos os parâmetros, da mesma forma que o tipo Fixed Parameter (ver seção 5.2.5). Selection Parameter Este parâmetro mostra para o usuário uma lista de seleção onde o mesmo pode escolher apenas um valor. A Figura 5.9 mostra um exemplo de como o parâmetro é exibido para o usuário na janela de propriedades do nó. A especificação XML do parâmetro contém os atributos labels e items. A tag labels recebe a lista de valores que serão exibidos ao usuário na caixa de selação. A tag items recebe a lista de valores que serão utilizados no comando. Os itens devem ser fornecidos separados por "três dois pontos", isto é, o conjunto de caracteres “:::”. Tanto a lista de labels como a de itens devem conter o mesmo número de elementos. § <par : parameter id="10"> <par : class>SelectionParameter </par : class> <par : name>parameter </par : name> <par : command>−−comando</par : command> <par : label ><![CDATA[ Descrição do parâmetro]]></par : label> <par : attributes > <labels ><![CDATA[ Seleção 1 : : : Seleção 2 : : : Seleção 3]]></ labels > <items ><![CDATA[ valor1 : : : valor2 : : : valor3 ]]></items> </par : attributes > </par : parameter> ¦ ¥
  • 51. 5.2 METAMODELO 39 Figura 5.9: Selection Parameter na janela de propriedades do nó. Acima a caixa de selação. Abaixo a lista de escolhas de valores do parâmetro. Família dos parâmetros de valores Com exceção dos parâmetros do tipo Selection e Boolean, todos os outros parâmetros da fa- mília Valued Parameters funcionam da mesma maneira. Esses parâmetros não possuem atributos especiais e recebem um valor simples que depende do tipo de parâmetro. A Tabela 5.2 mostra os parâmetros dessa família e quais valores eles suportam. Parâmetro Informação suportada Double Armazena um número decimal File Recebe um nome de arquivo para fazer referência a um arquivo existente no sistema Integer Armazena um número inteiro String Armazena um texto Tabela 5.2: Tipos de parâmetros da família Valued Parameters e tipos de informação suportada A especificação XML recebe apenas os dados comuns a todos os parâmetros, da mesma forma que o tipo Fixed Parameter (ver seção 5.2.5). Na janela de propriedades do nó os parâmetros dessa família são exibidos como uma caixa de texto para que o usuário insira o valor desejado para a exe- cução do nó. A Figura 5.10 mostra a tela de propriedades de um nó que recebe quatro parâmetros da família Valued Parameters. 5.2.6 Arquivos gerados Arquivos gerados (Generated Files, em inglês) possuem duas funções na especificação: fornecer ao nó o nome dos arquivos gerados e fornecer informações de como o arquivo deve ser exibido na janela de propriedades do nó. Os arquivos gerados devem ser os últimos elementos especificados no nó.
  • 52. 40 SNPMINER 5.2 Figura 5.10: Parâmetros da família Valued Parameters na janela de propriedades do nó. § <mn: generatedFiles > <gf : generatedFile id="12"> <gf : f i l e >imagem . jpg </gf : f i l e > <gf : dataTypeId>3</gf : dataTypeId> <gf : fileType >IMAGE</gf : fileType > <gf : render>true</gf : render> </gf : generatedFile > <gf : generatedFile id="13"> <gf : f i l e >arquivo . txt </gf : f i l e > <gf : dataTypeId>4</gf : dataTypeId> <gf : fileType >FLATFILE</gf : fileType > <gf : render>true</gf : render> </gf : generatedFile > </mn: generatedFiles > ¦ ¥ As características informadas para os arquivos gerados são descritas a seguir. • gf:file representa o nome do arquivo que será gerado. O nome dos arquivos gerados devem ser fixos, isto é, o recurso de software deve gerar sempre o arquivo com o mesmo nome; • gf:dataTypeId contém o id do tipo de arquivo gerado (especificado anteriormente no nó); • gf:fileType informa o “tipo” de arquivo que será exibido na janela de propriedades do nó. Atualmente o SNPminer consegue exibir arquivos de texto plano (FLATFILE) e imagens (IMAGE); • gf:render informa ao SNPminer se o arquivo deve ou não ser exibido na janela de propriedades do nó. A tag pode receber os valores true ou false. Os tipos de arquivos definidos no grupo de dados de saída do nó devem ser, obrigatoriamente, cadastrados como arquivos gerados.
  • 53. 5.3 METAMODELO 41 5.2.7 Metanode Manager O SNPminer oferece uma funcionalidade para o gerenciamento dos nós, o Metanode manager. Nesta janela (acessada via o menu “Arquivo”) o usuário pode adicionar e remover nós, alterar nós existentes e substituir a especificação dos nós por outra (enviada, por exemplo, por outro usuário ou a partir de um fluxo existente). A janela permite também atualizar o endereço do arquivo executável dos recursos de software, consultar os tipos de arquivos e grupos de dados. A Figura 5.11 mostra a janela de edição de nós, que exibe a especificação XML dos nós disponíveis. Para a criação de novos nós o usuário deve conhecer o metamodelo XML e definir manualmente a especificação do nó. Figura 5.11: Metanode Manager no SNPminer. As especificações dos nós ficam armazenadas em um arquivo XML na pasta .snpminer criada automaticamente pelo software na pasta padrão do usuário. Esse arquivo define quais nós estarão disponíveis no software para a criação dos fluxos. Pelo Metanode manager é possível importar ar- quivos de usuários, mesclar os nós com os existentes em outro fluxos e exportar o arquivo para envio para outros usuários. A Figura 5.12 mostra o menu com essas opções. Ao terminar de realizar as alterações o usuário precisa selecionar a opção “Apply specifications on SNPminer”. Essa ação remove permanentemente os nós excluídos ou editados e os substitui pelos novos nós. Para garantir que as especificações anteriores não sejam perdidas recomanda-se manter um backup do arquivo. Caso o software não encontre o arquivo com especificações na pasta do usuário ele criará esse arquivo utilizando os nós padrão.
  • 54. 42 SNPMINER 5.3 Figura 5.12: Detalhe das funcionalidades do Metanode Manager. 5.3 Limitações do metamodelo e qualidade da especificação dos nós Listam-se a seguir as maiores limitações do metamodelo utilizado pelo SNPminer. 1. Cada nó pode executar apenas um recurso de software. 2. Um nó fornece apenas um tipo de grupo de dados como saída. Não é possível parametrizar a saída de acordo com a coleção de entrada ou qualquer outra característica do nó. 3. Não é possível definir um valor inicial personalizado para os parâmetros da família Valued Parameters. 4. O nome dos arquivos gerados pelo nó deve ser fixo. A qualidade na especificação dos nós impacta diretamente no uso do SNPminer, por esse mo- tivo o usuário deve realizar um estudo minucioso do metamodelo e de como adequar os recursos de software, parâmetros e transferência de arquivos entre nós no fluxo para maximizar a usabilidade da ferramenta. Nós especificados de maneira incompleta podem fazer com que o uso do SNPminer dificulte a análise dos dados.
  • 55. Capítulo 6 Conclusões 6.1 Considerações Finais Este trabalho mostrou o poder da análise de componentes principais e suas variações incluindo efeitos aleatórios para a obtenção da informação latente de ancestralidade em bases de dados gené- ticas utilizando SNPs. Essas componentes podem então ser utilizadas com variáveis de entradas em estudos de associação de doenças a variantes genéticas, como sugerido pela literatura, para reduzir o viés que populações miscigenadas podem causar nos resultados de tais análises. O trabalho também contemplou o processo de limpeza e preparação das bases de dados para tais análises e apresentou o SNPminer que tem como objetivo unificar em uma única ferramenta amigável todos os recursos de software necessários para realização de tais análises. 6.2 Trabalhos futuros O SNPminer está em fase beta, ou seja, está funcional e deve entrar em fase de testes com usuários finais para correção de possíveis bugs e ajustes em questões de usabilidade. Para o futuro planeja-se: • Criar uma engine que permita que a interface gráfica seja executada localmente (no com- putador do usuário) porém o processamento de dados seja direcionado para um servidor, permitindo o uso da interface amigável do SNPminer e do poder de processamento de um servidor. • Criar de novos parâmetros e alterações no metamodelo para deixar a especificação dos nós mais flexível e permitir que o SNPminer seja compatível com mais tipos de recursos de software. • Disponibilizar uma página web para divulgação e utilização pública do software contendo instruções de download, documentação da ferramenta e tutoriais de uso. 43
  • 57. Referências Bibliográficas [Andrade2014] Andrade, M., Soler, Julia M. P. Multivariate Polygenic Mixed Model in Admixed Population. 2014. 1 [Bauchet2007] Bauchet, M., McEvoy, B., Pearson, L. N., Quillen, E. E., Sarkisian, T., Hovhan- nesyan, K., Deka, R., Bradley, D. G., Shriver, M. D. Measuring Europeans Population Stratifi- cation with Microarray Genotype Data. The American Journal of Human Genetics 80, 948-956, 2007. 12 [Chae2006] Chae, S. S., Warde, W. D. Effect of using principal coordinates and principal compo- nents on retrieval of clusters. Computational Statistics and Data Analysis 50, 1407-1417, 2006. 12 [Duarte2015] Duarte, Nubia E.; Giolo, Suely R.; Andrade, Mariza; Soler, Júlia P. On the Equiva- lence od Methods for Population Stratification and their Applications in Genetic Association Studies. Revista Colombiana de Estadística. 12 [Falush2003] Falush, Daniel et al. Inference of Population Structure Using Multilocus Genotype Data: Linked Loci and Correlated Allele Frequencies. Genetics Society of America. 2003. [Hapmap2010] International HapMap consortium, 2010, http://hapmap.ncbi.nlm.nih.gov/index. html.en. Acessado em 05/08/2015. 6 [Konishi1992] Konishi, S. and Rao, C. R. Principal component analysis for multivariate family data. Biometria 79: 631-641, 1992. 1, 19 [NIH-Gene] National Institute of Health, What is a gene?, 2014, http://ghr.nlm.nih.gov/handbook/ basics/gene. Acessado em 01 de maio de 2015. 4 [NIH-SNP] National Institute of Health, What are single nucleotide polymorphisms (SNPs)?, 2014, http://ghr.nlm.nih.gov/handbook/genomicresearch/snp. Acessado em 01 de setembro de 2014. [Ott1992] Ott J, Rabinowitz D. A principal components approach based on herdability for combi- ning phenotype information. Hum Hered 1999;49:106-111. 20 [Oualkacha2012] Oualkacha, K., Labbe, A., Ciampi, A., Roy, M. A. and Maziade, M. Principal components of heritability for high dimension quantitative traits and general pedigree. Journal of Statistical Applications in Genetics and Molecular Biology 11(2), Article 4, 2012. ix, 1, 18, 19, 21, 22 [Pearson2006] Pearson, Helen. Genetics: What is a gene?. Nature, Volume 441, Issue 7092, pp. 398-401 (2006). 3 [Plink2007] Purcell S, Neale B, et. al., PLINK: a toolset for whole-genome association and population-based linkage analysis. American Journal of Human Genetics, http://pngu.mgh. harvard.edu/purcell/plink/, 2007. 4, 5 [Price2006] Price, Alkes L., et al. Principal components analysis corrects for stratification in genome-wide association studies. Nature Genetics, 2006. 1, 12, 13 45
  • 58. 46 REFERÊNCIAS BIBLIOGRÁFICAS 6.2 [R2014] R Core Team. R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. 2014. URL http://www.R-project.org/. 5 [Robinson2010] Robinson, Tara Rodden. Genetics for Dummies. Wiley Publishing, Inc. 2nd edition. 2010. ix, 10 [Turner2011] Turner, Stephen, et al. Quality Control Procedures for Genome Wide Association Studies. Curr Protoc Hum Genet. 2011 January ; CHAPTER: Unit1.19. 9 [Utah-SNP] University of Utah, Genetic Science Learning Center. Making SNPs Make Sense, 2014, http://learn.genetics.utah.edu/content/pharma/snips. Acessado em 01 de maio de 2015. 4 [Wang2007] Yuanjia Wang, Yixin Fang, Man Jin. A Ridge Penalized Principal-Components Ap- proach Based on Heritability for High-Dimensional Data. Hum Hered 2007; 64:182-191. 20 [Wiki-Genome] Wikipedia, Human genome - Wikipedia, The Free Encyclopedia, 2014, http://en. wikipedia.org/w/index.php?title=Human_genome&oldid=622056857. Acessado em 01 de se- tembro de 2014. [Wiki-LD] Wikipedia, Linkage Disequilibrium - Wikipedia, The Free Encyclopedia, 2015, https: //en.wikipedia.org/wiki/Linkage_disequilibrium. Acessado em 12 de setembro de 2015. 9 [Wiki-PCA] Wikipedia, Principal Components Analysis - Wikipedia, The Free Encyclopedia, 2014, http://en.wikipedia.org/wiki/Principal_component_analysis. Acessado em 02 de setembro de 2014. ix, 11 [Wiki-SNP] Wikipedia, Single-nucleotide polymorphism - Wikipedia, The Free Encyclopedia, 2015, http://en.wikipedia.org/wiki/Single-nucleotide_polymorphism. Acessado em 01 de maio de 2015. 4 [Zhang2003] Zhang, S., Zhu, X., Elston, R. C. On a semiparametric test to detect associations between quantitative traits ans candidate genes using unrelated individuals. Genetic Epidemi- ology 24, 44-56, 2003. 12, 13