Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Genômica - configuração e execução do GATK

Colaboradores

De acordo com o National Human Genome Research Institute ( "NHGRI"), "a genômica é o estudo de todos os genes de uma pessoa (o genoma), incluindo interações desses genes entre si e com o ambiente de uma pessoa. "

De acordo com o "NHGRI", "o ácido desoxirribonucleico (DNA) é o composto químico que contém as instruções necessárias para desenvolver e direcionar as atividades de quase todos os organismos vivos. As moléculas de DNA são feitas de dois fios torcidos, emparelhados, muitas vezes referidos como uma hélice dupla." "O conjunto completo de DNA de um organismo é chamado de genoma."

Sequenciamento é o processo de determinação da ordem exata das bases em uma cadeia de DNA. Um dos tipos mais comuns de sequenciamento usado hoje é chamado sequenciamento por síntese. Esta técnica utiliza a emissão de sinais fluorescentes para ordenar as bases. Os pesquisadores podem usar o sequenciamento de DNA para procurar variações genéticas e quaisquer mutações que possam desempenhar um papel no desenvolvimento ou progressão de uma doença enquanto uma pessoa ainda está em estágio embrionário.

Da amostra à identificação, anotação e previsão da variante

Em um nível elevado, a genômica pode ser classificada nas seguintes etapas. Esta não é uma lista exaustiva:

  1. Colheita de amostras.

  2. "Sequenciamento do genoma" usando um sequenciador para gerar os dados brutos.

  3. Pré-processamento. Por exemplo "deduplicação", usando "Picard".

  4. Análise genômica.

    1. Mapeamento para um genoma de referência.

    2. "Variante" Identificação e anotação normalmente realizadas usando o GATK e ferramentas semelhantes.

  5. Integração no sistema de registo eletrónico de saúde (EHR).

  6. "Estratificação populacional" e identificação da variação genética entre localização geográfica e origem étnica.

  7. "Modelos preditivos" usando polimorfismo de um único nucleotídeo significativo.

  8. "Validação".

A figura a seguir mostra o processo de amostragem à identificação, anotação e previsão da variante.

Erro: Imagem gráfica em falta

O projeto Genoma humano foi concluído em abril de 2003, e o projeto fez uma simulação de alta qualidade da sequência do genoma humano disponível no domínio público. Este genoma de referência iniciou uma explosão na pesquisa e desenvolvimento de capacidades genômicas. Praticamente toda doença humana tem uma assinatura nos genes desse ser humano. Até recentemente, os médicos estavam alavancando genes para prever e determinar defeitos congênitos como anemia falciforme, que é causada por um certo padrão de herança causado por uma mudança em um único gene. O tesouro dos dados que estão sendo disponibilizados pelo projeto do genoma humano levou ao advento do estado atual das capacidades genômicas.

A genômica tem um amplo conjunto de benefícios. Aqui está um pequeno conjunto de benefícios nos domínios da saúde e ciências da vida:

  • Melhor diagnóstico no ponto de atendimento

  • Melhor prognóstico

  • Medicina de precisão

  • Planos de tratamento personalizados

  • Melhor monitoramento de doenças

  • Redução de eventos adversos

  • Melhor acesso a terapias

  • Melhor monitoramento de doenças

  • Participação efetiva em ensaios clínicos e melhor seleção de pacientes para ensaios clínicos com base em genótipos.

A genômica ocorre "besta de quatro cabeças," devido às demandas computacionais em todo o ciclo de vida de um conjunto de dados: Aquisição, storage, distribuição e análise.

Genoma Analysis Toolkit (GATK)

O GATK foi desenvolvido como uma plataforma de ciência de dados na "Instituto amplo". O GATK é um conjunto de ferramentas de código aberto que permitem a análise do genoma, especificamente descoberta de variantes, identificação, anotação e genotipagem. Um dos benefícios do GATK é que o conjunto de ferramentas e comandos ou podem ser encadeados para formar um fluxo de trabalho completo. Os principais desafios que o instituto amplo enfrenta são os seguintes:

  • Compreender as causas e os mecanismos biológicos das doenças.

  • Identificar intervenções terapêuticas que atuam na causa fundamental de uma doença.

  • Entenda a linha de visão de variantes para funcionar na fisiologia humana.

  • Crie padrões e políticas "frameworks" para representação de dados do genoma, armazenamento, análise, segurança e assim por diante.

  • Padronize e socialize bancos de dados interoperáveis de agregação de genoma (gnomAD).

  • Monitoramento, diagnóstico e tratamento baseados em genoma de pacientes com maior precisão.

  • Ajude a implementar ferramentas que predizem doenças bem antes que os sintomas apareçam.

  • Criar e capacitar uma comunidade de colaboradores multidisciplinares para ajudar a resolver os problemas mais difíceis e mais importantes da biomedicina.

