批量计算dn/ds,粗略筛选正选择?所有人-技能Get !
前两天,我推了一篇《柿子基因组测序及其性别分化系统的进化机制》文献解读。该文章涉及到大量的dn/ds计算。ds/ds也就是Ka/ks... 今天,我重新推之前推过的博文。
写在前面
近期课题需要,要计算超大量,反正是很多基因对的Ka/Ks值,于是我实现了这么一个功能,顺便打了一个GUI,毕竟现在很多时候,我涉及的生信分析,都是在windows下面做,或者说使用界面做的。
KaKs的计算
想起这个KaKs值,我想起了福建农的生物软件大流Raindy(高老师)。约莫是三年前,在高老师的提一下,一起写了EasyCodeML,主要是用来做正选择位点分析的,具体可参考 https://user.qzone.qq.com/58001704
事实上,从某个角度来说,codeML里面似乎就可以直接出Kaks?只是我确实看不懂结果。于是就没有后来了。
在后面的有段时间,不知道为何,似乎大家都kaks都很感兴趣,于是我也翻了一些资料,发现其中NG算法的计算逻辑比较简单,稍微写写就可以实现。于是就实现了。。。一直摆在TBtools中,未曾开放。
虽然说是随便写写,但其中还是有一些坑,
实现与使用
既然我早已实现,那么就拿出来用。于是有了下面
从界面来看,输入比较简单:
一个必须的cds序列文件(其中必须包括要用到的基因对对应的CDS序列),大体状态是
一个必须的基因对信息文件,大体格式是(注意,另存为 制表符分隔 的文本文件):
一个可选的蛋白序列文件(fasta格式),如果没有这个文件,那么TBtools会使用标准密码子表,将CDS序列全部翻译为蛋白序列,作为分析使用
有了输入文件,那么将其拖拽到TBtools对应的文本框,点击Start即可(大概1w个基因对可能需要1个小时,具体未做绝对测试)
一般可能会画一些图,比如Ks画个柱形图之类
实现逻辑
遍历基因对文件
针对每个基因对,取出对应的蛋白序列(如果没提供蛋白序列,那么直接使用cds序列翻译成蛋白)
使用muscle对两个序列作比对
基于输入的cds序列,将蛋白比对结果转换成cds比对结果,于是,我们得到的codon alignment
基于NG计算逻辑,计算kaks相关各种值
输出
写在最后
嗯...刚才去看了下别的东西...
忘记要写什么了。
那就摆二维码,TBtools的第三个使用交流群已经建立。
由于我退了大部分生信群,所以从现在开始到后面很长时间,
TBtools的唯一更新地址可能是,
QQ群
需要更新的朋友,请加群
一二群(2000/2000+2000/2000),满人咯
如果还没加群的,可以加3群