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
提供了三个文库类型特异的质控指标计算工具: CollectWgsMetrics
用来收集WGS分析中用来评估实验性能和深度的重要指标。CollectHsMetrics
用于收集通过杂交捕获实验产生的数据集特有的一些质控指标。杂交捕获技术是捕获外显子特异性序列的最常用技术,用于全外显子组测序等靶向测序实验。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_intervals
和amplicon_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
计算理论杂合灵敏度时抽样的位点数目