DeepVariant est un pipeline d'analyse qui exploite un réseau de neurones profond pour appeler des variantes génétiques à partir de données sur le séquençage de l'ADN nouvelle génération.
Cette page explique comment exécuter DeepVariant sur Google Cloud en utilisant des exemples de données. Vous allez exécuter DeepVariant sur une seule instance Compute Engine.
Objectifs
À la fin de ce tutoriel, vous saurez comment exécuter DeepVariant sur Google Cloud.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
- Compute Engine
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez l'API Compute Engine
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez l'API Compute Engine
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Conseil : Vous avez besoin d'une invite de commande ? Vous pouvez utiliser Cloud Shell. Cloud Shell est un environnement de ligne de commande inclut déjà la Google Cloud CLI. vous n'avez pas besoin de l'installer.
Créer une instance Compute Engine
Créer une instance Compute Engine à l'aide de la console Google Cloud ou la gcloud CLI pour exécuter DeepVariant.
Console
- Dans la console Google Cloud, accédez à Instances de VM.
- Cliquez sur Créer une instance.
- Choisissez un nom pour l'instance au format
PROJECT_ID-deepvariant-run
où PROJECT_ID est l'ID de votre projet Google Cloud. -
Choisissez une région et une zone pour l'instance. Si vous ne devez pas impérativement exécuter l'instance à un emplacement spécifique, sélectionnez
us-central1 (Iowa)
pour la région etus-central1-a
pour la zone. - Dans le menu Type de machine, sélectionnez n1-standard-64 (64 processeurs virtuels, 240 Go de mémoire).
- Dans le menu Plate-forme de processeur, sélectionnez Intel Skylake ou version ultérieure.
- Dans la section Disque de démarrage, cliquez sur Modifier pour commencer à configurer le disque de démarrage.
- Dans l'onglet Images publiques, choisissez Ubuntu 20.04 LTS. Dans le menu Type de disque de démarrage, sélectionnez Disque persistant standard. Dans le champ Taille (Go), saisissez 300. Cliquez sur Sélectionner.
- Cliquez sur Créer pour créer l'instance.
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
Remplacez les éléments suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- ZONE : zone dans laquelle votre instance est déployée. Une zone est un emplacement régional approximatif dans lequel votre instance et ses ressources sont conservées. Par exemple,
us-west1-a
est une zone de la régionus-west
. Si vous avez précédemment défini une zone par défaut à l'aide degcloud config set compute/zone
, la valeur de cette option remplace celle définie par défaut.
Patientez un court instant le temps que l'instance démarre. Une fois l'instance prête, elle est répertoriée sur la page Instances de VM avec une icône d'état verte.
Se connecter à l'instance
Vous pouvez vous connecter à l'instance à l'aide de la console Google Cloud ou gcloud CLI:
Console
- Dans la console Google Cloud, accédez à Instances de VM.
- Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance que vous avez créée.
gcloud
gcloud compute ssh PROJECT_ID-deepvariant-run --zone ZONE
Exécuter DeepVariant
Configurez votre environnement et exécutez DeepVariant sur l'instance Compute Engine créée :
Installez 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
Configurez les variables d'environnement de DeepVariant en copiant et en collant les commandes suivantes dans votre environnement 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"
Créez la structure de répertoire local pour les répertoires de données d'entrée et de sortie :
mkdir -p "${OUTPUT_DIR}" mkdir -p "${INPUT_DIR}" mkdir -p "${DATA_DIR}"
Ce tutoriel utilise un génome HG003 de couverture 30x accessible au public et mappé à l'ensemble de référence GRCh38. Pour garantir une vitesse optimale, ajoutez l'option
--regions chr20
lors de l'exécution de DeepVariant. Ainsi, le pipeline ne s'exécutera que sur le chromosome 20 (chr20).Les exemples de données ont été créés à l'aide du séquençage Illumina, mais DeepVariant accepte également ces autres types de données d'entrée :
- Génome complet (Illumina) (WGS)
- Exome (Illumina) (WES)
- Génome entier (PacBio)
- Hybride de génome entier PacBio et Illumina (HYBRID_PACBIO_ILLUMINA)
Exécutez
gcloud storage cp
pour copier les données de test d'entrée du bucket Cloud Storagedeepvariant
dans les répertoires de l'instance que vous avez créée :# Input BAM and BAI files: gcloud storage cp gs://deepvariant/case-study-testdata/"${BAM}" "${DATA_DIR}" gcloud storage 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
DeepVariant est une application en conteneur stockée dans une image Docker prédéfinie dans Container Registry. Pour sortir l'image, exécutez la commande suivante :
sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
Pour démarrer DeepVariant, exécutez la commande suivante :
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
Le tableau suivant décrit les options transmises à la commande :
Drapeau Description model_type
DeepVariant accepte plusieurs types de données d'entrée. Ce tutoriel utilise le séquençage du génome entier (WSG). ref
Emplacement du fichier de référence FASTA. reads
Emplacement du fichier BAM d'entrée. output_vcf
Emplacement des fichiers VCF en sortie. output_gvcf
Emplacement des fichiers gVCF en sortie. regions
(Facultatif) Liste des régions chromosomiques à traiter, séparées par des espaces. Les éléments individuels peuvent être des littéraux régionaux, tels que chr20:10-20
, ou des chemins d'accès à des fichiers BED/BEDPE.num_shards
Nombre de partitions à exécuter en parallèle. Pour des résultats optimaux, définissez la valeur de cette option sur le nombre de cœurs de la machine exécutant DeepVariant. intermediate_results_dir
Option facultative spécifiant le répertoire des résultats intermédiaires des étapes "make_examples" et "call_variants". Une fois la commande terminée, les fichiers sont enregistrés dans votre répertoire local dans les formats suivants : dry_run
Option facultative. Si la valeur est définie sur "true", les commandes sont imprimées au lieu d'être exécutées. call_variants_output.tfrecord.gz gvcf.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz make_examples.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
Une fois l'exécution de DeepVariant terminée, les fichiers suivants apparaissent dans le répertoire
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
Exécutez la commande suivante pour répertorier les fichiers dans le répertoire de sortie, et vérifiez que les fichiers de sortie sont bien présents :
ls $OUTPUT_DIR
Estimations de la durée d'exécution
Le tableau suivant indique les durées approximatives d'exécutions de DeepVariant à l'aide d'un échantillon de génome entier de couverture 30x dans un fichier BAM. Ces estimations n'incluent pas le temps nécessaire pour configurer l'instance et télécharger les données d'exemple depuis Cloud Storage.
Reportez-vous aux tarifs de Compute Engine pour connaître le tarif horaire. Pensez à utiliser des Spot VMs, qui reviennent nettement moins cher que les VM standards.
Type de machine | Durée d'exécution en heures |
---|---|
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 |
Effectuer un nettoyage
Une fois le tutoriel terminé, vous pouvez procéder au nettoyage des ressources que vous avez créées afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Étape suivante
- Des configurations plus complexes sont disponibles dans le dépôt GitHub DeepVariant. Par exemple, vous pouvez exécuter DeepVariant à l'aide de plusieurs instances. Ces variations accélèrent la vitesse de traitement et réduisent les coûts.
- Lire l'article de blog sur l'IA de Google sur la version Open Source de DeepVariant.
- Si vous avez des questions sur DeepVariant, vous pouvez créer une demande dans GitHub. Vous pouvez poser vos questions sur Google Cloud sur la liste de diffusion gcp-life-sciences-discuss@googlegroups.com.