De acordo com o GATK e o instituto amplo, o sequenciamento do genoma deve ser Tratado como um protocolo em um laboratório de patologia; cada tarefa é bem documentada, otimizada, reprodutível e consistente em amostras e experimentos. A seguir está um conjunto de etapas recomendadas pelo Broad Institute. Para obter mais informações, consulte o "Website da GATK".

Configuração FlexPod

A validação da carga de trabalho genômica inclui uma configuração do zero de uma plataforma de infraestrutura FlexPod. A plataforma FlexPod é altamente disponível e pode ser dimensionada de forma independente. Por exemplo, a rede, o storage e a computação podem ser dimensionados de forma independente. Usamos o seguinte guia de design validado pela Cisco como o documento de arquitetura de referência para configurar o ambiente FlexPod: "Data center FlexPod com VMware vSphere 7,0 e NetApp ONTAP 9 .7". Veja os seguintes destaques de configuração da plataforma FlexPod:

Para executar a configuração do laboratório do FlexPod, execute as seguintes etapas:

  1. A configuração e a validação do laboratório FlexPod usam as seguintes reservas e VLANs IP4.1X.

    Erro: Imagem gráfica em falta

  2. Configurar LUNs de inicialização baseados em iSCSI no ONTAP SVM.

    Erro: Imagem gráfica em falta

  3. Mapear LUNs para grupos de iniciadores iSCSI.

    Erro: Imagem gráfica em falta

    Erro: Imagem gráfica em falta

  4. Instale o vSphere 7,0 com a inicialização iSCSI.

  5. Registre hosts ESXi com o vCenter.

    Erro: Imagem gráfica em falta

  6. Provisionar um armazenamento de dados NFS infra_datastore_nfs no storage ONTAP.

    Erro: Imagem gráfica em falta

  7. Adicione o datastore ao vCenter.

    Erro: Imagem gráfica em falta

  8. Usando o vCenter, adicione um datastore NFS aos hosts ESXi.

    Erro: Imagem gráfica em falta

  9. Usando o vCenter, crie uma VM Red Hat Enterprise Linux (RHEL) 8,3 para executar o GATK.

  10. Um datastore NFS é apresentado à VM e montado no /mnt/genomics, que é usado para armazenar executáveis GATK, scripts, arquivos de mapa de alinhamento binário (BAM), arquivos de referência, arquivos de índice, arquivos de dicionário e arquivos de saída para chamadas variantes.

    Erro: Imagem gráfica em falta

Configuração e execução do GATK

Instale os seguintes pré-requisitos na VM Linux do RedHat Enterprise 8,3:

  • Java 8 ou SDK 1,8 ou posterior

  • Baixe o GATK 4.2.0.0 do Broad Institute "Site do GitHub". Os dados de sequência do genoma são geralmente armazenados na forma de uma série de colunas ASCII delimitadas por tabulações. No entanto, ASCII ocupa muito espaço para armazenar. Portanto, um novo padrão evoluiu chamado um arquivo BAM (.bam). Um arquivo BAM armazena os dados de sequência em uma forma compactada, indexada e binária. Nós "transferido" um conjunto de arquivos BAM disponíveis publicamente para execução do GATK a partir do "domínio público". Também baixamos arquivos de índice (.bai), arquivos de dicionário (. Dict) e arquivos de dados de referência (. fasta) do mesmo domínio público.

Após o download, o kit de ferramentas GATK tem um arquivo jar e um conjunto de scripts de suporte.

  • gatk-package-4.2.0.0-local.jar executável

  • gatk ficheiro de script.

