Executar o DeepVariant

O DeepVariant é um pipeline de análise que usa uma rede neural profunda para chamar variantes genéticas de dados de sequenciamento de DNA de última geração.

Neste tutorial, explicamos como executar o DeepVariant no Google Cloud usando dados de amostra. Você executa o DeepVariant em uma única instância do Compute Engine.

Objetivos

Depois de concluir este tutorial, você saberá como executar o DeepVariant no Google Cloud.

Custos

Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:

  • Compute Engine

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative a API Compute Engine.

    Ative a API

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative a API Compute Engine.

    Ative a API

  8. Instale a CLI do Google Cloud.
  9. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  10. Dica: precisa de um prompt de comando? É possível usar o Cloud Shell. O Cloud Shell é um ambiente de linha de comando que já inclui a Google Cloud CLI. Portanto, não é necessário instalá-la.

Crie uma instância do Compute Engine

Crie uma instância do Compute Engine usando o console do Google Cloud ou a CLI gcloud para executar o DeepVariant.

Console

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar a página Instâncias de VM

  2. Clique em Criar instância.
  3. Escolha um Nome para a instância no formato PROJECT_ID-deepvariant-run, em que PROJECT_ID é o ID do seu projeto do Google Cloud.
  4. Escolha uma região e zona para a instância. A menos que você tenha um motivo específico para executar a instância em um determinado local, selecione us-central1 (Iowa) para a Região e us-central1-a para a Zona.
  5. No menu Tipo de máquina, selecione n1-standard-64 (64 vCPU, 240 GB de memória).
  6. No menu Plataforma da CPU, selecione Intel Skylake ou posterior.
  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização.
  8. Na guia Imagens públicas, escolha Ubuntu 20.04 LTS. No menu Tipo de disco de inicialização, selecione Disco permanente padrão. No campo Tamanho (GB), insira 300. Clique em Selecionar.
  9. Clique em Criar para gerar a instância.

gcloud

gcloud compute instances create \
    PROJECT_ID-deepvariant-run \
    --project PROJECT_ID \
    --zone ZONE \
    --scopes "cloud-platform" \
    --image-project ubuntu-os-cloud \
    --image-family ubuntu-2004-lts \
    --machine-type n1-standard-64 \
    --min-cpu-platform "Intel Skylake" \
    --boot-disk-size=300GB

Substitua:

  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • ZONE: é a zona em que a instância é implantada. Uma zona é um local regional aproximado em que a instância e os recursos estão ativos. Por exemplo, us-west1-a é uma zona na região us-west. Se você definiu uma zona padrão anteriormente usando gcloud config set compute/zone, o valor dessa sinalização substitui esse padrão.

Aguarde até que a instância seja inicializada. Depois que estiver pronta, ela aparecerá na página Instâncias de VM com um ícone de status verde.

Conecte-se à instância

É possível se conectar à instância usando o Console do Google Cloud ou a CLI gcloud:

Console

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar a página Instâncias de VM

  2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância que você criou.

gcloud

gcloud compute ssh PROJECT_ID-deepvariant-run --zone ZONE

Executar o DeepVariant

