annotation might have been deleted
[jalview.git] / src / jalview / io / AlignFile.java
index d22dc12..3fa4ac2 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
 * Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\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
@@ -36,9 +36,10 @@ public abstract class AlignFile extends FileParse
     int noSeqs = 0;\r
     int maxLength = 0;\r
     Vector seqs;\r
-    Vector headers;\r
+    Vector annotations;\r
     long start;\r
     long end;\r
+    boolean jvSuffix = true;\r
 \r
     /**\r
      * Creates a new AlignFile object.\r
@@ -47,24 +48,6 @@ public abstract class AlignFile extends FileParse
     {\r
     }\r
 \r
-    /**\r
-     * Creates a new AlignFile object.\r
-     *\r
-     * @param inStr DOCUMENT ME!\r
-     */\r
-    public AlignFile(String inStr)\r
-    {\r
-        initData();\r
-        System.out.println("is this ever called??");\r
-\r
-        try\r
-        {\r
-            parse();\r
-        }\r
-        catch (Exception ex)\r
-        {\r
-        }\r
-    }\r
 \r
     /**\r
      * Constructor which parses the data from a file of some specified type.\r
@@ -103,13 +86,24 @@ public abstract class AlignFile extends FileParse
         return s;\r
     }\r
 \r
+    public void addAnnotations(Alignment al)\r
+    {\r
+      for(int i=0; i<annotations.size(); i++)\r
+      {\r
+        al.addAnnotation(\r
+            (AlignmentAnnotation)annotations.elementAt(i)\r
+            );\r
+      }\r
+\r
+    }\r
+\r
     /**\r
      * Initialise objects to store sequence data in.\r
      */\r
     protected void initData()\r
     {\r
         seqs = new Vector();\r
-        headers = new Vector();\r
+        annotations = new Vector();\r
     }\r
 \r
     /**\r
@@ -127,18 +121,7 @@ public abstract class AlignFile extends FileParse
         }\r
     }\r
 \r
-    // Checks whether sequence is valid aa characters\r
-    protected boolean isValidProteinSequence(String sequence)\r
-    {\r
-        for (int i = 0; i < sequence.length(); i++)\r
-            if (!jalview.schemes.ResidueProperties.aaHash.containsKey(\r
-                        String.valueOf(sequence.charAt(i))))\r
-            {\r
-                return false;\r
-            }\r
-\r
-        return true;\r
-    }\r
+\r
 \r
     /**\r
      * This method must be implemented to parse the contents of the file.\r
@@ -149,4 +132,45 @@ public abstract class AlignFile extends FileParse
      * Print out in alignment file format the Sequences in the seqs Vector.\r
      */\r
     public abstract String print();\r
+\r
+    public void addJVSuffix(boolean b)\r
+    {\r
+      jvSuffix = b;\r
+    }\r
+\r
+    /**\r
+     * A general parser for ids.\r
+     *\r
+     * @String id Id to be parsed\r
+     */\r
+    Sequence parseId(String id)\r
+    {\r
+      Sequence seq = null;\r
+      id = id.trim();\r
+      int space = id.indexOf(" ");\r
+      if(space>-1)\r
+      {\r
+        seq = new Sequence(id.substring(0, space),"");\r
+        seq.setDescription(id.substring(space+1));\r
+      }\r
+      else\r
+      {\r
+        seq = new Sequence(id, "");\r
+      }\r
+\r
+      return seq;\r
+    }\r
+\r
+    /**\r
+     * Creates the output id.\r
+     * Adds prefix Uniprot format source|id\r
+     * And suffix Jalview /start-end\r
+     *\r
+     * @String id Id to be parsed\r
+     */\r
+    String printId(SequenceI seq)\r
+    {\r
+     return seq.getDisplayId(jvSuffix);\r
+    }\r
+\r
 }\r