CompareM-平均氨基酸一致性(AAI)计算

文章目录

  • Comparem简介
    • 比较基因组统计
    • 基因组使用模式
    • 其他
  • 安装
  • 使用
    • 基于基因组计算氨基酸一致性
    • 基于基因组蛋白计算氨基酸一致性
  • 结果
  • 转变成矩阵
  • 参考

Comparem简介

CompareM 是一个支持进行大规模基因组比较分析的软件工具包。它提供跨基因组(如氨基酸一致性)和单个基因组(如密码子使用率)的统计计算。 同时可以并行化,以便能够扩展到数千个基因组。主要功能:

比较基因组统计

  • 基因组之间的平均氨基酸一致性(AAI)
  • 通过计算查询基因组与参考数据库之间的 AAI 进行物种分类

基因组使用模式

  • 密码子使用
  • 氨基酸使用
  • k <= 8 的 kmer 使用情况(如四核苷酸)
  • 终止密码子使用

其他

  • 识别基因侧向转移(LGT) 的二核苷酸和密码子使用模式
  • 使用差异矩阵、分层聚类树和热图进行数据探索

安装

# 安装
(base)$ mamba install -c bioconda comparem

使用

基于基因组计算氨基酸一致性

使用aai_wf 流程计算氨基酸一致性:

