X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Fanalysis%2FSecStrConsensus.js;h=f96678ee6f0a0b69d0a620f03de74cb8e45ecf15;hp=44e1009426e8cfcc962e4a2eef345cf14c126e80;hb=7301a2415adab88038b291fc54caeeb3a5a47a44;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/analysis/SecStrConsensus.js b/bin/jalview/analysis/SecStrConsensus.js index 44e1009..f96678e 100644 --- a/bin/jalview/analysis/SecStrConsensus.js +++ b/bin/jalview/analysis/SecStrConsensus.js @@ -1,139 +1,139 @@ -Clazz.declarePackage ("jalview.analysis"); -Clazz.load (null, "jalview.analysis.SecStrConsensus", ["java.util.ArrayList", "$.Hashtable"], function () { -c$ = Clazz.declareType (jalview.analysis, "SecStrConsensus"); -c$.extractConsensus = Clazz.defineMethod (c$, "extractConsensus", -function (bps) { -var maxlength = 0; -for (var strs, $strs = bps.iterator (); $strs.hasNext () && ((strs = $strs.next ()) || true);) { -for (var bp, $bp = strs.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) { -maxlength = Math.max (1 + Math.max (bp.bp5, bp.bp3), maxlength); -} -} -var seq = new java.util.ArrayList (); -for (var i = 0; i < maxlength; i++) { -seq.add ( new java.util.Hashtable ()); -} -for (var strs, $strs = bps.iterator (); $strs.hasNext () && ((strs = $strs.next ()) || true);) { -for (var bp, $bp = strs.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) { -var i = bp.bp5; -var j = bp.bp3; -var h = seq.get (i); -if (!h.containsKey (new Integer (j))) { -h.put (new Integer (j), new Double (0.0)); -}h.put (new Integer (j), new Double ((h.get (new Integer (j))).doubleValue () + 1.)); -} -} -var mat = jalview.analysis.SecStrConsensus.fillMatrix (seq); -var res = jalview.analysis.SecStrConsensus.backtrack (mat, seq); -var finalres = Clazz.newIntArray (seq.size (), 0); -for (var i = 0; i < seq.size (); i++) { -finalres[i] = -1; -} -for (var bp, $bp = res.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) { -finalres[bp.bp5] = bp.bp3; -finalres[bp.bp3] = bp.bp5; -} -return finalres; -}, "java.util.ArrayList"); -c$.canBasePair = Clazz.defineMethod (c$, "canBasePair", -($fz = function (seq, i, k) { -return seq.get (i).containsKey (new Integer (k)); -}, $fz.isPrivate = true, $fz), "java.util.ArrayList,~N,~N"); -c$.basePairScore = Clazz.defineMethod (c$, "basePairScore", -($fz = function (seq, i, k) { -return seq.get (i).get (new Integer (k)); -}, $fz.isPrivate = true, $fz), "java.util.ArrayList,~N,~N"); -c$.fillMatrix = Clazz.defineMethod (c$, "fillMatrix", -($fz = function (seq) { -var n = seq.size (); -var tab = Clazz.newDoubleArray (n, n, 0); -for (var m = 1; m <= n; m++) { -for (var i = 0; i < n - m + 1; i++) { -var j = i + m - 1; -tab[i][j] = 0; -if (i < j) { -tab[i][j] = Math.max (tab[i][j], tab[i + 1][j]); -for (var k = i + 1; k <= j; k++) { -if (jalview.analysis.SecStrConsensus.canBasePair (seq, i, k)) { -var fact1 = 0; -if (k > i + 1) { -fact1 = tab[i + 1][k - 1]; -}var fact2 = 0; -if (k < j) { -fact2 = tab[k + 1][j]; -}tab[i][j] = Math.max (tab[i][j], jalview.analysis.SecStrConsensus.basePairScore (seq, i, k) + fact1 + fact2); -}} -}} -} -return tab; -}, $fz.isPrivate = true, $fz), "java.util.ArrayList"); -c$.backtrack = Clazz.defineMethod (c$, "backtrack", -($fz = function (tab, seq) { -return jalview.analysis.SecStrConsensus.backtrack (tab, seq, 0, seq.size () - 1); -}, $fz.isPrivate = true, $fz), "~A,java.util.ArrayList"); -c$.backtrack = Clazz.defineMethod (c$, "backtrack", -($fz = function (tab, seq, i, j) { -var result = new java.util.ArrayList (); -if (i < j) { -var indices = new java.util.ArrayList (); -indices.add (new Integer (-1)); -for (var k = i + 1; k <= j; k++) { -indices.add (new Integer (k)); -} -for (var k, $k = indices.iterator (); $k.hasNext () && ((k = $k.next ()) || true);) { -if (k == -1) { -if (tab[i][j] == tab[i + 1][j]) { -result = jalview.analysis.SecStrConsensus.backtrack (tab, seq, i + 1, j); -}} else { -if (jalview.analysis.SecStrConsensus.canBasePair (seq, i, k)) { -var fact1 = 0; -if (k > i + 1) { -fact1 = tab[i + 1][k - 1]; -}var fact2 = 0; -if (k < j) { -fact2 = tab[k + 1][j]; -}if (tab[i][j] == jalview.analysis.SecStrConsensus.basePairScore (seq, i, k) + fact1 + fact2) { -result = jalview.analysis.SecStrConsensus.backtrack (tab, seq, i + 1, k - 1); -result.addAll (jalview.analysis.SecStrConsensus.backtrack (tab, seq, k + 1, j)); -result.add ( new jalview.analysis.SecStrConsensus.SimpleBP (i, k)); -}}}} -} else if (i == j) { -} else { -}return result; -}, $fz.isPrivate = true, $fz), "~A,java.util.ArrayList,~N,~N"); -Clazz.pu$h (); -c$ = Clazz.decorateAsClass (function () { -this.bp5 = 0; -this.bp3 = 0; -Clazz.instantialize (this, arguments); -}, jalview.analysis.SecStrConsensus, "SimpleBP"); -Clazz.makeConstructor (c$, -function () { -}); -Clazz.makeConstructor (c$, -function (a, b) { -this.bp5 = a; -this.bp3 = b; -}, "~N,~N"); -Clazz.defineMethod (c$, "setBP5", -function (a) { -this.bp5 = a; -}, "~N"); -Clazz.defineMethod (c$, "setBP3", -function (a) { -this.bp3 = a; -}, "~N"); -Clazz.defineMethod (c$, "getBP5", -function () { -return this.bp5; -}); -Clazz.defineMethod (c$, "getBP3", -function () { -return this.bp3; -}); -Clazz.overrideMethod (c$, "toString", -function () { -return "(" + this.bp5 + "," + this.bp3 + ")"; -}); -c$ = Clazz.p0p (); -}); +Clazz.declarePackage ("jalview.analysis"); +Clazz.load (null, "jalview.analysis.SecStrConsensus", ["java.util.ArrayList", "$.Hashtable"], function () { +c$ = Clazz.declareType (jalview.analysis, "SecStrConsensus"); +c$.extractConsensus = Clazz.defineMethod (c$, "extractConsensus", +function (bps) { +var maxlength = 0; +for (var strs, $strs = bps.iterator (); $strs.hasNext () && ((strs = $strs.next ()) || true);) { +for (var bp, $bp = strs.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) { +maxlength = Math.max (1 + Math.max (bp.bp5, bp.bp3), maxlength); +} +} +var seq = new java.util.ArrayList (); +for (var i = 0; i < maxlength; i++) { +seq.add ( new java.util.Hashtable ()); +} +for (var strs, $strs = bps.iterator (); $strs.hasNext () && ((strs = $strs.next ()) || true);) { +for (var bp, $bp = strs.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) { +var i = bp.bp5; +var j = bp.bp3; +var h = seq.get (i); +if (!h.containsKey (new Integer (j))) { +h.put (new Integer (j), new Double (0.0)); +}h.put (new Integer (j), new Double ((h.get (new Integer (j))).doubleValue () + 1.)); +} +} +var mat = jalview.analysis.SecStrConsensus.fillMatrix (seq); +var res = jalview.analysis.SecStrConsensus.backtrack (mat, seq); +var finalres = Clazz.newIntArray (seq.size (), 0); +for (var i = 0; i < seq.size (); i++) { +finalres[i] = -1; +} +for (var bp, $bp = res.iterator (); $bp.hasNext () && ((bp = $bp.next ()) || true);) { +finalres[bp.bp5] = bp.bp3; +finalres[bp.bp3] = bp.bp5; +} +return finalres; +}, "java.util.ArrayList"); +c$.canBasePair = Clazz.defineMethod (c$, "canBasePair", +($fz = function (seq, i, k) { +return seq.get (i).containsKey (new Integer (k)); +}, $fz.isPrivate = true, $fz), "java.util.ArrayList,~N,~N"); +c$.basePairScore = Clazz.defineMethod (c$, "basePairScore", +($fz = function (seq, i, k) { +return seq.get (i).get (new Integer (k)); +}, $fz.isPrivate = true, $fz), "java.util.ArrayList,~N,~N"); +c$.fillMatrix = Clazz.defineMethod (c$, "fillMatrix", +($fz = function (seq) { +var n = seq.size (); +var tab = Clazz.newDoubleArray (n, n, 0); +for (var m = 1; m <= n; m++) { +for (var i = 0; i < n - m + 1; i++) { +var j = i + m - 1; +tab[i][j] = 0; +if (i < j) { +tab[i][j] = Math.max (tab[i][j], tab[i + 1][j]); +for (var k = i + 1; k <= j; k++) { +if (jalview.analysis.SecStrConsensus.canBasePair (seq, i, k)) { +var fact1 = 0; +if (k > i + 1) { +fact1 = tab[i + 1][k - 1]; +}var fact2 = 0; +if (k < j) { +fact2 = tab[k + 1][j]; +}tab[i][j] = Math.max (tab[i][j], jalview.analysis.SecStrConsensus.basePairScore (seq, i, k) + fact1 + fact2); +}} +}} +} +return tab; +}, $fz.isPrivate = true, $fz), "java.util.ArrayList"); +c$.backtrack = Clazz.defineMethod (c$, "backtrack", +($fz = function (tab, seq) { +return jalview.analysis.SecStrConsensus.backtrack (tab, seq, 0, seq.size () - 1); +}, $fz.isPrivate = true, $fz), "~A,java.util.ArrayList"); +c$.backtrack = Clazz.defineMethod (c$, "backtrack", +($fz = function (tab, seq, i, j) { +var result = new java.util.ArrayList (); +if (i < j) { +var indices = new java.util.ArrayList (); +indices.add (new Integer (-1)); +for (var k = i + 1; k <= j; k++) { +indices.add (new Integer (k)); +} +for (var k, $k = indices.iterator (); $k.hasNext () && ((k = $k.next ()) || true);) { +if (k == -1) { +if (tab[i][j] == tab[i + 1][j]) { +result = jalview.analysis.SecStrConsensus.backtrack (tab, seq, i + 1, j); +}} else { +if (jalview.analysis.SecStrConsensus.canBasePair (seq, i, k)) { +var fact1 = 0; +if (k > i + 1) { +fact1 = tab[i + 1][k - 1]; +}var fact2 = 0; +if (k < j) { +fact2 = tab[k + 1][j]; +}if (tab[i][j] == jalview.analysis.SecStrConsensus.basePairScore (seq, i, k) + fact1 + fact2) { +result = jalview.analysis.SecStrConsensus.backtrack (tab, seq, i + 1, k - 1); +result.addAll (jalview.analysis.SecStrConsensus.backtrack (tab, seq, k + 1, j)); +result.add ( new jalview.analysis.SecStrConsensus.SimpleBP (i, k)); +}}}} +} else if (i == j) { +} else { +}return result; +}, $fz.isPrivate = true, $fz), "~A,java.util.ArrayList,~N,~N"); +Clazz.pu$h (); +c$ = Clazz.decorateAsClass (function () { +this.bp5 = 0; +this.bp3 = 0; +Clazz.instantialize (this, arguments); +}, jalview.analysis.SecStrConsensus, "SimpleBP"); +Clazz.makeConstructor (c$, +function () { +}); +Clazz.makeConstructor (c$, +function (a, b) { +this.bp5 = a; +this.bp3 = b; +}, "~N,~N"); +Clazz.defineMethod (c$, "setBP5", +function (a) { +this.bp5 = a; +}, "~N"); +Clazz.defineMethod (c$, "setBP3", +function (a) { +this.bp3 = a; +}, "~N"); +Clazz.defineMethod (c$, "getBP5", +function () { +return this.bp5; +}); +Clazz.defineMethod (c$, "getBP3", +function () { +return this.bp3; +}); +Clazz.overrideMethod (c$, "toString", +function () { +return "(" + this.bp5 + "," + this.bp3 + ")"; +}); +c$ = Clazz.p0p (); +});