这篇文章将为大家详细讲解有关如何使用perl脚本批量生成反向互补序列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

有时候我们需要得到序列的反向互补序列,可以用下面的脚本来批量处理序列。

用法:

perlfasta_Reverse_complementary.pl-fainput.fa-outout.fa

input.fa是输入文件,out.fa是反向互补后的序列

输入文件格式入下所示:

>bta-26a-2GGCUGUGGCUGGAUUCAAGUAAUCCAGGAUAGGCUGUUUCCAUCUGUGAGGCCUAUUCUUGAUUACUUGUUUCUGGAGGCAGCU>bta-18bCUUGUGUUAAGGUGCAUCUAGUGCAGUUAGUGAAGCAGCUCAGAAUCUACUGCCCUAAAUGCUCCUUCUGGCACA>bta-29aAUGACUGAUUUCUUUUGGUGUUCAGAGUCAAUAUAAUUUUCUAGCACCAUCUGAAAUCGGUUAU>bta-7f-2UGUGGGAUGAGGUAGUAGAUUGUAUAGUUUUAGGGUCAUACCCCAUCUUGGAGAUAACUAUACAGUCUACUGUCUUUCCCACG

代码如下:

#!/usr/bin/perl-wusestrict;useGetopt::Long;useConfig::General;useBio::SeqIO;useBio::Seq;my$version="1.3";##prepareparameters#########################################################################-------------------------------------------------------------------------------------------##GetOptionsmy%opts;GetOptions(\%opts,"fa=s","out=s","h");if(!defined($opts{out})||!defined($opts{fa})||defined($opts{h})){print<<"UsageEnd.";UsageForcedparameter:-outoutfile<outfile>mustbegiven-fafastafile<infile>mustbegivenOtherparameter:-hHelpdocumentUsageEnd.exit;}my$in=Bio::SeqIO->new(-file=>"$opts{fa}",-format=>'Fasta');open(OUT,">$opts{out}")||die"openfile$opts{out}faild.\n";while(my$seq=$in->next_seq()){my($id,$sequence)=($seq->id,$seq->seq);$sequence=&reverse_complement_IUPAC($sequence);printOUT">$id\n$sequence\n";}subreverse_complement_IUPAC{my$dna=shift;#reversetheDNAsequencemy$revcomp=reverse($dna);#complementthereversedDNAsequence$revcomp=~tr/ABCDGHMNRSTUVWXYabcdghmnrstuvwxy/TVGHCDKNYSAABWXRtvghcdknysaabwxr/;return$revcomp;}subreverse_complement{my$dna=shift;#reversetheDNAsequencemy$revcomp=reverse($dna);#complementthereversedDNAsequence$revcomp=~tr/ACGTacgt/TGCAtgca/;return$revcomp;}

关于“如何使用perl脚本批量生成反向互补序列”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。