5a316799843341f65f7b774ffcc5e556aa42c926
[jalview.git] / utils / splitstockholm.pl
1 #!/usr/bin/perl\r
2 # Splits a concatenated set of Stockholm Files into several individual files.\r
3 \r
4 use strict;\r
5 use FileHandle;\r
6 my $ac;\r
7 my $lns="";\r
8 my $fh;\r
9 while (<>) {\r
10     if ($_=~m!^//!) {\r
11         $fh->print("//\n");\r
12         $fh->close();\r
13         $ac = undef;\r
14         $lns = "";\r
15     } else {\r
16         if ($_=~/GF\s+AC\s+([0-9.RPF]+)/) { \r
17             $ac=$1; \r
18             ($fh=new FileHandle)->open(">$ac.stk") or die("Couldn't open file '$ac.stk'"); \r
19             $lns=~/^. STOCKHOLM 1.0/ or $fh->print("# STOCKHOLM 1.0\n");\r
20         };\r
21         if (defined($fh)) {\r
22             if (defined $lns) { \r
23                 $fh->print($lns); $lns=undef; }\r
24             \r
25             $fh->print($_);\r
26         } else {\r
27             $lns .= $_;\r
28         }\r
29     }\r
30 }\r