分析 | kaks 计算

准备文件:test.cds.fatest.pep.fa

$ grep ">" test.pep.fa
>AT3G47090
>AT3G47110
>AT3G47570
>AT3G47580
>AT5G20480
>AT5G39390

1. 分步计算

1.1 序列全局比对

注意:这里我将同源基因两两配对,在实际分析中选择的是共线性块的基因对。

$ # 这里用 mafft
$ mafft --auto --thread 10 test.AT3G47110-AT3G47090.pep.fa > test.AT3G47110-AT3G47090.pep.fa.aln

1.2 pal2nal.pl 回译

  • -output: 输出格式(clustal|paml|fasta|codon),默认clustal
  • -nogap: 删除 gap
$ pal2nal.pl test.AT3G47110-AT3G47090.pep.fa.aln test.AT3G47110-AT3G47090.cds.fa -output clustal -nogap > test.AT3G47110-AT3G47090.fa.aln.clustal 

1.3 KaKs_Calculator2

  • AXTConvertor
    Usage: AXTConvertor [Clustal/Msf/Nexus/Phylip/Pir] [AXT]
AXTConvertor test.AT3G47110-AT3G47090.fa.aln.clustal test.AT3G47110-AT3G47090.fa.aln.axt
  • KaKs_Calculator
    -i: axt 文件,将各基因对axt文件cat到一起,生成test.pep.fa.axt
    -o: 结果文件
    -c: 密码子表
    -m: 计算方法(NG|YN|......),默认MA
$ KaKs_Calculator -i test.pep.fa.axt -o test.pep.fa.kaks
Method(s): MA
Genetic code: 1-Standard Code
Please wait while reading sequences and calculating...
1 AT3G47110&AT3G47090   [OK]
2 AT3G47570&AT3G47090   [OK]
3 AT3G47570&AT3G47110   [OK]
4 AT3G47580&AT3G47090   [OK]
5 AT3G47580&AT3G47110   [OK]
6 AT3G47580&AT3G47570   [OK]
7 AT5G20480&AT3G47090   [OK]
8 AT5G20480&AT3G47110   [OK]
9 AT5G20480&AT3G47570   [OK]
10 AT5G20480&AT3G47580  [OK]
11 AT5G39390&AT3G47090  [OK]
12 AT5G39390&AT3G47110  [OK]
13 AT5G39390&AT3G47570  [OK]
14 AT5G39390&AT3G47580  [OK]
15 AT5G39390&AT5G20480  [OK]
Mission accomplished. (Time elapsed: 0:25)

1.4 yn00

还没看,之后补充

yn00

2. 一步计算

  • ParaAT.pl
    -h: 同源基因对文件
    -n: cds.fa
    -a: pep.fa
    -p: 指定多线程文件
    -m: 指定比对工具(clustalw2|t_coffee|mafft|muscle)
    -g: 去除比对有gap的密码子
    -k: 用KaKs_Calculator 计算kaks值
    -o: 输出结果的目录
    -f: 输出比对文件的格式(axt|fasta|paml|codon|clustal)
$ grep ">" test.pep.fa | sed 's/>//' | awk '{a[NR]=$1;for(i=1;i<NR;i++){print $1"\t"a[i]}}' > geneid.pairs.txt
AT3G47110       AT3G47090
AT3G47570       AT3G47090
AT3G47570       AT3G47110
AT3G47580       AT3G47090
AT3G47580       AT3G47110
AT3G47580       AT3G47570
AT5G20480       AT3G47090
AT5G20480       AT3G47110
AT5G20480       AT3G47570
AT5G20480       AT3G47580
AT5G39390       AT3G47090
AT5G39390       AT3G47110
AT5G39390       AT3G47570
AT5G39390       AT3G47580
AT5G39390       AT5G20480
$ echo 12 > proc # 设置线程数
$ ParaAT.pl -h geneid.pairs.txt -n test.cds.fa -a test.pep.fa -o paraat -m mafft -f axt -g -p proc -kaks
$ ls paraat | head -4
AT3G47110-AT3G47090.cds_aln.axt
AT3G47110-AT3G47090.cds_aln.axt.kaks
AT3G47570-AT3G47090.cds_aln.axt
AT3G47570-AT3G47090.cds_aln.axt.kaks

参考:
简书 | Kaks_calculator计算ka/ks 值
简书 | kaks calculator批量计算多个基因的选择压力kaks值
简书 | Mr_我爱读文献 | 学会正确选择多序列比对(coding-sequences)软件
于振鹏 | PAML选择压力分析
陈连福 | 使用PAML软件利用密码子序列进行正选择分析
公众号 | 基因学苑 | 生物信息百Jia软件(三):Muscle

