1 Clazz.declarePackage ("jalview.util");
2 Clazz.load (null, "jalview.util.Comparison", ["java.util.ArrayList"], function () {
3 c$ = Clazz.declareType (jalview.util, "Comparison");
4 c$.compare = Clazz.defineMethod (c$, "compare",
6 return jalview.util.Comparison.compare (ii, jj, 0, ii.getLength () - 1);
7 }, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI");
8 c$.compare = Clazz.defineMethod (c$, "compare",
9 function (ii, jj, start, end) {
10 var si = ii.getSequenceAsString ();
11 var sj = jj.getSequenceAsString ();
12 var ilen = si.length - 1;
13 var jlen = sj.length - 1;
14 while (jalview.util.Comparison.isGap (si.charAt (start + ilen))) {
17 while (jalview.util.Comparison.isGap (sj.charAt (start + jlen))) {
24 for (var j = 0; j < jlen; j++) {
25 if (si.substring (start + j, start + j + 1).equals (sj.substring (start + j, start + j + 1))) {
29 pid = match / ilen * 100;
31 for (var j = 0; j < jlen; j++) {
32 if (si.substring (start + j, start + j + 1).equals (sj.substring (start + j, start + j + 1))) {
36 pid = match / jlen * 100;
38 }, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI,~N,~N");
39 c$.PID = Clazz.defineMethod (c$, "PID",
40 function (seq1, seq2) {
41 return jalview.util.Comparison.PID (seq1, seq2, 0, seq1.length);
43 c$.PID = Clazz.defineMethod (c$, "PID",
44 function (seq1, seq2, start, end) {
45 return jalview.util.Comparison.PID (seq1, seq2, start, end, true, false);
47 c$.PID = Clazz.defineMethod (c$, "PID",
48 function (seq1, seq2, start, end, wcGaps, ungappedOnly) {
49 var s1len = seq1.length;
50 var s2len = seq2.length;
51 var len = Math.min (s1len, s2len);
56 }var elen = len - start;
61 for (var i = start; i < len; i++) {
62 chr1 = seq1.charAt (i);
63 chr2 = seq2.charAt (i);
64 agap = jalview.util.Comparison.isGap (chr1) || jalview.util.Comparison.isGap (chr2);
65 if ('a' <= chr1 && chr1 <= 'z') {
66 chr1 = String.fromCharCode (chr1.charCodeAt (0) - 32);
67 }if ('a' <= chr2 && chr2 <= 'z') {
68 chr2 = String.fromCharCode (chr2.charCodeAt (0) - 32);
80 }return (100 * (elen - bad)) / elen;
81 }, "~S,~S,~N,~N,~B,~B");
82 c$.isGap = Clazz.defineMethod (c$, "isGap",
84 return (c == '-' || c == '.' || c == ' ') ? true : false;
86 c$.isNucleotide = Clazz.defineMethod (c$, "isNucleotide",
92 for (var seq, $seq = 0, $$seq = seqs; $seq < $$seq.length && ((seq = $$seq[$seq]) || true); $seq++) {
95 }for (var c, $c = 0, $$c = seq.getSequence (); $c < $$c.length && ((c = $$c[$c]) || true); $c++) {
96 if ('a' <= c && c <= 'z') {
97 c = String.fromCharCode (c.charCodeAt (0) - 32);
98 }if (c == 'A' || c == 'G' || c == 'C' || c == 'T' || c == 'U') {
100 } else if (!jalview.util.Comparison.isGap (c)) {
104 if (ntCount * 100 > 85 * (ntCount + aaCount)) {
109 c$.isNucleotide2 = Clazz.defineMethod (c$, "isNucleotide2",
113 }var flattened = new java.util.ArrayList ();
114 for (var ss, $ss = 0, $$ss = seqs; $ss < $$ss.length && ((ss = $$ss[$ss]) || true); $ss++) {
115 for (var s, $s = 0, $$s = ss; $s < $$s.length && ((s = $$s[$s]) || true); $s++) {
119 var oneDArray = flattened.toArray ( new Array (flattened.size ()));
120 return jalview.util.Comparison.isNucleotide (oneDArray);
122 Clazz.defineStatics (c$,
128 c$.GapChars = c$.prototype.GapChars = String.instantialize ( Clazz.newCharArray (-1, [' ', '.', '-']));
129 Clazz.defineStatics (c$,