X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Fanalysis%2FSeqsetUtils.js;h=f8914e1f54f6c8c9b678284f11c86ee0340c1afd;hp=a93feddbba12664203699a62303c8d10e157c95e;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=8ffd05b3abe52c0b6b79b011c0966361f82d5fe6 diff --git a/site/j2s/jalview/analysis/SeqsetUtils.js b/site/j2s/jalview/analysis/SeqsetUtils.js index a93fedd..f8914e1 100644 --- a/site/j2s/jalview/analysis/SeqsetUtils.js +++ b/site/j2s/jalview/analysis/SeqsetUtils.js @@ -1,124 +1,124 @@ -Clazz.declarePackage ("jalview.analysis"); -Clazz.load (null, "jalview.analysis.SeqsetUtils", ["jalview.analysis.AlignSeq", "$.SequenceIdMatcher", "jalview.datamodel.Sequence", "jalview.util.Comparison", "java.util.Hashtable", "$.Vector"], function () { -c$ = Clazz.declareType (jalview.analysis, "SeqsetUtils"); -c$.SeqCharacterHash = Clazz.defineMethod (c$, "SeqCharacterHash", -function (seq) { -var sqinfo = new java.util.Hashtable (); -sqinfo.put ("Name", seq.getName ()); -sqinfo.put ("Start", new Integer (seq.getStart ())); -sqinfo.put ("End", new Integer (seq.getEnd ())); -if (seq.getDescription () != null) { -sqinfo.put ("Description", seq.getDescription ()); -}var sfeat = new java.util.Vector (); -var sfarray = seq.getSequenceFeatures (); -if (sfarray != null && sfarray.length > 0) { -for (var i = 0; i < sfarray.length; i++) { -sfeat.addElement (sfarray[i]); -} -}sqinfo.put ("SeqFeatures", sfeat); -sqinfo.put ("PdbId", (seq.getPDBId () != null) ? seq.getPDBId () : new java.util.Vector ()); -sqinfo.put ("datasetSequence", (seq.getDatasetSequence () != null) ? seq.getDatasetSequence () : new jalview.datamodel.Sequence ("THISISAPLACEHOLDER", "")); -return sqinfo; -}, "jalview.datamodel.SequenceI"); -c$.SeqCharacterUnhash = Clazz.defineMethod (c$, "SeqCharacterUnhash", -function (sq, sqinfo) { -var namePresent = true; -if (sqinfo == null) { -return false; -}var oldname = sqinfo.get ("Name"); -var start = sqinfo.get ("Start"); -var end = sqinfo.get ("End"); -var sfeatures = sqinfo.get ("SeqFeatures"); -var pdbid = sqinfo.get ("PdbId"); -var description = sqinfo.get ("Description"); -var seqds = sqinfo.get ("datasetSequence"); -if (oldname == null) { -namePresent = false; -} else { -sq.setName (oldname); -}if (pdbid != null && pdbid.size () > 0) { -sq.setPDBId (pdbid); -}if ((start != null) && (end != null)) { -sq.setStart (start.intValue ()); -sq.setEnd (end.intValue ()); -}if ((sfeatures != null) && (sfeatures.size () > 0)) { -var sfarray = new Array (sfeatures.size ()); -for (var is = 0, isize = sfeatures.size (); is < isize; is++) { -sfarray[is] = sfeatures.elementAt (is); -} -sq.setSequenceFeatures (sfarray); -}if (description != null) { -sq.setDescription (description); -}if ((seqds != null) && !(seqds.getName ().equals ("THISISAPLACEHOLDER") && seqds.getLength () == 0)) { -sq.setDatasetSequence (seqds); -}return namePresent; -}, "jalview.datamodel.SequenceI,java.util.Hashtable"); -c$.unique_name = Clazz.defineMethod (c$, "unique_name", -function (i) { -return String.instantialize ("Sequence" + i); -}, "~N"); -c$.uniquify = Clazz.defineMethod (c$, "uniquify", -function (sequences, write_names) { -var map = new java.util.Hashtable (); -for (var i = 0; i < sequences.length; i++) { -var safename = jalview.analysis.SeqsetUtils.unique_name (i); -map.put (safename, jalview.analysis.SeqsetUtils.SeqCharacterHash (sequences[i])); -if (write_names) { -sequences[i].setName (safename); -}} -return map; -}, "~A,~B"); -c$.deuniquify = Clazz.defineMethod (c$, "deuniquify", -function (map, sequences) { -return jalview.analysis.SeqsetUtils.deuniquify (map, sequences, true); -}, "java.util.Hashtable,~A"); -c$.deuniquify = Clazz.defineMethod (c$, "deuniquify", -function (map, sequences, quiet) { -var matcher = new jalview.analysis.SequenceIdMatcher (sequences); -var msq = null; -var keys = map.keys (); -var unmatched = new java.util.Vector (); -for (var i = 0, j = sequences.length; i < j; i++) { -unmatched.addElement (sequences[i]); -} -while (keys.hasMoreElements ()) { -var key = keys.nextElement (); -if (Clazz.instanceOf (key, String)) { -if ((msq = matcher.findIdMatch (key)) != null) { -var sqinfo = map.get (key); -unmatched.removeElement (msq); -jalview.analysis.SeqsetUtils.SeqCharacterUnhash (msq, sqinfo); -} else { -if (!quiet) { -System.err.println ("Can't find '" + (key) + "' in uniquified alignment"); -}}}} -if (unmatched.size () > 0 && !quiet) { -System.err.println ("Did not find matches for :"); -for (var i = unmatched.elements (); i.hasMoreElements (); System.out.println ((i.nextElement ()).getName ())) { -;} -return false; -}return true; -}, "java.util.Hashtable,~A,~B"); -c$.getNonEmptySequenceSet = Clazz.defineMethod (c$, "getNonEmptySequenceSet", -function (sequences) { -var ungapped = Clazz.newBooleanArray (sequences.length, false); -var msflen = 0; -for (var i = 0, j = sequences.length; i < j; i++) { -var tempseq = jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, sequences[i].getSequenceAsString ()); -if (tempseq.length == 0) { -ungapped[i] = false; -} else { -ungapped[i] = true; -msflen++; -}} -if (msflen == 0) { -return null; -}var mset = new Array (msflen); -for (var i = 0, j = sequences.length, k = 0; i < j; i++) { -if (ungapped[i]) { -mset[k++] = sequences[i]; -}} -ungapped = null; -return mset; -}, "~A"); -}); +Clazz.declarePackage ("jalview.analysis"); +Clazz.load (null, "jalview.analysis.SeqsetUtils", ["jalview.analysis.AlignSeq", "$.SequenceIdMatcher", "jalview.datamodel.Sequence", "jalview.util.Comparison", "java.util.Hashtable", "$.Vector"], function () { +c$ = Clazz.declareType (jalview.analysis, "SeqsetUtils"); +c$.SeqCharacterHash = Clazz.defineMethod (c$, "SeqCharacterHash", +function (seq) { +var sqinfo = new java.util.Hashtable (); +sqinfo.put ("Name", seq.getName ()); +sqinfo.put ("Start", new Integer (seq.getStart ())); +sqinfo.put ("End", new Integer (seq.getEnd ())); +if (seq.getDescription () != null) { +sqinfo.put ("Description", seq.getDescription ()); +}var sfeat = new java.util.Vector (); +var sfarray = seq.getSequenceFeatures (); +if (sfarray != null && sfarray.length > 0) { +for (var i = 0; i < sfarray.length; i++) { +sfeat.addElement (sfarray[i]); +} +}sqinfo.put ("SeqFeatures", sfeat); +sqinfo.put ("PdbId", (seq.getPDBId () != null) ? seq.getPDBId () : new java.util.Vector ()); +sqinfo.put ("datasetSequence", (seq.getDatasetSequence () != null) ? seq.getDatasetSequence () : new jalview.datamodel.Sequence ("THISISAPLACEHOLDER", "")); +return sqinfo; +}, "jalview.datamodel.SequenceI"); +c$.SeqCharacterUnhash = Clazz.defineMethod (c$, "SeqCharacterUnhash", +function (sq, sqinfo) { +var namePresent = true; +if (sqinfo == null) { +return false; +}var oldname = sqinfo.get ("Name"); +var start = sqinfo.get ("Start"); +var end = sqinfo.get ("End"); +var sfeatures = sqinfo.get ("SeqFeatures"); +var pdbid = sqinfo.get ("PdbId"); +var description = sqinfo.get ("Description"); +var seqds = sqinfo.get ("datasetSequence"); +if (oldname == null) { +namePresent = false; +} else { +sq.setName (oldname); +}if (pdbid != null && pdbid.size () > 0) { +sq.setPDBId (pdbid); +}if ((start != null) && (end != null)) { +sq.setStart (start.intValue ()); +sq.setEnd (end.intValue ()); +}if ((sfeatures != null) && (sfeatures.size () > 0)) { +var sfarray = new Array (sfeatures.size ()); +for (var is = 0, isize = sfeatures.size (); is < isize; is++) { +sfarray[is] = sfeatures.elementAt (is); +} +sq.setSequenceFeatures (sfarray); +}if (description != null) { +sq.setDescription (description); +}if ((seqds != null) && !(seqds.getName ().equals ("THISISAPLACEHOLDER") && seqds.getLength () == 0)) { +sq.setDatasetSequence (seqds); +}return namePresent; +}, "jalview.datamodel.SequenceI,java.util.Hashtable"); +c$.unique_name = Clazz.defineMethod (c$, "unique_name", +function (i) { +return String.instantialize ("Sequence" + i); +}, "~N"); +c$.uniquify = Clazz.defineMethod (c$, "uniquify", +function (sequences, write_names) { +var map = new java.util.Hashtable (); +for (var i = 0; i < sequences.length; i++) { +var safename = jalview.analysis.SeqsetUtils.unique_name (i); +map.put (safename, jalview.analysis.SeqsetUtils.SeqCharacterHash (sequences[i])); +if (write_names) { +sequences[i].setName (safename); +}} +return map; +}, "~A,~B"); +c$.deuniquify = Clazz.defineMethod (c$, "deuniquify", +function (map, sequences) { +return jalview.analysis.SeqsetUtils.deuniquify (map, sequences, true); +}, "java.util.Hashtable,~A"); +c$.deuniquify = Clazz.defineMethod (c$, "deuniquify", +function (map, sequences, quiet) { +var matcher = new jalview.analysis.SequenceIdMatcher (sequences); +var msq = null; +var keys = map.keys (); +var unmatched = new java.util.Vector (); +for (var i = 0, j = sequences.length; i < j; i++) { +unmatched.addElement (sequences[i]); +} +while (keys.hasMoreElements ()) { +var key = keys.nextElement (); +if (Clazz.instanceOf (key, String)) { +if ((msq = matcher.findIdMatch (key)) != null) { +var sqinfo = map.get (key); +unmatched.removeElement (msq); +jalview.analysis.SeqsetUtils.SeqCharacterUnhash (msq, sqinfo); +} else { +if (!quiet) { +System.err.println ("Can't find '" + (key) + "' in uniquified alignment"); +}}}} +if (unmatched.size () > 0 && !quiet) { +System.err.println ("Did not find matches for :"); +for (var i = unmatched.elements (); i.hasMoreElements (); System.out.println ((i.nextElement ()).getName ())) { +;} +return false; +}return true; +}, "java.util.Hashtable,~A,~B"); +c$.getNonEmptySequenceSet = Clazz.defineMethod (c$, "getNonEmptySequenceSet", +function (sequences) { +var ungapped = Clazz.newBooleanArray (sequences.length, false); +var msflen = 0; +for (var i = 0, j = sequences.length; i < j; i++) { +var tempseq = jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, sequences[i].getSequenceAsString ()); +if (tempseq.length == 0) { +ungapped[i] = false; +} else { +ungapped[i] = true; +msflen++; +}} +if (msflen == 0) { +return null; +}var mset = new Array (msflen); +for (var i = 0, j = sequences.length, k = 0; i < j; i++) { +if (ungapped[i]) { +mset[k++] = sequences[i]; +}} +ungapped = null; +return mset; +}, "~A"); +});