JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / io / JPredFile.java
index ec4a89e..5bc615e 100755 (executable)
@@ -1,20 +1,22 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
  * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
  * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
  * 
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 /**
  * PredFile.java
  */
 package jalview.io;
 
-import java.io.*;
-import java.util.*;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+import jalview.util.MessageManager;
 
-import jalview.datamodel.*;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.StringTokenizer;
+import java.util.Vector;
 
 /**
  * Parser for the JPred/JNet concise format. This is a series of CSV lines, each
@@ -52,7 +60,8 @@ public class JPredFile extends AlignFile
   Hashtable Scores; // Hash of names and score vectors
 
   Hashtable Symscores; // indexes of symbol annotation properties in sequenceI
-                        // vector
+
+  // vector
 
   private int QuerySeqPosition;
 
@@ -60,12 +69,12 @@ public class JPredFile extends AlignFile
    * Creates a new JPredFile object.
    * 
    * @param inFile
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * @param type
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * 
    * @throws IOException
-   *                 DOCUMENT ME!
+   *           DOCUMENT ME!
    */
   public JPredFile(String inFile, String type) throws IOException
   {
@@ -81,7 +90,7 @@ public class JPredFile extends AlignFile
    * DOCUMENT ME!
    * 
    * @param QuerySeqPosition
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void setQuerySeqPosition(int QuerySeqPosition)
   {
@@ -207,8 +216,8 @@ public class JPredFile extends AlignFile
 
           for (int j = 0; j < i; j++)
           {
-            scores.setElementAt((Object) ((Float) scores.elementAt(j))
-                    .toString(), j);
+            scores.setElementAt(
+                    (Object) ((Float) scores.elementAt(j)).toString(), j);
           }
 
           scores.addElement((Object) ascore);
@@ -290,24 +299,26 @@ public class JPredFile extends AlignFile
 
       if (maxLength != seq_entries.elementAt(i).toString().length())
       {
-        throw new IOException("JPredConcise: Entry ("
-                + ids.elementAt(i).toString()
-                + ") has an unexpected number of columns");
+        throw new IOException(
+                MessageManager
+                        .formatMessage(
+                                "exception.jpredconcide_entry_has_unexpected_number_of_columns",
+                                new String[] { ids.elementAt(i).toString() }));
       }
 
       if ((newSeq.getName().startsWith("QUERY") || newSeq.getName()
-              .startsWith("align;"))
-              && (QuerySeqPosition == -1))
+              .startsWith("align;")) && (QuerySeqPosition == -1))
       {
         QuerySeqPosition = seqs.size();
       }
 
       seqs.addElement(newSeq);
     }
-    if (seqs.size() > 0 && QuerySeqPosition>-1)
+    if (seqs.size() > 0 && QuerySeqPosition > -1)
     {
       // try to make annotation for a prediction only input (default if no
-      // alignment is given and prediction contains a QUERY or align;sequence_id line)
+      // alignment is given and prediction contains a QUERY or align;sequence_id
+      // line)
       Alignment tal = new Alignment(this.getSeqsAsArray());
       try
       {
@@ -317,9 +328,12 @@ public class JPredFile extends AlignFile
       {
         tal = null;
         IOException ex = new IOException(
-                "Couldn't parse concise annotation for prediction profile.\n"
-                        + e);
-        ex.setStackTrace(e.getStackTrace());
+                MessageManager
+                        .formatMessage(
+                                "exception.couldnt_parse_concise_annotation_for_prediction",
+                                new String[] { e.getMessage() }));
+        e.printStackTrace(); // java 1.1 does not have :
+                             // ex.setStackTrace(e.getStackTrace());
         throw ex;
       }
       this.annotations = new Vector();
@@ -345,7 +359,7 @@ public class JPredFile extends AlignFile
    * DOCUMENT ME!
    * 
    * @param args
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public static void main(String[] args)
   {
@@ -408,8 +422,8 @@ public class JPredFile extends AlignFile
 /*
  * StringBuffer out = new StringBuffer();
  * 
- * out.append("START PRED\n"); for (int i = 0; i < s[0].sequence.length(); i++) {
- * out.append(s[0].sequence.substring(i, i + 1) + " ");
+ * out.append("START PRED\n"); for (int i = 0; i < s[0].sequence.length(); i++)
+ * { out.append(s[0].sequence.substring(i, i + 1) + " ");
  * out.append(s[1].sequence.substring(i, i + 1) + " ");
  * out.append(s[1].score[0].elementAt(i) + " ");
  * out.append(s[1].score[1].elementAt(i) + " ");
@@ -420,12 +434,11 @@ public class JPredFile extends AlignFile
  * 
  * public static void main(String[] args) { try { BLCFile blc = new
  * BLCFile(args[0], "File"); DrawableSequence[] s = new
- * DrawableSequence[blc.seqs.size()]; for (int i = 0; i < blc.seqs.size(); i++) {
- * s[i] = new DrawableSequence( (Sequence) blc.seqs.elementAt(i)); } String out =
- * BLCFile.print(s);
+ * DrawableSequence[blc.seqs.size()]; for (int i = 0; i < blc.seqs.size(); i++)
+ * { s[i] = new DrawableSequence( (Sequence) blc.seqs.elementAt(i)); } String
+ * out = BLCFile.print(s);
  * 
  * AlignFrame af = new AlignFrame(null, s); af.resize(700, 500); af.show();
  * System.out.println(out); } catch (java.io.IOException e) {
- * System.out.println("Exception " + e); } }
- *  }
+ * System.out.println("Exception " + e); } } }
  */