DeepVariant ist eine Analyse-Pipeline, die in einem neuronalen Deep-Learning-Netzwerk genetische Varianten von DNA-Sequenzierungsdaten der nächsten Generation aufruft.
In dieser Anleitung wird die Ausführung von DeepVariant auf Google Cloud anhand von Beispieldaten erläutert. Sie führen DeepVariant auf einer einzelnen Compute Engine-Instanz aus.
Ziele
Nach Abschluss dieser Anleitung können Sie DeepVariant in Google Cloud ausführen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- Compute Engine
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Hinweise
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Compute Engine API aktivieren.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Compute Engine API aktivieren.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Tipp: Benötigen Sie eine Eingabeaufforderung? Sie können die Cloud Shell verwenden. Cloud Shell ist eine Befehlszeilenumgebung, Google Cloud CLI bereits enthält, sodass Sie müssen Sie es nicht installieren.
Compute Engine-Instanz erstellen
Compute Engine-Instanz mit der Google Cloud Console erstellen oder die gcloud CLI, um DeepVariant auszuführen.
Console
- Wechseln Sie in der Google Cloud Console zur Seite VM-Instanzen
- Klicken Sie auf Instanz erstellen.
- Wählen Sie einen Namen für die Instanz im Format
PROJECT_ID-deepvariant-run
aus, wobei PROJECT_ID die ID für Ihr Google Cloud-Projekt ist. -
Wählen Sie für die Instanz eine Region und eine Zone aus. Wenn Sie keinen bestimmten Grund haben, die Instanz an einem bestimmten Speicherort auszuführen, wählen Sie
us-central1 (Iowa)
für die Region undus-central1-a
für die Zone aus. - Wählen Sie im Menü Maschinentyp die Option n1-standard-64 (64 vCPUs, 240 GB Arbeitsspeicher) aus.
- Wählen Sie im Menü CPU-Plattform die Option Ab Intel Skylake aus.
- Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um mit der Konfiguration des Bootlaufwerks zu beginnen.
- Wählen Sie auf dem Tab Öffentliche Images die Option Ubuntu 20.04 LTS aus. Wählen Sie im Menü Bootlaufwerktyp die Option Nichtflüchtiger Standardspeicher aus. Geben Sie im Feld Größe (GB) den Wert 300 ein. Klicken Sie auf Auswählen.
- Klicken Sie auf Erstellen, um die Instanz zu erstellen.
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
Dabei gilt:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID
- ZONE: die Zone, in der die Instanz bereitgestellt wird. Eine Zone ist ein ungefährer regionaler Standort, an dem sich die Instanz und ihre Ressourcen befinden. Beispielsweise ist
us-west1-a
eine Zone in der Regionus-west
. Wenn Sie zuvor mitgcloud config set compute/zone
eine Standardzone festgelegt haben, überschreibt dieser Wert dieses Flag.
Warten Sie, bis die Instanz gestartet ist. Anschließend wird sie auf der Seite der VM-Instanzen mit einem grünen Statussymbol angezeigt.
Verbindung zur Instanz herstellen
Sie können über die Google Cloud Console eine Verbindung zur Instanz herstellen oder über die gcloud CLI:
Console
- Wechseln Sie in der Google Cloud Console zur Seite VM-Instanzen
- Klicken Sie in der Liste der VM-Instanzen in der Zeile der von Ihnen erstellten Instanz auf SSH.
gcloud
gcloud compute ssh PROJECT_ID-deepvariant-run --zone ZONE
DeepVariant ausführen
Konfigurieren Sie Ihre Umgebung und führen Sie DeepVariant auf der von Ihnen erstellten Compute Engine-Instanz aus:
Installieren Sie 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
Konfigurieren Sie die DeepVariant-Umgebungsvariablen. Kopieren Sie dazu die folgenden Befehle und fügen Sie sie in Ihre lokale Umgebung ein:
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"
Erstellen Sie die lokale Verzeichnisstruktur für das Eingabedatenverzeichnis und das Ausgabeverzeichnis:
mkdir -p "${OUTPUT_DIR}" mkdir -p "${INPUT_DIR}" mkdir -p "${DATA_DIR}"
In dieser Anleitung wird ein öffentlich verfügbares HG003-Genom mit 30-facher Abdeckung verwendet, das der GRCh38-Referenz zugeordnet ist. Wenn Sie die Laufzeit verkürzen möchten, fügen Sie beim Starten von DeepVariant das Flag
--regions chr20
hinzu. Somit wird DeepVariant nur für Chromosom 20 (chr20) ausgeführt.Die Beispieldaten wurden mit Illumina-Sequenzierung erstellt. In DeepVariant werden aber auch die anderen Arten von Eingabedaten unterstützt:
- Ganzes Genom (Ilumina) (WGS)
- Exom (Illumina) (WES)
- Ganzes Genom (PacBio)
- Ganzes Genom PacBio und Illumina-Hybrid (HYBRID_PACBIO_ILLUMINA)
Führen Sie
gcloud storage cp
aus, um die Eingabetestdaten aus dem Cloud Storage-Bucketdeepvariant
in die Verzeichnisse auf der von Ihnen erstellten Instanz zu kopieren:# 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 ist eine containerisierte Anwendung, die in einem vorkonfigurierten Docker-Image in Container Registry bereitgestellt wird. Führen Sie den folgenden Befehl aus, um das Image abzurufen:
sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
Mit dem folgenden Befehl starten Sie DeepVariant:
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
In der folgenden Tabelle werden die Flags beschrieben, die an den Befehl übergeben werden:
Fahne Beschreibung model_type
DeepVariant unterstützt verschiedene Arten von Eingabedaten. In dieser Anleitung wird der WSG-Algorithmus (Whole Genome Sequencing) verwendet. ref
Der Speicherort der FASTA-Referenzdatei. reads
Der Speicherort der BAM-Eingabedatei. output_vcf
Der Speicherort der VCF-Ausgabedateien. output_gvcf
Der Speicherort der gVCF-Ausgabedateien. regions
(Optional) Eine durch Leerzeichen getrennte Liste mit den zu verarbeitenden Chromosomenregionen. Einzelne Elemente können Regionsliterale sein, z. B. chr20:10-20
oder Pfade zu BED/BEDPE-Dateien.num_shards
Die Anzahl von Shards, die parallel ausgeführt werden. Die besten Ergebnisse erzielen Sie, wenn Sie den Wert dieses Flags auf die Anzahl der Kerne auf der Maschine setzen, auf der DeepVariant ausgeführt wird. intermediate_results_dir
Optionales Flag, um das Verzeichnis für die Zwischenergebnisse der Phasen make_examples und call_variants anzugeben. Nachdem der Befehl ausgeführt wurde, werden die Dateien in Ihrem lokalen Verzeichnis in den folgenden Formaten gespeichert: dry_run
Optionales Flag. Wenn "true" festgelegt ist, werden die Befehle ausgegeben, anstatt ausgeführt zu werden. call_variants_output.tfrecord.gz gvcf.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz make_examples.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
Nachdem DeepVariant abgeschlossen ist, werden die folgenden Dateien in das Verzeichnis
deepvariant-run/output
ausgegeben: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
Führen Sie den folgenden Befehl aus, um die Dateien im Ausgabeverzeichnis aufzulisten, und sehen Sie nach, ob die Ausgabedateien angezeigt werden:
ls $OUTPUT_DIR
Laufzeitschätzungen
Die folgende Tabelle zeigt die ungefähre Laufzeit bei der Ausführung von DeepVariant mit einer 30x-Stichprobe des ganzen Genoms in einer BAM-Datei. Bei diesen Schätzungen wird nicht die Zeit berücksichtigt, die zum Einrichten der Instanz und Herunterladen von Beispieldaten aus Cloud Storage erforderlich ist.
Weitere Informationen zu den Preisen pro Stunde finden Sie unter Compute Engine-Preise. Prüfen Sie die Verwendung von Spot-VMs, die wesentlich günstiger sind als reguläre VMs.
Maschinentyp | Laufzeit in Stunden |
---|---|
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 |
Bereinigen
Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
So löschen Sie das Projekt:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Nächste Schritte
- Im DeepVariant GitHub-Repository sind komplexere Konfigurationen verfügbar. Sie können DeepVariant z. B. mit mehreren Instanzen ausführen. Dies verbessert die Verarbeitungsgeschwindigkeit und senkt die Kosten.
- Google AI-Blogpost lesen Open-Source-Release von DeepVariant.
- Bei Fragen zu DeepVariant können Sie ein GitHub-Problem senden. Fragen zu Google Cloud können Sie in der Mailingliste gcp-life-sciences-discuss@googlegroups.com posten.