1 Clazz.declarePackage ("jalview.analysis");
2 Clazz.load (null, "jalview.analysis.ParseProperties", ["jalview.datamodel.AlignmentAnnotation", "jalview.jsdev.RegExp", "java.lang.Double"], function () {
3 c$ = Clazz.decorateAsClass (function () {
5 Clazz.instantialize (this, arguments);
6 }, jalview.analysis, "ParseProperties");
7 Clazz.makeConstructor (c$,
10 }, "jalview.datamodel.AlignmentI");
11 Clazz.defineMethod (c$, "getScoresFromDescription",
12 function (ScoreName, ScoreDescriptions, regex, repeat) {
13 return this.getScoresFromDescription ( Clazz.newArray (-1, [ScoreName]), Clazz.newArray (-1, [ScoreDescriptions]), regex, repeat);
15 Clazz.defineMethod (c$, "getScoresFromDescription",
16 function (ScoreNames, ScoreDescriptions, regex, repeat) {
17 return this.getScoresFromDescription (this.al.getSequencesArray (), ScoreNames, ScoreDescriptions, regex, repeat);
19 Clazz.defineMethod (c$, "getScoresFromDescription",
20 function (seqs, ScoreNames, ScoreDescriptions, regex, repeat) {
22 var pattern = jalview.jsdev.RegExp.newRegex ([regex]);
23 if (pattern.numSubs () > ScoreNames.length) {
24 var onamelen = ScoreNames.length;
25 var tnames = new Array (pattern.numSubs () + 1);
26 System.arraycopy (ScoreNames, 0, tnames, 0, ScoreNames.length);
27 var base = tnames[ScoreNames.length - 1];
29 var descrbase = ScoreDescriptions[onamelen - 1];
30 if (descrbase == null) {
31 descrbase = "Score parsed from (" + regex + ")";
32 }tnames = new Array (pattern.numSubs () + 1);
33 System.arraycopy (ScoreDescriptions, 0, tnames, 0, ScoreDescriptions.length);
34 ScoreDescriptions = tnames;
35 for (var i = onamelen; i < ScoreNames.length; i++) {
36 ScoreNames[i] = base + "_" + i;
37 ScoreDescriptions[i] = descrbase + " (column " + i + ")";
39 }for (var i = 0; i < seqs.length; i++) {
40 var descr = seqs[i].getDescription ();
46 while ((repeat || pos == 0) && pattern.searchFrom (descr, pos)) {
47 pos = pattern.matchedTo ();
48 for (var cols = 0; cols < pattern.numSubs (); cols++) {
49 var sstring = pattern.stringMatchedI (cols + 1);
52 score = new Double (sstring).doubleValue ();
54 if (Clazz.exceptionOf (e, Exception)) {
60 var an = new jalview.datamodel.AlignmentAnnotation (ScoreNames[cols] + ((reps > 0) ? "_" + reps : ""), ScoreDescriptions[cols], null);
62 System.out.println (seqs[i].getName () + " score: '" + ScoreNames[cols] + "' = " + score);
63 an.setSequenceRef (seqs[i]);
64 seqs[i].addAlignmentAnnotation (an);
65 this.al.addAnnotation (an);