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