介绍
本文介绍了使用Sentieon®工具处理下一代测序数据的方法,同时利用分子条码信息(也称为唯一分子索引或UMI)。分子条码可以在测序之前在模板DNA分子的末端引入唯一标签,从而大大减少PCR重复和测序错误对变异调用过程的影响。
Sentieon®工具提供从读数据中提取UMI标签和执行基于条码的一致性生成的功能。此流程预期输入是无适配器的条形码化读取数据。UMI一致性流程的输出是一个包含从条形码读数据派生出的一致性分子的BAM文件。这些一致性分子可以作为大多数变异调用软件的输入。
Sentieon® UMI流程
整体UMI流程结构
Sentieon®提供了两个用于UMI NGS数据处理的实用工具:
umi extract:从已删除适配器的未对齐输入读取中提取UMI标签
umi consensus:在对齐输入上,具备条码感知的重复删除和一致性调用
Sentieon®建议使用以下典型的UMI处理流程(图1):
使用工具umi extract从未对齐的输入读取中提取UMI标签
使用Sentieon®bwa mem将其对齐到参考基因组
使用工具umi consensus进行UMI一致性调用
使用Sentieon®bwa mem将一致性读取对齐并排序到参考基因组
图1 Sentieon® UMI处理流程
以下是一个代码示例。每个组件的详细信息将在后续部分进行解释。
sentieon umi extract \8M12S+T,+T \sample_R1.fastq.gz \sample_R2.fastq.gz | \
sentieon bwa mem \-R "@RG\tID:$GROUP\tSM:$SAMPLE\tLB:$LIBRARY\tPL:$PLATFORM" \-t $NT \-K $BWA_K_SIZE \-p \-C \$REF \- | \
sentieon umi consensus \-o sample_consensus.fastq.gzsentieon bwa mem \-R "@RG\tID:$GROUP\tSM:$SAMPLE\tLB:$LIBRARY\tPL:$PLATFORM" \-t $NT \-K $BWA_K_SIZE \-p \-C \$REF \sample_consensus.fastq.gz | \
sentieon util sort \-i - \-o sample_consensus.bam \--sam2bam --umi_post_process
确定读取结构并提取条形码序列
作为第一步,您需要从输入读取中提取条形码序列。这可以使用Sentieon®umi extract命令来完成,它会从读取中提取条形码序列信息,并将其添加到读取描述中。如前所述,在运行umi标签提取之前,应从输入读取中删除适配器序列。这可以由其他第三方工具来完成。
umi extract的输出是以交错的R1和R2读取的FASTQ格式。默认情况下,提取命令的输出将发送到标准输出,除非通过选项-o进行其他定义。
umi extract命令的语法如下:
sentieon umi extract [options] read_structure fastq1 [fastq2] [fastq3]Options:-o Output file (default: stdout)-d Turn on duplex mode--umi_tag Logic umi tag (default 'XR')
umi extract命令的第一个参数定义了读取结构。对于成对读取,应该用逗号','分隔的两个读取结构进行指定。
读取结构由<number><operator>定义。数字可以是任何数字或'+',用于指示读取结尾。可能的操作符包括:
T模板序列
M分子条码序列
S应忽略的一系列碱基
使用-d选项可以提取双链UMI并标记其起源的链。双链UMI提取需要对两个链都指定相同的读取结构。
作为示例,以下命令演示了在成对读取上进行单端UMI提取。在这种情况下,成对读取中的第一个读取包含一个8bp的分子条码,后面是一个12bp的间隔序列,然后是模板序列。第二个读取只包含模板序列。成对读取将在输出文件中交错排列。请注意,在此示例中,输出被导向压缩为FASTQ文件的gzip。一般来说,我们建议将输出直接导向下一步(Sentieon®bwa mem)。
sentieon umi extract 8M12S+T,+T \sample_R1.fastq.gz \sample_R2.fastq.gz | \gzip -c \> sample_extracted_pair.fastq.gz
以下命令演示了双链UMI提取,其中两个读取均包含4bp的分子条码,后跟模板序列。
sentieon umi extract \-d \4M+T,4M+T \sample_R1.fastq.gz \sample_R2.fastq.gz | \gzip -c \> sample_extracted_pair.fastq.gz
以下是一个使用案例,当UMI序列已经在一个单独的FASTQ文件sample_I1.fastq.gz中时。在运行这种模式下,只允许有一个额外的UMI索引读取。UMI索引读取应该不包含模板序列。这种模式不允许双链UMI提取。
sentieon umi extract \"+M,+T,+T" \sample_I1.fastq.gz \sample_R1.fastq.gz \sample_R2.fastq.gz | \gzip -c \> sample_extracted_pair.fastq.gz
umi extract的输出包含额外的标签。默认情况下,FASTQ输出包含XR标签,该标签将用于umi consensus。
标签 | 意义 |
RX | 提取的UMI序列碱基。 |
XR | 用于在UMI一致性中分组 |
表格40 umi extract生成的额外标签
对参考基因组的比对
可以使用bwa mem将交错的fastq文件对齐到参考基因组。使用-p选项来指定输入文件为交错的fastq文件,而-C选项将导致将fastq描述中的条形码标签附加到读取的SAM记录中。
sentieon bwa mem \-R "@RG\tID:$GROUP\tSM:$SAMPLE\tLB:$LIBRARY\tPL:$PLATFORM" \-t $NT \-K $BWA_K_SIZE \-p \-C \$REF \sample_extracted_pair.fastq.gz > sample_aligned.sam
共识分子的创建
流程的下一个阶段是使用Sentieon® umi consensus从已对齐的带条形码标记的读取中创建共识分子。
其语法如下:umi consensus
umi consensus [-i input] [options] -o outputOptions for umi_consensus:-i, --input Input file (default: stdin SAM)-o, --output Output file--input_format SAM/BAM/CRAM--umi_tag Logic UMI tag (default:'XR')--copy_tags List of tags to be copied (default: XR,RX,MI,BI,BD,XZ)--read_name_prefixRead name prefix (default: 'UMI-')
默认情况下,umi consensus将从标准输入以SAM格式读取输入。可以使用选项来覆盖默认值,指定输入文件和除SAM之外的文件格式的选项。输出是一个包含共识分子的交错的fastq文件,可以通过Sentieon®重新映射。下面是一个示例:umi consensus --input --input_format umi consensus bwa mem
cat sample_aligned.sam | \sentieon umi consensus \-o sample_consensus.fastq.gz
生成的输出会生成以下额外的标签umi consensus
标签 | 意义 |
BI/BD | 插入/缺失的质量分数 |
MI | 一个唯一的标签,用于表示基于共识生成的UMI组 |
XZ | UMI组中基于共识生成的原始读取数量。对于双工UMI,该标签将包含每个链的原始读取数量 |
表格41:umi consensus的输出fastq标签
报告没有BI/BD标签的共识读取
默认情况下,umi consensus会重新校准INDEL错误率,并将这些信息存储在BI/BD标签中。可以通过从--copy_tags选项中删除BI/BD标签来关闭这个建模步骤。因此,如果不希望在报告的共识读中包含BI/BD标签,可以将这些标签从--copy_tags选项中移除。
cat sample_aligned.sam | \sentieon umi consensus \--copy_tags XR,RX,MI,XZ \-o sample_consensus.fastq.gz
共识读取到参考基因组的比对
可以使用Sentieon®将交错的fastq比对到参考基因组上。与之前的比对类似,选项和选项是必需的。将输出导入Sentieon®,将会生成用于变异调用的输出BAM文件。选项用于指示工具执行共识读取的必要后处理操作。umi consensus bwa mem -p -C util sort --umi_post_process
sentieon bwa mem \-R "@RG\tID:$GROUP\tSM:$SAMPLE\tLB:$LIBRARY\tPL:$PLATFORM" \-t $NT \-K $BWA_K_SIZE \-p \-C \$REF \sample_consensus.fastq.gz | \
sentieon util sort \-i - \-o sample_consensus.bam \--sam2bam --umi_post_process
从共识读取中进行变异调用
来自UMI共识流程的BAM文件已经准备好进行变异调用的分析。不应执行重复标记或基质质量调整的其他步骤,因为UMI共识步骤本质上是PCR重复标记和基质质量再校准的结合。
虽然可以使用任何体细胞突变调用程序与共识读取一起使用,但出于其对低频变异检测的高敏感性,我们推荐使用TNscope®。
UMI共识读取的日记
输出的日志包含关于输入读取的统计信息,可用于质量控制。目前提供的两个信息是:umi consensus
组大小直方图:组大小是在一个组中支持一个共识读取的原始读取数量。该直方图显示了具有特定组大小的UMI共识读取的数量,并可用于检测问题:
如果单体比例(组大小为1的UMI共识)过高,则很难准确建模PCR错误率并改善质量分数。
相反,如果每个UMI组的平均读取数过高,这可能表示文库制备中的输入DNA量过低,这将导致共识读取的覆盖范围较低。
双工统计:使用双工UMI标签,可以通过比较R1和R2读取中的UMI标签,识别来自DNA每条链的读取,并识别样本制备过程中引起的错误。日志中报告的数字表示单链或双链共识读取的数量,按以下代码进行分组:umi consensus
- 组代码1:无互补UMI组的单链共识。
- 组代码2:有来自两个互补UMI组的双链共识。
- 组代码3:R1和R2读取的UMI序列相同。在这种情况下,依靠插入物的链确定输入读取是否来自同一链。此组进一步细分为:umi consensus
- 组代码31:所有读取来自同一链的单链共识。
- 组代码32:来自DNA两条链的双链共识。