Re-squiggle算法

Re-squiggle算法

从纳米孔读取产生的电流信号水平数据被称为“squiggle”。基于这种squiggle信息进行碱基调用通常会与参考序列存在一些错误。Re-squiggle算法定义了一种新的从squiggle到参考序列的分配,因此称为re-squiggle。

Re-squiggle算法是Tombo框架的基础。该算法以包含原始信号和相关碱基调用的读取文件(FAST5格式)作为输入。碱基调用被映射到基因组或转录组参考序列,然后根据预期的电流水平模型将原始信号分配给参考序列。

TL;DR:

  • 在运行修改碱基检测或其他Tombo命令之前,必须对一组读取运行tombo resquiggle命令。
  • 必须提供包含FAST5读取文件和基因组/转录组参考的目录。
    • 参考序列可以是已知的或从该样本中发现的。
  • 重要的是,假设参考序列是正确的,因此创建个性化参考可能会提高性能,特别是对于差异较大的样本或组装不良的参考序列。
  • 原始读取的FAST5文件必须包含碱基调用。
    • 使用tombo preprocess annotate_raw_with_fastqs命令将FASTQ文件中的碱基调用添加到原始读取文件中。
    • 读取文件不需要包含“Events”数据(如albacore的fast5模式输出的那样)。
  • Tombo目前仅支持DNA和RNA数据(包括R9.4和R9.5;1D和1D2数据;R9.*.1化学试剂)。其他数据可能会产生次优结果(例如R9.0或R7数据)。
  • DNA和RNA读取将自动检测并相应处理(使用--dna--rna显式设置)。
    • Tombo不执行剪接映射。因此,对于RNA样本,必须将转录组参考传递给re-squiggle命令。有关Tombo RNA处理的更多详细信息,请参见RNA部分。
  • 使用--processes选项在多个核心上运行tombo resquiggle

算法细节

Re-squiggle算法分为五个主要步骤,描述如下。

基因组映射

基因组映射通过minimap2的Python API(mappy Python包)执行。

读取的碱基调用序列位置在FAST5文件中由--basecall-group--basecall-subgroups命令行选项定义。这些参数的默认值指向albacore或tombo preprocess annotate_raw_with_fastqs的默认碱基调用位置。

成功映射的读取的基因组序列随后传递给序列到信号分配阶段。

信号归一化

在事件检测和信号到序列分配步骤的第一轮迭代之前,读取的原始信号使用中位数偏移和MAD(中位数绝对偏差)比例参数进行归一化。

[ \text{NormSignal} = \frac{\text{RawSignal} - \text{Shift}}{\text{Scale}} ]

从Tombo版本1.3开始,在第一轮迭代之后,通过将预期信号水平与第一轮信号到序列分配中观察到的信号水平匹配来计算新的偏移和比例参数。计算预期信号水平与观察信号水平之间关系的Theil-Sen估计量,并将其用作前一轮比例参数的校正因子。还计算了每个读取中每个碱基的截距中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot项目搭建(8)-用户登出与个人中心修改

1.提要信息 1.1 catch和then方法 then和catch是JavaScript中Promise对象的两个方法,用于处理异步操作的成功(成功回调)和失败(失败回调)情况。这两个方法通常与async/await语法一起使用,但也可以单独使用…

【2024】使用Docker搭建redis sentinel哨兵模式集群全流程(包含部署、测试、错误点指正以及直接部署)

目录💻 前言**Docker Compose介绍**最终实现效果 一、搭建集群1、创建文件结构2、创建redis节点3、验证节点4、创建sentinel哨兵5、验证Sentinel功能 二、spring连接1、添加依赖2、添加配置3、启动测试 三、直接部署流程1、拉取配置2、修改端口创建 前言 本篇文章主…

Python毕业设计选题:基于django+vue的智慧社区可视化平台的设计与实现+spider

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 养老机构管理 业主管理 社区安防管理 社区设施管理 车位…

webpack 项目访问静态资源

使用 webpack dev serve 启动 react 项目后,发现无法使用 http://localhost:8080/1.png 访问到项目的 /static 目录下的 1.png 文件。我的 webpack-dev.js 配置如下: const webpack require(webpack) const webpackMerge require(webpack-merge) cons…

shell(2) 变量

定义变量 中间不需要加空格,末尾也不需要分号。 name1jth #不加引号定义 name2jth #单引号定义 name3"jth" #双引号定义 这三种都表示字符串变量。 使用变量 使用$符号,或者${}。加花括号主要是帮助解释器识别变量边界。 echo $name #输出jth…

React的Fiber小记 ⏰

