美文网首页走进转录组Linux与生物信息
从fasta序列中提取特定ID的序列

从fasta序列中提取特定ID的序列

作者: geneonto | 来源:发表于2022-05-07 17:25 被阅读0次

小编分享一个从fasta中提取序列的perl脚本(需要安装bioperl):

die "perl $0 <id> <fa> <OUT>" unless(@ARGV==3);

use Bio::SeqIO;
use Bio::Seq;
$in  = Bio::SeqIO->new(-file => "$ARGV[1]" ,
                               -format => 'Fasta');
$out = Bio::SeqIO->new(-file => ">$ARGV[2]" ,
                               -format => 'Fasta');
my%keep=();
open IN ,"$ARGV[0]" or die "$!";
while(<IN>){
    chomp;
    next if /^#/;
    $keep{$_}=1;
}
close(IN);
while ( my $seq = $in->next_seq() ) {
            my($id,$sequence,$desc,$len)=($seq->id,$seq->seq,$seq->desc,$seq->length);
            if(exists $keep{$id}){
                $out->write_seq($seq);
            }
}
        
$in->close();
$out->close();

相关文章

网友评论

    本文标题:从fasta序列中提取特定ID的序列

    本文链接:https://www.haomeiwen.com/subject/ngexurtx.html