实验篇——Ka/Ks分析

实验篇——Ka/Ks分析

文章目录

  • 前言
  • 一、名词解释
  • 二、实操
    • 1. 安装软件
    • 2. 准备文件
    • 3. 使用ParaAT2.0 + KaKs_Calculator2.0
    • 4. 使用TBtools软件
  • 三、额外
  • 总结


前言

鉴定不同基因的复制模式
本文得到的共线性基因对文件 来自于上一篇文章中的LIN.collinearity共线性文件

参考文章:
https://www.jianshu.com/p/a3a39b2f341b


一、名词解释

Ka/Ks分析是一种用于评估基因进化速度的方法。较高的Ka/Ks比值可能表明基因在进化过程中经历了功能上的重要变化,而较低的Ka/Ks比值可能表明基因在进化过程中具有保守的功能。

更多相关的解释信息

二、实操

1. 安装软件

安装ParaAT、KaKs_Calculator2.0以及muscle(或者其它序列比对软件) 软件,并配置环境
或者在TBtools软件中操作

2. 准备文件

准备存储共线性基因对的文件 homolog、cds文件、pep文件(注意,cds及pep为fasta格式,“>”后面只接基因ID号)

以LIN.collinearity共线性文件为例

得到homolog文件

cat LIN.collinearity | grep "Lagg" | awk '{print $3"\t"$4}' >LIN.homolog

在这里插入图片描述
得到cds文件
原来的文件格式:

在这里插入图片描述

sed 's/^>\([^\t]*\)\t.*/>\1/' Lagg.gene.cds >Lagg.cds

要求的文件格式:

在这里插入图片描述

得到pep文件
原来的文件格式
在这里插入图片描述

sed 's/^\(>[^ ]*\).*/\1/' Lindera_aggregata.gene.pep >Lagg.pep
sed -i 's/\*//g' Lagg.pep

要求的文件格式:
在这里插入图片描述

或者也可以用别的编程语言实现,如python

import re
with open("D:\yuceji\shili.pep", 'r') as file:
    lines = file.readlines()
output_file = 'output.fasta'

with open(output_file, 'w') as file:
    for i in range(len(lines)):
        line = lines[i].strip()
        if re.match(r'^>', line):
            gene_id = line.split()[0]
            seq = ''
            j = i + 1
            while j < len(lines) and not re.match(r'^>', lines[j].strip()):
                seq += lines[j].strip()
                j += 1
            file.write(gene_id + '\n')
            file.write(seq + '\n')

在这里插入图片描述

3. 使用ParaAT2.0 + KaKs_Calculator2.0

ParaAT.pl -h test.homologs -n test.cds -a test.pep -p proc -m muscle -f axt -g -k -o output 2> ParaAT.log &

-h test.homologs:指定包含同源序列的文件

-n test.cds:指定包含核苷酸序列的文件

-a test.pep:指定包含蛋白质序列的文件

-p proc:指定并行处理的进程数, (proc 可以自行设置)

-m muscle:指定用于多序列比对的软件,这里使用的是muscle

-f axt:指定输出文件的格式,这里使用的是axt格式

-g:启用gap stripping功能,即移除比对序列中的缺失片段。

-k:启用Ka/Ks比值的计算

-o output:指定输出文件的名称

2> ParaAT.log:将标准错误输出重定向到名为"ParaAT.log"的日志文件中。

&:将命令放入后台运行。

4. 使用TBtools软件

基于TBtools软件,可以使用" Sinple Ka/Ks Calculator" 程序

同样依然要准备那三个文件
在这里插入图片描述

在这里插入图片描述

从左到右每一列的介绍:

  1. Seq_1:表示序列对中第一个序列的标识符或名称。

  2. Seq_2:表示序列对中第二个序列的标识符或名称。

  3. Ka:表示非同义突变(氨基酸替换)的数量,也称为Ka值。

  4. Ks:表示同义突变(氨基酸保守替换)的数量,也称为Ks值。

  5. Ka/Ks:表示Ka值除以Ks值得到的比值。(Ka/Ks比值用于衡量非同义突变和同义突变的相对丰度,从而推断基因或序列的选择压力)

  6. EffectiveLen:表示序列对的有效长度,即用于计算Ka和Ks的比对序列的长度。

  7. AverageS-sites:表示平均同义突变位点的数量。

  8. AverageN-sites:这一列表示平均非同义突变位点的数量。

  9. cN:这一列表示非同义突变位点的校正计数。

  10. cS:这一列表示同义突变位点的校正计数。

  11. pN:表示非同义突变位点的概率。

  12. pS:这一列表示同义突变位点的概率。