Configure o ambiente e execute o DeepVariant na instância do Compute Engine que você criou:

  1. Instale o Docker Community Edition (CE):

    sudo apt-get -qq -y install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"
    sudo apt-get -qq -y update
    sudo apt-get -qq -y install docker-ce
    
  2. Configure as variáveis de ambiente do DeepVariant copiando e colando os seguintes comandos no ambiente local:

    BIN_VERSION="1.2.0"
    BASE="${HOME}/deepvariant-run"
    INPUT_DIR="${BASE}/input"
    REF="GRCh38_no_alt_analysis_set.fasta"
    BAM="HG003.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam"
    OUTPUT_DIR="${BASE}/output"
    DATA_DIR="${INPUT_DIR}/data"
    OUTPUT_VCF="HG003.output.vcf.gz"
    OUTPUT_GVCF="HG003.output.g.vcf.gz"
    
  3. Crie a estrutura de diretório local para o diretório de dados de entrada e o diretório de saída:

    mkdir -p "${OUTPUT_DIR}"
    mkdir -p "${INPUT_DIR}"
    mkdir -p "${DATA_DIR}"
    
  4. Neste tutorial, usamos um genoma HG003 disponível publicamente com uma cobertura de 30x mapeada para a referência GRCh38. Para garantir um ambiente de execução mais rápido, adicione a sinalização --regions chr20 ao executar o DeepVariant para que ele seja executado somente no cromossomo 20 (chr20).

    Os dados de amostra foram criados usando o sequenciamento Illumina, mas o DeepVariant também é compatível com estes outros tipos de dados de entrada:

    • Whole genome (Illumina) (WGS)
    • Exome (Illumina) (WES)
    • Whole genome (PacBio)
    • Genoma completo PacBio e Illumina híbrido (HYBRID_PACBIO_ILLUMINA)

    Execute gsutil cp para copiar os dados de teste de entrada do bucket do Cloud Storage deepvariant para os diretórios na instância que você criou:

    # Input BAM and BAI files:
    gsutil cp gs://deepvariant/case-study-testdata/"${BAM}" "${DATA_DIR}"
    gsutil cp gs://deepvariant/case-study-testdata/"${BAM}".bai "${DATA_DIR}"
    
    # GRCh38 reference FASTA file:
    FTPDIR=ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/001/405/GCA_000001405.15_GRCh38/seqs_for_alignment_pipelines.ucsc_ids
    curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.gz | gunzip > "${DATA_DIR}/${REF}"
    curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.fai > "${DATA_DIR}/${REF}".fai
    
  5. O DeepVariant é um aplicativo em contêiner preparado em uma imagem do Docker pré-criada no Container Registry. Para receber a imagem, execute o seguinte comando:

    sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
    
  6. Para iniciar o DeepVariant, execute o seguinte comando:

    sudo docker run \
        -v "${DATA_DIR}":"/input" \
        -v "${OUTPUT_DIR}:/output" \
        gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"  \
        /opt/deepvariant/bin/run_deepvariant \
        --model_type=WGS \
        --ref="/input/${REF}" \
        --reads="/input/${BAM}" \
        --output_vcf=/output/${OUTPUT_VCF} \
        --output_gvcf=/output/${OUTPUT_GVCF} \
        --regions chr20 \
        --num_shards=$(nproc) \
        --intermediate_results_dir /output/intermediate_results_dir
    

    A tabela abaixo descreve as sinalizações passadas para o comando:

    Bandeira Descrição
    model_type O DeepVariant é compatível com vários tipos diferentes de dados de entrada. Neste tutorial usamos o sequenciamento completo do genoma (Whole Genome Sequencing, WSG, em inglês).
    ref O local do arquivo de referência FASTA.
    reads O local do arquivo BAM de entrada.
    output_vcf O local dos arquivos VCF de saída.
    output_gvcf O local dos arquivos gVCF de saída.
    regions (Opcional) Uma lista separada por espaços de regiões de cromossomo a serem processadas. Elementos individuais podem ser literais de região, como chr20:10-20 ou caminhos para arquivos BED/BEDPE.
    num_shards O número de fragmentos a serem executados em paralelo. Para resultados melhores, defina o valor dessa sinalização com o número de núcleos na máquina em que o DeepVariant é executado.
    intermediate_results_dir Sinalização opcional que especifica o diretório para as saídas intermediárias dos estágios make_examples e call_variants. Depois que o comando for concluído, os arquivos serão salvos no diretório local nos seguintes formatos:
    dry_run Sinalização opcional. Se ela for definida como verdadeira, os comandos serão impressos em vez de serem executados.
    call_variants_output.tfrecord.gz
    gvcf.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
    make_examples.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
    
  7. Depois que DeepVariant terminar, ele gera os seguintes arquivos para o diretório deepvariant-run/output:

    • HG003.output.g.vcf.gz
    • HG003.output.g.vcf.gz.tbi
    • HG003.output.vcf.gz
    • HG003.output.vcf.gz.tbi
    • HG003.output.visual_report.html

    Execute o seguinte comando para listar os arquivos no diretório de saída e verifique se os arquivos de saída exibem:

    ls $OUTPUT_DIR
    

Estimativas de ambiente de execução

Na tabela a seguir, veja o ambiente de execução aproximado para executar o DeepVariant usando uma amostra de 30x do genoma inteiro em um arquivo BAM. Essas estimativas não incluem o tempo necessário para configurar a instância e fazer o download dos dados de amostra do Cloud Storage.

Consulte Preços do Compute Engine para ver os preços por hora. Considere usar VMs spot, que são muito mais baratas que as VMs comuns.

Tipo de máquina Ambiente de execução em horas
n1-standard-8 24,63
n1-standard-16 13,30
n1-standard-32 7,77
n1-standard-64 5,64
n1-standard-96 4,38

Limpeza

Depois de concluir o tutorial, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.

A maneira mais fácil de evitar cobranças é excluir o projeto criado para o tutorial.

Para excluir o projeto, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir