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对基因组的AAI
  Finished 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git命令汇总

1.git是基于ssh的代码管理工具,所以在git使用之前需要配置好ssh ssh配置教程 2.先创建仓库 3. git init在目标的git目录下创建仓库 4.git add .(或者写文件名) 5.git commit -m "标记信息" 持久化 6.git remote add origin gitgit.acwing.com:yaoaolong/11_5.git初次…

如何判断一个角是否大于180度(2)

理论计算见上一篇&#xff1a; 如何判断一个角是否大于180度&#xff1f;_kv1830的博客-CSDN博客 此篇为代码实现 一。直接上代码&#xff1a; import cv2 as cv import numpy as np import mathdef get_vector(p_from, p_to):return p_to[0] - p_from[0], p_to[1] - p_from…

(头哥)多表查询与子查询

目录 第1关&#xff1a;查询每个学生的选修的课程信息 第2关&#xff1a;查询选修了“数据结构”课程的学生名单 第3关&#xff1a;查询“数据结构”课程的学生成绩单 第4关&#xff1a;查询每门课程的选课人数 第5关&#xff1a;查询没有选课的学生信息 第6关&#xff1a…

Doris:读取Doris数据的N种方法

目录 1.MySQL Client 2.JDBC 3. 查询计划 4.Spark Doris Connector 5.Flink Doris Connector 1.MySQL Client Doris 采用 MySQL 协议&#xff0c;高度兼容 MySQL 语法&#xff0c;支持标准 SQL&#xff0c;用户可以通过各类客户端工具来访问 Doris。登录到doris服务器后&a…

华为ensp:ospf动态路由

ip已配置好了 &#xff0c;现在进入路由器去宣告网段 R1 进入系统视图 ospf 1 area 1 network 192.168.1.0 0.0.0.255 network 1.1.1.0 0.0.0.255 R2 进入系统视图 ospf 1area 1 network 1.1.1.0 0.0.0.255 quit area 0 network 192.168.2.0 0.0.0.255 network 2.2…

上机4KNN实验4

目录 编程实现 kNN 算法。一、步骤二、实现代码三、总结知识1、切片2、iloc方法3、归一化4、MinMaxScale&#xff08;&#xff09;5、划分测试集、训练集6、KNN算法 .py 编程实现 kNN 算法。 1、读取excel表格存放的Iris数据集。该数据集有5列&#xff0c;其中前4列是条件属性…

[CISCN 2023 西南]do_you_like_read

打开题目&#xff0c;大概是一个购买书籍的网站&#xff0c;有登陆的功能 我们可以先分析下给的源码 在admin.php中会验证是否为admin用户 我们尝试爆破下密码&#xff0c;爆出来为admin123 登陆后发现存在文件上传漏洞 我们分析下源码 存在文件后缀检测&#xff0c;如果为p…

交换机工作原理

交换机工作原理 交换机功能&#xff1a;端口扩展&#xff08;默认同一网络&#xff09;&#xff0c;如果只是两台设备进行通信&#xff0c;可以直接连接这两台设备而不用交换机&#xff0c;但如果设备较多&#xff0c;设备没有那么多接口&#xff0c;那么这个时候就需要交换机…

三分钟学完Git版本控制常用指令

基本指令 git clone [url] 克隆远程仓库到本地 git clone https://gitee.com/mayun2023a/mprpc.git2.git checkout -b xxx 切换至新分支xxx&#xff08;相当于复制了remote的仓库到本地的xxx分支上) 3.修改或者添加本地代码&#xff08;部署在硬盘的源文件上&#xff09; 4.g…

Django配置文件,request,链接mysql方法,Orm简介

三板斧问题(views.py) HttpResponse # 返回的是字符串render # 渲染一个HTML静态文件&#xff0c;模板文件redirect # 重定向的 在视图文件中得视图函数必须要接收一个形参request&#xff0c;并且&#xff0c;视图函数也要有返回值&#xff…

着实不错的自适应大邻域搜索算法ALNS

文章目录 引言演进路线邻域搜索&#xff0c;NS变邻域搜素&#xff0c;VDNS大邻域搜索&#xff0c;LNS自适应大邻域搜索&#xff0c;ALNS 代码实现34个国内城市的TSP测试集XQF131 相关阅读 引言 之前介绍的差分进化算法和蚁群算法分别适用于求解连续优化问题和组合优化问题&…

【第五章】软件设计师 之 系统安全分析与设计

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 1、信息系统安全属性 2、对称加密与非对称加…

Redis五种数据类型及命令操作(二)

&#x1f388;个人公众号:&#x1f388; :✨✨✨ 可为编程✨ &#x1f35f;&#x1f35f; &#x1f511;个人信条:&#x1f511; 知足知不足 有为有不为 为与不为皆为可为&#x1f335; &#x1f349;本篇简介:&#x1f349; 本篇记录Redis五种数据类型及命令操作&#xff0c;如…

C语言--前置++与后置++

:自增1 注意区分前置和后置 前置&#xff1a;先&#xff0c;后使用 后置&#xff1a;先使用&#xff0c;后 --:自减1 注意区分前置和后置 前置&#xff1a;先-- &#xff0c;后使用 后置&#xff0c;先使用&#xff0c;后-- int main() {int i 10;//int j i;//前置,先…

网络编程学习笔记

参考&#xff1a; 套接字通信部分 《TCP/IP 网络编程》以及《TCP/IP网络编程》学习笔记 socket 编程 1. 字节序 字节序&#xff0c;顾名思义字节的顺序&#xff0c;就是大于一个字节类型的数据在内存中的存放顺序&#xff0c;也就是说对于单字符来说是没有字节序问题的&…

如何使用PHPStudy本地快速搭建网站并实现远程访问

文章目录 [toc]使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点&#xff0c;测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中&#xff0c;查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2…

【第三章】软件设计师 之 数据库系统

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 1、数据库系统前言 2、三级模式 - 两级映射…

选购护眼台灯,全网都没有说清一个关键点!——照度均匀度

网上关于护眼台灯的选购推荐帖子多如牛毛&#xff0c;好台灯选购要点大体可归纳为以下五点&#xff1a; RG0无蓝光危害&#xff08;豁免级蓝光危害&#xff0c;RG1为低蓝光危害、RG2、RG3分别为中度和高危危害&#xff09; 无眩光&#xff0c;无可视频闪&#xff08;不刺眼…

matlab 多自由度的车辆垂向振动模型 车辆平稳性研究

1、内容简介 略 17-可以交流、咨询、答疑 多自由度的车辆垂向振动模型 多自由度的车辆垂向振动模型&#xff0c;包含四分之一车体模型、半车模型和整车模型 垂向振动模型、四分之一车体模型、半车模型和整车模型 2、内容说明 略 3、仿真分析 略 4、参考论文 略 链接&…

内存映射:PS和PL DDR3的一些区别

之前写的一些资料&#xff1a; PS与PL互联与SCU以及PG082-CSDN博客 参考别人的资料&#xff1a; PL读写PS端DDR的设计_pl读写ps端ddr数据-CSDN博客 xilinx sdk、vitis查看地址_vitis如何查看microblazed地址_yang_wei_bk的博客-CSDN博客 可见&#xff0c;PS端的DDR3需要从…