宏基因组鉴定病毒流程中需要的生物信息工具
谷禾健康

许多流行病的爆发都是病毒引起的,面对新的传染性基因组出现的最佳策略是及时识别,以便于在感染开始时立即实施相应措施。
目前可用的诊断测试仅限于检测新的病理因子。适用于同时检测存在的任何病原体的高通量方法可能比使用基于当前方法的大量单独测试更有优势。
宏基因组学测序、全基因组测序和靶向深度测序是目前用于病毒遗传鉴定和表征的最佳工具。通过使用这些技术,可以正确的对病毒进行分类,确定其变异性,识别与毒性相关的病毒遗传标记,并在现有知识的基础上考虑抗原性和对抗病毒药物的易感性。
尽管宏基因组学领域取得了巨大进步,但对于具体数据分析任务应使用各种方法中的哪一种,仍缺乏共识。
本文重点描述了宏基因组生物信息数据处理所需要的工具,以便于改善使用宏基因组学识别动物来源样本中新出现、再出现和未知的新病毒。
宏基因组学识别病毒数据处理流程工具
什么是宏基因组学?
宏基因组学是下一代测序的一个领域,可以识别微生物群落,以及基因检测、识别和表征致病因子。它已被证明是病毒遗传特征的关键因素,并导致了使用传统培养技术无法完成的发现。
目前的分子检测使用特定的引物或探针针对有限数量的病原体,而宏基因组学可以接近样本中存在的所有 DNA 和 RNA 分子,从而能够分析相应的宿主基因组及其微生物集合。
在宏基因组组装中鉴定病毒有五个主要步骤:
- 质量控制(QC)
- 修剪低质量序列
- 组装
- 组装后的数据质检(可选)
- 对组装后序列进行物种注释(识别已经测序的已知病毒和识别尚未测序或未知的病毒)
宏基因组分箱是在物种注释之前可选的附加步骤。分箱的目的是根据根据序列的起源对其进行聚类。
根据这些步骤,列举出以下目前使用较多的主流工具。
序列质检工具
宏基因组学的第一步将是执行序列QC,因为从分析中消除技术错误是必不可少的。
此步骤的主要目的是识别不需要的接头序列、过短的序列、低质量的序列或核苷酸以及其他可能存在的数据。根据数据类型,在这一步中可以使用以下几种工具:

对于短读,可以使用FastQC执行质检 (https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) ,它可以检查序列的质量并生成总结报告。
其他QC程序也可以提供相同类型的报告,如MultiQC,它具有与FastQC相同的功能,但有一个主要区别,它可以同时合并多个fastq的QC报告,生成一个总的报告。
对于长读,可以使用longQC或MinionQC来检查序列质量,这两个工具已经应用于从纳米孔的MinION或其他长读取测序仪中获得的数据。
用于数据预处理的工具
—— 低质量序列修剪工具
序列质检后,就需要修剪工具,删除低质量序列和接头序列。可供使用的工具如下图。

对于短读,常用的是Trimmomatic,其次是Cutadapt和Fastp。
对于长读,NanoPack可用于处理长读数据并可视化QC结果。与Nanopack功能相同的是SequelTools。
——删除测序数据中非靶向或污染序列的工具
删除不感兴趣的序列,这些序列可以从各种来源获得。在对病毒序列的分析中,必须删除宿主序列和被污染序列,它可以减少假阳性,并可以防止嵌合病毒-宿主序列的组装。
如下图,通常使用序列比对的工具:

对于短读,可以使用BWA、bowtie2和BBMap等。
其它工具如FastQ-Screen,可以以fastq格式比对自定义参考序列。
(https://www.bioinformatics.babraham.ac.uk/projects/fastq_screen/)
对于长读,可以使用BWA和BBMap,也可以选择特定的minimap2。
也有专门用于识别和修剪特定微生物类群序列的工具,这类工具通常已包含参考基因组序列,一旦比对上,将通过内置的过滤程序丢弃掉。比如VirusHunter(https://bio.tools/virushunter),用于识别NGS数据中的病毒序列。
某些情况下,可能需要从宏基因组数据中删除非靶向分类群的其他RNA序列类型,如核糖体(rRNA),线粒体(mtRNA),或mRNA类型。这时可以用RiboDetector (https://github.com/hzi-bifo/RiboDetector),因为它专门识别rRNA,从而可以过滤掉rRNA以改进后续分析。
另一种方法是在组装前对序列进行物种注释。使用这种策略,可以过滤掉病毒以外的序列,保留病毒序列以供进一步分析。可以使用kraken2和kaiju。
序列组装
为了更好的进行物种注释和识别存在的病毒,对序列进行组装,生成contigs,以提供更长的连续序列。宏基因组学中使用的组装类型主要为de novo,即从头基因组组装。
可使用的工具如下图:

对于短读,推荐MEGAHIT,这是一个针对宏基因组优化的生物信息学组装工具,或者metaSPADES和IDBA-UD,它们也针对宏基因组进行了优化。
除了de novo,还有一种基于参考的组装,也可以用于宏基因组学。只是,并不是在所有情况下都可以获得合适的参考基因组,而且这种方法不能识别新的病毒或以前没有测序的病毒。
对于长读,推荐metaFlye、Canu和NECAT,这些工具可以用于各种技术下产生的数据格式,从纳米孔测序到PacBio,甚至在高保真序列。
对于混合组装,也就是将短读和长读的两个特性结合起来的组装,推荐OPERA-MS和HybridSPADES工具,它们都是用De Bruijn图算法实现的。
对组装完成后的序列质检
宏基因组组装完成,就应该确定组装的质量。用于此目的的工具可以分为两大类:
一类是需要参考基因组的工具,例如MetaQUAST,它使用参考来计算组装的统计信息。一般而言,在宏基因组学研究中,可能很难使用参考基因组,因为通常没有可用的参考基因组或参考基因组的质量很差。
不需要参考基因组的方法,例如DeepMAsED,它使用机器学习来识别错误装配,或者REAPR,是一种使用映射的配对端读长来评估基因组组装准确性的工具。常用的还有BUSCO和CheckM。
最后,VALET(https://github.com/marbl/VALET)可以用于检测宏基因组数据中的误组装,因为它可以根据覆盖范围对contigs进行分类,并避免由于覆盖深度不均匀而导致的假阳性和假阴性。

在宏基因组分析中识别病毒的一个重要步骤是进行物种注释。实现这一步骤的主要方法有两种:
- 第一种是直接对序列进行分类
- 第二种是通过contigs建立分类
两种方法各有优缺点:
在使用contig(即使用组装序列)进行的物种注释中,分类的对象是较长的序列,它存在一些contigs可能是嵌合的风险。
而直接对reads进行物种注释的统计学意义较小,虽然分析了大量的序列,但序列较短,这种方法可以提供更多样化的结果,只是计算成本会更高。
识别已知病毒或未知的新病毒的工具
对于已知病毒的识别,一种是基于k-mer,直接使用参考数据库与reads/contigs进行比对,如kraken2、bracken、CLARK和Centrifuge,
另一种是先翻译序列,然后与参考蛋白质数据库进行比对,如kaiju、DIAMOND和MMseqs2。
还有基于算法的,如BLAST或DUDes,它们使用DUD(Deepest Uncommon Descent)算法。
使用基因标记的,如MetaPhlAn4、IGGsearch和GOTTCHA。
也有专门用来研究病毒组的工具,如VirusTaxo、Metavir2和DeepVirFinder,其主要算法是卷积神经网络(CNN)。
其中如MetaPhlAn4和MCP (Microbiota Community Profiler),包含未知的宏基因组组装基因组的序列,而MCP只能用于识别微生物区研究中的细菌、古菌、真核生物和病毒序列。
由于每个用于物种注释的工具的性能都不同,且都使用了各种算法和参考数据库,所以这种多样性也会导致不一样的结果、耗时和计算成本。
▪ 基于k-mer的物种注释工具似乎是计算效率最高的,虽然它们需要很大的内存。
▪ 基于标记的,对内存的要求较低,但它们只能对来自特定区域的reads/contigs进行注释分类。
▪ 基于比对的工具要比其他的计算成本更高。

对于新型病毒的识别,现在也有不需要任何参考就能识别病毒序列的工具,即:
• VirSorter(https://github.com/simroux/VirSorter)
• VirFinder(https://github.com/jessieren/VirFinder)
VirFinder是一个基于k-mer的R包,可以以较好的预测识别病毒的contigs;
而VirSorter可以在不同的微生物数据集中识别新的病毒序列。
宏基因组分箱
在物种注释之前可以选择是否执行分箱(binning)。
分箱的主要目的是根据物种对contig进行聚类。根据数据类型,可使用的工具如下图:

CONCOT,它可以根据核苷酸组成和覆盖率数据对宏基因组contigs进行聚类。
GraphBin,它使用组装的连通性信息对contig进行集群化。
但宏基因组分箱并不局限于contigs,对于长读,可使用MEGAN-LR、BusyBee或LRBinner。
结 语
近年来,宏基因组学领域取得了许多进展,新技术可以帮助研究人员发现新的病毒,预测疫情,诊断某些疾病等。
长读测序平台也在快速发展,以得出更可靠的结果助力宏基因组分析。虽然已有许多工具和流程被开发出来以便更快更简单地进行数据分析,但还需要进一步发展,例如在数据处理分析中的通用指南的建立,因为虽然出于同一种目的而开发的工具,但由于计算过程不一样,它们在不同任务中的性能缺乏共识。此外,重要的是保持相关数据库的更新与维护。
宏基因组学检测人类样本中任何基因组(包括细菌、病毒、寄生虫和真菌)的能力,对于传染病的诊断具有重要意义。宏基因组学方法也已应用于其他几个研究领域:环境研究(如海洋样本、土壤、污水、农场灰尘) ;7000 年前青铜时代人类样本中的病毒感染;健康、疾病和法医调查中人体肠道微生物组的特征;临床研究 ; 以及新病毒病原体的发现,例如 SARS-CoV-2等。
Ibañez-Lligoña M, Colomer-Castell S, González-Sánchez A, Gregori J, Campos C, Garcia-Cehic D, Andrés C, Piñana M, Pumarola T, Rodríguez-Frias F, Antón A, Quer J. Bioinformatic Tools for NGS-Based Metagenomics to Improve the Clinical Diagnosis of Emerging, Re-Emerging and New Viruses. Viruses. 2023 Feb 20;15(2):587. doi: 10.3390/v15020587. PMID: 36851800; PMCID: PMC9965957.
相关文章:
宏基因组鉴定病毒流程中需要的生物信息工具
谷禾健康 许多流行病的爆发都是病毒引起的,面对新的传染性基因组出现的最佳策略是及时识别,以便于在感染开始时立即实施相应措施。 目前可用的诊断测试仅限于检测新的病理因子。适用于同时检测存在的任何病原体的高通量方法可能比使用基于当前方法的大量…...
Doris入门篇-分区分桶实验
简介 测试分区分桶效果。 分区的基本操作 添加分区 ALTER TABLE v2x_olap_database.government_car ADD PARTITION p20221203 VALUES LESS THAN ("2022-12-04");动态分区表不能添加分区,需要转为手动分区表。 查看分区 show partitions from <表…...
Spring-Xml配置
一、Spring 简介 1.简介 文档下载地址:Index of /spring-framework/docs 1.简介 Spring framework 是 Spring 基础框架 学习Spring 家族产品 Spring framework SpringBoot SpringCloud Spring 能用来做什么 开发 WEB 项目 微服务 分布式系统 Spring framew…...
设计模式-工作线程 创建多少线程池合适
1、定义 让有限的工作线程(Worker Thread)来轮流异步处理无限多的任务。也可以将其归类为分工模式,它的典型实现就是线程池,也体现了经典设计模式中的享元模式(重用对象)。 例如,海底捞的服务员(线程),轮流…...
【算法基础】深度优先搜索(DFS) 广度优先搜索(BFS)
一、DFS & BFS 1. 深度优先搜索DFS 深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。 2. 广度优先搜索BFS 广度优先搜索较之深度优先搜索之不同在于,深度…...
【分布式】ProtocolBuffer平滑升级原则
原文链接:https://blog.csdn.net/nash_cyk/article/details/99549719 关于Protocol Buffer优势这里就不详细介绍了,如便于不同开发语言的交互通信,便于服务器上线的平滑升级等。 但Protocol Buffer的Message协议升级是需要注意一些细节&…...
第四阶段17-关于Redis中的list类型,缓存预热,关于Mybatis中的`#{}`和`${}`这2种格式的占位符
关于Redis中的list类型 Redis中的list是一种先进后出、后进先出的栈结构的数据。 在使用Redis时,应该将list想像为以上图例中翻转了90度的样子,例如: 在Redis中的list数据,不仅可以从左侧压入,也可以选择从右侧压入…...
stringstream用法
stringstream是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的iostream、fstream有类似的操作方式。包含在头文件sstream中(#include <sstream>)。 实例: 1、C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类…...
2022年下半年系统集成项目管理工程师综合知识真题及答案解析
2022年下半年系统集成项目管理工程师综合知识真题及答案解析 1、()不属于“提升云计算自主创新能力”的工作内容。A.加强云计算相关基础研究、应用研究、技术研发、市场培育和产业政策密衔接与统筹协调B.引导大型云计算中心优先在能源充足、气候适宜、自然灾害较少的地区部…...
【洛谷 P2089】烤鸡(搜索)
烤鸡 题目背景 猪猪 Hanke 得到了一只鸡。 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 101010 种配料(芥末、孜然等)…...
Mac item2 配置免密登录开发机
1、配置 vi ~/.ssh/config 内容如下: Host * ControlMaster auto ControlPath ~/.ssh/master-%r%h:%p ControlPersist yes ServerAliveInterval 60 学习: ControlMaster #连接共享 ControlPath #与ControlMaster一起使用,指定连接共享的路径…...
vue 解决问题:Webpack安装不成功,webpack -v无法正常显示版本号
目录 一、解决问题:Webpack安装不成功,webpack -v无法正常显示版本号 二、解决问题: ERROR Error: Cannot find module webpack-log 三、 解决报错:error:03000086:digital envelope routines::initialization error 四、解决…...
07-1【openEuler】系统及进程管理(网络管理的补充实验及说明)
文章目录说在前面关于nmcli命令的使用使用nmcli命令修改主机IP地址1、运行ip addr列出openEuler20.03上的以太网卡2、列出当前活动的以太网卡3、开始分配静态IP地址(1)命令语法(2)将 IPv4 地址192.168.74.175分配给 ens33 网卡上&…...
【Linux】磁盘结构、文件系统、软硬链接、动静态库链接
文章目录1、磁盘结构1.1 磁盘的物理结构1.2 磁盘的存储结构1.3 磁盘的逻辑结构2、文件系统2.1 4KB加载到内存2.2 文件系统结构3、软硬链接3.1 软链接3.2 硬链接4、动静态库4.1 什么是库?4.2 静态库和静态库链接4.3 动态库和动态库链接4.4 动静态库的加载下面了解到&…...
交换机电口、光口、网络速率的基本概念总结
电口和光口千兆网 & 万兆网:POE:包转发率:背板带宽/交换容量:)电口和光口 电口: 电口也即RJ45口,插双绞线的端口(网线),一般速率为10M或100M,即为百兆工…...
【面试题 05.02. 二进制数转字符串】
来源:力扣(LeetCode) 描述: 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示࿰…...
webpack - webpack的基本使用和总结
文章目录1,webpack概念2,为什么学webpack3,webpack特点4,相对于其他工具优点5,准备工作6,webpack的核心介绍7,webpack使用 - 打包js代码8,打包css代码9,生成html文件10&a…...
【蓝桥杯嵌入式】定时器实现按键单击,双击,消抖以及长按的代码实现
🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…...
基于SSM的Javaweb爱心扶贫捐赠系统
文章目录 项目介绍主要功能截图:后台登录首页个人中心用户管理扶贫物资管理扶贫产品管理留言板管理前台前台首页扶贫产品新闻资讯留言板部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,…...
Spring Cloud(微服务)学习篇(三)
Spring Cloud(微服务)学习篇(三) 1 nacos中使用openFeign(调用方式)实现短信发送 1.1 在shop-sms-api中创建com.zlz.shop.sms.api.service/vo/dto/util,目录结构如下所示 1.2 在pom.xml(shop-sms-api)中加入如下依赖 <dependencies><dependency><groupId>…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
