- 论坛徽章:
- 0
|
use strict;
use warnings;
use Data: umper;
exit(main(@ARGV));
sub getMeta{
my $record = shift;
my @lines = split("\n", $record);
my ($id) = ( $lines[0] =~ /^>1FFK \d+)/);
my $type;
my $content = $lines[1];
$content =~ s/\s+//g;
if ($content =~ /^[ACGU]+$/) {
$type = "ACGU";
} else {
$type = "N_ACGU";
}
return { ID => $id,
TYPE => $type
};
}
sub main{
my $text = <<'END';
>1FFK:1|PDBID|CHAIN|SEQUENCE
PRVELEIPEDVDAEQDHLDITVEGDNGSVTRRLWYPDIDVSVDGDTVVIESDEDNAKTMSTIGTFQSHIENMFHGVTEGW
>1FFK:9|PDBID|CHAIN|SEQUENCE
UUAGGCGGCCACAGCGGUGGGGUUGCCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCC
END
my @records = split(/(?=>1FFK)/, $text);
my @records_meta ;
foreach my $record (@records) {
push( @records_meta, getMeta( $record ) );
}
print Dumper \@records_meta;
}
$ perl test.pl
$VAR1 = [
{
'ID' => '1',
'TYPE' => 'N_ACGU'
},
{
'ID' => '9',
'TYPE' => 'ACGU'
}
];
|
|