X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Fanalysis%2Fscoremodels%2FFeatureScoreModel.js;h=7e483bdf011f5cb297aa8c736d905e68ece02949;hp=3e8e57d4fd4bfaeb065856004aff8366cb712a0a;hb=8ffd05b3abe52c0b6b79b011c0966361f82d5fe6;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/analysis/scoremodels/FeatureScoreModel.js b/bin/jalview/analysis/scoremodels/FeatureScoreModel.js index 3e8e57d..7e483bd 100644 --- a/bin/jalview/analysis/scoremodels/FeatureScoreModel.js +++ b/bin/jalview/analysis/scoremodels/FeatureScoreModel.js @@ -1,86 +1,86 @@ -Clazz.declarePackage ("jalview.analysis.scoremodels"); -Clazz.load (["jalview.api.analysis.ScoreModelI", "$.ViewBasedAnalysisI"], "jalview.analysis.scoremodels.FeatureScoreModel", ["jalview.util.Comparison", "java.util.ArrayList", "$.Arrays", "$.Hashtable"], function () { -c$ = Clazz.decorateAsClass (function () { -this.fr = null; -Clazz.instantialize (this, arguments); -}, jalview.analysis.scoremodels, "FeatureScoreModel", null, [jalview.api.analysis.ScoreModelI, jalview.api.analysis.ViewBasedAnalysisI]); -Clazz.overrideMethod (c$, "configureFromAlignmentView", -function (view) { -this.fr = view.cloneFeatureRenderer (); -return true; -}, "jalview.api.AlignmentViewPanel"); -Clazz.overrideMethod (c$, "findDistances", -function (seqData) { -var nofeats = 0; -var dft = java.util.Arrays.asList (this.fr.getDisplayedFeatureTypes ()); -if (dft != null) { -nofeats = dft.size (); -}var sequenceString = seqData.getVisibleAlignment (jalview.util.Comparison.GapChars.charAt (0)).getSequencesArray (); -var noseqs = sequenceString.length; -var cpwidth = seqData.getWidth (); -var distance = Clazz.newFloatArray (noseqs, noseqs, 0); -if (nofeats == 0) { -for (var d, $d = 0, $$d = distance; $d < $$d.length && ((d = $$d[$d]) || true); $d++) { -for (var i = 0; i < d.length; d[i++] = 0) { -;} -} -return distance; -}var max = 0; -for (var cpos = 0; cpos < cpwidth; cpos++) { -var sfap = new java.util.ArrayList (); -for (var i = 0; i < noseqs; i++) { -var types = new java.util.Hashtable (); -var sfs = this.fr.findFeaturesAtRes (sequenceString[i], sequenceString[i].findPosition (cpos)); -for (var sf, $sf = sfs.iterator (); $sf.hasNext () && ((sf = $sf.next ()) || true);) { -types.put (sf.getType (), sf); -} -sfap.add (types); -} -for (var i = 0; i < (noseqs - 1); i++) { -if (cpos == 0) { -distance[i][i] = 0; -}for (var j = i + 1; j < noseqs; j++) { -var sfcommon = 0; -var fi = sfap.get (i); -var fk; -var fj = sfap.get (j); -if (fi.size () > fj.size ()) { -fk = fj; -} else { -fk = fi; -fi = fj; -}for (var k, $k = fi.keySet ().iterator (); $k.hasNext () && ((k = $k.next ()) || true);) { -var sfj = fk.get (k); -if (sfj != null) { -sfcommon++; -}} -distance[i][j] += (fi.size () + fk.size () - 2 * sfcommon); -distance[j][i] += distance[i][j]; -} -} -} -for (var i = 0; i < noseqs; i++) { -for (var j = i + 1; j < noseqs; j++) { -distance[i][j] /= cpwidth; -distance[j][i] = distance[i][j]; -} -} -return distance; -}, "jalview.datamodel.AlignmentView"); -Clazz.overrideMethod (c$, "getName", -function () { -return "Sequence Feature Similarity"; -}); -Clazz.overrideMethod (c$, "isDNA", -function () { -return true; -}); -Clazz.overrideMethod (c$, "isProtein", -function () { -return true; -}); -Clazz.overrideMethod (c$, "toString", -function () { -return "Score between sequences based on hamming distance between binary vectors marking features displayed at each column"; -}); -}); +Clazz.declarePackage ("jalview.analysis.scoremodels"); +Clazz.load (["jalview.api.analysis.ScoreModelI", "$.ViewBasedAnalysisI"], "jalview.analysis.scoremodels.FeatureScoreModel", ["jalview.util.Comparison", "java.util.ArrayList", "$.Arrays", "$.Hashtable"], function () { +c$ = Clazz.decorateAsClass (function () { +this.fr = null; +Clazz.instantialize (this, arguments); +}, jalview.analysis.scoremodels, "FeatureScoreModel", null, [jalview.api.analysis.ScoreModelI, jalview.api.analysis.ViewBasedAnalysisI]); +Clazz.overrideMethod (c$, "configureFromAlignmentView", +function (view) { +this.fr = view.cloneFeatureRenderer (); +return true; +}, "jalview.api.AlignmentViewPanel"); +Clazz.overrideMethod (c$, "findDistances", +function (seqData) { +var nofeats = 0; +var dft = java.util.Arrays.asList (this.fr.getDisplayedFeatureTypes ()); +if (dft != null) { +nofeats = dft.size (); +}var sequenceString = seqData.getVisibleAlignment (jalview.util.Comparison.GapChars.charAt (0)).getSequencesArray (); +var noseqs = sequenceString.length; +var cpwidth = seqData.getWidth (); +var distance = Clazz.newFloatArray (noseqs, noseqs, 0); +if (nofeats == 0) { +for (var d, $d = 0, $$d = distance; $d < $$d.length && ((d = $$d[$d]) || true); $d++) { +for (var i = 0; i < d.length; d[i++] = 0) { +;} +} +return distance; +}var max = 0; +for (var cpos = 0; cpos < cpwidth; cpos++) { +var sfap = new java.util.ArrayList (); +for (var i = 0; i < noseqs; i++) { +var types = new java.util.Hashtable (); +var sfs = this.fr.findFeaturesAtRes (sequenceString[i], sequenceString[i].findPosition (cpos)); +for (var sf, $sf = sfs.iterator (); $sf.hasNext () && ((sf = $sf.next ()) || true);) { +types.put (sf.getType (), sf); +} +sfap.add (types); +} +for (var i = 0; i < (noseqs - 1); i++) { +if (cpos == 0) { +distance[i][i] = 0; +}for (var j = i + 1; j < noseqs; j++) { +var sfcommon = 0; +var fi = sfap.get (i); +var fk; +var fj = sfap.get (j); +if (fi.size () > fj.size ()) { +fk = fj; +} else { +fk = fi; +fi = fj; +}for (var k, $k = fi.keySet ().iterator (); $k.hasNext () && ((k = $k.next ()) || true);) { +var sfj = fk.get (k); +if (sfj != null) { +sfcommon++; +}} +distance[i][j] += (fi.size () + fk.size () - 2 * sfcommon); +distance[j][i] += distance[i][j]; +} +} +} +for (var i = 0; i < noseqs; i++) { +for (var j = i + 1; j < noseqs; j++) { +distance[i][j] /= cpwidth; +distance[j][i] = distance[i][j]; +} +} +return distance; +}, "jalview.datamodel.AlignmentView"); +Clazz.overrideMethod (c$, "getName", +function () { +return "Sequence Feature Similarity"; +}); +Clazz.overrideMethod (c$, "isDNA", +function () { +return true; +}); +Clazz.overrideMethod (c$, "isProtein", +function () { +return true; +}); +Clazz.overrideMethod (c$, "toString", +function () { +return "Score between sequences based on hamming distance between binary vectors marking features displayed at each column"; +}); +});