Extension to fastaFile for myhits
authoramwaterhouse <Andrew Waterhouse>
Wed, 24 Jan 2007 17:27:44 +0000 (17:27 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 24 Jan 2007 17:27:44 +0000 (17:27 +0000)
src/jalview/io/AMSAFile.java [new file with mode: 0644]

diff --git a/src/jalview/io/AMSAFile.java b/src/jalview/io/AMSAFile.java
new file mode 100644 (file)
index 0000000..12a659d
--- /dev/null
@@ -0,0 +1,85 @@
+/*\r
+* Jalview - A Sequence Alignment Editor and Viewer\r
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+*\r
+* This program is free software; you can redistribute it and/or\r
+* modify it under the terms of the GNU General Public License\r
+* as published by the Free Software Foundation; either version 2\r
+* of the License, or (at your option) any later version.\r
+*\r
+* This program is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+* GNU General Public License for more details.\r
+*\r
+* You should have received a copy of the GNU General Public License\r
+* along with this program; if not, write to the Free Software\r
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+*/\r
+package jalview.io;\r
+\r
+import jalview.datamodel.*;\r
+\r
+public class AMSAFile extends jalview.io.FastaFile\r
+{\r
+\r
+   AlignmentI al;\r
+    /**\r
+     * Creates a new AMSAFile object for output.\r
+     */\r
+    public AMSAFile(AlignmentI al)\r
+    {\r
+      this.al = al;\r
+    }\r
+\r
+    /**\r
+     * DOCUMENT ME!\r
+     *\r
+     * @return DOCUMENT ME!\r
+     */\r
+    public String print()\r
+    {\r
+      super.print(getSeqsAsArray());\r
+\r
+      AlignmentAnnotation aa;\r
+      if (al.getAlignmentAnnotation() != null)\r
+      {\r
+        for (int i = 0; i < al.getAlignmentAnnotation().length; i++)\r
+        {\r
+          aa = al.getAlignmentAnnotation()[i];\r
+          if (aa.autoCalculated)\r
+            continue;\r
+\r
+          out.append(">#_" + aa.label);\r
+          if (aa.description != null)\r
+            out.append(" " + aa.description);\r
+\r
+          out.append("\n");\r
+\r
+          int nochunks = (aa.annotations.length / len) + 1;\r
+\r
+          for (int j = 0; j < nochunks; j++)\r
+          {\r
+            int start = j * len;\r
+            int end = start + len;\r
+            if (end > aa.annotations.length)\r
+              end = aa.annotations.length;\r
+\r
+            String ch;\r
+            for (int k = start; k < end; k++)\r
+            {\r
+              if (aa.annotations[k] == null)\r
+                ch = " ";\r
+              else\r
+                ch = aa.annotations[k].displayCharacter;\r
+\r
+              out.append(ch);\r
+\r
+            }\r
+            out.append("\n");\r
+          }\r
+        }\r
+      }\r
+      return out.toString();\r
+    }\r
+}\r