Nós baixamos os arquivos BAM e os arquivos correspondentes de índice, dicionário e genoma de referência para uma família que consistia em arquivos pai, mãe e filho *.bam.

Motor Cromwell

Cromwell é um mecanismo de código aberto voltado para fluxos de trabalho científicos que permite o gerenciamento de fluxos de trabalho. O mecanismo Cromwell pode ser executado em dois "modos" modos , servidor ou em um modo de execução de fluxo de trabalho único. O comportamento do motor Cromwell pode ser controlado com o "Ficheiro de configuração do motor Cromwell".

  • Modo servidor. Permite "Repousante" a execução de fluxos de trabalho no motor Cromwell.

  • Modo de execução. O modo de execução é mais adequado para a execução de fluxos de trabalho individuais no Cromwell, "ref" para um conjunto completo de opções disponíveis no modo de execução.

Usamos o motor Cromwell para executar os fluxos de trabalho e pipelines em escala. O motor Cromwell usa uma linguagem de script baseada em WDL (user-friendly "idioma de descrição do fluxo de trabalho"). Cromwell também suporta um segundo padrão de script de fluxo de trabalho chamado linguagem de fluxo de trabalho comum (CWL). Ao longo deste relatório técnico, utilizamos a WDL. O WDL foi originalmente desenvolvido pelo Instituto amplo para pipelines de análise de genoma. O uso dos fluxos de trabalho WDL pode ser implementado usando várias estratégias, incluindo as seguintes:

  • * Encadeamento linear.* Como o nome sugere, a saída da tarefa nº 1 é enviada para a tarefa nº 2 como entrada.

  • * Multi-in / out. * Isso é semelhante ao encadeamento linear, na medida em que cada tarefa pode ter várias saídas sendo enviadas como entrada para tarefas subsequentes.

  • Scatter-GET. Essa é uma das estratégias de integração de aplicativos empresariais (EAI) mais poderosas disponíveis, especialmente quando usada em arquitetura orientada a eventos. Cada tarefa é executada de forma dissociada, e a saída para cada tarefa é consolidada na saída final.

Há três etapas quando o WDL é usado para executar o GATK em um modo autônomo:

  1. Valide a sintaxe womtool.jar usando .

    [root@genomics1 ~]#  java -jar womtool.jar validate ghplo.wdl
  2. Gerar entradas JSON.

    [root@genomics1 ~]#  java -jar womtool.jar inputs ghplo.wdl > ghplo.json
  3. Execute o fluxo de trabalho usando o mecanismo Cromwell e Cromwell.jar.

    [root@genomics1 ~]#  java -jar cromwell.jar run ghplo.wdl –-inputs ghplo.json

O GATK pode ser executado usando vários métodos; este documento explora três desses métodos.

Execução do GATK usando o arquivo jar

Vamos olhar para uma única execução de pipeline de chamada variante usando o chamador da variante haplotype.

[root@genomics1 ~]#  java -Dsamjdk.use_async_io_read_samtools=false \
-Dsamjdk.use_async_io_write_samtools=true \
-Dsamjdk.use_async_io_write_tribble=false \
-Dsamjdk.compression_level=2 \
-jar /mnt/genomics/GATK/gatk-4.2.0.0/gatk-package-4.2.0.0-local.jar \
HaplotypeCaller \
--input /mnt/genomics/GATK/TEST\ DATA/bam/workshop_1906_2-germline_bams_father.bam \
--output workshop_1906_2-germline_bams_father.validation.vcf \
--reference /mnt/genomics/GATK/TEST\ DATA/ref/workshop_1906_2-germline_ref_ref.fasta

Neste método de execução, usamos o arquivo jar de execução local GATK, usamos um único comando java para invocar o arquivo jar, e passamos vários parâmetros para o comando.

  1. Este parâmetro indica que estamos invocando o HaplotypeCaller pipeline de chamadas variante.

  2. -- input Especifica o arquivo BAM de entrada.

  3. --output especifica o arquivo de saída da variante no formato de chamada variante (*.vcf("ref") ).

  4. Com o --reference parâmetro, estamos passando um genoma de referência.

Uma vez executado, os detalhes de saída podem ser encontrados na seção "Saída para execução do GATK usando o arquivo jar."

Execução do GATK usando script ./gatk

