fastANI-基因组平均核酸一致性(ANI)计算

文章目录

  • 简介
  • 安装
  • 使用
    • Many to Man-使用基因组路径作为输入
    • One to One
  • 结果
  • 其他参数说明
  • 可视化两个基因组之间的保守区域
  • 并行化

简介

FastANI 是为快速计算全基因组平均核苷酸同一性(Average Nucleotide Identity,ANI)而开发的,无需比对。ANI 的定义是两个微生物基因组之间共享的同源基因对的平均核苷酸同一性。FastANI 支持对完整基因组和基因组草图进行成对比较。其基本程序与 Goris 等人 2007 年描述的工作流程相似。不过,它避免了费时的序列比对,而是使用 Mashmap 作为基于 MinHash 的序列映射引擎来计算同源比对和比对同一性估计值。根据我们对完整基因组和基因组草图的实测试,其准确性与基于 BLAST 的 ANI 的计算相当,而且速度提高了两到三个数量级。因此,它适用于大量基因组对的成对 ANI 计算。有关其速度、准确性和潜在应用的更多详情,请参考对 9 万个原核生物基因组的高通量 ANI 分析揭示了清晰的物种界限"(High Throughput ANI Analysis of 90K Prokaryotic Genomes Reveals Clear Species Boundaries)。

安装

conda install -c bioconda fastani

使用

Many to Man-使用基因组路径作为输入

(gtdbtk) [yutao@myosin Eisenbacteria]$ head fa.path
./GCA_001780165.1_genomic.fa
./GCA_003235575.1_genomic.fa
./GCA_005893165.1_genomic.fa.gz(gtdbtk) [yutao@myosin Eisenbacteria]$ time fastANI --ql fa.path --rl fa.path  -o ANI.txt --matrix --visualize  -t 30
# -ql query list
# -rl reference list
# -o 成对ANI计算结果
# -matrix 同时输出矩阵,以-o选项后的名称加上".matrix"
# --visualize 可视化
# -t thread

One to One

计算单个查询基因组和单个参考基因组之间的 ANI

$ ./fastANI -q [QUERY_GENOME] -r [REFERENCE_GENOME] -o [OUTPUT_FILE] 

结果

在上述所有用例中,OUTPUT_FILE 将包含以制表符分隔的行,其中有查询基因组、参考基因组、ANI 值、双向片段比对计数和查询片段总数。比对分数(相对于查询基因组)是映射和片段总数的简单比率。用户还可以选择通过提供 --matrix 参数获得第二个 .matrix 文件,其中包含以 phylip 格式的下三角矩阵排列的标识值。**注意:如果 ANI 值远低于 80%,则不会报告基因组对的 ANI 输出。**这种情况应在氨基酸水平上计算,参见CompareM-平均氨基酸一致性(AAI)计算。

  • 示例1
(gtdbtk) [yutao@myosin Eisenbacteria]$ head ANI.txt ANI.txt.matrix
==> ANI.txt <==
# genomeA	genomeB ANI(%)		
GCA_001780165.1_genomic.fa      GCA_001780165.1_genomic.fa      100     1170    1176
GCA_001780165.1_genomic.fa      GCA_005893365.1_genomic.fa      78.8657 431     1176
GCA_001780165.1_genomic.fa      GCA_005893225.1_genomic.fa      78.8112 381     1176
GCA_001780165.1_genomic.fa      GCA_011357805.1_genomic.fa      78.7589 529     1176
GCA_001780165.1_genomic.fa      GCA_005893185.1_genomic.fa      78.4959 313     1176
GCA_001780165.1_genomic.fa      GCA_005893295.1_genomic.fa      78.2516 308     1176
GCA_001780165.1_genomic.fa      GCA_013140805.1_genomic.fa      77.7736 309     1176
GCA_001780165.1_genomic.fa      GCA_903921835.1_genomic.fa      77.3711 302     1176
GCA_001780165.1_genomic.fa      GCA_902826705.1_genomic.fa      77.3634 256     1176
GCA_003235575.1_genomic.fa      GCA_003235575.1_genomic.fa      100     881     888==> ANI.txt.matrix <==
17
GCA_001780165.1_genomic.fa
GCA_003235575.1_genomic.fa      NA
GCA_005893165.1_genomic.fa      NA      77.231445
GCA_005893185.1_genomic.fa      78.464157       NA      NA
GCA_005893225.1_genomic.fa      78.779877       NA      NA      78.797363
GCA_005893265.1_genomic.fa      NA      NA      79.801826       NA      NA
GCA_005893275.1_genomic.fa      NA      NA      79.954613       NA      NA      84.944542
GCA_005893295.1_genomic.fa      78.282249       NA      NA      78.198181       78.400757    NA       NA
GCA_005893305.1_genomic.fa      NA      77.308350       77.910553       NA      NA      77.764481     77.908798       NA
  • 示例2
