Bioinformatics新文指出BLAST的-max_target_seqs参数存在严重误导
如果请大家选出一款生物信息学最出名的软件,我想非BLAST莫属。其经典的算法,广泛的应用,悠久的历史,大概都是其他生物信息学软件难以望其项背的。现今,BLAST的影响力已经渗透到生物学的各个领域,只要需要搜索同源序列,那么几乎都离不开BLAST。BLAST也因此变成为了生物学界家喻户晓的明星软件。然而就在近日,这个明星软件却和一则“丑闻”联系在了一起。
是这样的,同很多软件一样,BLAST也拥有诸多参数供用户选择。有时,数据库里有太多的序列,为解决输出结果太多的问题,BLAST为用户提供了一个参数-max_target_seqs。问题来了:该参数究竟代表什么?
如果,你以为该参数表示的是在BLAST搜索中会返回E值最小的N个hit的话,那么,小编只能说:
是的,你中招了!
几天前,生物信息学重量级杂志Bioinformatics以letter to the editor的形式刊发了来自美国马里兰大学计算机系的Nidhi Shah等人的一篇文章,报道了BLAST中-max_target_seqs存在的“bug”(Shah et al., 2018)。
该“bug”就是:-max_target_seqs参数返回的不过是前N个符合给定的E值的hit,而并不一定保证就是E值最低的N个hits。
当然,如果信不过小编的英文翻译,我们这里也提供了原文(Shah et al., 2018):
Instead, BLAST returns the first N hits that exceed the specified E-value threshold, which may or may not be the highest scoring N hits. The invo-cation using the parameter "-max_target_seqs1" simply returns the first good hit found in the database, not the best hit as one would assume.
对于该参数,blast的参考手册是怎样解释的呢?让我们来看原文(Shah et al., 2018):
According to the BLAST documentation itself (2008-), this parameter represents the "number of aligned sequences to keep".
也就是说,BLAST的的使用手册里,只是说number of aligned sequences to keep。然而,该参数实在是容易混淆,以至于很多使用者(其实小编觉得应该说是绝大部分使用者),包括小编本人,都误以为该参数是返回最优的或者说E值最低的N个匹配。看来,严格地说,这个问题不算一个bug,而是一个严重误导,所以推送里都是打了引号的。
文中,作者通过自己的search发现,实际上,具体返回哪N个hits与序列在blast序列数据库里的顺序息息相关。不同的构建数据库的方法会导致不同的“最佳hit”。
“bug”的影响有多广?小编在谷歌学术做了一个简单的搜索,发现414篇文献曾经明确写道使用过该参数过滤BLAST结果。而没有写到该参数却使用并误解该参数的文献,大概更是不计其数吧。
“bug”的影响有多大?作者举了一个例子:假如你在芽孢杆菌(Bacillus)的蛋白数据库中搜索关于生物同biodefense相关的同源基因。如果你使用了该参数,且运气不好的话,那么著名的致病菌炭疽桿菌Bacillus anthracis就可能被忽视掉了,而这可能只是因为Bacillus anthracis在数据库里的顺序排在其他同属物种之后(Shah et al., 2018)。
实际上,这一“bug”并非原文作者首先发现。文章里写道,在2015年11月便由来自英国爱丁堡大学的Sujai Kumar在github上提出,并在来自英国James Hutton Institute的生物信息学家Peter Cock的博客里进一步进行了披露。虽然当时帖子受到热议,但也许是缺少一篇顶级杂志的文章,抑或是大牛的一番言语,该问题并未得到生物学家的广泛关注,也没受到BLAST开发团队的重视——在BLAST后面的版本里,未有任何改善。大概是这个“bug”太过容易引起混淆,以至于BLAST的开发者自己也晕菜了吧?
BTW:Sujai Kumar是生信人公众号的老熟人了,在之前我们报道的水熊虫基因组乌龙事件里,爱丁堡大学能够快速地找出竞争对手的分析错误,这位在社交媒体上非常活跃的印度裔学者可谓功不可没。
本文于Bioinformatics杂志上在线刊登后立即引起社交媒体的超广泛关注。五日内,在网上已获1176次转推。其中,最多的当然是表示震惊和警醒:
也有对BLAST团队的声讨。前面提到的Peter Cock就对开发者们穷追猛打:
此外,也有学者表示:我去,以为你们早就知道了,没想到这么多后知后觉的人。。。
当然,也有人呼吁大家保持冷静:该“bug”影响有限——其大部分时间还是会如你所愿,返回的确实是最优的N个序列。
有朋友会问,DIAMOND比对会否收到影响呢?关于这一点,其开发者Benjamin Buchfink 在个人的推特里刚刚给出了答案:
最后,请大家注意,原文指出,BLAST在NCBI的在线服务中,该参数表现不受影响:
The confusion is further compounded by the fact that in the online BLAST portal, the max_target_seqs parameter behaves in the expected way – the best (rather than first) N hits are returned."
这一点,似乎也被biostars上前几天的一则跟帖所印证:
看起来,该“bug”似乎并未波及到NCBI中的在线BLAST服务,尽管这一点还有待进一步确认(欢迎大家在下方留言)。至于命令行blast,作者在原文里已经给出了建议:最稳健的办法还是不要用该参数。同时,他们也呼吁开放团队,快拿出点儿行动出来吧:We also encourage the team developing BLAST at NCBI to revise the documentation and provide ample warning about unexpected behavior due to this and other parameters of the tool.(Shah et al., 2018)
引文
Shah, N., Nute, M.G., Warnow, T., and Pop, M. (2018). Misunderstood parameter of NCBI BLAST impacts the correctness of bioinformatics workflows. Bioinformatics.
国庆节快乐
TCGA | 小工具 | 数据库 |组装| 注释 | 基因家族 | Pvalue
基因预测 |bestorf | sci | NAR | 在线工具 | 生存分析 | 热图
生信不死 | 初学者 | circRNA | 一箭画心| 十二生肖 | circos
舞台|基因组 | 黄金测序 | 套路 | 杂谈组装 | 进化 | 测序简史