本页介绍如何使用 Variant Transforms 工具中的 VCF 文件预处理器来验证 VCF 文件。您可以将预处理器作为独立验证程序运行,或者在将 VCF 文件加载和转换入 BigQuery 时作为协助程序运行。
VCF 文件预处理器概述
VCF 文件预处理器验证包含 VCF 文件的数据集,以识别文件之间的不一致。此预处理器报告这些不一致性,并在将数据加载到 BigQuery 时消除它们。如果预处理器无法确定如何消除不一致性,则它会为您提供可以进行的手动更正选项,例如处理格式错误的文件时手动更正。
运行预处理器时,它会生成一个报告,辨识三种类型的不一致性:
不一致性 | 说明 |
---|---|
(默认)标头冲突 | 表示不同 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 文件的位置时,可以指定单个文件,也可以使用通配符 (
*
) 一次加载多个文件。可接受的文件格式包括 GZIP、BZIP 和 VCF。请注意,
TEMP_LOCATION
目录用于存储运行该工具所需的临时文件。它可以是 Cloud Storage 中您具有写入权限的任何目录。完成作业所需的时间因数据大小等多个因素而异,从几分钟到一小时或更长时间不等。
输出示例
以下示例显示在 1000 Genomes 数据集上运行预处理器工具时生成的报告:
标头冲突
ID | 类别 | 冲突 | 文件路径 | 推荐的解决方案 |
---|---|---|---|---|
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 |
推断的标头
ID | 类别 | 推荐的解决方案 |
---|---|---|
FT | FORMAT | num=1 type=String |
找不到格式错误的记录。