X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Fanalysis%2FParseProperties.js;h=c117d07adf4782e9e1c77df512b41e8f02f761d7;hp=d18979d645fe76517ff023b05c8b6a64ed322c9c;hb=7301a2415adab88038b291fc54caeeb3a5a47a44;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/analysis/ParseProperties.js b/bin/jalview/analysis/ParseProperties.js index d18979d..c117d07 100644 --- a/bin/jalview/analysis/ParseProperties.js +++ b/bin/jalview/analysis/ParseProperties.js @@ -1,75 +1,75 @@ -Clazz.declarePackage ("jalview.analysis"); -Clazz.load (null, "jalview.analysis.ParseProperties", ["jalview.datamodel.AlignmentAnnotation", "jalview.jsdev.RegExp", "java.lang.Double"], function () { -c$ = Clazz.decorateAsClass (function () { -this.al = null; -Clazz.instantialize (this, arguments); -}, jalview.analysis, "ParseProperties"); -Clazz.makeConstructor (c$, -function (al) { -this.al = al; -}, "jalview.datamodel.AlignmentI"); -Clazz.defineMethod (c$, "getScoresFromDescription", -function (ScoreName, ScoreDescriptions, regex, repeat) { -return this.getScoresFromDescription ( Clazz.newArray (-1, [ScoreName]), Clazz.newArray (-1, [ScoreDescriptions]), regex, repeat); -}, "~S,~S,~S,~B"); -Clazz.defineMethod (c$, "getScoresFromDescription", -function (ScoreNames, ScoreDescriptions, regex, repeat) { -return this.getScoresFromDescription (this.al.getSequencesArray (), ScoreNames, ScoreDescriptions, regex, repeat); -}, "~A,~A,~S,~B"); -Clazz.defineMethod (c$, "getScoresFromDescription", -function (seqs, ScoreNames, ScoreDescriptions, regex, repeat) { -var count = 0; -var pattern = jalview.jsdev.RegExp.newRegex ([regex]); -if (pattern.numSubs () > ScoreNames.length) { -var onamelen = ScoreNames.length; -var tnames = new Array (pattern.numSubs () + 1); -System.arraycopy (ScoreNames, 0, tnames, 0, ScoreNames.length); -var base = tnames[ScoreNames.length - 1]; -ScoreNames = tnames; -var descrbase = ScoreDescriptions[onamelen - 1]; -if (descrbase == null) { -descrbase = "Score parsed from (" + regex + ")"; -}tnames = new Array (pattern.numSubs () + 1); -System.arraycopy (ScoreDescriptions, 0, tnames, 0, ScoreDescriptions.length); -ScoreDescriptions = tnames; -for (var i = onamelen; i < ScoreNames.length; i++) { -ScoreNames[i] = base + "_" + i; -ScoreDescriptions[i] = descrbase + " (column " + i + ")"; -} -}for (var i = 0; i < seqs.length; i++) { -var descr = seqs[i].getDescription (); -if (descr == null) { -continue; -}var pos = 0; -var added = false; -var reps = 0; -while ((repeat || pos == 0) && pattern.searchFrom (descr, pos)) { -pos = pattern.matchedTo (); -for (var cols = 0; cols < pattern.numSubs (); cols++) { -var sstring = pattern.stringMatchedI (cols + 1); -var score = NaN; -try { -score = new Double (sstring).doubleValue (); -} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -continue; -} else { -throw e; -} -} -var an = new jalview.datamodel.AlignmentAnnotation (ScoreNames[cols] + ((reps > 0) ? "_" + reps : ""), ScoreDescriptions[cols], null); -an.setScore (score); -System.out.println (seqs[i].getName () + " score: '" + ScoreNames[cols] + "' = " + score); -an.setSequenceRef (seqs[i]); -seqs[i].addAlignmentAnnotation (an); -this.al.addAnnotation (an); -added = true; -} -reps++; -} -if (added) { -count++; -}} -return count; -}, "~A,~A,~A,~S,~B"); -}); +Clazz.declarePackage ("jalview.analysis"); +Clazz.load (null, "jalview.analysis.ParseProperties", ["jalview.datamodel.AlignmentAnnotation", "jalview.jsdev.RegExp", "java.lang.Double"], function () { +c$ = Clazz.decorateAsClass (function () { +this.al = null; +Clazz.instantialize (this, arguments); +}, jalview.analysis, "ParseProperties"); +Clazz.makeConstructor (c$, +function (al) { +this.al = al; +}, "jalview.datamodel.AlignmentI"); +Clazz.defineMethod (c$, "getScoresFromDescription", +function (ScoreName, ScoreDescriptions, regex, repeat) { +return this.getScoresFromDescription ( Clazz.newArray (-1, [ScoreName]), Clazz.newArray (-1, [ScoreDescriptions]), regex, repeat); +}, "~S,~S,~S,~B"); +Clazz.defineMethod (c$, "getScoresFromDescription", +function (ScoreNames, ScoreDescriptions, regex, repeat) { +return this.getScoresFromDescription (this.al.getSequencesArray (), ScoreNames, ScoreDescriptions, regex, repeat); +}, "~A,~A,~S,~B"); +Clazz.defineMethod (c$, "getScoresFromDescription", +function (seqs, ScoreNames, ScoreDescriptions, regex, repeat) { +var count = 0; +var pattern = jalview.jsdev.RegExp.newRegex ([regex]); +if (pattern.numSubs () > ScoreNames.length) { +var onamelen = ScoreNames.length; +var tnames = new Array (pattern.numSubs () + 1); +System.arraycopy (ScoreNames, 0, tnames, 0, ScoreNames.length); +var base = tnames[ScoreNames.length - 1]; +ScoreNames = tnames; +var descrbase = ScoreDescriptions[onamelen - 1]; +if (descrbase == null) { +descrbase = "Score parsed from (" + regex + ")"; +}tnames = new Array (pattern.numSubs () + 1); +System.arraycopy (ScoreDescriptions, 0, tnames, 0, ScoreDescriptions.length); +ScoreDescriptions = tnames; +for (var i = onamelen; i < ScoreNames.length; i++) { +ScoreNames[i] = base + "_" + i; +ScoreDescriptions[i] = descrbase + " (column " + i + ")"; +} +}for (var i = 0; i < seqs.length; i++) { +var descr = seqs[i].getDescription (); +if (descr == null) { +continue; +}var pos = 0; +var added = false; +var reps = 0; +while ((repeat || pos == 0) && pattern.searchFrom (descr, pos)) { +pos = pattern.matchedTo (); +for (var cols = 0; cols < pattern.numSubs (); cols++) { +var sstring = pattern.stringMatchedI (cols + 1); +var score = NaN; +try { +score = new Double (sstring).doubleValue (); +} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +continue; +} else { +throw e; +} +} +var an = new jalview.datamodel.AlignmentAnnotation (ScoreNames[cols] + ((reps > 0) ? "_" + reps : ""), ScoreDescriptions[cols], null); +an.setScore (score); +System.out.println (seqs[i].getName () + " score: '" + ScoreNames[cols] + "' = " + score); +an.setSequenceRef (seqs[i]); +seqs[i].addAlignmentAnnotation (an); +this.al.addAnnotation (an); +added = true; +} +reps++; +} +if (added) { +count++; +}} +return count; +}, "~A,~A,~A,~S,~B"); +});