kaks calculator批量计算多个基因的选择压力kaks值
欢迎来到"bio生物信息"的世界
今天给大家带来“批量计算kaks值”的技能。
关于kaks的背景知识我就不介绍了,感兴趣的自行搜索,这里直接开始讲怎么批量计算kaks值。
1 文件准备
首先准备两个文件,一个是基因的cds序列,一个是蛋白质序列。
cds序列和蛋白质可以在ensembl网站找到:http://ftp.ensembl.org/pub/current_fasta/
这两个文件的示例如下:
cds序列文件cds.fa
>gene1
ATGGAGGTTGCAATGGTGAGTGCGGAGAGCTCAGGATGCAACAGTCACATGCCTTACGGT
TATGCTGCCCAGGCCCGGGCCCGGGAGCGGGAGAGGCTTGCTCACTCCAGGGCAGCTGCG
GCAGCTGCCGTTGCAGCGGCCACAGCTGCCGTCGAAGGAAGTGGGGGTTCTGGTGGGGGG>gene2
ATGGAGGTTGCAATGGTGAGTGCGGAGAGCTCAGGGTGCAACAGTCACATGCCTTATGGT
TATGCTGCCCAGGCCCGGGCCCGGGAGCGGGAGAGGCTTGCTCACTCCAGGGCAGCTGCA
GCAGCTGCTGTTGCAGCGGCCACAGCTGCTGTCGAAGGTAGCGGGGGTTCTGGTGGGGGC
TCCCAC>gene3
ATGGAGGTGGCGATGGTGAGTGCGGAGAGCTCAGGGTGCAACAGTCACATGCCTTACGGG
TACGCGGCCCAGGCCCGGGCCCGGGAGCGGGAGAGGCTGGCTCACTCCCGGGCGGCGGCG
GCCGCCGCCGTCGCGGCTGCCACGGCTGCCGTGGAAGGCAGTGGGGGGCCTGG
蛋白质序列pep.fa
>gene1
MEVAMVSAESSGCNSHMPYGYAAQARARERERLAHSRAAAAAAVAAATAAVEGSGGSGGG>gene2
MEVAMVSAESSRCNSHMPYGYAAQARARERERLAHSRAAAAAAVAAATAAVEGSGSSGGGSH>gene3
MEVAMVSAESSGCNSHMPYGYAAQARARERERLAHSRAAAAAAVAAAKAAVEGSGGP
注意:cds.fa和pep.fa文件的序列ID号(gene1,2,3)要一致。
2 对蛋白质序列pep.fa进行比对
进行蛋白质序列比对前,需要先安装mafft软件。
下载mafft软件:
wget https://mafft.cbrc.jp/alignment/software/mafft-7.453-with-extensions-src.tgz
tar -zxvf mafft-7.453-with-extensions-src.tgz
cd mafft-7.453-with-extensions/core
安装:
1)有root权限用户安装法:
make clean
make
su
make install
2)无root权限用户安装法:
vi Makefile
进入makefile文件后,修改第一行和第三行,如下所示两张图,分别为修改前和修改后(请务必修改你有权限的路径):


安装成功后,输入命令mafft --auto pep.fa > alig_pep.fa
生成的alig_pep.fa文件如下:

3 将比对好的蛋白质序列与cds序列比对
这一步需要下载pal2nal.pl文件
wget http://www.bork.embl.de/pal2nal/distribution/pal2nal.v14.tar.gz
tar -zxvf pal2nal.v14.tar.gz
cd pal2nal.v14/
下载后就能看见pal2nal.pl这个文件
随后将蛋白质序列与cds序列比对
pal2nal.pl alig_pep.fa cds.fa -output fasta > cds_pep_aln.fa
比对好的cds_pep_aln.fa文件如下所示:

