JAL-1807 still testing
[jalviewjs.git] / bin / jalview / io / JPredFile.js
index 1975edb..9dc5044 100644 (file)
-Clazz.declarePackage ("jalview.io");
-Clazz.load (["jalview.io.AlignFile"], "jalview.io.JPredFile", ["jalview.datamodel.Alignment", "$.Sequence", "jalview.io.JnetAnnotationMaker", "jalview.util.MessageManager", "java.io.IOException", "java.lang.Float", "$.StringBuffer", "java.util.Hashtable", "$.StringTokenizer", "$.Vector"], function () {
-c$ = Clazz.decorateAsClass (function () {
-this.ids = null;
-this.conf = null;
-this.Scores = null;
-this.Symscores = null;
-this.QuerySeqPosition = 0;
-this.annotSeqs = null;
-Clazz.instantialize (this, arguments);
-}, jalview.io, "JPredFile", jalview.io.AlignFile);
-Clazz.defineMethod (c$, "setQuerySeqPosition", 
-function (QuerySeqPosition) {
-this.QuerySeqPosition = QuerySeqPosition;
-}, "~N");
-Clazz.defineMethod (c$, "getQuerySeqPosition", 
-function () {
-return this.QuerySeqPosition;
-});
-Clazz.defineMethod (c$, "getScores", 
-function () {
-return this.Scores;
-});
-Clazz.defineMethod (c$, "getSymscores", 
-function () {
-return this.Symscores;
-});
-Clazz.defineMethod (c$, "initData", 
-function () {
-Clazz.superCall (this, jalview.io.JPredFile, "initData", []);
-this.Scores =  new java.util.Hashtable ();
-this.ids = null;
-this.conf = null;
-});
-Clazz.overrideMethod (c$, "parse", 
-function () {
-var line;
-this.QuerySeqPosition = -1;
-this.noSeqs = 0;
-var seq_entries =  new java.util.Vector ();
-var ids =  new java.util.Vector ();
-var Symscores =  new java.util.Hashtable ();
-while ((line = this.nextLine ()) != null) {
-var str =  new java.util.StringTokenizer (line, ":");
-var id = "";
-if (!str.hasMoreTokens ()) {
-continue;
-}id = str.nextToken ();
-var seqsym = str.nextToken ();
-var symbols =  new java.util.StringTokenizer (seqsym, ",");
-var numSymbols = symbols.countTokens ();
-if (numSymbols == 0) {
-continue;
-}if (seqsym.length != (2 * numSymbols)) {
-if (this.Scores.containsKey (id)) {
-var i = 1;
-while (this.Scores.containsKey (id + "_" + i)) {
-i++;
-}
-id = id + "_" + i;
-}var scores =  new java.util.Vector ();
-var i = 0;
-var ascore = "dead";
-try {
-while (symbols.hasMoreTokens ()) {
-ascore = symbols.nextToken ();
-var score =  new Float (ascore);
-scores.addElement (score);
-}
-this.Scores.put (id, scores);
-} catch (e) {
-if (Clazz.exceptionOf (e, Exception)) {
-i = scores.size ();
-for (var j = 0; j < i; j++) {
-scores.setElementAt ((scores.elementAt (j)).toString (), j);
-}
-scores.addElement (ascore);
-while (symbols.hasMoreTokens ()) {
-ascore = symbols.nextToken ();
-scores.addElement (ascore);
-}
-this.Scores.put (id, scores);
-} else {
-throw e;
-}
-}
-} else if (id.equals ("jnetconf")) {
-id = "Prediction Confidence";
-this.conf =  new java.util.Vector (numSymbols);
-for (var i = 0; i < numSymbols; i++) {
-this.conf.setElementAt (symbols.nextToken (), i);
-}
-} else {
-var newseq =  new StringBuffer ();
-for (var i = 0; i < numSymbols; i++) {
-newseq.append (symbols.nextToken ());
-}
-if (id.indexOf (";") > -1) {
-seq_entries.addElement (newseq);
-var i = 1;
-var name = id.substring (id.indexOf (";") + 1);
-while (ids.lastIndexOf (name) > -1) {
-name = id.substring (id.indexOf (";") + 1) + "_" + ++i;
-}
-if (this.QuerySeqPosition == -1) this.QuerySeqPosition = ids.size ();
-ids.addElement (name);
-this.noSeqs++;
-} else {
-if (id.equals ("JNETPRED")) {
-id = "Predicted Secondary Structure";
-}seq_entries.addElement (newseq.toString ());
-ids.addElement (id);
-Symscores.put (id,  new Integer (ids.size () - 1));
-}}}
-this.maxLength = seq_entries.elementAt (0).toString ().length;
-for (var i = 0; i < ids.size (); i++) {
-var newSeq =  new jalview.datamodel.Sequence (ids.elementAt (i).toString (), seq_entries.elementAt (i).toString (), 1, seq_entries.elementAt (i).toString ().length);
-if (this.maxLength != seq_entries.elementAt (i).toString ().length) {
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.jpredconcide_entry_has_unexpected_number_of_columns",  Clazz.newArray (-1, [ids.elementAt (i).toString ()])));
-}if ((newSeq.getName ().startsWith ("QUERY") || newSeq.getName ().startsWith ("align;")) && (this.QuerySeqPosition == -1)) {
-this.QuerySeqPosition = this.seqs.size ();
-}this.seqs.addElement (newSeq);
-}
-if (this.seqs.size () > 0 && this.QuerySeqPosition > -1) {
-var tal =  new jalview.datamodel.Alignment (this.getSeqsAsArray ());
-try {
-jalview.io.JnetAnnotationMaker.add_annotation (this, tal, this.QuerySeqPosition, true);
-} catch (e) {
-if (Clazz.exceptionOf (e, Exception)) {
-tal = null;
-var ex =  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.couldnt_parse_concise_annotation_for_prediction",  Clazz.newArray (-1, [e.getMessage ()])));
-e.printStackTrace ();
-throw ex;
-} else {
-throw e;
-}
-}
-this.annotations =  new java.util.Vector ();
-var aan = tal.getAlignmentAnnotation ();
-for (var aai = 0; aan != null && aai < aan.length; aai++) {
-this.annotations.addElement (aan[aai]);
-}
-}});
-Clazz.overrideMethod (c$, "print", 
-function () {
-return "Not Supported";
-});
-c$.main = Clazz.defineMethod (c$, "main", 
-function (args) {
-try {
-var blc =  new jalview.io.JPredFile (args[0], "File");
-for (var i = 0; i < blc.seqs.size (); i++) {
-System.out.println ((blc.seqs.elementAt (i)).getName () + "\n" + (blc.seqs.elementAt (i)).getSequenceAsString () + "\n");
-}
-} catch (e) {
-if (Clazz.exceptionOf (e, java.io.IOException)) {
-System.err.println ("Exception " + e);
-} else {
-throw e;
-}
-}
-}, "~A");
-Clazz.defineMethod (c$, "removeNonSequences", 
-function () {
-if (this.annotSeqs != null) {
-return;
-}this.annotSeqs =  new java.util.Vector ();
-var newseqs =  new java.util.Vector ();
-var i = 0;
-var j = this.seqs.size ();
-for (; i < this.QuerySeqPosition; i++) {
-this.annotSeqs.addElement (this.seqs.elementAt (i));
-}
-{
-var sq = this.seqs.elementAt (j - 1);
-if (sq.getName ().toUpperCase ().startsWith ("JPRED")) {
-this.annotSeqs.addElement (sq);
-this.seqs.removeElementAt (--j);
-}}for (; i < j; i++) {
-newseqs.addElement (this.seqs.elementAt (i));
-}
-this.seqs.removeAllElements ();
-this.seqs = newseqs;
-});
-});
+Clazz.declarePackage ("jalview.io");\r
+Clazz.load (["jalview.io.AlignFile"], "jalview.io.JPredFile", ["jalview.datamodel.Alignment", "$.Sequence", "jalview.io.JnetAnnotationMaker", "jalview.util.MessageManager", "java.io.IOException", "java.lang.Float", "$.StringBuffer", "java.util.Hashtable", "$.StringTokenizer", "$.Vector"], function () {\r
+c$ = Clazz.decorateAsClass (function () {\r
+this.ids = null;\r
+this.conf = null;\r
+this.Scores = null;\r
+this.Symscores = null;\r
+this.QuerySeqPosition = 0;\r
+this.annotSeqs = null;\r
+Clazz.instantialize (this, arguments);\r
+}, jalview.io, "JPredFile", jalview.io.AlignFile);\r
+Clazz.defineMethod (c$, "setQuerySeqPosition", \r
+function (QuerySeqPosition) {\r
+this.QuerySeqPosition = QuerySeqPosition;\r
+}, "~N");\r
+Clazz.defineMethod (c$, "getQuerySeqPosition", \r
+function () {\r
+return this.QuerySeqPosition;\r
+});\r
+Clazz.defineMethod (c$, "getScores", \r
+function () {\r
+return this.Scores;\r
+});\r
+Clazz.defineMethod (c$, "getSymscores", \r
+function () {\r
+return this.Symscores;\r
+});\r
+Clazz.defineMethod (c$, "initData", \r
+function () {\r
+Clazz.superCall (this, jalview.io.JPredFile, "initData", []);\r
+this.Scores =  new java.util.Hashtable ();\r
+this.ids = null;\r
+this.conf = null;\r
+});\r
+Clazz.overrideMethod (c$, "parse", \r
+function () {\r
+var line;\r
+this.QuerySeqPosition = -1;\r
+this.noSeqs = 0;\r
+var seq_entries =  new java.util.Vector ();\r
+var ids =  new java.util.Vector ();\r
+var Symscores =  new java.util.Hashtable ();\r
+while ((line = this.nextLine ()) != null) {\r
+var str =  new java.util.StringTokenizer (line, ":");\r
+var id = "";\r
+if (!str.hasMoreTokens ()) {\r
+continue;\r
+}id = str.nextToken ();\r
+var seqsym = str.nextToken ();\r
+var symbols =  new java.util.StringTokenizer (seqsym, ",");\r
+var numSymbols = symbols.countTokens ();\r
+if (numSymbols == 0) {\r
+continue;\r
+}if (seqsym.length != (2 * numSymbols)) {\r
+if (this.Scores.containsKey (id)) {\r
+var i = 1;\r
+while (this.Scores.containsKey (id + "_" + i)) {\r
+i++;\r
+}\r
+id = id + "_" + i;\r
+}var scores =  new java.util.Vector ();\r
+var i = 0;\r
+var ascore = "dead";\r
+try {\r
+while (symbols.hasMoreTokens ()) {\r
+ascore = symbols.nextToken ();\r
+var score =  new Float (ascore);\r
+scores.addElement (score);\r
+}\r
+this.Scores.put (id, scores);\r
+} catch (e) {\r
+if (Clazz.exceptionOf (e, Exception)) {\r
+i = scores.size ();\r
+for (var j = 0; j < i; j++) {\r
+scores.setElementAt ((scores.elementAt (j)).toString (), j);\r
+}\r
+scores.addElement (ascore);\r
+while (symbols.hasMoreTokens ()) {\r
+ascore = symbols.nextToken ();\r
+scores.addElement (ascore);\r
+}\r
+this.Scores.put (id, scores);\r
+} else {\r
+throw e;\r
+}\r
+}\r
+} else if (id.equals ("jnetconf")) {\r
+id = "Prediction Confidence";\r
+this.conf =  new java.util.Vector (numSymbols);\r
+for (var i = 0; i < numSymbols; i++) {\r
+this.conf.setElementAt (symbols.nextToken (), i);\r
+}\r
+} else {\r
+var newseq =  new StringBuffer ();\r
+for (var i = 0; i < numSymbols; i++) {\r
+newseq.append (symbols.nextToken ());\r
+}\r
+if (id.indexOf (";") > -1) {\r
+seq_entries.addElement (newseq);\r
+var i = 1;\r
+var name = id.substring (id.indexOf (";") + 1);\r
+while (ids.lastIndexOf (name) > -1) {\r
+name = id.substring (id.indexOf (";") + 1) + "_" + ++i;\r
+}\r
+if (this.QuerySeqPosition == -1) this.QuerySeqPosition = ids.size ();\r
+ids.addElement (name);\r
+this.noSeqs++;\r
+} else {\r
+if (id.equals ("JNETPRED")) {\r
+id = "Predicted Secondary Structure";\r
+}seq_entries.addElement (newseq.toString ());\r
+ids.addElement (id);\r
+Symscores.put (id,  new Integer (ids.size () - 1));\r
+}}}\r
+this.maxLength = seq_entries.elementAt (0).toString ().length;\r
+for (var i = 0; i < ids.size (); i++) {\r
+var newSeq =  new jalview.datamodel.Sequence (ids.elementAt (i).toString (), seq_entries.elementAt (i).toString (), 1, seq_entries.elementAt (i).toString ().length);\r
+if (this.maxLength != seq_entries.elementAt (i).toString ().length) {\r
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.jpredconcide_entry_has_unexpected_number_of_columns",  Clazz.newArray (-1, [ids.elementAt (i).toString ()])));\r
+}if ((newSeq.getName ().startsWith ("QUERY") || newSeq.getName ().startsWith ("align;")) && (this.QuerySeqPosition == -1)) {\r
+this.QuerySeqPosition = this.seqs.size ();\r
+}this.seqs.addElement (newSeq);\r
+}\r
+if (this.seqs.size () > 0 && this.QuerySeqPosition > -1) {\r
+var tal =  new jalview.datamodel.Alignment (this.getSeqsAsArray ());\r
+try {\r
+jalview.io.JnetAnnotationMaker.add_annotation (this, tal, this.QuerySeqPosition, true);\r
+} catch (e) {\r
+if (Clazz.exceptionOf (e, Exception)) {\r
+tal = null;\r
+var ex =  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.couldnt_parse_concise_annotation_for_prediction",  Clazz.newArray (-1, [e.getMessage ()])));\r
+e.printStackTrace ();\r
+throw ex;\r
+} else {\r
+throw e;\r
+}\r
+}\r
+this.annotations =  new java.util.Vector ();\r
+var aan = tal.getAlignmentAnnotation ();\r
+for (var aai = 0; aan != null && aai < aan.length; aai++) {\r
+this.annotations.addElement (aan[aai]);\r
+}\r
+}});\r
+Clazz.overrideMethod (c$, "print", \r
+function () {\r
+return "Not Supported";\r
+});\r
+c$.main = Clazz.defineMethod (c$, "main", \r
+function (args) {\r
+try {\r
+var blc =  new jalview.io.JPredFile (args[0], "File");\r
+for (var i = 0; i < blc.seqs.size (); i++) {\r
+System.out.println ((blc.seqs.elementAt (i)).getName () + "\n" + (blc.seqs.elementAt (i)).getSequenceAsString () + "\n");\r
+}\r
+} catch (e) {\r
+if (Clazz.exceptionOf (e, java.io.IOException)) {\r
+System.err.println ("Exception " + e);\r
+} else {\r
+throw e;\r
+}\r
+}\r
+}, "~A");\r
+Clazz.defineMethod (c$, "removeNonSequences", \r
+function () {\r
+if (this.annotSeqs != null) {\r
+return;\r
+}this.annotSeqs =  new java.util.Vector ();\r
+var newseqs =  new java.util.Vector ();\r
+var i = 0;\r
+var j = this.seqs.size ();\r
+for (; i < this.QuerySeqPosition; i++) {\r
+this.annotSeqs.addElement (this.seqs.elementAt (i));\r
+}\r
+{\r
+var sq = this.seqs.elementAt (j - 1);\r
+if (sq.getName ().toUpperCase ().startsWith ("JPRED")) {\r
+this.annotSeqs.addElement (sq);\r
+this.seqs.removeElementAt (--j);\r
+}}for (; i < j; i++) {\r
+newseqs.addElement (this.seqs.elementAt (i));\r
+}\r
+this.seqs.removeAllElements ();\r
+this.seqs = newseqs;\r
+});\r
+});\r