利用BioPerl将DNA序列翻译成蛋白序列

评论8,080

今天看到群里面有人讨论关于Perl和Bioperl的学习问题。所以在这里与大家分享几个关于蛋白质翻译的Bioperl代码,大家可以将下面的函数copy到自己的程序中,就可以将其作为函数调用。

代码一:将一条DNA序列翻译成蛋白质序列

输入参数1:DNA序列

返回值:蛋白质序列

代码如下:

[code lang="perl"]
#使用本子例程的前提是安装了BioPerl
#直接copy下面的代码,放到您的perl脚本后面
sub TranslateDNASeq()
{
use Bio::Seq;
(my $dna)=@_;
my $seqobj=Bio::Seq->new(-seq =>$dna, -alphabet =>'dna');
return $seqobj->translate()->seq();
}

#使用方法
my $DNA="ATGCCCGGT";
my $pep=&TranslateDNASeq($DNA);
[/code]

代码二:将整个FASTA格式的DNA序列文件翻译并输出FASTA格式的蛋白质序列文件

输入参数1:DNA序列文件路径

输入参数2:翻译后蛋白序列保存的路径

返回值:无

代码如下:

[code lang="perl"]
#使用本子例程的前提是安装了BioPerl
#直接copy下面的代码,放到您的perl脚本后面
sub TranslateDNAFile()
{
use Bio::SeqIO;
(my $infile,my $outfile)=@_;
my $in=Bio::SeqIO->new(-file=>"$infile",-format=>"fasta");
my $out=Bio::SeqIO->new(-file=>">$outfile", -format=>"fasta");

while (my $seq=$in->next_seq())
{
$out->write_seq($seq->translate);
}
}

#使用方法
my $DNAfile="/share/disk/dna.fasta"; # 这是输入文件
my $pepfile="/share/disk/pep.fasta"; # 输出结果会保存在这里
&TranslateDNAFile($DNAfile,$pepfile);
[/code]

发表评论

匿名网友