(gtdbtk) [yutao@myosin Krumholzibacteriota]$ head Krumholzibacteriota_ANI.txt Krumholzibacteriota_ANI.txt.matrix
==> Krumholzibacteriota_ANI.txt <==
GCA_002085285.1_genomic.fa      GCA_002085285.1_genomic.fa      100     425     435
GCA_002403075.1_genomic.fa      GCA_002403075.1_genomic.fa      100     772     776
GCA_002403075.1_genomic.fa      GCA_002403295.1_genomic.fa      86.9047 500     776
GCA_002403295.1_genomic.fa      GCA_002403295.1_genomic.fa      99.9999 599     615
GCA_002403295.1_genomic.fa      GCA_002403075.1_genomic.fa      86.8991 506     615
GCA_002747875.1_genomic.fa      GCA_002747875.1_genomic.fa      100     936     948
GCA_002747875.1_genomic.fa      GCA_002790835.1_genomic.fa      78.4217 265     948
GCA_002747875.1_genomic.fa      GCA_903847545.1_genomic.fa      78.1095 189     948
GCA_002747875.1_genomic.fa      GCA_003646045.1_genomic.fa      78.0435 186     948
GCA_002747875.1_genomic.fa      GCA_903859215.1_genomic.fa      77.8668 240     948==> Krumholzibacteriota_ANI.txt.matrix <==
16
GCA_002085285.1_genomic.fa
GCA_002403075.1_genomic.fa      NA
GCA_002403295.1_genomic.fa      NA      86.901932
GCA_002747875.1_genomic.fa      NA      NA      NA
GCA_002790835.1_genomic.fa      NA      NA      NA      78.286392
GCA_003353795.1_genomic.fa      NA      NA      NA      NA      76.844803
GCA_003369455.1_genomic.fa      NA      NA      NA      NA      NA      NA
GCA_003369535.1_genomic.fa      NA      NA      NA      NA      NA      NA      77.283585
GCA_003646045.1_genomic.fa      NA      NA      NA      78.091743       78.153748       77.447433     NA      NA

其他参数说明

# version 1.32
-r <value>, --ref <value>reference genome (fasta/fastq)[.gz]--refList <value>, --rl <value>a file containing list of reference genome files, one genome per line-q <value>, --query <value>query genome (fasta/fastq)[.gz]--ql <value>, --queryList <value>a file containing list of query genome files, one genome per line
-t <value>, --threads <value>thread count for parallel execution [default : 1]
--visualizeoutput mappings for visualization, can be enabled for single genome tosingle genome comparison only [disabled by default]--matrixalso output ANI values as lower triangular matrix (format inspired fromphylip). If enabled, you should expect an output file with .matrixextension [disabled by default]-o <value>, --output <value> [required]output file name

可视化两个基因组之间的保守区域

