Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / jalview / io / JPredFile.js
index 9dc5044..1975edb 100644 (file)
-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
+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;
+});
+});