40 lines
597 B
Perl
40 lines
597 B
Perl
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Fasta_retriever;
|
|
use List::Util qw(shuffle);
|
|
|
|
my $usage = "usage: $0 file.fasta\n\n";
|
|
|
|
my $file = $ARGV[0] or die $usage;
|
|
|
|
main: {
|
|
|
|
my @accs;
|
|
open (my $fh, $file) or die $!;
|
|
while (<$fh>) {
|
|
if (/^>(\S+)/) {
|
|
my $acc = $1;
|
|
push (@accs, $acc);
|
|
}
|
|
}
|
|
close $fh;
|
|
|
|
|
|
@accs = shuffle @accs;
|
|
|
|
my $fasta_retriever = new Fasta_retriever($file);
|
|
|
|
foreach my $acc (@accs) {
|
|
|
|
my $seq = $fasta_retriever->get_seq($acc);
|
|
|
|
print "$acc\t$seq\n";
|
|
}
|
|
|
|
exit(0);
|
|
}
|
|
|