FastANI 支持将两个基因组之间计算出的比对区域可视化。要获得这种可视化效果,需要如上所述使用 FastANI 进行一对一比较,但需要提供一个额外的标记–visualize。该标志会强制 FastANI 输出一个映射文件(扩展名为 .visual),其中包含所有互易映射的信息。最后,资源库中提供了一个 R 脚本,该脚本使用 genoPlotR 软件包绘制这些映射图。这里我们展示一个使用两个基因组运行的示例:Bartonella quintana(GenBank:CP003784.1)和 Bartonella henselae(NCBI 参考序列:NC_005956.1)。

$ ./fastANI -q B_quintana.fna -r B_henselae.fna --visualize -o fastani.out
$ Rscript scripts/visualize.R B_quintana.fna B_henselae.fna fastani.out.visual

在这里插入图片描述

并行化

FastANI(v1.1 及以后版本)支持多线程,使用-t配置线程数。要使 FastANI 的并行化超越单个计算节点,用户还可以选择简单地将参考数据库划分为多个分块,并将它们作为并行进程执行。我们在资源库中提供了一个脚本,用于随机分割数据库。

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

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

相关文章

人工智能与教育:未来的技术融合

人工智能与教育&#xff1a;未来的技术融合 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;逐渐渗透到我们生活的方方面面&#xff0c;包括教育领域。AI与教育的结合&#xff0c;有望引发一场教育变革&#xff0c;提高教学效果&#xff0c;实现个性化学习&…

嵌入式软件工程师面试题——2025校招社招通用(十二)

说明&#xff1a; 面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但在这里博主希望每一个题目&#xff0c;大家都要…

召回率计算及影响因素

召回率是指在所有正样本中&#xff0c;被成功预测为正样本的样本数占比。在机器学习领域&#xff0c;召回率是评估模型预测性能的重要指标之一。在本文中&#xff0c;我们将从多个方面深入探讨召回率的概念和应用。 阈值越高&#xff0c;精准率越高&#xff0c;召回率越低&…

LC-2300. 咒语和药水的成功对数(排序+贪心、排序+二分)

2300. 咒语和药水的成功对数 中等 给你两个正整数数组 spells 和 potions &#xff0c;长度分别为 n 和 m &#xff0c;其中 spells[i] 表示第 i 个咒语的能量强度&#xff0c;potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药水的能量强度…

【自定义类型:结构体】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 结构体类型的声明 1.1 结构体的概念 1.2 结构的声明 ​编辑 1.3 特殊的声明 1.4 结构的自引用 2. 结构体变量的创建和初始化 3. 结构成员访问操作符 4. 结构体内…

matlab GUI界面实现ZieglerNicholas调节PID参数

1、内容简介 略 11-可以交流、咨询、答疑 ZieglerNicholas、PID、GUI 2、内容说明 GUI界面实现ZieglerNicholas调节PID参数 通过ZieglerNicholas调节PID参数&#xff0c;设计了GUI 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1yQ1yDfk-_…

shell之chown命令介绍

shell之chown命令介绍 chown命令是Linux系统中的一个用于修改文件或目录的所属用户和组的命令。它可以将文件或目录的所有权转移给其他用户或组&#xff0c;只有文件的所有者或超级用户才能使用这个命令进行修改。 命令语法&#xff1a;chown [选项] [所有者][:[组]] 文件或目录…

Revit 平面的圆弧,空间的椭圆弧

大家对Revit的空间曲线那么理解,如何用代码创建空间的椭圆弧,,上看是圆弧,正面看是椭圆? 直接放代码: Document doc = commandData.Application.ActiveUIDocument.Document; Autodesk.Revit.DB.XYZ center = new Autodesk.Revit.DB.XYZ(0, 0, 0); …

Googletest(Gtest)使用case指南

