介绍
本文介绍了使用Sentieon工具处理下一代测序数据的方法,同时利用分子条码信息(也称为唯一分子索引或UMI)。分子条码可以在测序之前在模板DNA分子的末端引入唯一标签,从而大大减少PCR重复和测序错误对变异调用过程的影响。
Sentieon工具提供从读数据中提取UMI标签和执行基于条码的一致性生成的功能。此流程预期输入是无接头的barcode化读段数据。UMI一致性流程的输出是一个包含从barcode读数据派生出的一致性分子的BAM文件。这些一致性分子可以作为大多数变异调用软件的输入。
Sentieon UMI流程
整体UMI流程结构
Sentieon提供了两个用于UMI NGS数据处理的实用工具:
umi extract:从已删除接头的未比对输入读段中提取UMI标签。
umi consensus:在比对输入文件上,具备条码感知的去重和一致性调用。
Sentieon建议使用以下典型的UMI处理流程(图1):
使用工具umi extract从未对齐的输入读段中提取UMI标签。
使用Sentieonbwa mem将其对齐到参考基因组。
使用工具umi consensus进行UMI一致性调用。
使用Sentieonbwa mem将一致性读段进行比对并排序。
图1 Sentieon UMI处理流程
以下是一个代码示例。每个组件的详细信息将在后续部分进行解释。
1sentieon umi extract \
2 8M12S+T,+T \
3 sample_R1.fastq.gz \
4 sample_R2.fastq.gz | \
5sentieon bwa mem \
6 -R "@RG\tID:$GROUP\tSM:$SAMPLE\tLB:$LIBRARY\tPL:$PLATFORM" \
7 -t $NT \
8 -K $BWA_K_SIZE \
9 -p \
10 -C \
11 $REF \
12 - | \
13sentieon umi consensus \
14 -o sample_consensus.fastq.gz
15
16sentieon bwa mem \
17 -R "@RG\tID:$GROUP\tSM:$SAMPLE\tLB:$LIBRARY\tPL:$PLATFORM" \
18 -t $NT \
19 -K $BWA_K_SIZE \
20 -p \
21 -C \
22 $REF \
23 sample_consensus.fastq.gz | \
24sentieon util sort \
25 -i - \
26 -o sample_consensus.bam \
27 --sam2bam --umi_post_process
确定读段结构并提取barcode序列
作为第一步,您需要从输入读段中提取barcode序列。这可以使用Sentieonumi extract命令来完成,它会从读段中提取barcode序列信息,并将其添加到读段描述中。如前所述,在运行umi标签提取之前,应从输入读段中删除接头序列。这可以由其他第三方工具来完成。
umi extract的输出是以交错的R1和R2读段的FASTQ格式。默认情况下,提取命令的输出将发送到标准输出,除非通过选项-o进行其他定义。
umi extract命令的语法如下:
1sentieon umi extract [options] read_structure fastq1 [fastq2] [fastq3]
2
3Options:
4 -o Output file (default: stdout)
5 -d Turn on duplex mode
6 --umi_tag Logic umi tag (default 'XR')
umi extract命令的第一个参数定义了读段结构。对于成对读段,应该用逗号','分隔的两个读段结构进行指定。
读段结构由定义。数字可以是任何数字或'+',用于指示读段结尾。可能的操作符包括:
T 模板序列。
M 分子条码序列。
S 应忽略的一系列碱基。
使用-d选项可以提取双链UMI并标记其起源的链。双链UMI提取需要对两个链都指定相同的读段结构。
作为示例,以下命令演示了在成对读段上进行单端UMI提取。在这种情况下,成对读段中的第一个读段包含一个8bp的分子条码,后面是一个12bp的间隔序列,然后是模板序列。第二个读段只包含模板序列。成对读段将在输出文件中交错排列。请注意,在此示例中,输出被导向压缩为FASTQ文件的gzip。一般来说,我们建议将输出直接导向下一步(Sentieonbwa mem)。
以下命令演示了双链UMI提取,其中两个读段均包含4bp的分子条码,后跟模板序列。
以下是一个使用案例,当UMI序列已经在一个单独的FASTQ文件sample_I1.fastq.gz中时。在运行这种模式下,只允许有一个额外的UMI索引读段。UMI索引读段应该不包含模板序列。这种模式不允许双链UMI提取。
umi extract的输出包含额外的标签。默认情况下,FASTQ输出包含XR标签,该标签将用于umi consensus。
参考基因组比对
可以使用bwa mem将fastq文件对齐到参考基因组。使用-p选项来指定输入文件为fastq文件,而-C选项将导致将fastq描述中的barcode标签附加到读段的SAM记录中。
共识分子的创建
流程的下一个阶段是使用Sentieon umi consensus从已对齐的带barcode标记的读段中创建共识分子。
其语法如下:umi consensus
1umi consensus [-i input] [options] -o output
2
3Options for umi_consensus:
4 -i, --input Input file (default: stdin SAM)
5 -o, --output Output file
6 --input_format SAM/BAM/CRAM
7 --umi_tag Logic UMI tag (default:'XR')
8 --copy_tags List of tags to be copied (default: XR,RX,MI,BI,BD,XZ)
9 --read_name_prefix
10 Read name prefix (default: 'UMI-' )
默认情况下,umi consensus将从标准输入以SAM格式读段输入。可以使用选项来覆盖默认值,指定输入文件和除SAM之外的文件格式的选项。输出是一个包含共识分子的交错的fastq文件,可以通过Sentieon重新映射。下面是一个示例:umi consensus --input --input_format umi consensus bwa mem
生成的输出会生成以下额外的标签umi consensus
报告没有BI/BD标签的共识读段
默认情况下,umi consensus会重新校准INDEL错误率,并将这些信息存储在BI/BD标签中。可以通过从--copy_tags选项中删除BI/BD标签来关闭这个建模步骤。因此,如果不希望在报告的共识读中包含BI/BD标签,可以将这些标签从--copy_tags选项中移除。
共识读段到参考基因组的比对
可以使用Sentieon将交错的fastq比对到参考基因组上。与之前的比对类似,选项和选项是必需的。将输出导入Sentieon,将会生成用于变异调用的输出BAM文件。选项用于指示工具执行共识读段的必要后处理操作。umi consensus bwa mem -p -C util sort --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两条链的双链共识。
领取专属 10元无门槛券
私享最新 技术干货