X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Fio%2FJPredFile.js;h=1975edbae40707b0532753fb0a19e90d1a133990;hp=9dc5044348227cf18e3f2eee6a5b5f3f0ea65b14;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/jalview/io/JPredFile.js b/site/j2s/jalview/io/JPredFile.js index 9dc5044..1975edb 100644 --- a/site/j2s/jalview/io/JPredFile.js +++ b/site/j2s/jalview/io/JPredFile.js @@ -1,185 +1,185 @@ -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"); +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; +}); +});