JAL-931 (related) - utility to split an alignment database in stockholm format into...
authorjprocter <jprocter@compbio.dundee.ac.uk>
Wed, 14 Sep 2011 11:07:28 +0000 (12:07 +0100)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Wed, 14 Sep 2011 11:07:28 +0000 (12:07 +0100)
utils/splitstockholm.pl [new file with mode: 0644]

diff --git a/utils/splitstockholm.pl b/utils/splitstockholm.pl
new file mode 100644 (file)
index 0000000..5a31679
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/perl\r
+# Splits a concatenated set of Stockholm Files into several individual files.\r
+\r
+use strict;\r
+use FileHandle;\r
+my $ac;\r
+my $lns="";\r
+my $fh;\r
+while (<>) {\r
+    if ($_=~m!^//!) {\r
+       $fh->print("//\n");\r
+       $fh->close();\r
+       $ac = undef;\r
+       $lns = "";\r
+    } else {\r
+       if ($_=~/GF\s+AC\s+([0-9.RPF]+)/) { \r
+           $ac=$1; \r
+           ($fh=new FileHandle)->open(">$ac.stk") or die("Couldn't open file '$ac.stk'"); \r
+           $lns=~/^. STOCKHOLM 1.0/ or $fh->print("# STOCKHOLM 1.0\n");\r
+       };\r
+       if (defined($fh)) {\r
+           if (defined $lns) { \r
+               $fh->print($lns); $lns=undef; }\r
+           \r
+           $fh->print($_);\r
+       } else {\r
+           $lns .= $_;\r
+       }\r
+    }\r
+}\r