O kit de ferramentas GATK pode ser executado usando o ./gatk script. Vamos examinar o seguinte comando:

[root@genomics1 execution]# ./gatk \
--java-options "-Xmx4G" \
HaplotypeCaller \
-I /mnt/genomics/GATK/TEST\ DATA/bam/workshop_1906_2-germline_bams_father.bam \
-R /mnt/genomics/GATK/TEST\ DATA/ref/workshop_1906_2-germline_ref_ref.fasta \
-O /mnt/genomics/GATK/TEST\ DATA/variants.vcf

Passamos vários parâmetros para o comando.

  • Este parâmetro indica que estamos invocando o HaplotypeCaller pipeline de chamadas variante.

  • -I Especifica o arquivo BAM de entrada.

  • -O especifica o arquivo de saída da variante no formato de chamada variante (*.vcf("ref") ).

  • Com o -R parâmetro, estamos passando um genoma de referência.

Uma vez executado, os detalhes de saída podem ser encontrados na seção

Execução do GATK usando o motor Cromwell

Usamos o motor Cromwell para gerenciar a execução do GATK. Vamos examinar a linha de comando e seus parâmetros.

[root@genomics1 genomics]# java -jar cromwell-65.jar \
run /mnt/genomics/GATK/seq/ghplo.wdl  \
--inputs /mnt/genomics/GATK/seq/ghplo.json

Aqui, invocamos o comando Java passando o -jar parâmetro para indicar que pretendemos executar um arquivo jar, por exemplo, Cromwell-65.jar. O próximo parâmetro passado (run) indica que o motor Cromwell está em funcionamento no modo Run (Executar), a outra opção possível é o modo Server (servidor). O próximo parâmetro é *.wdl que o modo Run deve ser usado para executar os pipelines. O próximo parâmetro é o conjunto de parâmetros de entrada para os fluxos de trabalho que estão sendo executados.

Veja como é o conteúdo do ghplo.wdl arquivo:

[root@genomics1 seq]# cat ghplo.wdl
workflow helloHaplotypeCaller {
  call haplotypeCaller
}
task haplotypeCaller {
  File GATK
  File RefFasta
  File RefIndex
  File RefDict
  String sampleName
  File inputBAM
  File bamIndex
  command {
    java -jar ${GATK} \
         HaplotypeCaller \
        -R ${RefFasta} \
        -I ${inputBAM} \
        -O ${sampleName}.raw.indels.snps.vcf
  }
  output {
    File rawVCF = "${sampleName}.raw.indels.snps.vcf"
  }
}
[root@genomics1 seq]#

Aqui está o arquivo JSON correspondente com as entradas para o motor Cromwell.

[root@genomics1 seq]# cat ghplo.json
{
"helloHaplotypeCaller.haplotypeCaller.GATK": "/mnt/genomics/GATK/gatk-4.2.0.0/gatk-package-4.2.0.0-local.jar",
"helloHaplotypeCaller.haplotypeCaller.RefFasta": "/mnt/genomics/GATK/TEST DATA/ref/workshop_1906_2-germline_ref_ref.fasta",
"helloHaplotypeCaller.haplotypeCaller.RefIndex": "/mnt/genomics/GATK/TEST DATA/ref/workshop_1906_2-germline_ref_ref.fasta.fai",
"helloHaplotypeCaller.haplotypeCaller.RefDict": "/mnt/genomics/GATK/TEST DATA/ref/workshop_1906_2-germline_ref_ref.dict",
"helloHaplotypeCaller.haplotypeCaller.sampleName": "fatherbam",
"helloHaplotypeCaller.haplotypeCaller.inputBAM": "/mnt/genomics/GATK/TEST DATA/bam/workshop_1906_2-germline_bams_father.bam",
"helloHaplotypeCaller.haplotypeCaller.bamIndex": "/mnt/genomics/GATK/TEST DATA/bam/workshop_1906_2-germline_bams_father.bai"
}
[root@genomics1 seq]#

Por favor, note que Cromwell usa um banco de dados na memória para a execução. Uma vez executado, o log de saída pode ser visto na seção "Saída para execução do GATK usando o motor Cromwell."

Para obter um conjunto abrangente de etapas sobre como executar o GATK, consulte o "Documentação do GATK".