このページでは、Variant Transforms ツールの VCF ファイル プリプロセッサを使用して VCF ファイルを検証する方法について説明します。VCF ファイルを BigQuery に読み込んで変換するときに、プリプロセッサをスタンドアロン検証ツールまたはヘルパーとして実行できます。
VCF ファイル プリプロセッサの概要
VCF ファイル プリプロセッサは、VCF ファイルを含むデータセットを検証して、ファイル間の不整合を特定します。プリプロセッサはこれらの不整合を報告し、BigQuery にデータを読み込む際にそれらを除去します。プリプロセッサが不整合を排除する方法を判断できない場合は、不正な形式のファイルを扱う場合などのように手動で修正できます。
プリプロセッサを実行すると、次の 3 種類の不整合を識別するレポートが生成されます。
不整合 | 説明 |
---|---|
(デフォルト)ヘッダーの競合 | 異なる VCF ファイル内の同じフィールドで定義が異なることを示します。この不整合は一般的です。レポートには、次の項目が一覧表示されます:
|
(オプション)不正な形式のバリアント レコード | VCF パーサーによって解析できなかった不正な形式のレコードがあることを示します。レポートには、次の項目が一覧表示されます:
|
(オプション)推定ヘッダー | フィールドに関する次の問題のいずれかを示します:
|
プリプロセッサの実行
このツールを実行するには、必要なバイナリと依存関係がすべてインストール済みである Docker イメージを使用します。多数のファイルを前処理する場合は、プリプロセッサ ツールを使用した大量入力の処理をご覧ください。
Docker イメージを使用してこのツールを実行する手順は次のとおりです。
次のスクリプトを実行して、プリプロセッサを起動します。変数は、Google Cloud プロジェクト内にある該当するリソースで置き換えてください。
\#!/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/cloud-lifesciences/gcp-variant-transforms \ --project "${GOOGLE_CLOUD_PROJECT}" \ --zones us-west1-b \ "${COMMAND}"
Cloud Storage バケットの中の VCF ファイルの場所を指定するときは、ファイルを 1 つだけ指定することも、ワイルドカード(
*
)を使用して複数のファイルを一度に読み込むこともできます。使用できるファイル形式には、GZIP、BZIP、VCF などがあります。TEMP_LOCATION
ディレクトリには、このツールの実行に必要な一時ファイルが格納されます。これは、書き込みアクセス権を持つ Cloud Storage 内の任意のディレクトリにできます。さまざまな要因、たとえばデータのサイズにより、ジョブ完了までの時間は異なります。数分で済むこともあれば、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 |
不正な形式のレコードはありません。