header updated
[jalview.git] / src / jalview / io / JPredFile.java
index cadf153..92d5414 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
  */\r
 package jalview.io;\r
 \r
-import jalview.datamodel.*;\r
-\r
 import java.io.*;\r
-\r
 import java.util.*;\r
 \r
+import jalview.datamodel.*;\r
+\r
 \r
 /**\r
  * DOCUMENT ME!\r
@@ -45,15 +44,6 @@ public class JPredFile extends AlignFile
     Hashtable Symscores; // indexes of symbol annotation properties in sequenceI vector\r
     private int QuerySeqPosition;\r
 \r
-    /**\r
-     * Creates a new JPredFile object.\r
-     *\r
-     * @param inStr DOCUMENT ME!\r
-     */\r
-    public JPredFile(String inStr)\r
-    {\r
-        super(inStr);\r
-    }\r
 \r
     /**\r
      * Creates a new JPredFile object.\r
@@ -198,8 +188,8 @@ public class JPredFile extends AlignFile
 \r
                     for (int j = 0; j < i; j++)\r
                     {\r
-                        scores.set(j,\r
-                            (Object) ((Float) scores.get(j)).toString());\r
+                        scores.setElementAt(\r
+                            (Object) ((Float) scores.elementAt(j)).toString(), j);\r
                     }\r
 \r
                     scores.addElement((Object) ascore);\r
@@ -221,7 +211,7 @@ public class JPredFile extends AlignFile
 \r
                 for (int i = 0; i < numSymbols; i++)\r
                 {\r
-                    conf.set(i, (Object) symbols.nextToken());\r
+                    conf.setElementAt( symbols.nextToken(), i);\r
                 }\r
             }\r
             else\r
@@ -264,12 +254,12 @@ public class JPredFile extends AlignFile
                 }\r
             }\r
         }\r
-\r
+        /* leave it to the parser user to actually check this.\r
         if (noSeqs < 1)\r
         {\r
             throw new IOException(\r
                 "JpredFile Parser: No sequence in the prediction!");\r
-        }\r
+        }*/\r
 \r
         maxLength = seq_entries.elementAt(0).toString().length();\r
 \r
@@ -283,9 +273,9 @@ public class JPredFile extends AlignFile
             if (!Symscores.containsKey(ids.elementAt(i)) &&\r
                     !isValidProteinSequence(newSeq.getSequence()))\r
             {\r
-                throw new IOException(\r
-                    "JPredConcise: Not a valid protein sequence - (" +\r
-                    ids.elementAt(i).toString() + ")");\r
+                throw new IOException("JPredConcise: "\r
+                                      +AppletFormatAdapter.INVALID_CHARACTERS +" : "\r
+                                      +ids.elementAt(i).toString() + ")");\r
             }\r
 \r
             if (maxLength != seq_entries.elementAt(i).toString().length())\r
@@ -339,6 +329,34 @@ public class JPredFile extends AlignFile
             e.printStackTrace();\r
         }\r
     }\r
+    Vector annotSeqs=null;\r
+  /**\r
+   * removeNonSequences\r
+   */\r
+  public void removeNonSequences()\r
+  {\r
+    if (annotSeqs!=null)\r
+      return;\r
+    annotSeqs = new Vector();\r
+    Vector newseqs = new Vector();\r
+    int i=0;\r
+    int j=seqs.size();\r
+    for (; i<QuerySeqPosition; i++)\r
+        annotSeqs.addElement(seqs.elementAt(i));\r
+      // check that no stray annotations have been added at the end.\r
+      {\r
+        SequenceI sq = (SequenceI) seqs.elementAt(j-1);\r
+        if (sq.getName().toUpperCase().startsWith("JPRED")) {\r
+          annotSeqs.addElement(sq);\r
+          seqs.removeElementAt(--j);\r
+        }\r
+      }\r
+    for (; i<j; i++)\r
+        newseqs.addElement(seqs.elementAt(i));\r
+\r
+    seqs.removeAllElements();\r
+    seqs = newseqs;\r
+  }\r
 }\r
 \r
 \r