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

相关文章

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1