要计算4dTv值看我,有一个致命错误需纠正
将这个错误记录在这里防止更多的人犯错。
前段时间,我因为需要计算4dTv的值,在百度上搜索是排名第一的是这篇文章:
所用脚本: calculate_4DTV_correction.pl
里面使用到一个脚本:calculate_4DTV_correction.pl,估计很多同样要计算4dTv的小伙伴们就下载下来准备用它来计算了。但是评论区有位细心的小伙伴发现了一个错误,让准备拿这个脚本开始工作的我吓出一身冷汗(还好没有直接拿来用)
查看一下它使用的密码子表:
果然这里一会儿是DNA codon,一会儿又变成RNA codon,显然这样计算会漏掉很多信息。
正确的代码
如果你是拿cds来计算4dTv,就使用DNA codon,下面这个版本应该可以应付大多数人的情况了
(将下面的代码替换原代码)
my %codons=(
'CTT'=>'L', 'CTC'=>'L', 'CTA'=>'L', 'CTG'=>'L',
'GTT'=>'V', 'GTC'=>'V', 'GTA'=>'V', 'GTG'=>'V',
'TCT'=>'S', 'TCC'=>'S', 'TCA'=>'S', 'TCG'=>'S',
'CCT'=>'P', 'CCC'=>'P', 'CCA'=>'P', 'CCG'=>'P',
'ACT'=>'T', 'ACC'=>'T', 'ACA'=>'T', 'ACG'=>'T',
'GCT'=>'A', 'GCC'=>'A', 'GCA'=>'A', 'GCG'=>'A',
'CGT'=>'R', 'CGC'=>'R', 'CGA'=>'R', 'CGG'=>'R',
'GGT'=>'G', 'GGC'=>'G', 'GGA'=>'G', 'GGG'=>'G'
);
(如果你的序列是RNA,只要修改成 RNA codon 就好)
后来我查了一下这个脚本,找到了它的GitHub页面,没想到也是错误的,issue里面也没有人提出这个错误:
https://github.com/JinfengChen/Scripts/blob/master/FFgenome/03.evolution/distance_kaks_4dtv/bin/calculate_4DTV_correction.pl。
再看了一下网上其他关于计算4dTv的教程,很多都使用的是这个脚本,下边清一色的评论都是感谢楼主的,拿来脚本就开始算啊。可能大家做生信的时候已经焦头烂额了,根本没有人注意到这个问题。不知道误导了多少人,估计最近发的文章里,可能不少4dTv值都是这样被错误地计算出来的。
最后还要感谢《如何计算kaks值和4dtv值》这篇文章的作者 Davey1220,还有下面的评论纠错老哥zrgbuct