安装gtest: 源码安装&#xff1a; https://github.com/luozesong/googletest 从官方源码拷贝下载到本地后&#xff0c;进入googletest/googletest目录下&#xff0c;创建build目录&#xff0c;进入build目录&#xff0c;编辑CMakeLists.txt&#xff0c;在头部添加一行&#xff…

力扣labuladong——一刷day25

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣528. 按权重随机选择 带权重的随机选择算法 前言 一、力扣528. 按权重随机选择 class Solution {private int[] preSum;private Random rand new Ra…

杂记杂记杂记

目录 Mybatis分页插件原理&#xff1f; ThreadLocal? 树形表的标记字段是什么&#xff1f;如何查询MySQL树形表&#xff1f; Mybatis的ResultType和ResultMap的区别&#xff1f; #{}和${}有什么区别&#xff1f; 系统如何处理异常&#xff1f; Mybatis分页插件原理&#…

基于SSM框架的高校试题管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

操作系统练习-第6章文件管理

一. 多选题&#xff08;共2题&#xff0c;50分&#xff09; 1. (多选题, 25分)What would happen if the bitmap or free list containing the information about free disk blocks was completely lost due to a crash? Is there any way to recover from this disaster, or…

Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致

前言 最近在搞app的开发&#xff0c;本来没怎么注意appBar与手机状态栏颜色的问题。但是朋友一说才注意到这两种的颜色是不一样的。 我的app 京东 qq音乐 这样一对比发现是有的丑啊&#xff0c;那么如何实现呢&#xff1f; 实现 怎么说呢&#xff0c;真不会。百度到的一些是…

c语言练习11周(6~10)

输入任意字串&#xff0c;将串中除了首尾字符的其他字符升序排列显示&#xff0c;串中字符个数最多20个。 题干 输入任意字串&#xff0c;将串中除了首尾字符的其他字符升序排列显示&#xff0c;串中字符个数最多20个。输入样例gfedcba输出样例gbcdefa 选择排序 #include<s…

QT——关于安卓系统的使用,文件权限,USB权限相关介绍总结(Android 11 ,QT5)

1-先介绍写这篇博客的时候使用的系统环境 QT版本&#xff1a;QT5.15.2安卓系统&#xff1a;Android 11 (博主使用的是RK3568 官网下载的android 11 系统)NDK&#xff1a;21.3.6528147CMAKE&#xff1a;3.21.1SDK&#xff1a;28 &#xff08;很重要&#xff09;2-在此环境下&am…

java的类和继承构造

一些小技巧 类和对象 什么是类&#xff0c;对象&#xff0c;方法&#xff1f; 在下面的 Java 代码中&#xff0c;定义了一个名为 Person 的类&#xff0c;并提供了构造方法来初始化对象的属性。类中定义了 eat、sleep 和 work 三个方法&#xff0c;用于表示人的行为。在 main 方…

安装和使用 nn-Meter

安装和使用 nn-Meter nn-Meter: Towards Accurate Latency Prediction of Deep-Learning Model Inference on Diverse Edge Devices nn-Meter&#xff1a;精准预测深度学习模型在边缘设备上的推理延迟 Li Lyna Zhang, Shihao Han, Jianyu Wei, Ningxin Zheng, Ting Cao, Yuqin…

k8s上对Pod的管理部分详解

目录 一.Pod结构介绍 1.user container 2.pause 二.Pod工作形式介绍 1.自主式pod 2.控制器管理下的pod 三.对Pod的操作介绍 1.run/apply -f/create -f运行pod 2.get查看pod信息 3.exec操作运行中的pod &#xff08;1&#xff09;进入运行中的pod &#xff08;2&…

React的refs和表单组件总结

React的refs和表单组件 react中refs的使用字符串形式的ref react核心就在于虚拟DOM&#xff0c;也就是React中不总是直接操页面的真实DOM元素&#xff0c;并且结合Diffing算法&#xff0c;可以做到最小化页面重绘&#xff0c;但有些时候不可避免我们需要一种方法可以操作我们定…