Sentieon | 应用教程:唯一分子标识符(UMI)

简介: **Sentieon®工具通过UMI处理NGS数据,减少PCR误差和提高变异检测准确性。流程包括:umi extract(提取UMI标签),bwa mem对齐,umi consensus(创建一致性分子),再次对齐并排序。umi extract根据读取结构提取条形码,umi consensus生成共识Fastq,最终比对产生用于变异调用的BAM文件。该流程适用于体细胞突变检测,推荐使用TNscope®。日志提供质量控制信息,如组大小直方图和双工统计。**

介绍

本文介绍了使用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.png

图1 Sentieon® UMI处理流程


以下是一个代码示例。每个组件的详细信息将在后续部分进行解释。

js 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.gz 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

确定读取结构并提取条形码序列
作为第一步,您需要从输入读取中提取条形码序列。这可以使用Sentieon®umi extract命令来完成,它会从读取中提取条形码序列信息,并将其添加到读取描述中。如前所述,在运行umi标签提取之前,应从输入读取中删除适配器序列。这可以由其他第三方工具来完成。

umi extract的输出是以交错的R1和R2读取的FASTQ格式。默认情况下,提取命令的输出将发送到标准输出,除非通过选项-o进行其他定义。

umi extract命令的语法如下:

js sentieon umi extract [options] read_structure fastq1 [fastq2] [fastq3]

js Options: -o Output file (default: stdout) -d Turn on duplex mode --umi_tag Logic umi tag (default 'XR')

umi extract命令的第一个参数定义了读取结构。对于成对读取,应该用逗号','分隔的两个读取结构进行指定。

读取结构由定义。数字可以是任何数字或'+',用于指示读取结尾。可能的操作符包括:

T模板序列

M分子条码序列

S应忽略的一系列碱基

使用-d选项可以提取双链UMI并标记其起源的链。双链UMI提取需要对两个链都指定相同的读取结构。

作为示例,以下命令演示了在成对读取上进行单端UMI提取。在这种情况下,成对读取中的第一个读取包含一个8bp的分子条码,后面是一个12bp的间隔序列,然后是模板序列。第二个读取只包含模板序列。成对读取将在输出文件中交错排列。请注意,在此示例中,输出被导向压缩为FASTQ文件的gzip。一般来说,我们建议将输出直接导向下一步(Sentieon®bwa mem)。

js sentieon umi extract 8M12S+T,+T \ sample_R1.fastq.gz \ sample_R2.fastq.gz | \ gzip -c \ > sample_extracted_pair.fastq.gz

以下命令演示了双链UMI提取,其中两个读取均包含4bp的分子条码,后跟模板序列。

js 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提取。

js 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。

分子2.png

表格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 output
Options 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_prefix
                        Read 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

分子3.png

表格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两条链的双链共识。

目录
相关文章
|
5月前
|
机器学习/深度学习 算法 数据挖掘
决策树算法大揭秘:Python让你秒懂分支逻辑,精准分类不再难
【9月更文挑战第12天】决策树算法作为机器学习领域的一颗明珠,凭借其直观易懂和强大的解释能力,在分类与回归任务中表现出色。相比传统统计方法,决策树通过简单的分支逻辑实现了数据的精准分类。本文将借助Python和scikit-learn库,以鸢尾花数据集为例,展示如何使用决策树进行分类,并探讨其优势与局限。通过构建一系列条件判断,决策树不仅模拟了人类决策过程,还确保了结果的可追溯性和可解释性。无论您是新手还是专家,都能轻松上手,享受机器学习的乐趣。
68 9
|
6月前
|
数据建模 大数据 数据库
【2023年4月美赛加赛】Y题:Understanding Used Sailboat Prices 建模思路、建模方案、数据来源、相关资料、Python代码
本文提供了2023年MCM问题Y的解题思路、建模方案、数据来源、相关资料以及Python代码,旨在建立数学模型解释二手帆船的挂牌价格,并分析地区对价格的影响,以及在香港(SAR)市场上的应用。
62 1
【2023年4月美赛加赛】Y题:Understanding Used Sailboat Prices 建模思路、建模方案、数据来源、相关资料、Python代码
|
7月前
|
存储 算法 Shell
Sentieon | 应用教程:Sentieon分布模式
本文档描述了如何利用Sentieon®基因组学工具的分片能力将DNAseq®流程分布到多台服务器上;将其他流程(如TNseq®)进行分布遵循相同原则,因为所有Sentieon®基因组学工具都具有相同的内置分布式处理能力。这种分布的目标是为了减少流程的总运行时间,以更快地生成结果;然而,这种分布也会带来一些额外的开销,使计算成本增加。
95 2
|
9月前
|
数据采集 存储 人工智能
【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】
【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】
|
9月前
|
人工智能 机器人 数据挖掘
【python】电影评分数据集的分析(python实现)(源码+报告)【独一无二】
【python】电影评分数据集的分析(python实现)(源码+报告)【独一无二】
116 0
|
9月前
|
算法 Go 区块链
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
98 0
|
Ubuntu 安全 Linux
Cmake的介绍 适用于快速使用, 和期望深究的两类人群
编写cmake 是说要编写一个CMakeLists.txt 文件。 编写过程包括以下主要部分,有了这些就可以有一个可以使用的cmake项目了,但是同样的你也可以扩展。
85 0
|
机器学习/深度学习 监控 搜索推荐
提升UMI分析精度和计算效率:Sentieon UMI分子标记处理模块
提升UMI分析精度和计算效率:Sentieon UMI分子标记处理模块
168 0
|
机器学习/深度学习 算法 知识图谱
浙大团队将化学知识引入机器学习,提出可外推、可解释的分子图模型预测反应性能
浙大团队将化学知识引入机器学习,提出可外推、可解释的分子图模型预测反应性能
250 0
|
机器学习/深度学习 数据可视化 自动驾驶
分类器可视化解释StylEx:谷歌、MIT等找到了影响图像分类的关键属性
分类器可视化解释StylEx:谷歌、MIT等找到了影响图像分类的关键属性
127 0