3.3 NGS测序数据质控

gtx qc 提供一组工具集来收集NGS BAM数据的质控指标。一般来说,这些工具以排序并标重后的BAM文件为输入, 以简洁的方式收集关于数据量,质量值分布,插入片段大小分布,GC偏差和覆盖度相关的指标。

3.3.1 基本质控指标

gtx qc 提供子命令 CollectMultipleMetrics 来收集BAM文件的基本质控指标,这些指标包括:

  • CollectQualityYieldMetrics : 收集通过质量值阈值检查和Illumina特有过滤器的序列的相关质控指标。

  • CollectBaseDistributionByCycle : 统计每个Cycle的碱基分布。

  • MeanQualityByCycle : 统计每个Cycle的平均测序质量。

  • QualityScoreDistribution : 统计碱基质量值分布。

  • CollectAlignmentSummaryMetrics : 汇总比对相关的质控指标。

  • CollectInsertSizeMetrics : 收集双端测序文库插入片段大小分布的指标。

  • CollectGcBiasMetrics : 收集与GC偏差相关的指标。

  • CollectSequencingArtifactMetrics : 针对杂交捕获文库,收集量化单碱基测序伪影的指标。

输入

  • 输入排序标重后BAM文件

  • 输出文件前缀

  • 参考基因组FASTA文件

输出

  • 比对统计指标文件
    • <prefix>.alignment_summary_metrics : 由 CollectAlignmentSummaryMetrics 输出。

    • <prefix>.insert_size_metrics : 由 CollectInsertSizeMetrics 输出。

    • <prefix>.quality_score_distribution : 由 QualityScoreDistribution 输出。

    • <prefix>.mean_quality_by_cycle : 由 MeanQualityByCycle 输出。

    • <prefix>.base_distribution_by_cycle : 由 CollectBaseDistributionByCycle 输出。

    • <prefix>.gc_bias_metrics : 由 CollectGcBiasMetrics 输出。

    • <prefix>.gc_bias_summary : 由 CollectGcBiasMetrics 输出。

    • <prefix>.quality_yield_metrics: 由 CollectQualityYieldMetrics 输出。

    • <prefix>.sequencing_artifact_metrics.bait_bias_detail_metrics (可选): 由 CollectSequencingArtifactMetrics 输出。

    • <prefix>.sequencing_artifact_metrics.bait_bias_summary_metrics (可选): 由 CollectSequencingArtifactMetrics 输出。

    • <prefix>.sequencing_artifact_metrics.error_summary_metrics (可选): 由 CollectSequencingArtifactMetrics 输出。

    • <prefix>.sequencing_artifact_metrics.pre_adapter_detail_metrics (可选): 由 CollectSequencingArtifactMetrics 输出。

    • <prefix>.sequencing_artifact_metrics.pre_adapter_summary_metrics (可选): 由 CollectSequencingArtifactMetrics 输出。

请参考 Picard metrics definitions 获取以上质控指标的详细描述。

示例命令

# collect Multiple QC metrics in a single run
gtx qc CollectMultipleMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta

默认情况下,以上命令对以下指标进行收集:{CollectAlignmentSummaryMetrics, CollectInsertSizeMetrics, QualityScoreDistribution, MeanQualityByCycle, CollectBaseDistributionByCycle, CollectGcBiasMetrics, CollectQualityYieldMetrics}.

# For data with hybrid selection protocals (eg. WES data), you can add collector: CollectSequencingArtifactMetrics
gtx qc CollectMultipleMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta \
  --metrics CollectSequencingArtifactMetrics

以上命令将 CollectSequecingArtifactMetrics 加入到默认指标集列表,收集所有相关质控指标信息。

# Disable default collectors and make your own combinations
gtx qc CollectMultipleMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta \
  --disable-default-metrics \
  --metrics QualityScoreDistribution \
  --metrics CollectAlignmentSummaryMetrics \
  --metrics CollectGcBiasMetrics

