DeepVariant项目中的DeepTrio全基因组测序案例分析
概述
DeepTrio是DeepVariant项目中专门用于家系分析(trio analysis)的工具,能够同时处理父母和子女的基因组数据,提高变异检测的准确性。本文将详细介绍如何利用DeepTrio对全基因组测序(WGS)数据进行变异检测,并通过基准测试评估结果质量。
准备工作
环境配置
运行DeepTrio需要以下工具:
- Docker容器环境
- 参考基因组文件
- 基准测试数据集
- 样本测序数据
参考基因组下载
我们使用GRCh38参考基因组,执行以下命令获取:
mkdir -p reference
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 > reference/GRCh38_no_alt_analysis_set.fasta
curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.fai > reference/GRCh38_no_alt_analysis_set.fasta.fai
基准测试数据准备
使用GIAB(Genome in a Bottle) v4.2.1版本作为基准数据集:
mkdir -p benchmark
FTPDIR=ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/release/AshkenazimTrio
# 下载HG002(子代)、HG003(父代)、HG004(母代)的基准数据
curl ${FTPDIR}/HG002_NA24385_son/NISTv4.2.1/GRCh38/HG002_GRCh38_1_22_v4.2.1_benchmark_noinconsistent.bed > benchmark/HG002_GRCh38_1_22_v4.2.1_benchmark_noinconsistent.bed
curl ${FTPDIR}/HG002_NA24385_son/NISTv4.2.1/GRCh38/HG002_GRCh38_1_22_v4.2.1_benchmark.vcf.gz > benchmark/HG002_GRCh38_1_22_v4.2.1_benchmark.vcf.gz
# 类似命令下载其他样本数据...
样本数据获取
使用公开可用的Illumina WGS数据:
mkdir -p input
HTTPDIR=https://storage.googleapis.com/deepvariant/case-study-testdata
curl ${HTTPDIR}/HG002.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam > input/HG002.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam
curl ${HTTPDIR}/HG002.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam.bai > input/HG002.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam.bai
# 类似命令下载其他样本数据...
DeepTrio运行流程
DeepTrio分析流程包含四个主要步骤:
- make_examples:准备输入数据
- call_variants:调用变异
- postprocess_variants:后处理变异结果
- GLnexus merge:合并家系VCF文件
单命令运行DeepTrio
使用Docker容器可以简化运行流程:
BIN_VERSION="1.6.1"
sudo docker pull google/deepvariant:deeptrio-"${BIN_VERSION}"
time sudo docker run \
-v "${PWD}/input":"/input" \
-v "${PWD}/output":"/output" \
-v "${PWD}/reference":"/reference" \
google/deepvariant:deeptrio-"${BIN_VERSION}" \
/opt/deepvariant/bin/deeptrio/run_deeptrio \
--model_type WGS \
--ref /reference/GRCh38_no_alt_analysis_set.fasta \
--reads_child /input/HG002.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam \
--reads_parent1 /input/HG003.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam \
--reads_parent2 /input/HG004.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam \
--output_vcf_child /output/HG002.output.vcf.gz \
--output_vcf_parent1 /output/HG003.output.vcf.gz \
--output_vcf_parent2 /output/HG004.output.vcf.gz \
--sample_name_child 'HG002' \
--sample_name_parent1 'HG003' \
--sample_name_parent2 'HG004' \
--num_shards $(nproc) \
--regions chr20 \
--intermediate_results_dir /output/intermediate_results_dir \
--output_gvcf_child /output/HG002.g.vcf.gz \
--output_gvcf_parent1 /output/HG003.g.vcf.gz \
--output_gvcf_parent2 /output/HG004.g.vcf.gz
关键参数说明
--model_type WGS
:指定使用全基因组测序模型--regions chr20
:限制分析区域为20号染色体(加快测试速度)--intermediate_results_dir
:保存中间结果目录(可选)--num_shards
:设置并行处理数(通常设为CPU核心数)
结果合并与分析
使用GLnexus合并VCF
sudo docker run \
-v "${PWD}/output":"/output" \
quay.io/mlin/glnexus:v1.2.7 \
/usr/local/bin/glnexus_cli \
--config DeepVariant_unfiltered \
/output/HG002.g.vcf.gz \
/output/HG003.g.vcf.gz \
/output/HG004.g.vcf.gz \
| sudo docker run -i google/deepvariant:deeptrio-"${BIN_VERSION}" \
bcftools view - \
| sudo docker run -i google/deepvariant:deeptrio-"${BIN_VERSION}" \
bgzip -c > output/HG002_trio_merged.vcf.gz
孟德尔遗传错误率分析
创建家系ped文件后运行分析:
FILE="reference/trio.ped"
cat <<EOM >$FILE
#PED format pedigree
1 HG002 HG003 HG004 1 0
1 HG003 0 0 1 0
1 HG004 0 0 2 0
EOM
sudo docker run \
-v "${PWD}/input":"/input" \
-v "${PWD}/reference":"/reference" \
-v "${PWD}/output":"/output" \
realtimegenomics/rtg-tools mendelian \
-i "/output/HG002_trio_merged.vcf.gz" \
-o "/output/HG002_trio_annotated.output.vcf.gz" \
--pedigree=/reference/trio.ped \
-t /reference/GRCh38_no_alt_analysis_set.sdf
典型输出结果:
Concordance HG002: F:137908/139703 (98.72%) M:137988/139909 (98.63%) F+M:134596/137968 (97.56%)
3886/143704 (2.70%) records contained a violation of Mendelian constraints
使用hap.py进行基准测试
sudo docker pull jmcdani20/hap.py:v0.3.12
sudo docker run \
-v "${PWD}/benchmark":"/benchmark" \
-v "${PWD}/input":"/input" \
-v "${PWD}/output":"/output" \
-v "${PWD}/reference":"/reference" \
-v "${PWD}/happy:/happy" \
jmcdani20/hap.py:v0.3.12 /opt/hap.py/bin/hap.py \
/benchmark/HG002_GRCh38_1_22_v4.2.1_benchmark.vcf.gz \
/output/HG002.output.vcf.gz \
-f /benchmark/HG002_GRCh38_1_22_v4.2.1_benchmark_noinconsistent.bed \
-r /reference/GRCh38_no_alt_analysis_set.fasta \
-o /happy/HG002.output \
--engine=vcfeval \
--pass-only \
-l chr20
结果解读
基准测试结果显示DeepTrio具有很高的准确性:
对于HG002样本:
- SNP召回率(Recall): 99.66%
- SNP精确率(Precision): 99.94%
- INDEL召回率: 99.57%
- INDEL精确率: 99.89%
孟德尔遗传分析显示约2.7%的记录存在遗传矛盾,这在家系分析中是预期范围内的结果,可能源于测序错误、基因组复杂区域或真实的新生突变。
总结
本案例展示了如何使用DeepTrio处理家系全基因组测序数据。通过利用父母-子女的遗传关系,DeepTrio能够提高变异检测的准确性。结果显示DeepTrio在20号染色体上的表现优异,SNP和INDEL的召回率和精确率均超过99%。这种分析方法特别适合临床遗传学研究,可有效识别新生突变和遗传变异。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考