Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

VCF-Dateien parsen und annotieren

Auf dieser Seite erfahren Sie, wie Sie:

  • Annotationsfelder in VCF-Eingabedateien parsen
  • Mithilfe von Open-Source-Annotierungstools und Datenbanken wie Variant Effect Predictor (VEP) VCF-Dateien annotieren, während sie importiert werden

Annotationsfelder parsen

Das Tool Variant Transforms unterstützt das im Dokument Variant annotations in VCF format beschriebene Format für Annotationsfelder. VEP verwendet dasselbe Format. Im folgenden Beispiel wird der VCF-Header einer Datei gezeigt, die von VEP annotiert wurde:

##INFO=<ID=CSQ,Number=.,Type=String,Description="Consequence annotations from Ensembl VEP. Format: Allele|Consequence|IMPACT|SYMBOL|Gene|Feature_type|Feature|BIOTYPE|EXON|INTRON|ALLELE_NUM|...>

Im folgenden Beispiel werden die entsprechenden Annotationen für einen Varianteneintrag gezeigt, wobei REF=AAC und ALT=TAC,A so aussehen:

CSQ=-|downstream_gene_variant|MODIFIER|WASH7P|ENSG00000227232|Transcript|ENST00000423562|unprocessed_pseudogene|||2,...,T|upstream_gene_variant|MODIFIER|DDX11L1|ENSG00000223972|Transcript|ENST00000518655|transcribed_unprocessed_pseudogene|||1

Für jeden Varianteneintrag werden mehrere durch Kommas getrennte Annotationslisten bereitgestellt. Das erste Feld in jedem Set entspricht einem alternativen Allel (ALT). Im obigen Beispiel wird nur eine Teilmenge für jeden ALT verwendet. Die tatsächliche Datei enthält mehr Felder und jedes alternative Allel kann mehrmals mit unterschiedlichen Annotationen wiederholt werden.

Sie können --annotation_fields übergeben, wenn das Tool Variant Transforms ausgeführt wird. Das Tool teilt die Annotationsliste auf und ordnet die Teile den entsprechenden alternate_bases-Einträgen unter. In der folgenden Tabelle ist beispielsweise allen alternate_bases ein wiederkehrendes Eintragsfeld CSQ untergeordnet:

Name Typ Mode Beschreibung
alternate_bases.CSQ RECORD REPEATED Liste der CSQ-Annotationen für diese alternative Base
alternate_bases.CSQ.allele STRING Nullwerte zulässig Der ALT-Teil des Annotationsfeldes
alternate_bases.CSQ.Consequence STRING Nullwerte zulässig
alternate_bases.CSQ.IMPACT STRING Nullwerte zulässig
alternate_bases.CSQ.SYMBOL STRING Nullwerte zulässig
alternate_bases.CSQ.Gene STRING Nullwerte zulässig
alternate_bases.CSQ.Feature_type STRING Nullwerte zulässig
alternate_bases.CSQ.Feature STRING Nullwerte zulässig
alternate_bases.CSQ.BIOTYPE STRING Nullwerte zulässig
alternate_bases.CSQ.EXON STRING Nullwerte zulässig
alternate_bases.CSQ.INTRON STRING Nullwerte zulässig

Alternatives Allel abgleichen

Im Beispiel oben unterscheiden sich die alternativen Allele in der Spalte CSQ von den ALT-Strings des Varianteneintrags. Die Variante AAC->C wird beispielsweise durch ein - wiedergegeben, das auf einen Löschvorgang hinweist. Der Grund dafür ist, dass VEP mit dem Flag --minimal für das Dataset ausgeführt wird. Im minimal-Modus unterstützt Variant Transforms übereinstimmende ALT-Felder.

Die folgenden Modi des ALT-Abgleichs werden unterstützt:

  • Wenn kein Flag für den Abgleich von ALT festgelegt ist, werden standardmäßig die Variantannotationen aus der VCF-Formatspezifikation verwendet.

  • Wie im Beispiel oben gezeigt sucht das Tool Variant Transforms nach dem Wert des Annotationsfeldes ALLELE_NUM, wenn das Flag --use_allele_num angegeben ist. Dies ist ein Feature von VEP.

  • Sie können das Flag --minimal mit dem Tool Variant Transforms simulieren, indem Sie das Flag --minimal_vep_alt_matching angeben. Diese Vorgehensweise kann jedoch zu mehrdeutigen Übereinstimmungen führen, die in der Dataflow-Konsole gezählt und ausgegeben werden. Auch werden sie der erstellten Tabelle in einem neuen Feld hinzugefügt.

    Die besseren Ergebnisse erzielen Sie mit --minimal anstelle von --minimal_vep_alt_matching.

VCF-Dateien mit VEP automatisch annotieren