补充:

多序列比对的软件:musclemafftclustalw......
现在常用的是前两者,上面用的mafft,这里看一下muscle

什么时候要用到多序列比对,它的结果能用于什么呢?

1. 用于构建基因树:
1.1 用trimAl 修剪比对结果,用iqtreefasttree等进行建pep树;
1.2 用pal2nal.plcds序列回帖到比对结果,用于构建cds树。

2. 用于构建物种树:将单拷贝基因家族的比对结果串联建树。

3. 共线性块上的基因对进行全局比对,回帖cds序列,用yn00等计算ka、ks值。

如果不正确,希望批评指正!


$ conda search muscle
Loading channels: done
# Name                       Version           Build  Channel
muscle                        3.8.31               0  bioconda
muscle                      3.8.1551               1  bioconda
muscle                      3.8.1551               2  bioconda
muscle                      3.8.1551      h2d50403_3  bioconda
muscle                      3.8.1551      h6bb024c_4  bioconda
muscle                      3.8.1551      h7d875b9_6  bioconda
muscle                      3.8.1551      hc9558a2_5  bioconda
muscle                           5.1      h7d875b9_0  bioconda
muscle                           5.1      h9f5acd7_1  bioconda
  • 运行
$ cat test.fa
>gene1
MRLFLLLAFNALMQLEAYGFTDESDRQALLEIKSQVSESKRDALSAWNNSFP
>gene2
MGVPCIVMRLILVSALLVSVSLEHSDMVCAQTIRLTEETDKQALLEFKETSRVVLG
>gene3
MRLFLLLAFNALMLLETHGFTDETDRQALLQFKSQVSEDKRVVLSSWNHSFPLCNWKGVT
>gene4
MKLFLLLSFSAHLLLGETDRQALLEFKSQVSEGKRDVLSSWNNSFPLCNWKWVT
>gene5
MKLSFSLVFNALTLLLQVCIFAQARFSNETDMQALLEFKSQVSENNKREVLASWNHSSPF
>gene6
MKVCILVFAQARFSNETDMQALLEFKSQVTENKREVLASWNHSFPL
$ muscle -in test.fa -quiet | seqkit seq -w 0
>gene2
MGVPCIVMRLILVSALLVSVSLEHSDMVCAQTIRLTEETDKQALLEFKE-----TSRVVLG---------------
>gene5
-------MKLSFS--LVFNALTLLLQVCIFAQARFSNETDMQALLEFKSQVSENNKREVLASWNHSSPF-------
>gene6
-------MKVCIL---------------VFAQARFSNETDMQALLEFKSQVTE-NKREVLASWNHSFPL-------
>gene4
-------MKLFLL--LSFSAHL------LL------GETDRQALLEFKSQVSE-GKRDVLSSWNNSFPLCNWKWVT
>gene1
-------MRLFLL--LAFNALM------QLEAYGFTDESDRQALLEIKSQVSE-SKRDALSAWNNSFP--------
>gene3
-------MRLFLL--LAFNALM------LLETHGFTDETDRQALLQFKSQVSE-DKRVVLSSWNHSFPLCNWKGVT
  • 其他
$ muscle

MUSCLE v3.8.1551 by Robert C. Edgar

http://www.drive5.com/muscle
This software is donated to the public domain.
Please cite: Edgar, R.C. Nucleic Acids Res 32(5), 1792-97.


Basic usage

    muscle -in <inputfile> -out <outputfile>

Common options (for a complete list please see the User Guide):

    -in <inputfile>    Input file in FASTA format (default stdin)
    -out <outputfile>  Output alignment in FASTA format (default stdout)
    -diags             Find diagonals (faster for similar sequences)
    -maxiters <n>      Maximum number of iterations (integer, default 16)
    -maxhours <h>      Maximum time to iterate in hours (default no limit)
    -html              Write output in HTML format (default FASTA)
    -msf               Write output in GCG MSF format (default FASTA)
    -clw               Write output in CLUSTALW format (default FASTA)
    -clwstrict         As -clw, with 'CLUSTAL W (1.81)' header
    -log[a] <logfile>  Log to file (append if -loga, overwrite if -log)
    -quiet             Do not write progress messages to stderr
    -version           Display version information and exit

Without refinement (very fast, avg accuracy similar to T-Coffee): -maxiters 2
Fastest possible (amino acids): -maxiters 1 -diags -sv -distance1 kbit20_3
Fastest possible (nucleotides): -maxiters 1 -diags

看来我的版本比较老了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342