プリプロセッサ ツールによる VCF ファイルの検証

このページでは、Variant Transforms ツールの VCF ファイル プリプロセッサを使用して VCF ファイルを検証する方法について説明します。VCF ファイルを BigQuery に読み込んで変換するときに、プリプロセッサをスタンドアロン検証ツールまたはヘルパーとして実行できます。

VCF ファイル プリプロセッサの概要

VCF ファイル プリプロセッサは、VCF ファイルを含むデータセットを検証して、ファイル間の不整合を特定します。プリプロセッサはこれらの不整合を報告し、BigQuery にデータを読み込む際にそれらを除去します。プリプロセッサが不整合を排除する方法を判断できない場合は、不正な形式のファイルを扱う場合などのように手動で修正できます。

プリプロセッサを実行すると、次の 3 種類の不整合を識別するレポートが生成されます。

不整合 説明
(デフォルト)ヘッダーの競合 異なる VCF ファイル内の同じフィールドで定義が異なることを示します。この不整合は一般的です。レポートには、次の項目が一覧表示されます。
  • 競合するすべての定義
  • 対応するファイルのファイルパス(最大 5 つ)
  • 解決策の候補
(オプション)不正な形式のバリアント レコード VCF パーサーによって解析できなかった不正な形式のレコードがあることを示します。レポートには、次の項目が一覧表示されます。
  • 影響を受けるファイルのファイルパス
  • 不正な形式のレコード
(オプション)推定ヘッダー フィールドに関する次の問題のいずれかを示します。
  • いずれの VCF ファイルにも定義がないフィールドが使用された。
  • 定義のあるフィールドが使用されたが、フィールド値がフィールドの説明と一致しない。次に例を示します。
    • フィールドの定義された型は整数ですが、提供された値は浮動小数点数です。プリプロセッサは、定義された型を浮動小数点数に変更することを推定します。
    • 定義された num は A(各代替塩基ごとに 1 つの値があることを意味する)ですが、指定された値は代替塩基と同じ基数を持ちません。プリプロセッサは、num が未知であると推定します。
    • いずれの場合も、プリプロセッサは影響を受けたフィールドの型と num を推定し、それらをレポートに示します。

プリプロセッサの実行

このツールを実行するには、必要なバイナリと依存関係がすべてインストール済みである Docker イメージを使用します。多数のファイルを前処理する場合は、プリプロセッサ ツールを使用した大量入力の処理をご覧ください。

Docker イメージを使用してこのツールを実行する手順は次のとおりです。

  1. 次のスクリプトを実行して、プリプロセッサを起動します。変数は、GCP プロジェクトの該当するリソースで置き換えてください。

    \#!/bin/bash
    \# Parameters to replace:
    \# The PROJECT_ID is the name of the GCP project that contains your BigQuery dataset.
    GOOGLE_CLOUD_PROJECT=PROJECT_ID
    INPUT_PATTERN=gs://BUCKET/*.vcf
    REPORT_PATH=gs://BUCKET/report.tsv
    RESOLVED_HEADERS_PATH=gs://BUCKET/resolved_headers.vcf
    TEMP_LOCATION=gs://BUCKET/temp
    
    COMMAND="vcf_to_bq_preprocess \
      --input_pattern ${INPUT_PATTERN} \
      --report_path ${REPORT_PATH} \
      --resolved_headers_path ${RESOLVED_HEADERS_PATH} \
      --report_all_conflicts true \
      --temp_location ${TEMP_LOCATION} \
      --job_name vcf-to-bigquery-preprocess \
      --runner DataflowRunner"
    docker run -v ~/.config:/root/.config \
      gcr.io/gcp-variant-transforms/gcp-variant-transforms \
      --project "${GOOGLE_CLOUD_PROJECT}" \
      --zones us-west1-b \
      "${COMMAND}"
    

    Cloud Storage バケットの中の VCF ファイルの場所を指定するときは、ファイルを 1 つだけ指定することも、ワイルドカード(*)を使用して複数のファイルを一度に読み込むこともできます。受け入れられるファイル形式は、GZIP、BZIP、VCF があります。

    TEMP_LOCATION ディレクトリには、このツールの実行に必要な一時ファイルが格納されます。これは、書き込みアクセス権を持つ Cloud Storage 内の任意のディレクトリにできます。

  2. さまざまな要因、たとえばデータのサイズにより、ジョブ完了までの時間は異なります。数分で済むこともあれば、1 時間以上かかる場合もあります。

出力例

次の例は、プリプロセッサ ツールが 1,000 人ゲノム データセットに対して実行されたときに生成されたレポートを示しています。

Header Conflicts

ID Category Conflicts File Paths Proposed Resolution
GL FORMAT num=None type=Float gs://genomics-public-data/1000-genomes/vcf/ALL.chr13.integrated_phase1_v3.20101123.snps_indels_svs.genotypes.vcf num=None type=Float
gs://genomics-public-data/1000-genomes/vcf/ALL.chr17.integrated_phase1_v3.20101123.snps_indels_svs.genotypes.vcf
gs://genomics-public-data/1000-genomes/vcf/ALL.chr21.integrated_phase1_v3.20101123.snps_indels_svs.genotypes.vcf
gs://genomics-public-data/1000-genomes/vcf/ALL.chr8.integrated_phase1_v3.20101123.snps_indels_svs.genotypes.vcf
gs://genomics-public-data/1000-genomes/vcf/ALL.chrX.integrated_phase1_v3.20101123.snps_indels_svs.genotypes.vcf
num=3 type=Float gs://genomics-public-data/1000-genomes/vcf/ALL.wgs.integrated_phase1_v3.20101123.snps_indels_sv.sites.vcf
GQ FORMAT num=1 type=Float gs://genomics-public-data/1000-genomes/vcf/ALL.chrY.phase1_samtools_si.20101123.snps.low_coverage.genotypes.vcf num=1 type=Float
num=1 type=Integer gs://genomics-public-data/1000-genomes/vcf/ALL.chrY.phase1_samtools_si.20101123.snps.low_coverage.genotypes.vcf

Inferred Headers

ID Category Proposed Resolution
FT FORMAT num=1 type=String

不正な形式のレコードはありません。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...