背景:
FrameBot 用于纠正DNA序列中的插入和缺失,然后正确的翻译成蛋白质序列,frameBot 工具集成在RDPTools 中
源代码:
安装:
wget wget https://github.com/rdpstaff/RDPTools/archive/2.0.2.tar.gz
测试:
java -jar /home/panrf/Softwares/RDPTools/FrameBot.jar framebot
-o ./test
-l 1
-i 0.8
-N fungene_9.0_nifH_1989_unaligned_protein_seqs.4Analysis.fasta
input.fasta
备注: -o 指定输出结果的前缀,-l 指定氨基酸过滤的长度,i 指定比对的相似度,-N 指定功能基因对应的数据库, input.fasta 为输出的DNA序列
输出结果:
输出5个文件:
test_corr_nucl.fasta : 翻译成功的DNA序列
test_corr_prot.fasta : 翻译成功的蛋白质序列
BL18_failed_nucl.fasta : 翻译失败的DNA序列
test_framebot.txt : 翻译成功的DNA序列的比对情况
test_failed_framebot.txt : 翻译失败的DNA序列的比对情况
test_framebot.txt : 内容如下:
> Target Query NuclLen AlignLen %Identity Score Frameshifts Reversed
STATS 38256851 7001453_297_HC7NJBCXY_1_1114_2435_5316;barcodelabel=BL18;size=5; 318 106 99.057 530 0 false
Target 33 TRLILHAKAQDTILSLAAEAGSVEDLEIEDVMKIGFRDIRCVESGGPEPGVGCAGRGVIT 92
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Query 1 TRLILHAKAQDTILSLAAEAGSVEDLEIEDVMKIGFRDIRCVESGGPEPGVGCAGRGVIT 60
Frame 111111111111111111111111111111111111111111111111111111111111
ACCACCGAGCGAACTCGGGGGTGGGCGAGGGAAAGTCGACTGGTGGCGCGGGTGGCGGAA
CGTTTACACAACTTCTCCACGCTAATATAATTATGTGATGGTACGGCACGTGGCGGGTTC
GGGCGCCGCGCCCGGGCCACCGGGCGGCGCCGGCCCCCCCCGGCTCGGGCGCCCCTCGCG
Target 93 SINFLEENGAYDGVDYVSYDVLGDVVCGGFAMPIRENKAQEIYIVM 138
||||||||||| ||||||||||||||||||||||||||||||||||
Query 61 SINFLEENGAYEGVDYVSYDVLGDVVCGGFAMPIRENKAQEIYIVM 106
Frame 1111111111111111111111111111111111111111111111
TAATCGGAGGTGGGGTGTTGGCGGGGTGGTGACACGAAGCGATAGA
CTATTAAAGCAAGTAATCAATTGATTGGGTCTCTGAAACAATATTT
GCCCGAACCCTACGCCCCCCGGCCGGCCCTCGCCCGCGCGGCCCCG
表头注释:
Target : 数据库中的序列 38256851
Query : 查询序列 7001453_297_HC7NJBCXY_1_1114_2435_5316;barcodelabel=BL18;size=5;
NuclLen : 核酸序列长度 318
AlignLen : 比对上的序列长度 106
%Identity : 比对的相似度 99.057
Score : 比对的打分 530
Frameshifts : 移码 0
Reversed : 是否相反 false, 输入序列的氨基酸和数据库中的氨基酸序列是否反向互补
利用FrameBot 翻译氨基酸序列时, 首先将输入的核酸序列翻译成氨基酸,然后去和数据库中的氨基酸进行blast比对,如果该氨基酸长度大于预先设置的的长度阈值,而且比对的相似度大于预先设置的相似度的阈值,则输入序列成功翻译;
不同物种某个特定功能基因的氨基酸序列还是有很大差异的,如果一条核酸序列对应的氨基酸符合长度过滤的条件,但是由于和数据库中的氨基酸序列差异都较大,导致比对的相似度很低,也是翻译不成功;
从这个过程可以看到,数据库质量的好坏决定了输入序列能否翻译成功,对于功能基因而言,我们通常从FunGene 数据库下载对应的数据。