1、简介
Prodigal是为细菌和古菌基因组进行蛋白编码基因预测的软件 ,其缩写源于PROkaryotic DYnamic Programming Genefinding ALgorithm,表示原核生物基因预测的动态规划算法。
最早在2007年,在美国能源部联合基因组研究所(DOE)的支持下,由橡树岭国家实验室和田纳西大学诺克斯维尔分校联合开发.2010年,发表在BMC Bioinformatics.很快,Prodigal成为使用最多的微生物基因预测算法之一。截至2021年2月,该出版物已被引用4400多次,在NCBI的ftp网站上保存着使用Prodigal预测的所有细菌和古生菌基因组的结果。
2、基因特点
原核生物mRNA的特征:
• 1.原核生物mRNA的5’端无帽子结构,3’端没有或只有较短的多聚(A)结构
• 2.原核生物起始密码子AUG上游有一被称为Ribosome Binding Site (RBS)或SD
序列(Shine –Dalgarno sequence)的保守区,该序列与16S-rRNA 3’端反向互
补,被认为在核糖体-mRNA的结合过程中起作用
• 3.原核生物常以AUG(有时GUG,甚至UUG)作为起始密码子;真核生物几乎永远以
AUG作为起始密码子
• 4.半衰期短:原核生物中,mRNA的转录和翻译是在同一个细胞空间里同步进行的,
蛋白质合成往往在mRNA刚开始转录时就被引发了;大多数细菌mRNA在转录开始1
分钟后就开始降解
• 5.许多原核生物mRNA以多顺反子的形式存在:原核细胞的mRNA(包括病毒)有时可
以同时编码几个多肽
• 单顺反子mRNA (monocistronic mRNA):只编码一个蛋白质的mRNA
• 多顺反子mRNA(polycistronic mRNA):编码多个蛋白质的mRNA
3、特点
Prodigal可以做的:
• 处理基因组类型多样: Finished genomes、draft genomes以及metagenomes
• 输出格式多样: GFF3、Genbank以及Sequin表格形式
• 运行速度快: 在PC上10秒钟就能分析出E. coli K-12基因组的蛋白序列
• 无监督学习: 使用无监督的机器学习算法,无需提供任何训练数据,而是从输入
序列本身自动学习基因组的特性,包括遗传密码使用以及核糖体结合位点的
motif识别
• 可以处理基因组gaps、contig、scaffolds和不完整基因预测
Prodigal不能做的:
• 预测RNA基因: Prodigal暂不能预测RNA基因
• 处理含有内含子的基因: 原核生物种含有内含子的基因非常罕见,所以Prodiga省
去了对这一部分基因的预测
• 基因功能注释: Prodigal并不为它预测的基因提供功能注释
• 处理移码突变(frame shifts): 不包含任何处理碱基插入或删除的逻辑, Indel类型的
测序错误将对基因预测产生影响
• 病毒基因预测: 慎重,尽管可以进行预测, 但是没有大规模验证
4、安装
conda install -c bioconda prodigal
5、输入文件
多种类型的基因组文件:
• Finished genomes: 原核生物基因组完整基因组
• Draft genomes: 原核生物组装草图基因组
• Metagenomes:元基因组组装基因组
Prodigal适用于上述所有基因组的基因预测,并且支持多种格式的输入文件
• 单个或多个序列的FASTA格式序列
• 单个或多个序列的Genbank格式序列
• 单个或多个序列的EMBL格式序列
• 推荐FASTA格式序列
6、基本命令
conda activate py2env
conda install prodigal -c bioconda
perl filter.pl contig.fa ###删去500bp 一下的序列,生成filter.fa
比如: perl /home/wz/prodigal/filter.pl M3W4_3_final.contigs.fa
这一步需要用到一个名为filter.pl的脚本
#!/usr/bin/perl
open IN,"$ARGV[0]";
open OUT,">./filter.fa";
$/ = ">";
readline(IN);
while($line=<IN>)
{
$line =~ s/>//g;
($name,$seq) = split(/\n/,$line,2);
$seq =~ s/\n//g;
$len = length($seq);
if($len >= 500)
{
print OUT ">$line\n";
}
else
{
next;
}
}
prodigal -a ./prodigal/protein.fa -d ./prodigal/dna.fa -i ./megahit/finalfinal.contigs.fa -m -o ./prodigal/temp.txt -p meta -q
-a ./prodigal/protein.fa
: 设置输出文件protein.fa
,将预测到的氨基酸序列写入该文件。-d ./prodigal/dna.fa
: 设置输出文件dna.fa
,将预测到的dna序列写入该文件。-i ./megahit/finalfinal.contigs.fa
: 输入文件为finalfinal.contigs.fa
,代表拼接好的contigs序列。-m
: 指示 prodigal 使用 meta 模式,以便处理宏转录组或宏基因组样本。-o ./prodigal/temp.txt
: 设置输出文件temp.txt
,具体输出内容和格式由-p
参数控制。-p meta
: 指示 prodigal 输出与 meta 模式相关的信息,例如orf(开放阅读框架)预测结果、编码调整状态等。可以选择其他模式,如 single、normal 或 mito,分别用于常见基因组、无线粒体基因组和原核基因组的预测。-q
: 禁用标准错误输出。
接下来,对得到的dna和蛋白进行rename ###否则可能报错有相同名字的序列
对得到的dna和蛋白进行rename ###否则可能报错有相同名字的序列
perl rename.pl dna.fa ###得到dna_rename.fa
建立专门装所有样品dna序列的文件夹dna
建立专门装所有样品protein序列的文件夹protein
mv dna_rename.fa ../dna/0414.fa ###命名为样品名字
mv protein_rename.fa ../protein/0414.fa ###命名为样品名字
#将所有核酸序列dna.fa (rename后的) cat在一起dna_all.fa
#将所有蛋白序列protein.fa (rename后的) cat在一起protein_all.fa
这一步需要用到一个名为rename2.pl的脚本
#!/usr/bin/perl
open IN,"$ARGV[0]";
$a = $ARGV[0];
$a =~ /(\S+).fa/;
$name = $1;
open OUT,">./${name}_rename.fa";
while($line=<IN>)
{
if($line =~ /^>/)
{
$line =~ s/>/>$name\_/;
print OUT "$line";
}
else
{
print OUT "$line";
}
}
##################################################################################
perl /home/wz/prodigal/filter.pl M3W4_3_final.contigs.fa
prodigal -a ./protein.fa -d ./dna.fa -i ./filter.fa -m -o ./temp.txt -p meta -q
perl rename2.pl dna.fa
perl rename2.pl protein.fa
mv dna_rename.fa M3W4_3.fa
perl rename2.pl M3W4_3.fa
mv M3W4_3_rename.fa /home/wz/prodigal/dna
mv protein_rename.fa M3W4_3.fa
perl rename2.pl M3W4_3.fa
mv M3W4_3_rename.fa /home/wz/prodigal/protein
##################################################################################################
标签:02Prodigal,dna,预测,基因,基因组,fa,prodigal,mRNA,序列 From: https://www.cnblogs.com/wzbzk/p/17344234.html