# 待比较基因组序列
(base) [yutao@myosin test]$ ls
GCA_001780165.1_genomic.fa  HTR8_metabat2_bin.67.fa GCA_003235575.1_genomic.fa# 运行aai_wf
(base) [yutao@myosin test]$ time comparem aai_wf -c 30 -x fa . aaiwf_out &>aaiwf.log                 
real    0m23.745s
user    0m40.652s
sys     0m1.594s
# -c 线程
# -x 基因组后缀
# . 带比较基因组目录
# aaiwf_out 输出目录(base) [yutao@myosin test]$ cat aaiwf.log
[2022-01-24 11:25:04] INFO: CompareM v0.1.2
[2022-01-24 11:25:04] INFO: comparem aai_wf -c 30 -x fa . aaiwf_out
[2022-01-24 11:25:04] INFO: Identifying genes within genomes:Finished processing 3 of 3 (100.00%) genomes. # 共3个基因组,总共3种AAI比较方式
[2022-01-24 11:25:19] INFO: Identified genes written to: aaiwf_out/genes # 对基因组预测蛋白
[2022-01-24 11:25:19] INFO: Appending genome identifiers to query genes.
[2022-01-24 11:25:19] INFO: Creating DIAMOND database (be patient!).
[2022-01-24 11:25:19] INFO: Performing self similarity sequence between genomes (be patient!). # 在基因组之间进行相似性比较
[2022-01-24 11:25:19] INFO: Sorting table with hits (be patient!).
[2022-01-24 11:25:20] INFO: Sequence similarity results written to: aaiwf_out/similarity
[2022-01-24 11:25:20] INFO: Calculating length of genes.
[2022-01-24 11:25:20] INFO: Indexing sorted hit table.
[2022-01-24 11:25:20] INFO: Calculating AAI between all 3 pairs of genomes: #计算3对基因组的AAIFinished processing 3 of 3 (100.00%) pairs.
[2022-01-24 11:25:20] INFO: Summarizing AAI results.
[2022-01-24 11:25:20] INFO: AAI between genomes written to: aaiwf_out/aai/aai_summary.tsv
  • 其中当前目录包含一组FASTA格式的基因组,结果被写入一个名为aai_output的目录,30个处理器应被用于计算结果。
  • 可以看到comparem最终是对所有基因组两两之间进行比较(不考虑顺序),所以是一个组合情况,可以通过R的```chose(n, k)``得到最终的组合数,例如,3个基因组的最终需要进行3次比较,16个基因组最终需要进行120次比较。
  • 还可以指定一些可选的参数。这包括用于定义基因组间互为最佳命中(即同源物)的序列相似性参数。默认情况下,e值(–evalue)、序列同一性百分比(–per_identity)和比对长度百分比(–per_aln_len)参数被设置为1e-5、30%和70%。当指定要处理的基因组目录时,CompareM只处理扩展名为fna的文件。这可以用-x(–file_ext)参数来改变。此外,如果基因组已经由氨基酸蛋白质序列表示(相对于基因组核苷酸序列),这必须用–蛋白质标志来指定。否则,将使用Prodigal从头识别基因。通过使用-cpus参数指定的多个处理器,可以大大减少计算所有成对AAI值的时间。

基于基因组蛋白计算氨基酸一致性

对于基因组序列:默认使用prodigal预测基因;<input_file>参数表示要比较的基因组集合,可以是i)一个文本文件,其中每一行表示一个基因组的位置,或者ii)一个包含所有要比较的基因组/蛋白(氨基酸)的目录。基因组/蛋白的序列必须是FASTA格式。<output_dir>表示所有输出文件目录。
对于蛋白序列:直接使用faa氨基酸序列

nohup time comparem aai_wf --proteins -c  30 -x gz GTDBr214_479_B.anthracis_gene GTDBr214_479_B.anthracis_gene_aai &>aaiwf.log &
# aai_wf AAI工作流程
# --proteins 指定输入文件是蛋白序列
# -c 线程
# -x 输入蛋白序列后缀名称

结果

(base) [yutao@myosin Two_new_classes]$ ls aaiwf_out/
aai  comparem.log  genes  similarity
(base) [yutao@myosin aaiwf_out]$ head aai/aai_summary.tsv
#Genome A       Genes in A      Genome B        Genes in B      # orthologous genes     Mean AAI        StdOrthologous fraction (OF)
HTR8_metabat2_bin.67    2502    GCA_001780165.1_genomic 3086    497     47.82   10.13   19.86
HTR8_metabat2_bin.67    2502    GCA_003235575.1_genomic 2464    430     47.97   10.59   17.45
GCA_001780165.1_genomic 3086    GCA_003235575.1_genomic 2464    965     52.99   11.96   39.16
(base) [yutao@myosin aaiwf_out]$

成对的AAI统计数据在输出文件./<output_dir>/aai/aai_summary.tsv中提供。该文件由8列组成,具体含义如下,其中第6列即是AAI值。

1-第一个基因组的标识符
2-第一个基因组中的基因数
3-第二个基因组的标识符
4-第二个基因组中的基因数
5-两个基因组之间确定的直系同源基因的数量
6-直系同源基因的平均氨基酸一致性(AAI)。
7-直系同源基因的AAI的标准偏差
8-两个基因组之间的直系亲缘关系(OF),定义为直系亲缘关系的基因数除以其中一个基因组的最小基因数。

转变成矩阵

上述长列表数据,可以通过如下代码转换为矩阵,随后可按照如下方式可视化(20个基因组左右时适合)。

if(!requireNamespace('pacman')){install.packages('pacman')}
pacman::p_load(igraph, corrplot, ggsci, ggplot2 )
# 用于将长表变成宽表
setwd('/Users/yut/Documents/12个海洋元基因组/MAGs_gene_functions/Two_novel_class/')
f = 'Eisenbacteria_aai_summary(1).tsv' # 读入compareM aai_wf输出长格式表
f ='Krumholzibacteriota_aai_summary(1).tsv'
d <- read.table(f, header = F)[c(1, 3, 6)] # 取出第一个基因组,第二个基因组及平均AAI
g = graph.data.frame(d, directed = FALSE) #使用igraph读入数据框
mat <- get.adjacency(g, attr = 'V6' # 显示的AAI值, spars = F # 非稀疏,没有的填充0)
mat[mat == 0] <- 100 # 自身AAI 100
#mat <- round(mat / 100, 2) # 将百分比转化成小数,便于作图
mat# 设置颜色映射
my.col <- colorRampPalette(c('#4e9cb8' #最小值的颜色,'#f2f1f1' # 中间颜色, '#de6589' # 最大值颜色))(10) # 取10个连续色
# corrplot
pdf('Eisenbacteria_aai_summary.pdf', height = 15, width = 15)
pdf('Krumholzibacteriota_aai_summary.pdf', height = 15, width = 15)
p <- corrplot(mat, method = 'circle' # cell shape, type = 'lower' # lower triangle, order = 'hclust' # 排序方式为层级聚类,"original", "AOE", "FPC", "hclust", "alphabet", hclust.method = 'complete' # 聚类方法: ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid', col.lim = c(0, 100) # 设置颜色mapping值的范围, is.corr = F # 非相关系数的值,col = my.col # 颜色, tl.col = 'black' # x/y坐标字体颜色, addCoef.col = T # 显示值, title = 'AAI (%)')
dev.off()
# 不支持ggsave(plot = p, 'Eisenbacteria_aai_summary.pdf', height = 12, width = 12, device = 'pdf')  

在这里插入图片描述

参考

comparem github

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

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

相关文章

《未来之路:技术探索与梦想的追逐》

创作纪念日 日期&#xff1a;2023年07月05日文章标题&#xff1a;《从零开始-与大语言模型对话学技术-gradio篇&#xff08;1&#xff09;》成为创作者第128天 在这个平凡的一天&#xff0c;我撰写了自己的第一篇技术博客&#xff0c;题为《从零开始-与大语言模型对话学技术-…

深度学习的集体智慧:最新发展综述

一、说明 我们调查了来自复杂系统的想法&#xff0c;如群体智能、自组织和紧急行为&#xff0c;这些想法在机器学习中越来越受欢迎。人工神经网络正在影响我们的日常生活&#xff0c;从执行预测性任务&#xff08;如推荐、面部识别和对象分类&#xff09;到生成任务&#xff08…

RT-DETR算法改进:更换损失函数DIoU损失函数,提升RT-DETR检测精度

💡本篇内容:RT-DETR算法改进:更换损失函数DIoU损失函数 💡本博客 改进源代码改进 适用于 RT-DETR目标检测算法(ultralytics项目版本) 按步骤操作运行改进后的代码即可🚀🚀🚀 💡改进 RT-DETR 目标检测算法专属 文章目录 一、DIoU理论部分 + 最新 RT-DETR算法…

从0到0.01入门React | 008.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

自动计算零售数据分析指标?BI软件表示可行

随着BI技术的飞速发展&#xff0c;借助系统来计算分析指标也不是什么难事&#xff0c;即便是面对组合多变的零售数据分析指标&#xff0c;奥威BI软件也依旧可以又快又精准地完成指标计算。 BI软件可以自动计算零售数据分析指标&#xff0c;如销售额、库存量、订单量等。在计算…

[工业自动化-11]:西门子S7-15xxx编程 - PLC从站 - 分布式IO从站/从机

目录 一、什么是以分布式IO从站/从机 二、分布式IO从站的意义 三、ET200分布式从站系列 一、什么是以分布式IO从站/从机 在工业自动化领域中&#xff0c;分布式 IO 系统是目前应用最为广泛的一种 I/O 系统&#xff0c;其中分布式 IO 从站是一个重要的组成部分。 分布式 IO …

Redis系列-四种部署方式-单机部署+主从模式+哨兵模式【7】

目录 Redis系列-四种部署方式-单机部署主从模式【7】redis-四种部署模式单机模式主从模式数据同步的方式全量数据同步增量数据同步 Redis哨兵模式总结缺点&#xff1a;哨兵模式应用sentinel.conf配置项 REF 个人主页: 【⭐️个人主页】 需要您的【&#x1f496; 点赞关注】支持…

移动医疗科技:开发互联网医院系统源码

在这个数字化时代&#xff0c;互联网医院系统成为了提供便捷、高效医疗服务的重要手段。本文将介绍利用移动医疗科技开发互联网医院系统的源码&#xff0c;为医疗行业的数字化转型提供有力支持。 智慧医疗、互联网医院这一类平台可以通过线上的形式进行部分医疗服务&#xff…

59基于matlab的爬行动物搜索算法(Reptile search algorithm, RSA)

基于matlab的爬行动物搜索算法&#xff08;Reptile search algorithm, RSA&#xff09;一种新型智能优化算法。该算法主要模拟鳄鱼的捕食行为&#xff0c;来实现寻优求解&#xff0c;具有收敛速度快&#xff0c;寻优能力强的特点。程序已调通&#xff0c;可直接运行。 59matlab…

云原生微服务架构及实现技术

云原生是一种技术理念和架构方法&#xff0c;它充分利用云计算的优势&#xff0c;将应用程序和基础设施进行优化&#xff0c;以适应云环境的特性。云原生的设计原则主要包括弹性、韧性、安全性、可观测性、灰度等&#xff0c;旨在让企业在云环境中实现轻量、敏捷、高度自动化的…

从0开始python学习-33.夹具@pytest.fixture(scope=““,params=““,autouse=““,ids=““,name=““)

目录 1. 创建夹具 1.1 pytest方式 1.2 unittest方式 2. 使用夹具 2.1 通过参数引用 2.2 通过函数引用 3. 参数详解 3.1 scope&#xff1a;作用域 3.2 params-参数化 3.3 autouseTrue表示自动使用&#xff0c;默认为False 3.4 ids&#xff1a;设置变量名 3.5 name&am…

[ARM入门]ARM模式及其切换、异常

ARM技术特征 ARM处理器有如下特点 体积小、功耗低、成本低、性能高支持Thumb&#xff08;16位&#xff09;/ARM&#xff08;32位&#xff09;双指令集&#xff0c;能很好地兼容8位/16位器件大量使用寄存器&#xff0c;指令执行速度更快大多数数据操作都在寄存器中完成寻址方式…

Java中的7大设计原则

在面向对象的设计过程中&#xff0c;首先需要考虑的是如何同时提高一个软件系统的可维护性和可复用性。这时&#xff0c;遵从面向对象的设计原则&#xff0c;可以在进行设计方案时减少错误设计的产生&#xff0c;从不同的角度提升一个软件结构的设计水平。 1、单一职责 一个类…

【Redis】set 集合

上一篇&#xff1a;list 列表 https://blog.csdn.net/m0_67930426/article/details/134364315?spm1001.2014.3001.5501 目录 Sadd Smembers Sismember Scard Srem ​编辑Srandomember Spop Smove 集合类 Sdiff Sinter Sunion 官网 https://redis.io/commands/?…

Elasticsearch:Lucene 中引入标量量化

作者&#xff1a;BENJAMIN TRENT 我们如何将标量量化引入 Lucene。 Lucene 中的自动字节量化 虽然 HNSW 是一种强大而灵活的存储和搜索向量的方法&#xff0c;但它确实需要大量内存才能快速运行。 例如&#xff0c;查询 768 维的 1MM float32 向量大约需要 1,000,000*4*(7681…

cocosCreator 之 Bundle使用

版本&#xff1a; v3.4.0 语言&#xff1a; TypeScript 环境&#xff1a; Mac Bundle简介 全名 Asset Bundle(简称AB包)&#xff0c;自cocosCreator v2.4开始支持&#xff0c;用于作为资源模块化工具。 允许开发者根据项目需求将贴图、脚本、场景等资源划分在 Bundle 中&am…

深度学习基于python+TensorFlow+Django的花朵识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 花朵识别系统&#xff0c;基于Python实现&#xff0c;深度学习卷积神经网络&#xff0c;通过TensorFlow搭建卷积神经…

05-Spring中Bean的生命周期

Bean的生命周期 生命周期就是对象从创建开始到最终销毁的整个过程 , Spring其实就是一个管理Bean对象的工厂,它负责对象的创建和销毁等 Bean生命周期的管理可以参考Spring的源码&#xff1a;AbstractAutowireCapableBeanFactory类的doCreateBean()方法 研究生命周期的意义&am…

【案例】超声波测距系统设计

1.1 总体设计 1.1.1 概述 学习了明德扬至简设计法和明德扬设计规范&#xff0c;本人用FPGA设计了一个测距系统。该系统采用超声波进行测量距离再在数码管上显示。在本案例的设计过程中包括了超声波的驱动、三线式数码管显示等技术。经过逐步改进、调试等一系列工作后&#xf…

Vue中的常用指令v-html / v-show / v-if / v-else / v-on / v-bind / v-for / v-model

前言 持续学习总结输出中&#xff0c;Vue中的常用指令v-html / v-show / v-if / v-else / v-on / v-bind / v-for / v-model 概念&#xff1a;指令&#xff08;Directives&#xff09;是Vue提供的带有 v- 前缀 的特殊标签属性。可以提高操作 DOM 的效率。 vue 中的指令按照不…