Oxford Nanopore Technologies实战应用之电信号比对工具Tombo

2023-10-25 05:41

本文主要是介绍Oxford Nanopore Technologies实战应用之电信号比对工具Tombo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、前言

 二、Tombo快速使用

1.安装

2.快速使用

 3.比对结果解析

4.高阶应用

三、总结


一、前言

对于纳米孔测序常规用途,如基因组比对、SNV鉴别、宏基因组物种分析而言,用户一般使用碱基识别软件输出的fastq文件即可展开相应分析。但对于某些特殊用途,如甲基化鉴别、碱基识别算法开发,则需要深入分析纳米孔测序产生的fast5文件中原始电信号与碱基(A/T/G/C)之间的对应关系。那么,有没有软件可以实现这种功能呢?答案是ONT官方发布的软件Tombo。

 二、Tombo快速使用

1.安装

使用conda进行快速安装。

# install via bioconda environment (https://bioconda.github.io/#set-up-channels)
conda install -c bioconda ont-tombo

2.快速使用

假定fast5文件中已经有basecalls(即ATGC碱基),且Reference序列已知,那么最快速使用Tombo进行电信号比对的命令如下。输出的比对结果会写入到fast5文件中。

tombo resquiggle path/to/fast5s/ genome.fasta --processes 4 --num-most-common-errors 5

 3.比对结果解析

首先要读入fast5文件,可以使用h5py中的h5py.File函数读入,也可以使用其他第三方fast5分析软件。

import h5py
fast5_info = h5py.File(fast5_path, 'r')

然后,就可以在fast5_info['Analyses']['RawGenomeCorrected_000']['BaseCalled_template']['Events'][:]中找到碱基与电信号的对应关系。

并且,可以通过fast5_info['Analyses']['RawGenomeCorrected_000']['BaseCalled_template']['Alignment']的attrs来查看每条fast5与参考序列的比对信息,如比对起止位点、正负链信息等。

4.高阶应用

随着ONT测序技术的更新,并非所有fast5文件都可以直接被Tombo读入,此时需要考虑2个问题:

(1)fast5中是否有basecalls?某些用户在设置测序控制软件时,产生的fast5并不一定含有basecalls,此时就需要re-basecalling。

(2)fast5可能使用了VBZ压缩,此时就需要先安装hdf5插件(参考https://github.com/nanoporetech/vbz_compression/),然后才能继续使用h5py读取fast5。

三、总结

其实使用tombo resquiggle进行电信号比对还有许多细节需要注意,有兴趣的读者可以参考其说明书(https://nanoporetech.github.io/tombo/resquiggle.html)。比如,reads相对于reference序列出现了Indel(下图所示)要怎么获取电信号,Tombo也给出了解决方案。

这篇关于Oxford Nanopore Technologies实战应用之电信号比对工具Tombo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/280389

相关文章

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库