其实得到的文件中除了这12列外,还有一列”Note",来记录一些“high sequence divergence value (ps>=0.75)” 这类的信息。

三、额外

总之,最主要的是得到了Ka/Ks的计算结果,达到了我们的目标,其余的也没必要全都了解。
另外,对于结果文件的每一列,我是这样记忆的:
对于Ka与Ks 的区分,可以Ks中的“s"来记忆,因为这可以很快与"same"这个单词联想起来。即相同的意思,故Ks就是同义突变。至于另一个Ka就是非同义突变了。
AverageS-sites 与AverageN-sites 的记忆也是如此。
cN 与 cS ,也是如此,另外"c"可表示"count",即计数
pN与pS,也是如此,另外"p" 可表示"probablity",即概率的意思


总结

本文主要讲述的是Ka/Ks 值的计算,其实无论是使用ParaAT2.0 + KaKs_Calculator2.0来计算,还是使用TBtools软件中的" Sinple Ka/Ks Calculator" 程序。都是为了得到结果。我个人还是比较推荐使用TBtools软件的,因为足够简单(不需要在Linux中再下载一些什么软件后再配置环境了,只要输入三个文件,就能得出结果文件)。当然或许它也会有一些其它问题。这样我们可以具体情况再具体分析。

无丝竹之乱耳,无案牍之劳形。

–2023-8-21 实验篇

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

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

相关文章

设计模式(3)抽象工厂模式

一、概述&#xff1a; 1、提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 2、结构图&#xff1a; 3、举例代码&#xff1a; &#xff08;1&#xff09; 实体&#xff1a; public interface IUser {public void insert(User user);public…

C++--动态规划两个数组的dp问题

1.最长公共子序列 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串…

Java 实现 国密SM4/ECB/PKCS7Padding对称加密解密

Java 实现 国密SM4/ECB/PKCS7Padding对称加密解密&#xff0c;为了演示方便本问使用的是IntelliJ IDEA 2022.1 (Community Edition)来构建代码的 1、pom.xml文件添加需要的jar <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…

分布式事务(4):两阶段提交协议与三阶段提交区别

1 两阶段提交协议 两阶段提交方案应用非常广泛&#xff0c;几乎所有商业OLTP数据库都支持XA协议。但是两阶段提交方案锁定资源时间长&#xff0c;对性能影响很大&#xff0c;基本不适合解决微服务事务问题。 缺点&#xff1a; 如果协调者宕机&#xff0c;参与者没有协调者指…

SpringBoot 01 如何创建 和pom的解析

目录 1 Springboot的创建 步骤 2 项目的书写和运行 创建service包并在其下写一个service文件 项目的运行 pom文件的一些配置 parent web test 打包 打包过程 1 Springboot的创建 步骤 首先new一个新项目 然后依照如下创建 2 项目的书写和运行 创建service包并…

python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

项目介绍 接口自动化测试项目2.0 软件架构 本框架主要是基于 Python unittest ddt HTMLTestRunner log excel mysql 企业微信通知 Jenkins 实现的接口自动化框架。 前言 公司突然要求你做自动化&#xff0c;但是没有代码基础不知道怎么做&#xff1f;或者有自动化…

nginx基于端口如何配置虚拟主机

在 Nginx 中配置基于端口的虚拟主机&#xff08;也称为服务器块&#xff09;与配置基于域名的虚拟主机类似&#xff0c;但是你需要指定监听的端口。以下是基于端口的虚拟主机配置示例&#xff1a; 假设我们要配置两个不同的虚拟主机&#xff0c;一个监听 8080 端口&#xff0c…

vcomp140.dll丢失的修复方法分享,电脑提示vcomp140.dll丢失修复方法