注解

  • 目前,该工具不支持收集多水平的质控指标(如收集不同文库,不同样本的指标),因此需用户自己确保BAM中的Read Group唯一。

  • 输出的Metrics文件保留了Picard输出的格式,可以直接作为下游工具 multiQC 的输入以方便生成多样本的质控报告。

公共参数

-i, --input

输入排序标重后BAM文件

-o, --output

输出指标文件的前缀

-r, --reference

参考基因组FASTA文件

-t, --threads

线程数,默认为系统CPU数目

--metrics

支持的质控指标,可指定多次

--disable-default-metrics

禁用默认指标收集器,允许用户按需求自由组合不同指标进行计算

不同质控指标特有的选项

[CollectQualityYieldMetrics]

--include_secondary_alignments

若为真,统计中包含次要比对的碱基

--include_supplemental_alignments

指标计算包含supplementary比对记录

--use_original_qualities

如存在OQ标签,则以其值作为原始碱基质量,不以QUAL列的质量值作为输入

[CollectBaseDistributionByCycle]

--aligned_reads_only

仅计算比对上的reads的碱基分布

--pf_reads_only

仅计算PF reads的碱基分布

[MeanQualityByCycle]

--aligned_reads_only

仅计算比对上的reads的碱基分布

--pf_reads_only

仅计算PF reads的碱基分布

[QualityScoreDistribution]

--aligned_reads_only

仅计算比对上的reads的碱基分布

--pf_reads_only

仅计算PF reads的碱基分布

--include_no_calls

质量值分布中包含N碱基的质量

[CollectAlignmentSummaryMetrics]

--expected_pair_orientations

不满足期望比对方向的双端reads将被视为嵌合比对。该参数可指定多次,默认为FR, 可选项有{FR, RF, TANDEM}

--max_insert_size

比对到不同染色体和插入片段大于该阈值的双端reads将被是为嵌合比对。

--adapter_sequence

adapter序列列表,默认值为:[AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT,AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG,AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT,AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG,AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT,AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG].

[CollectGcBiasMetrics]

--also_ignore_duplicates

同时生成去重后reads的统计结果

--minimum_genome_fraction

对汇总指标,基因组序列占窗口大小的比例小于该阈值的GC窗口不纳入统计范围

--scan_window_size

计算GC含量的窗口大小

[CollectSequencingArtifactMetrics]

--context_size

包括所测碱基两端上下文碱基的数目

--include_duplicates

插入片段直方图统计包含标记为重复的reads

--include_non_pf_reads

是否包含non-PF reads

--include_unpaired

包含未配对序列。若为真,所有双端序列全部纳入统计,不考虑插入片段大小

--minimum_insert_size

最小插入片段阈值

--maximum_insert_size

最大插入片段阈值

--minimum_mapping_quality

最低比对质量阈值

--minimum_quality_score

最低碱基质量阈值

--tendem_reads

mate pair测序方向相同时设为true。

--user_oq

当存在原始碱基质量时,过滤时以原始碱基质量为准

3.3.2 收集不同文库类型的质控指标

除了对BAM文件进行基本的质控外,gtx qc 提供了三个文库类型特异的质控指标计算工具:
  1. CollectWgsMetrics 用来收集WGS分析中用来评估实验性能和深度的重要指标。

  2. CollectHsMetrics 用于收集通过杂交捕获实验产生的数据集特有的一些质控指标。杂交捕获技术是捕获外显子特异性序列的最常用技术,用于全外显子组测序等靶向测序实验。

  3. CollectTargetedPcrMetrics 用于计算扩增子测序数据的比对BAM文件中与PCR相关的质控指标。

3.3.2.1 CollectWgsMetrics

该工具收集通过碱基质量和比对质量过滤器的reads比例和WGS分析中的read深度和覆盖率等指标。

输入

  • 输入排序标重后BAM文件

  • 输出文件前缀

  • 参考基因组FASTA文件

输出

  • <prefix>.collect_wgs_metrics

关于质控指标的细节,请参考 CollectWgsMetrics

示例命令

