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