Wenn Sie Annotationsfelder parsen und in separate Felder aufteilen möchten, müssen Sie Ihre VCF-Dateien in der Regel vorab mit Annotationen versehen. Wenn Sie das Tool Variant Transforms verwenden, müssen die VCF-Dateien nicht vorab annotiert werden.

Variant Transforms kann VCF-Dateien automatisch annotieren, während sie in BigQuery geladen werden. Dazu müssen Sie VEP mit dem Tool Variant Transforms ausführen. Zu diesem Zweck müssen Compute Engine-VM-Instanzen erstellt und ausgeführt werden, die vorkonfigurierte Docker-Images enthalten.

VEP mit Variant Transforms ausführen

Damit VCF-Dateien automatisch mit Annotationen versehen werden, während sie in BigQuery geladen werden, muss das Tool Variant Transforms mit VEP und mindestens folgenden Flags ausgeführt werden:

  • --run_annotation_pipeline
  • --max_num_workers MAX_NUM_WORKERS oder --num_workers NUM_WORKERS.
  • --annotation_output_dir gs://CLOUD_STORAGE_BUCKET

    Der für die Variable CLOUD_STORAGE_BUCKET ausgewählte Bucket muss zu Ihrem Projekt gehören.

Die folgenden Flags können bei Ausführung von VEP an das Tool Variant Transforms übergeben werden. Die Liste ist vollständig:

Flag Standardeinstellung Beschreibung
--run_annotation_pipeline Falsch Aktiviert die automatische Annotation.
--max_num_workers oder --num_workers Automatisch festgelegt Maximale Anzahl der Worker im Job, auf die Cloud Dataflow automatisch skaliert wird, oder Anzahl der Worker, die dem Job anfänglich zugewiesen sind.
--annotation_output_dir Cloud Storage-Pfad für die VEP-Ausgabedateien. Die Hierarchie der Eingabedateien wird an diesem Speicherort repliziert, den neuen Dateien wird jedoch _vep_output.vcf angehängt. Wenn das Verzeichnis bereits vorhanden ist, schlägt das Tool Variant Transforms fehl.
--vep_image_uri gcr.io/gcp-variant-annotation/vep_91 Das VEP-Docker-Image von Cloud Genomics. Google verwaltet das Standard-Image (VEP-Version 91).
--vep_cache_path gs://gcp-variant-annotation-vep-cache/vep_cache_homo_sapiens_GRCh38_91.tar.gz (Empfohlen für ein menschliches Genom, das an einer GRCh38-Referenzsequenz ausgerichtet ist.) Cloud Storage-Pfad für die komprimierte Version des VEP-Caches. Sie können diese Datei mit dem Skript --build_vep_cache.sh erstellen.
--vep_info_field CSQ_VT Der Name eines neuen INFO-Feldes, das die neuen Annotationen enthält.
--vep_num_fork 2 Die Anzahl der lokalen Prozesse, die beim Ausführen von VEP für eine einzelne Datei verwendet werden. Weitere Informationen finden Sie in der VEP-Dokumentation unter --fork [num_forks].
--shard_variants True Legt fest, ob Eingabedateien in kleinere, temporäre VCF-Dateien fragmentiert werden, bevor die VCF-Dateien mit VEP annotiert werden. Bei kleinen Eingabedateien (alle VCF-Dateien enthalten z. B. weniger als 50.000 Varianten) kann das Setzen des Flags auf True eine Verschwendung von Rechenressourcen bedeuten.
--number_of_variants_per_shard 2.000 Bei shard_variants = True wird damit die maximale Anzahl der Varianten pro Fragment festgelegt. Für Datasets mit vielen Stichproben sollten Sie hier einen kleineren Wert verwenden. Die Ausführung der Pipeline kann bei einem kleineren Wert eventuell länger dauern. In den meisten Fällen wird der Standardwert empfohlen.

Fehlerbehebung

Wenn das Tool Variant Transforms während der Ausführung mit VEP fehlschlägt, wird ein logs-Verzeichnis erstellt. Darin werden die Logs aller virtuellen Maschinen aufgenommen, auf denen der Prozess ausgeführt wurde. Das Verzeichnis logs wird in dem für das Flag --annotation_output_dir verwendeten Pfad angegeben. Neben den Standardlogs des Tools Variant Transforms sind auch diese Logdateien Quellen für die Suche nach Problemursachen.

Das VEP-Flag --check_ref wird automatisch aktiviert, wenn Sie VEP mit dem Tool Variant Transforms ausführen. Daher enthalten die Dateien im Verzeichnis logs eine Liste von Varianten, die nicht mit der Referenz übereinstimmen. Wenn Sie den richtigen VEP-Cache verwenden, sollten keine Abweichungen angezeigt werden, da sie automatisch entfernt und nicht in die BigQuery-Ausgabetabelle aufgenommen werden.

