apply version 2.7 copyright
[jalview.git] / utils / splitstockholm.pl
1 #*******************************************************************************
2 # Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
3 # Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
4 #
5 # This file is part of Jalview.
6 #
7 # Jalview is free software: you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License 
9 # as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10 #
11 # Jalview is distributed in the hope that it will be useful, but 
12 # WITHOUT ANY WARRANTY; without even the implied warranty 
13 # of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14 # PURPOSE.  See the GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17 #*******************************************************************************
18 #!/usr/bin/perl\r
19 # Splits a concatenated set of Stockholm Files into several individual files.\r
20 \r
21 use strict;\r
22 use FileHandle;\r
23 my $ac;\r
24 my $lns="";\r
25 my $fh;\r
26 while (<>) {\r
27     if ($_=~m!^//!) {\r
28         $fh->print("//\n");\r
29         $fh->close();\r
30         $ac = undef;\r
31         $lns = "";\r
32     } else {\r
33         if ($_=~/GF\s+AC\s+([0-9.RPF]+)/) { \r
34             $ac=$1; \r
35             ($fh=new FileHandle)->open(">$ac.stk") or die("Couldn't open file '$ac.stk'"); \r
36             $lns=~/^. STOCKHOLM 1.0/ or $fh->print("# STOCKHOLM 1.0\n");\r
37         };\r
38         if (defined($fh)) {\r
39             if (defined $lns) { \r
40                 $fh->print($lns); $lns=undef; }\r
41             \r
42             $fh->print($_);\r
43         } else {\r
44             $lns .= $_;\r
45         }\r
46     }\r
47 }\r