1 Clazz.declarePackage ("jalview.analysis");
2 Clazz.load (null, "jalview.analysis.SecStrConsensus", ["java.util.ArrayList", "$.Hashtable"], function () {
3 c$ = Clazz.declareType (jalview.analysis, "SecStrConsensus");
4 c$.extractConsensus = Clazz.defineMethod (c$, "extractConsensus",
7 for (var strs, $strs = bps.iterator (); $strs.hasNext () && ((strs = $strs.next ()) || true);) {
8 for (var bp, $bp = strs.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) {
9 maxlength = Math.max (1 + Math.max (bp.bp5, bp.bp3), maxlength);
12 var seq = new java.util.ArrayList ();
13 for (var i = 0; i < maxlength; i++) {
14 seq.add ( new java.util.Hashtable ());
16 for (var strs, $strs = bps.iterator (); $strs.hasNext () && ((strs = $strs.next ()) || true);) {
17 for (var bp, $bp = strs.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) {
21 if (!h.containsKey (new Integer (j))) {
22 h.put (new Integer (j), new Double (0.0));
23 }h.put (new Integer (j), new Double ((h.get (new Integer (j))).doubleValue () + 1.));
26 var mat = jalview.analysis.SecStrConsensus.fillMatrix (seq);
27 var res = jalview.analysis.SecStrConsensus.backtrack (mat, seq);
28 var finalres = Clazz.newIntArray (seq.size (), 0);
29 for (var i = 0; i < seq.size (); i++) {
32 for (var bp, $bp = res.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) {
33 finalres[bp.bp5] = bp.bp3;
34 finalres[bp.bp3] = bp.bp5;
37 }, "java.util.ArrayList");
38 c$.canBasePair = Clazz.defineMethod (c$, "canBasePair",
39 function (seq, i, k) {
40 return seq.get (i).containsKey (new Integer (k));
41 }, "java.util.ArrayList,~N,~N");
42 c$.basePairScore = Clazz.defineMethod (c$, "basePairScore",
43 function (seq, i, k) {
44 return seq.get (i).get (new Integer (k));
45 }, "java.util.ArrayList,~N,~N");
46 c$.fillMatrix = Clazz.defineMethod (c$, "fillMatrix",
49 var tab = Clazz.newDoubleArray (n, n, 0);
50 for (var m = 1; m <= n; m++) {
51 for (var i = 0; i < n - m + 1; i++) {
55 tab[i][j] = Math.max (tab[i][j], tab[i + 1][j]);
56 for (var k = i + 1; k <= j; k++) {
57 if (jalview.analysis.SecStrConsensus.canBasePair (seq, i, k)) {
60 fact1 = tab[i + 1][k - 1];
63 fact2 = tab[k + 1][j];
64 }tab[i][j] = Math.max (tab[i][j], jalview.analysis.SecStrConsensus.basePairScore (seq, i, k) + fact1 + fact2);
69 }, "java.util.ArrayList");
70 c$.backtrack = Clazz.defineMethod (c$, "backtrack",
72 return jalview.analysis.SecStrConsensus.backtrack (tab, seq, 0, seq.size () - 1);
73 }, "~A,java.util.ArrayList");
74 c$.backtrack = Clazz.defineMethod (c$, "backtrack",
75 function (tab, seq, i, j) {
76 var result = new java.util.ArrayList ();
78 var indices = new java.util.ArrayList ();
79 indices.add (new Integer (-1));
80 for (var k = i + 1; k <= j; k++) {
81 indices.add (new Integer (k));
83 for (var k, $k = indices.iterator (); $k.hasNext () && ((k = $k.next ()) || true);) {
85 if (tab[i][j] == tab[i + 1][j]) {
86 result = jalview.analysis.SecStrConsensus.backtrack (tab, seq, i + 1, j);
88 if (jalview.analysis.SecStrConsensus.canBasePair (seq, i, k)) {
91 fact1 = tab[i + 1][k - 1];
94 fact2 = tab[k + 1][j];
95 }if (tab[i][j] == jalview.analysis.SecStrConsensus.basePairScore (seq, i, k) + fact1 + fact2) {
96 result = jalview.analysis.SecStrConsensus.backtrack (tab, seq, i + 1, k - 1);
97 result.addAll (jalview.analysis.SecStrConsensus.backtrack (tab, seq, k + 1, j));
98 result.add ( new jalview.analysis.SecStrConsensus.SimpleBP (i, k));
103 }, "~A,java.util.ArrayList,~N,~N");
105 c$ = Clazz.decorateAsClass (function () {
108 Clazz.instantialize (this, arguments);
109 }, jalview.analysis.SecStrConsensus, "SimpleBP");
110 Clazz.makeConstructor (c$,
113 Clazz.makeConstructor (c$,
118 Clazz.defineMethod (c$, "setBP5",
122 Clazz.defineMethod (c$, "setBP3",
126 Clazz.defineMethod (c$, "getBP5",
130 Clazz.defineMethod (c$, "getBP3",
134 Clazz.overrideMethod (c$, "toString",
136 return "(" + this.bp5 + "," + this.bp3 + ")";