
将DNA序列转换为蛋白质序列时,插入和缺失会导致移码(frameshifts)。FrameBot可以检测并纠正这些移码。
给定一个query DNA和一组已知的蛋白质序列,FrameBot将每条蛋白质序列和DNA序列在正反两个方向进行比对,并生成经过校正的蛋白质和DNA序列,以及最佳的全局-局部蛋白质成对比对(global-local protein pairwise alignment)。当query DNA和蛋白序列相似度越高时(至少50%), FrameBot准确度越高。
FrameBot已经被在一些重要的功能基因中测试过,如:
nitrogenase reductase (nifH)
butyryl-CoA transferase (but)
butyrate kinase (buk)
dioxin/dibenzofuran dioxygenase (dxnA/dbfA1)
dibenzofuran dioxygenase (dbfA2)
carbazole dioxygenase (carA)
cytochromeP-450 (p450)
alkane hydroxylase B (alkb)
biphenyl dioxygenase (bphA)
一般情况下常见的功能基因在Fungene上能找到,参考的蛋白数据库可以直接用。对于其他没有参考序列的功能基因,FrameBot提供了de novo reference的选项。即序列先按照丰度降序排序。每一条序列和其他的序列比对,如果identity小于70%,则对应的序列将会加到参考序列中去。标准有三个:
长度及identity的阈值;
丰度阈值,最小默认是10;
没有移码和终止密码子。
另外也可以自己提供参考序列。由于FrameBot计算量巨大,自己提供参考蛋白序列最好不要超过200条,最多不能超过1000条。
更多信息参见FunGene pipeline上的FrameBot help:
http://fungene.cme.msu.edu/FunGenePipeline/resources/fbhelp.jsp
FunGene网页上可以直接做FrameBot:
http://fungene.cme.msu.edu/FunGenePipeline/framebot/form.spr
另外FrameBot被整合到了RDP (Ribosomal Database Project)中:
https://github.com/rdpstaff/RDPTools
里面有很多工具

FrameBot的参数:大部分不用改。需要调的就是丰度、identity(0.4-0.8)、序列长度那几个阈值。

结果文件中_nucl_corr.fasta和all_seqs_derep_prot_corr.fasta是校正之后的核酸及蛋白序列。
_framebot.txt是满足最小长度及蛋白序列identity阈值的最邻近的比对。这个结果可再利用GetFrameBotStatMain 这一步进行格式转化:
最主要的是-t这个参数,matrix会输出一个数据框类似的结果,包含临近匹配的序列个数,可用于后续的分析(见下文)。
FrameBot最开始就是为nifH基因(文章还包括but和bphA基因)开发的,2013年发表在mbio上,文章目前引用125次:
https://mbio.asm.org/content/4/5/e00592-13

对于nifH, but和bphA基因,氨基酸长度阈值为100,identity阈值为30%。达到阈值的为真实的功能基因,否则丢弃。
FrameBot得到的最邻近匹配蛋白划分为一个物种,用于后续的PCA分析(Reads passed the initial processing steps were separated into groups by closest matching defined community protein sequence using FrameBot)。
END