4 生成计算kaks值时的基因对
计算kaks值前需要先将cds_pep_aln.fa文件拆分:
csplit cds_pep_aln.fa /\>/ -n2 -s {*} -f gene -b "%1d.fa" ; rm gene0.fa
拆分后,会生成gene1.fa 、gene2.fa、 gene3.fa三个文件。
接下来,将生成的gene1.fa、 gene2.fa、 gene3.fa组成新的基因对gene1-gene2、gene1-gene3、gene2-gene3,见如下命令:
for i in $(seq 1 3)
do
cat gene1.fa gene${i}.fa > gene1_${i}.fa
done
cat gene2.fa gene3.fa > gene2_3.fa
生成如下几个文件:
gene1_1.fa
gene1_2.fa
gene1_3.fa
gene2_3.fa
其中,gene1_2.fa、gene1_3.fa、gene2_3.fa为我们所需的基因对。
这里将他们提取成基因对,而不是多条序列进行计算的原因是,
KaKs_Calculator这个软件在处理多序列的输入文件时,会报错:Error. The size of two sequences in 'gene1&gene2' is not equal。我尝试了很多遍,发现只能提取成基因对才不会报这种错误。当然,偶尔运气好的时候,KaKs_Calculator是能处理多序列的kaks值的,为了防止出错,我们还是将他们拆开计算好一点。
5 将gene1_2.fa、gene1_3.fa、gene2_3.fa文件转化为axt文件
转化为axt文件需要下载parseFastaIntoAXT.pl文件,文件地址:https://gitee.com/liaochenlanruo/kaks_pupline/blob/master/parseFastaIntoAXT.pl
下载后,输入如下命令:
for i in *.fa
do
echo $i
perl parseFastaIntoAXT.pl $i
done
生成三个文件:
gene1_2.fa.axt
gene1_3.fa.axt
gene2_3.fa.axt
6 计算kaks值
下载安装kakscalculator
下载链接:https://sourceforge.net/projects/kakscalculator2/
输入以下命令:
for i in *.fa.axt
do
echo $i
KaKs_Calculator -i $i -o ${i%%.*}.kaks
done
生成三个文件:gene1_2.kaks、gene1_3.kaks、gene2_3.kaks
到这一步,批量计算kaks值的工作就已经搞定。
这里附上安装
kaks_calculator软件可能会遇到报错:
g++ -O -o AXTConvertor AXTConvertor.cpp -lstdc++ -lm
AXTConvertor.cpp: In function ?.ool readPhylip()?.
AXTConvertor.cpp:210:22: error: ?.toi?.was not declared in this scope
if (atoi(num.c_str())!=sequence.size()){AXTConvertor.cpp: In function ?.ool readNexus()?.
AXTConvertor.cpp:338:39: error: ?.toi?.was not declared in this scope
if (sequence.size()!=atoi(num.c_str())) >{
make: *** [AXTConvertor] Error 1
解决方法在这里:
编辑KaKs.cpp文件,加上
include "string.h"
编辑AXTConvertor.cpp文件,加上
include "stdlib.h"
编辑GY94.cpp文件,加上
include "string.h"如无报错请忽略上述内容。
kaks calculator批量计算多个基因的选择压力kaks值的更多相关文章
- 未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布
在刚刚结束的CLOUD NATIVE+ OPEN SOURCE Virtual Summit China 2020上,由华为云云原生团队主导的容器批量计算项目Volcano正式发布1.0版本,标志着V ...
- 【转】Alchemy的使用和多项式批量计算的优化
原文:http://www.cnblogs.com/flash3d/archive/2012/01/30/2332158.html ================================== ...
- Volcano火山:容器与批量计算的碰撞
[摘要] Volcano是基于Kubernetes构建的一个通用批量计算系统,它弥补了Kubernetes在“高性能应用”方面的不足,支持TensorFlow.Spark.MindSpore等多个领域 ...
- 重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目
摘要:4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目. 4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个 ...
- js计算两个日期的天数差值
js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...
- excel中快捷计算单一列中的所有的值
excel中快捷计算单一列中的所有的值 比如B列中所有的值 =SUM(B1:B100) 计算B列第一行到第100行的值 又学了一招 如果想统计B列所有的值 可以用 =SUM(B:B)
- fashion_mnist 计算准确率、召回率、F1值
本文发布于 2020-12-27,很可能已经过时 fashion_mnist 计算准确率.召回率.F1值 1.定义 首先需要明确几个概念: 假设某次预测结果统计为下图: 那么各个指标的计算方法为: A ...
- ArcPy批量计算Mean Center的两个实例
很久没用arcpy了,碰了好几次壁,把这次做的贴上来,以备下次可以跳过这些简单的问题 import arcpy arcpy.env.workspace = 'C:\Users\Qian\Documen ...
- shell 批量计算MD5值
#!/bin/sh #需要计算MD5文件列表 # list=`ls` list="file list" for file in $list do file1=`` echo &qu ...
随机推荐
- Web自动化测试项目(五)测试结果通知
一.邮件通知 使用第三方邮件发送库yagmail github地址:https://github.com/kootenpv/yagmail 安装 pip3 install yagmail demo.p ...
- JDK源码之Double类&Float类分析
一 概述 Double 类是基本类型double的包装类,fainl修饰,在对象中包装了一个基本类型double的值.Double继承了Number抽象类,具有了转化为基本double类型的功能. 此 ...
- 《快乐编程大本营》java语言训练班 3课:java的运算符
第1节. 算术运算符 第2节. 递增和递减运算符 第3节. 比较运算符 第4节. 逻辑运算符 第5节. 运算符优先级 第6节. 字符串运算 http://code6g.com/pxphp/px/ban ...
- k3s首季在线培训来袭!本周四晚,线上见!
筹备已久的k3s在线培训终于要和大家见面啦! k3s是一款适用于边缘计算场景以及IoT场景的轻量级Kubernetes发行版,经过CNCF的一致性认证.由业界应用最广泛的Kubernetes管理平台R ...
- 如何在国内下载Eclipse及其插件
北京理工大学 http://mirror.bit.edu.cn/eclipse/ 中国科学技术大学 http://mirrors.ustc.edu.cn/eclipse/ 大连东软信息学院 http: ...
- CCF_201604-1_折点计数
(a[i]-a[i-1])*(a[i]-a[i+1]) > 0 的点符合条件 #include<cstdio> #include<iostream> using name ...
- Codeforces 1249F Maximum Weight Subset (贪心)
题意 在一颗有点权的树上,选若干个点,使得这些点两两距离大于k,且点权和最大 思路 贪心的取比较大的值即可 将所有点按照深度从大到小排序,如果当前点点权\(a[i]\)大于0,则将距离为k以内的所有点 ...
- vs 搭配 Linux 开发
这是一篇翻译,为什么突然想翻译文章了呢,因为很多大佬们都说英语对程序员还是挺重要的,毕竟互联网的最新技术基本都在歪果仁那边,如果英语不好,不会看国外的文档的话,将会错失接触第一手资料的机会,失去很多先 ...
- 数据算法 --hadoop/spark数据处理技巧 --(9.基于内容的电影推荐 10. 使用马尔科夫模型的智能邮件营销)
九.基于内容的电影推荐 在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理. 本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐. ...
- apache 访问日志access_log 配置和解析 rotatelogs分割日志
一.解析访问日志 apache 的访问日志记载着大量的信息,学会高效快捷的读出其中关键信息对我们的工作有极大帮助. 如果Apache的安装方式是默认安装,服务器一运行就会有两 ...