今天&#xff0c;我的电脑出现了一个奇怪的问题&#xff0c;打开某些程序时总是提示“找不到vcomp140.dll文件”。这个问题让我非常头疼&#xff0c;因为我无法正常使用电脑上的一些重要软件。为了解决这个问题&#xff0c;我在网上查找了很多资料&#xff0c;并尝试了多种方法…

亮点!视频云存储/安防监控视频智能分析平台高空抛物AI智能检测

一、行业现状 近年来&#xff0c;高空抛物不文明事件频频发生&#xff0c;成为小区住宅的管理通病&#xff0c;也给居民的人身及财产安全带来了巨大伤害和损失。高空抛物可能导致人身事故等重大经济损失的严重危害&#xff0c;被称作“悬在城市上空的痛”。 TSINGSEE青犀AI智…

算法练习- 其他算法练习5

文章目录 宜居星球改造计划 宜居星球改造计划 yes no na 每个值为一个格子&#xff1b;每天yes的值可以向上下左右扩展一个格子&#xff0c;将no改为yes&#xff1b;矩形区域no是否可以全部转为yes&#xff0c;可以的话需要几天&#xff1f;不可以的话输出-1输入&#xff1a; …

基于FPGA的FIR低通滤波器实现(附工程源码),matlab+vivado19.2+simulation

基于FPGA的FIR低通滤波器实现(附工程源码) 文章目录 基于FPGA的FIR低通滤波器实现(附工程源码)前言一、matlab设计FIR滤波器&#xff0c;生成正弦波1.设计FIR滤波器1.生成正弦波.coe 二、vivado1.fir滤波器IP核2.正弦波生成IP核3.时钟IP核设置4.顶层文件/测试文件代码 三.simul…

Linux共享库基础及实例

共享库是将库函数打包成一个可执行文件&#xff0c;使得其在运行时可以被多个进程共享。 目标库 回顾下构建程序的一种方式&#xff1a; 将每个源文件编译成目标文件&#xff0c;再通过链接器将这些目标文件链接组成一个可执行程序。 gcc -g -c prog.c mod1.c mod2.c gcc -g …

2023国赛数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法&#xff1f;2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…

C/C++:C/C++在大数据时代的应用,以及C/C++程序员未来的发展路线

目录 1.C/C在大数据时代的应用 1.1&#xff1a;C/C数据处理 1.2&#xff1a;C/C数据库 1.3&#xff1a;C/C图像处理和计算机视觉 1.3.1&#xff1a;导读 2.C/C程序员未来的发展路线 2.1&#xff1a;图导 1.C/C在大数据时代的应用 C/C在大数据时代中仍然是一种被广泛应用的编…

如何使用Wireshark进行网络流量分析?

如何使用Wireshark进行网络流量分析。Wireshark是一款强大的网络协议分析工具&#xff0c;可以帮助我们深入了解网络通信和数据流动。 1. 什么是Wireshark&#xff1f; Wireshark是一个开源的网络协议分析工具&#xff0c;它可以捕获并分析网络数据包&#xff0c;帮助用户深入…

Python(八十五)格式化字符串

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

MySQL 主从配置

环境 centos6.7 虚拟机两台 主&#xff1a;192.168.23.160 从&#xff1a;192.168.23.163 准备 在两台机器上分别安装mysql5.6.23&#xff0c;安装完成后利用临时密码登录mysql数据修改root的密码&#xff1b;将my.cnf配置文件放至/etc/my.cnf&#xff0c;重启mysql服务进…

jsp 图书销售系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 图书销售系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

SpringBoot 使用 Sa-Token 完成权限认证

一、设计思路 所谓权限认证&#xff0c;核心逻辑就是判断一个账号是否拥有指定权限&#xff1a; 有&#xff0c;就让你通过。没有&#xff1f;那么禁止访问&#xff01; 深入到底层数据中&#xff0c;就是每个账号都会拥有一个权限码集合&#xff0c;框架来校验这个集合中是…

异步I/O优化Python代理程序性能

作为一名爬虫程序员&#xff0c;你是否曾经遇到过需要处理大量网络请求的情况&#xff1f;你是否想要提高你的Python代理程序的性能&#xff0c;让它更快、更高效&#xff1f;别担心&#xff0c;我来给你分享一些关于异步I/O如何优化Python代理程序性能的实用知识。 首先&…
最新文章