X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Futil%2FComparison.js;h=29499bb53ad547f60856379efc832f659495e8af;hp=e46a616ee33a8c03b1cfe2247cd22683829def9c;hb=8ffd05b3abe52c0b6b79b011c0966361f82d5fe6;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/util/Comparison.js b/bin/jalview/util/Comparison.js index e46a616..29499bb 100644 --- a/bin/jalview/util/Comparison.js +++ b/bin/jalview/util/Comparison.js @@ -1,131 +1,131 @@ -Clazz.declarePackage ("jalview.util"); -Clazz.load (null, "jalview.util.Comparison", ["java.util.ArrayList"], function () { -c$ = Clazz.declareType (jalview.util, "Comparison"); -c$.compare = Clazz.defineMethod (c$, "compare", -function (ii, jj) { -return jalview.util.Comparison.compare (ii, jj, 0, ii.getLength () - 1); -}, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI"); -c$.compare = Clazz.defineMethod (c$, "compare", -function (ii, jj, start, end) { -var si = ii.getSequenceAsString (); -var sj = jj.getSequenceAsString (); -var ilen = si.length - 1; -var jlen = sj.length - 1; -while (jalview.util.Comparison.isGap (si.charAt (start + ilen))) { -ilen--; -} -while (jalview.util.Comparison.isGap (sj.charAt (start + jlen))) { -jlen--; -} -var count = 0; -var match = 0; -var pid = -1; -if (ilen > jlen) { -for (var j = 0; j < jlen; j++) { -if (si.substring (start + j, start + j + 1).equals (sj.substring (start + j, start + j + 1))) { -match++; -}count++; -} -pid = match / ilen * 100; -} else { -for (var j = 0; j < jlen; j++) { -if (si.substring (start + j, start + j + 1).equals (sj.substring (start + j, start + j + 1))) { -match++; -}count++; -} -pid = match / jlen * 100; -}return pid; -}, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI,~N,~N"); -c$.PID = Clazz.defineMethod (c$, "PID", -function (seq1, seq2) { -return jalview.util.Comparison.PID (seq1, seq2, 0, seq1.length); -}, "~S,~S"); -c$.PID = Clazz.defineMethod (c$, "PID", -function (seq1, seq2, start, end) { -return jalview.util.Comparison.PID (seq1, seq2, start, end, true, false); -}, "~S,~S,~N,~N"); -c$.PID = Clazz.defineMethod (c$, "PID", -function (seq1, seq2, start, end, wcGaps, ungappedOnly) { -var s1len = seq1.length; -var s2len = seq2.length; -var len = Math.min (s1len, s2len); -if (end < len) { -len = end; -}if (len < start) { -start = len - 1; -}var elen = len - start; -var bad = 0; -var chr1; -var chr2; -var agap; -for (var i = start; i < len; i++) { -chr1 = seq1.charAt (i); -chr2 = seq2.charAt (i); -agap = jalview.util.Comparison.isGap (chr1) || jalview.util.Comparison.isGap (chr2); -if ('a' <= chr1 && chr1 <= 'z') { -chr1 = String.fromCharCode (chr1.charCodeAt (0) - 32); -}if ('a' <= chr2 && chr2 <= 'z') { -chr2 = String.fromCharCode (chr2.charCodeAt (0) - 32); -}if (chr1 != chr2) { -if (agap) { -if (ungappedOnly) { -elen--; -} else if (!wcGaps) { -bad++; -}} else { -bad++; -}}} -if (elen < 1) { -return 0; -}return (100 * (elen - bad)) / elen; -}, "~S,~S,~N,~N,~B,~B"); -c$.isGap = Clazz.defineMethod (c$, "isGap", -function (c) { -return (c == '-' || c == '.' || c == ' ') ? true : false; -}, "~S"); -c$.isNucleotide = Clazz.defineMethod (c$, "isNucleotide", -function (seqs) { -if (seqs == null) { -return false; -}var ntCount = 0; -var aaCount = 0; -for (var seq, $seq = 0, $$seq = seqs; $seq < $$seq.length && ((seq = $$seq[$seq]) || true); $seq++) { -if (seq == null) { -continue; -}for (var c, $c = 0, $$c = seq.getSequence (); $c < $$c.length && ((c = $$c[$c]) || true); $c++) { -if ('a' <= c && c <= 'z') { -c = String.fromCharCode (c.charCodeAt (0) - 32); -}if (c == 'A' || c == 'G' || c == 'C' || c == 'T' || c == 'U') { -ntCount++; -} else if (!jalview.util.Comparison.isGap (c)) { -aaCount++; -}} -} -if (ntCount * 100 > 85 * (ntCount + aaCount)) { -return true; -} else { -return false; -}}, "~A"); -c$.isNucleotide2 = Clazz.defineMethod (c$, "isNucleotide2", -function (seqs) { -if (seqs == null) { -return false; -}var flattened = new java.util.ArrayList (); -for (var ss, $ss = 0, $$ss = seqs; $ss < $$ss.length && ((ss = $$ss[$ss]) || true); $ss++) { -for (var s, $s = 0, $$s = ss; $s < $$s.length && ((s = $$s[$s]) || true); $s++) { -flattened.add (s); -} -} -var oneDArray = flattened.toArray ( new Array (flattened.size ())); -return jalview.util.Comparison.isNucleotide (oneDArray); -}, "~A"); -Clazz.defineStatics (c$, -"EIGHTY_FIVE", 85, -"TO_UPPER_CASE", 32, -"GAP_SPACE", ' ', -"GAP_DOT", '.', -"GAP_DASH", '-'); -c$.GapChars = c$.prototype.GapChars = String.instantialize ( Clazz.newCharArray (-1, [' ', '.', '-'])); -Clazz.defineStatics (c$, -"caseShift", 32); -}); +Clazz.declarePackage ("jalview.util"); +Clazz.load (null, "jalview.util.Comparison", ["java.util.ArrayList"], function () { +c$ = Clazz.declareType (jalview.util, "Comparison"); +c$.compare = Clazz.defineMethod (c$, "compare", +function (ii, jj) { +return jalview.util.Comparison.compare (ii, jj, 0, ii.getLength () - 1); +}, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI"); +c$.compare = Clazz.defineMethod (c$, "compare", +function (ii, jj, start, end) { +var si = ii.getSequenceAsString (); +var sj = jj.getSequenceAsString (); +var ilen = si.length - 1; +var jlen = sj.length - 1; +while (jalview.util.Comparison.isGap (si.charAt (start + ilen))) { +ilen--; +} +while (jalview.util.Comparison.isGap (sj.charAt (start + jlen))) { +jlen--; +} +var count = 0; +var match = 0; +var pid = -1; +if (ilen > jlen) { +for (var j = 0; j < jlen; j++) { +if (si.substring (start + j, start + j + 1).equals (sj.substring (start + j, start + j + 1))) { +match++; +}count++; +} +pid = match / ilen * 100; +} else { +for (var j = 0; j < jlen; j++) { +if (si.substring (start + j, start + j + 1).equals (sj.substring (start + j, start + j + 1))) { +match++; +}count++; +} +pid = match / jlen * 100; +}return pid; +}, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI,~N,~N"); +c$.PID = Clazz.defineMethod (c$, "PID", +function (seq1, seq2) { +return jalview.util.Comparison.PID (seq1, seq2, 0, seq1.length); +}, "~S,~S"); +c$.PID = Clazz.defineMethod (c$, "PID", +function (seq1, seq2, start, end) { +return jalview.util.Comparison.PID (seq1, seq2, start, end, true, false); +}, "~S,~S,~N,~N"); +c$.PID = Clazz.defineMethod (c$, "PID", +function (seq1, seq2, start, end, wcGaps, ungappedOnly) { +var s1len = seq1.length; +var s2len = seq2.length; +var len = Math.min (s1len, s2len); +if (end < len) { +len = end; +}if (len < start) { +start = len - 1; +}var elen = len - start; +var bad = 0; +var chr1; +var chr2; +var agap; +for (var i = start; i < len; i++) { +chr1 = seq1.charAt (i); +chr2 = seq2.charAt (i); +agap = jalview.util.Comparison.isGap (chr1) || jalview.util.Comparison.isGap (chr2); +if ('a' <= chr1 && chr1 <= 'z') { +chr1 = String.fromCharCode (chr1.charCodeAt (0) - 32); +}if ('a' <= chr2 && chr2 <= 'z') { +chr2 = String.fromCharCode (chr2.charCodeAt (0) - 32); +}if (chr1 != chr2) { +if (agap) { +if (ungappedOnly) { +elen--; +} else if (!wcGaps) { +bad++; +}} else { +bad++; +}}} +if (elen < 1) { +return 0; +}return (100 * (elen - bad)) / elen; +}, "~S,~S,~N,~N,~B,~B"); +c$.isGap = Clazz.defineMethod (c$, "isGap", +function (c) { +return (c == '-' || c == '.' || c == ' ') ? true : false; +}, "~S"); +c$.isNucleotide = Clazz.defineMethod (c$, "isNucleotide", +function (seqs) { +if (seqs == null) { +return false; +}var ntCount = 0; +var aaCount = 0; +for (var seq, $seq = 0, $$seq = seqs; $seq < $$seq.length && ((seq = $$seq[$seq]) || true); $seq++) { +if (seq == null) { +continue; +}for (var c, $c = 0, $$c = seq.getSequence (); $c < $$c.length && ((c = $$c[$c]) || true); $c++) { +if ('a' <= c && c <= 'z') { +c = String.fromCharCode (c.charCodeAt (0) - 32); +}if (c == 'A' || c == 'G' || c == 'C' || c == 'T' || c == 'U') { +ntCount++; +} else if (!jalview.util.Comparison.isGap (c)) { +aaCount++; +}} +} +if (ntCount * 100 > 85 * (ntCount + aaCount)) { +return true; +} else { +return false; +}}, "~A"); +c$.isNucleotide2 = Clazz.defineMethod (c$, "isNucleotide2", +function (seqs) { +if (seqs == null) { +return false; +}var flattened = new java.util.ArrayList (); +for (var ss, $ss = 0, $$ss = seqs; $ss < $$ss.length && ((ss = $$ss[$ss]) || true); $ss++) { +for (var s, $s = 0, $$s = ss; $s < $$s.length && ((s = $$s[$s]) || true); $s++) { +flattened.add (s); +} +} +var oneDArray = flattened.toArray ( new Array (flattened.size ())); +return jalview.util.Comparison.isNucleotide (oneDArray); +}, "~A"); +Clazz.defineStatics (c$, +"EIGHTY_FIVE", 85, +"TO_UPPER_CASE", 32, +"GAP_SPACE", ' ', +"GAP_DOT", '.', +"GAP_DASH", '-'); +c$.GapChars = c$.prototype.GapChars = String.instantialize ( Clazz.newCharArray (-1, [' ', '.', '-'])); +Clazz.defineStatics (c$, +"caseShift", 32); +});