#!/usr/bin/env perl -l
use strict;
use warnings;
use autodie;
my ($min, $max) = (10, 15);
my $re = qr{(?x: ^ > ( .+ ) $ )};
my (%seq, $id);
{
open my $fh, '<', 'pm_1190090.fa';
while (<$fh>) {
if (/$re/) {
$id = $1;
}
else {
next if exists $seq{$id} and $seq{$id} eq '';
chomp;
$seq{$id} .= $_;
$seq{$id} = '' if length $seq{$id} > $max;
}
}
}
delete @seq{grep { length $seq{$_} < $min } keys %seq};
print "$_: $seq{$_}" for sort keys %seq;
####
>1
AAA
>5
AAA
>2
AAA
>1
AAACCC
>5
CCC
>3
AAA
>1
AAACCCGGG
>3
CCCGGG
>1
AAACCCGGGTTT
>4
AAACCCGGGTTT
>3
TTT
>6
12345678901234
>7
123456789012345
>8
1234567890123456
####
$ pm_1190090_fasta_filter_length.pl
3: AAACCCGGGTTT
4: AAACCCGGGTTT
6: 12345678901234
7: 123456789012345
$
####
>9
123456789
>10
1234567890
>11
12345678901
####
10: 1234567890
11: 12345678901