写在最前:绝对是错漏百出的一篇博文,很多内容还没有写demo去验证,特别是浏览器的帧渲染那一块,权当小记。至于为什么想写Fiber,问就是Shopee面试的时候被问惨了,之前实习上班摸鱼的时候看过稀土掘金上一篇感…

JavaScript 前端开发:从入门到精通的奇幻之旅

目录 一、引言 二、JavaScript 基础 (一)变量与数据类型 (二)运算符 (三)控制结构 三、函数 (一)函数定义与调用 (二)函数作用域 (三&am…

安装Fcitx5输入框架和输入法自动部署脚本(来自Mark24)-Ubuntu通用

在Ubuntu22.04上安装rime中文输入法的基本教程 上述文章接近废弃。 使用新逻辑配置基本的Fcitx5的输入法。 安装 第一步,下载相关组件 sudo nala install vim sudo nala install ruby sudo nala install fcitx5-rime第二步,设置语言为Fcitx5 而非 默认…

【FAQ】使用Node.js 镜像 构建本地项目

在nodejs官方并没有提供使用node.js构建本地项目的方法,但是通过阅读官方文档,可以发现,官方在包管理器界面提供了如下语句 所以node.js容器是可以执行语句的 下面通过docker 的 -w 、-v 参数设置容器工作目录和目录映射(实现本…

C/C++语言基础--C++智能指针(unique_ptr、shared_ptr、week_ptr)

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 在C、C语言中,最经典的特性就是指针,他和内存相关,但是我们常常申请内存后忘记释放而导致内存泄漏,C提供了智能指针去解决这个内存泄漏问题;C语言…

Nature Methods | 人工智能在生物与医学研究中的应用

Nature Methods | 人工智能在生物与医学研究中的应用 生物研究中的深度学习 随着人工智能(AI)技术的迅速发展,尤其是深度学习和大规模预训练模型的出现,AI在生物学研究中的应用正在经历一场革命。从基因组学、单细胞组学到癌症生…

队列-链式描述(C++)

定义 使用链表描述队列时,通常包含以下几个基本要素: 队头指针(Front Pointer):指向队列中第一个(即最早进入队列的)元素的节点。队尾指针(Rear Pointer):指…

Flutter 之 InheritedWidget

InheritedWidget 是 Flutter 框架中的一个重要类,用于在 Widget 树中共享数据。它是 Flutter 中数据传递和状态管理的基础之一。通过 InheritedWidget,你可以让子 Widget 在不需要显式传递数据的情况下,访问祖先 Widget 中的数据。这种机制对…

Python 深度学习框架介绍

Python 是深度学习领域的主流编程语言,拥有许多强大的深度学习框架,广泛用于学术研究、工业应用和生产环境中。以下是一些最流行的 Python 深度学习框架,它们各自具有独特的功能和特点: 1. TensorFlow 开发公司:Google…

MySQL技巧之跨服务器数据查询:进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中

MySQL技巧之跨服务器数据查询:进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中 基础篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MyS…

Flutter 指纹识别

在这篇博客中,我们将介绍如何使用 Flutter 的 local_auth 插件在 Android 和 iOS 设备上实现指纹识别功能。通过这一步一步的实现,我们将学习如何检查设备是否支持生物识别、如何触发指纹验证,并处理可能出现的错误。 效果图(因为…

CentOS 9 配置静态IP

文章目录 1_问题原因2_nmcli 配置静态IP3_使用配置文件固定IP4_重启后存在的问题5_nmcli 补充 1_问题原因 CentOS 7 于 2014年6月发布,基于 RHEL 7,并在 2024年6月30日 结束维护。 CentOS 9 作为目前的最新版本,今天闲来闲来无事下载下来后…

数据结构(三)——双向链表的介绍以及实现

前言 前面两期数据结构的文章我们介绍了顺序表和单向链表,那么本篇博文我们将来了解双向链表,作为最好用的一种链表,双向链表有什么特殊之处呢,接下来就让我们一起了解一下吧。 下面是前两篇数据结构的文章: 数据结…

Oracle--表空间Tablespace

在 Oracle 数据库中,表空间(Tablespace) 是一种逻辑存储结构,用于组织和管理数据库中物理存储数据文件的方式。以下是表空间相关操作的详细介绍,包括创建、修改、删除、查询以及常见问题处理。 1. 表空间的作用 提供逻…

cmake一些常用指令

cmake常用的一些命令 推荐网址:CMake 保姆级教程(上) | 爱编程的大丙 cmake_minimum_required(VERSION 3.0) project(CALC) # 增加-stdc11 set(CMAKE_CXX_STANDARD 11) # 指定输出的路径 set(HOME ${CMAKE_CURRENT_SOURCE_DIR}) # 可执行文…