# collect wgs QC metrics
gtx qc CollectWgsMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta
# collect raw wgs QC metrics, equivalent to CollectRawWgsMetrics
gtx qc CollectWgsMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta \
  --raw

注解

  • 选项 --raw 等价于设置 --minimum_mapping_quality 0 --minimum_base_quality 0 --coverage_cap 100000 --locus_accumulation_cap 200000, 相当于Picard中的 CollectRawWgsMetrics

参数列表

-i, --input

输入排序标重后BAM文件

-o, --output

输出指标文件的前缀

-r, --reference

参考基因组FASTA文件

-t, --threads

线程数,默认为系统CPU数目

--raw

收集原始数据WGS相关指标,相当于picard工具 CollectRawWgsMetrics

--count_unpaired

若为真,统计时考虑未配对reads和双端reads有一端没有比对上的数据

--coverage_cap

将深度大于该阈值的位点的深度设为此阈值。

--locus_accumulation_cap

最高深度阈值,当某个位点的pileup深度大于该阈值,累计达到该阈值之后的reads将被忽略。该值设置太低可能导致统计有误。

--minimum_mapping_quality

最低比对质量阈值

--minimum_base_quality

贡献覆盖度的最低碱基质量值阈值。碱基N的质量为负无穷,不参与统计。

--read_length

计算GC含量的窗口大小

--sample_size

计算理论杂合灵敏度时抽样的位点数目

3.3.2.2 CollectHsMetrics

该工具收集通过碱基质量和比对质量过滤器的reads比例和WGS分析中的read深度和覆盖率等指标。

输入

  • 输入排序标重后BAM文件

  • 输出文件前缀

  • 参考基因组FASTA文件

  • Target区域文件

  • Bait区域文件

输出

  • <prefix>.collect_hs_metrics

关于质控指标细节,请参考 CollectHsMetrics

示例命令

# collect hybrid selection QC metrics
gtx qc CollectHsMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta \
  --target_intervals target.bed \   # can also be target.interval_list
  --bait_intervals   baits.bed

重要

  • bait区域文件和target区域文件需与实际数据吻合,通常由捕获试剂盒生产厂商提供。

参数列表

-i, --input

输入排序标重后BAM文件

-o, --output

输出指标文件的前缀

-r, --reference

参考基因组FASTA文件

--target_intervals

target区域文件

--bait_intervals

baits区域文件

--coverage_cap

将深度大于该阈值的位点的深度设为此阈值。

--minimum_mapping_quality

最低比对质量阈值

--minimum_base_quality

贡献覆盖度的最低碱基质量值阈值。碱基N的质量为负无穷,不参与统计。

--sample_size

计算理论杂合灵敏度时抽样的位点数目

3.3.2.3 CollectTargetedPcrMetrics

该工具计算靶向测序数据的比对BAM文件中与PCR相关的质控指标。

输入

  • 输入排序标重后BAM文件

  • 输出文件前缀

  • 参考基因组FASTA文件

  • Target区域文件

  • 扩增子区域文件

输出

  • <prefix>.collect_pcr_metrics

关于质控指标的细节,请参考 CollectTargetedPcrMetrics

示例命令

# collect pcr QC metrics
gtx qc CollectTargetedPcrMetrics \
  -i test.sorted.dupmarked.bam \
  -o test  \
  -r hg38.fasta \
  --target_intervals target.bed \   # can also be target.interval_list
  --amplicon_intervals  amplicon.bed

注解

  • target_intervalsamplicon_intervals 文件格式可以是BED或interval_list

参数列表

-i, --input

输入排序标重后BAM文件

-o, --output

输出指标文件的前缀

-r, --reference

参考基因组FASTA文件

--target_intervals

target区域文件

--amplicon_intervals

baits区域文件

--coverage_cap

将深度大于该阈值的位点的深度设为此阈值。

--minimum_mapping_quality

最低比对质量阈值

--minimum_base_quality

贡献覆盖度的最低碱基质量值阈值。碱基N的质量为负无穷,不参与统计。

--sample_size

计算理论杂合灵敏度时抽样的位点数目