Beispielabfragen

Besonders relevante Varianten extrahieren

Das folgende Beispiel zeigt, wie Varianten mit besonderer Relevanz im HBB-Gen extrahiert werden können, das die Betakette von Hämoglobin codiert:

#standardSQL
SELECT reference_name, start_position, reference_bases, ALT.alt, CSQ.*
FROM vcf_imports_external.gnomad_genomes_chr_hg19 AS T, T.alternate_bases AS ALT, ALT.CSQ AS CSQ
WHERE CSQ.SYMBOL = "HBB" AND CSQ.IMPACT = "HIGH"
ORDER BY start_position

Durch die Abfrage wird folgende Ausgabe zurückgegeben:

Zeile reference_name start_position reference_bases alt allele Consequence IMPACT SYMBOL Gene Feature_type Feature BIOTYPE EXON INTRON
1 11 5246947 G GC C frameshift_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 3/3
2 11 5246957 T C C splice_acceptor_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/2
3 11 5246957 T C C splice_acceptor_variant und non_coding_transcript_variant HIGH HBB ENSG00000244734 Transcript ENST00000475226 retained_intron 1/1
4 11 5247805 C T T splice_donor_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/2
5 11 5247805 C T T splice_donor_variant und non_coding_transcript_variant HIGH HBB ENSG00000244734 Transcript ENST00000475226 retained_intron 1/1
6 11 5247991 CAAAG C - frameshift_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/3
7 11 5247991 CAAAG C - frameshift_variant HIGH HBB ENSG00000244734 Transcript ENST00000380315 protein_coding 4/4
8 11 5248003 G A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/3
9 11 5248003 G A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000380315 protein_coding 4/4
10 11 5248199 T A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 1/3
11 11 5248199 T A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000380315 protein_coding 3/4

Das gnomAD-Dataset enthält keine Aufrufe oder Proben. Sie können diese Abfrage jedoch erweitern und Proben auswählen, die hochrelevante Varianten enthalten.

Daten mit öffentlichen BigQuery-Datenbanken verbinden

Im folgenden Beispiel wird gezeigt, wie Sie Daten mit anderen in BigQuery verfügbaren Datenbanken verbinden, z. B. mit Pathway-Datenbanken. Unter anderem sind die folgenden Datenbanken über die ISB-CGC verfügbar:

Das folgende Beispiel zeigt, wie Varianten mit besonderer Relevanz aus dem Reparaturpfad von Doppelstrangbrüchen extrahiert werden, wie unter GO (Gene Ontology) biological process (GO:0006302) definiert:

#standardSQL
SELECT
  reference_name, start_position, reference_bases, ALT.alt,
  CSQ.Consequence, CSQ.Impact, CSQ.SYMBOL
FROM
  `vcf_imports_external.gnomad_genomes_chr_hg19` AS T,
  T.alternate_bases AS ALT, ALT.CSQ AS CSQ
WHERE
  # Note: Matching based on symbol is "best effort" as the names may not be
  # standardized across sources.
  CSQ.SYMBOL IN (SELECT DB_Object_Symbol
                 FROM `isb-cgc.genome_reference.GO_Annotations`
                 WHERE GO_ID = 'GO:0006302')
  AND CSQ.IMPACT = "HIGH"
ORDER BY
  start_position

Durch die Abfrage wird folgende Ausgabe zurückgegeben:

Zeile reference_name start_position reference_bases alt Consequence IMPACT SYMBOL
1 5 917449 G T splice_acceptor_variant und non_coding_transcript_variant HIGH TRIP13
2 12 1022568 A C stop_gained HIGH RAD52
3 12 1022568 A C stop_gained HIGH RAD52
4 12 1022568 A C stop_gained HIGH RAD52
5 12 1023125 G A stop_gained HIGH RAD52
6 12 1023125 G A stop_gained HIGH RAD52
7 12 1023125 G A stop_gained HIGH RAD52
8 12 1023167 G A stop_gained HIGH RAD52
9 12 1023167 G A stop_gained HIGH RAD52
10 12 1023167 G A stop_gained HIGH RAD52
11 12 1023217 G T stop_gained HIGH RAD52
12 12 1023217 G T stop_gained HIGH RAD52
13 12 1023217 G T stop_gained HIGH RAD52
14 12 1025654 TGA T frameshift_variant HIGH RAD52
15 12 1025699 T G splice_acceptor_variant und non_coding_transcript_variant HIGH RAD52
16 12 1036004 GC G frameshift_variant HIGH RAD52
17 12 1038977 C CT frameshift_variant HIGH RAD52