X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Fdatamodel%2FCigarArray.js;h=e850f41a378e769baaff93487001e318180c7b4e;hp=7925e733408bac48b2eb7324e460f15597add4d3;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/jalview/datamodel/CigarArray.js b/site/j2s/jalview/datamodel/CigarArray.js index 7925e73..e850f41 100644 --- a/site/j2s/jalview/datamodel/CigarArray.js +++ b/site/j2s/jalview/datamodel/CigarArray.js @@ -1,188 +1,188 @@ -Clazz.declarePackage ("jalview.datamodel"); -Clazz.load (["jalview.datamodel.CigarBase"], "jalview.datamodel.CigarArray", ["jalview.datamodel.CigarCigar", "$.SeqCigar", "java.lang.StringBuffer", "java.util.Vector"], function () { -c$ = Clazz.decorateAsClass (function () { -this.refCigars = null; -this.seqcigararray = false; -Clazz.instantialize (this, arguments); -}, jalview.datamodel, "CigarArray", jalview.datamodel.CigarBase); -Clazz.defineMethod (c$, "isSeqCigarArray", -function () { -return this.seqcigararray; -}); -Clazz.makeConstructor (c$, -function (cigars) { -Clazz.superConstructor (this, jalview.datamodel.CigarArray); -this.seqcigararray = true; -if (cigars != null && cigars.length > 0) { -this.refCigars = new Array (cigars.length); -for (var c = 0; c < cigars.length; c++) { -this.refCigars[c] = cigars[c]; -if (!((Clazz.instanceOf (cigars[c], jalview.datamodel.SeqCigar)) || Clazz.instanceOf (cigars[c], jalview.datamodel.CigarCigar))) { -this.seqcigararray = false; -}} -}}, "~A"); -Clazz.makeConstructor (c$, -function (alignment, columnSelection, selectionGroup) { -this.construct (jalview.datamodel.CigarArray.constructSeqCigarArray (alignment, selectionGroup)); -this.constructFromAlignment (alignment, columnSelection != null ? columnSelection.getHiddenColumns () : null, selectionGroup); -}, "jalview.datamodel.AlignmentI,jalview.datamodel.ColumnSelection,jalview.datamodel.SequenceGroup"); -c$._calcStartEndBounds = Clazz.defineMethod (c$, "_calcStartEndBounds", - function (alignment, selectionGroup) { -var startend = Clazz.newIntArray (-1, [0, 0, 0]); -if (selectionGroup != null) { -startend[0] = selectionGroup.getSize (); -startend[1] = selectionGroup.getStartRes (); -startend[2] = selectionGroup.getEndRes (); -} else { -startend[0] = alignment.getHeight (); -startend[2] = alignment.getWidth () - 1; -}return startend; -}, "jalview.datamodel.AlignmentI,jalview.datamodel.SequenceGroup"); -c$.constructSeqCigarArray = Clazz.defineMethod (c$, "constructSeqCigarArray", -function (alignment, selectionGroup) { -var seqs = null; -var i; -var iSize; -var _startend = jalview.datamodel.CigarArray._calcStartEndBounds (alignment, selectionGroup); -var start = _startend[1]; -var end = _startend[2]; -if (selectionGroup != null) { -iSize = selectionGroup.getSize (); -seqs = selectionGroup.getSequencesInOrder (alignment); -start = selectionGroup.getStartRes (); -end = selectionGroup.getEndRes (); -} else { -iSize = alignment.getHeight (); -seqs = alignment.getSequencesArray (); -end = alignment.getWidth () - 1; -}var selseqs = new Array (iSize); -for (i = 0; i < iSize; i++) { -selseqs[i] = new jalview.datamodel.SeqCigar (seqs[i], start, end); -} -return selseqs; -}, "jalview.datamodel.AlignmentI,jalview.datamodel.SequenceGroup"); -Clazz.defineMethod (c$, "constructFromAlignment", - function (alignment, list, selectionGroup) { -var _startend = jalview.datamodel.CigarArray._calcStartEndBounds (alignment, selectionGroup); -var start = _startend[1]; -var end = _startend[2]; -if (list != null) { -var region; -var hideStart; -var hideEnd; -var last = start; -for (var j = 0; new Boolean (last < end & j < list.size ()).valueOf (); j++) { -region = list.get (j); -hideStart = region[0]; -hideEnd = region[1]; -if (hideStart < last) { -if (hideEnd > last) { -hideStart = last; -} else { -continue; -}}if (hideStart > end) { -break; -}if (hideEnd > end) { -hideEnd = end; -}if (hideStart > hideEnd) { -break; -}if (last < hideStart) { -this.addOperation ('M', hideStart - last); -}this.addOperation ('D', 1 + hideEnd - hideStart); -last = hideEnd + 1; -} -if (last < end) { -this.addOperation ('M', end - last + 1); -}} else { -this.addOperation ('M', end - start + 1); -}}, "jalview.datamodel.AlignmentI,java.util.List,jalview.datamodel.SequenceGroup"); -Clazz.defineMethod (c$, "getArrayofSequenceAndDeletions", -function (GapChar) { -if (this.refCigars == null || this.refCigars.length == 0 || this.length == 0) { -return null; -}var sqanddels = new Array (this.refCigars.length); -for (var c = 0; c < this.refCigars.length; c++) { -var refString = this.refCigars[c].getSequenceString (GapChar); -if (refString != null) { -sqanddels[c] = this.getSequenceAndDeletions (refString, GapChar); -} else { -sqanddels[c] = null; -}} -return sqanddels; -}, "~S"); -Clazz.defineMethod (c$, "getSequenceString", -function (GapChar) { -if (this.length == 0 || this.refCigars == null) { -return ""; -}var seqStrings = new StringBuffer (); -var sqanddels = this.getArrayofSequenceAndDeletions (GapChar); -for (var c = 0; c < this.refCigars.length; c++) { -if (sqanddels[c] != null) { -seqStrings.append (sqanddels[c][0]); -sqanddels[c][0] = null; -}seqStrings.append ('\n'); -} -return seqStrings.toString (); -}, "~S"); -Clazz.defineMethod (c$, "getSequenceStrings", -function (GapChar) { -if (this.length == 0 || this.refCigars == null || this.refCigars.length == 0) { -return null; -}var sqanddels = this.getArrayofSequenceAndDeletions (GapChar); -var seqs = new Array (sqanddels.length); -for (var c = 0; c < this.refCigars.length; c++) { -seqs[c] = sqanddels[c][0]; -} -return seqs; -}, "~S"); -Clazz.defineMethod (c$, "applyDeletions", -function () { -var delpos = null; -if (this.length == 0) { -return null; -}var cursor = 0; -var vcursor = 0; -var offset = 0; -var i = 0; -while (i < this.length) { -if (this.operation[i] != 'D') { -if (this.operation[i] == 'M') { -cursor += this.range[i]; -}vcursor += this.range[i++]; -} else { -if (delpos == null) { -delpos = new java.util.Vector (); -}var delstart = cursor; -var delend = cursor + this.range[i] - 1; -delpos.addElement ( Clazz.newIntArray (-1, [vcursor + offset, this.range[i]])); -offset += this.range[i] - 1; -System.arraycopy (this.operation, i + 1, this.operation, i, this.length - i); -System.arraycopy (this.range, i + 1, this.range, i, this.length - i); -this.length--; -for (var s = 0; s < this.refCigars.length; s++) { -var d = this.refCigars[s].deleteRange (delstart, delend); -} -}} -if (delpos != null) { -var pos = Clazz.newIntArray (delpos.size () * 2, 0); -for (var k = 0, l = delpos.size (); k < l; k++) { -var dr = (delpos.elementAt (k)); -pos[k * 2] = dr[0]; -pos[k * 2 + 1] = dr[1]; -delpos.setElementAt (null, k); -} -delpos = null; -return pos; -}return null; -}); -Clazz.defineMethod (c$, "getSeqCigarArray", -function () { -if (!this.isSeqCigarArray ()) { -return null; -}var sa = new Array (this.refCigars.length); -for (var i = 0; i < this.refCigars.length; i++) { -sa[i] = this.refCigars[i]; -} -return sa; -}); -}); +Clazz.declarePackage ("jalview.datamodel"); +Clazz.load (["jalview.datamodel.CigarBase"], "jalview.datamodel.CigarArray", ["jalview.datamodel.CigarCigar", "$.SeqCigar", "java.lang.StringBuffer", "java.util.Vector"], function () { +c$ = Clazz.decorateAsClass (function () { +this.refCigars = null; +this.seqcigararray = false; +Clazz.instantialize (this, arguments); +}, jalview.datamodel, "CigarArray", jalview.datamodel.CigarBase); +Clazz.defineMethod (c$, "isSeqCigarArray", +function () { +return this.seqcigararray; +}); +Clazz.makeConstructor (c$, +function (cigars) { +Clazz.superConstructor (this, jalview.datamodel.CigarArray); +this.seqcigararray = true; +if (cigars != null && cigars.length > 0) { +this.refCigars = new Array (cigars.length); +for (var c = 0; c < cigars.length; c++) { +this.refCigars[c] = cigars[c]; +if (!((Clazz.instanceOf (cigars[c], jalview.datamodel.SeqCigar)) || Clazz.instanceOf (cigars[c], jalview.datamodel.CigarCigar))) { +this.seqcigararray = false; +}} +}}, "~A"); +Clazz.makeConstructor (c$, +function (alignment, columnSelection, selectionGroup) { +this.construct (jalview.datamodel.CigarArray.constructSeqCigarArray (alignment, selectionGroup)); +this.constructFromAlignment (alignment, columnSelection != null ? columnSelection.getHiddenColumns () : null, selectionGroup); +}, "jalview.datamodel.AlignmentI,jalview.datamodel.ColumnSelection,jalview.datamodel.SequenceGroup"); +c$._calcStartEndBounds = Clazz.defineMethod (c$, "_calcStartEndBounds", + function (alignment, selectionGroup) { +var startend = Clazz.newIntArray (-1, [0, 0, 0]); +if (selectionGroup != null) { +startend[0] = selectionGroup.getSize (); +startend[1] = selectionGroup.getStartRes (); +startend[2] = selectionGroup.getEndRes (); +} else { +startend[0] = alignment.getHeight (); +startend[2] = alignment.getWidth () - 1; +}return startend; +}, "jalview.datamodel.AlignmentI,jalview.datamodel.SequenceGroup"); +c$.constructSeqCigarArray = Clazz.defineMethod (c$, "constructSeqCigarArray", +function (alignment, selectionGroup) { +var seqs = null; +var i; +var iSize; +var _startend = jalview.datamodel.CigarArray._calcStartEndBounds (alignment, selectionGroup); +var start = _startend[1]; +var end = _startend[2]; +if (selectionGroup != null) { +iSize = selectionGroup.getSize (); +seqs = selectionGroup.getSequencesInOrder (alignment); +start = selectionGroup.getStartRes (); +end = selectionGroup.getEndRes (); +} else { +iSize = alignment.getHeight (); +seqs = alignment.getSequencesArray (); +end = alignment.getWidth () - 1; +}var selseqs = new Array (iSize); +for (i = 0; i < iSize; i++) { +selseqs[i] = new jalview.datamodel.SeqCigar (seqs[i], start, end); +} +return selseqs; +}, "jalview.datamodel.AlignmentI,jalview.datamodel.SequenceGroup"); +Clazz.defineMethod (c$, "constructFromAlignment", + function (alignment, list, selectionGroup) { +var _startend = jalview.datamodel.CigarArray._calcStartEndBounds (alignment, selectionGroup); +var start = _startend[1]; +var end = _startend[2]; +if (list != null) { +var region; +var hideStart; +var hideEnd; +var last = start; +for (var j = 0; new Boolean (last < end & j < list.size ()).valueOf (); j++) { +region = list.get (j); +hideStart = region[0]; +hideEnd = region[1]; +if (hideStart < last) { +if (hideEnd > last) { +hideStart = last; +} else { +continue; +}}if (hideStart > end) { +break; +}if (hideEnd > end) { +hideEnd = end; +}if (hideStart > hideEnd) { +break; +}if (last < hideStart) { +this.addOperation ('M', hideStart - last); +}this.addOperation ('D', 1 + hideEnd - hideStart); +last = hideEnd + 1; +} +if (last < end) { +this.addOperation ('M', end - last + 1); +}} else { +this.addOperation ('M', end - start + 1); +}}, "jalview.datamodel.AlignmentI,java.util.List,jalview.datamodel.SequenceGroup"); +Clazz.defineMethod (c$, "getArrayofSequenceAndDeletions", +function (GapChar) { +if (this.refCigars == null || this.refCigars.length == 0 || this.length == 0) { +return null; +}var sqanddels = new Array (this.refCigars.length); +for (var c = 0; c < this.refCigars.length; c++) { +var refString = this.refCigars[c].getSequenceString (GapChar); +if (refString != null) { +sqanddels[c] = this.getSequenceAndDeletions (refString, GapChar); +} else { +sqanddels[c] = null; +}} +return sqanddels; +}, "~S"); +Clazz.defineMethod (c$, "getSequenceString", +function (GapChar) { +if (this.length == 0 || this.refCigars == null) { +return ""; +}var seqStrings = new StringBuffer (); +var sqanddels = this.getArrayofSequenceAndDeletions (GapChar); +for (var c = 0; c < this.refCigars.length; c++) { +if (sqanddels[c] != null) { +seqStrings.append (sqanddels[c][0]); +sqanddels[c][0] = null; +}seqStrings.append ('\n'); +} +return seqStrings.toString (); +}, "~S"); +Clazz.defineMethod (c$, "getSequenceStrings", +function (GapChar) { +if (this.length == 0 || this.refCigars == null || this.refCigars.length == 0) { +return null; +}var sqanddels = this.getArrayofSequenceAndDeletions (GapChar); +var seqs = new Array (sqanddels.length); +for (var c = 0; c < this.refCigars.length; c++) { +seqs[c] = sqanddels[c][0]; +} +return seqs; +}, "~S"); +Clazz.defineMethod (c$, "applyDeletions", +function () { +var delpos = null; +if (this.length == 0) { +return null; +}var cursor = 0; +var vcursor = 0; +var offset = 0; +var i = 0; +while (i < this.length) { +if (this.operation[i] != 'D') { +if (this.operation[i] == 'M') { +cursor += this.range[i]; +}vcursor += this.range[i++]; +} else { +if (delpos == null) { +delpos = new java.util.Vector (); +}var delstart = cursor; +var delend = cursor + this.range[i] - 1; +delpos.addElement ( Clazz.newIntArray (-1, [vcursor + offset, this.range[i]])); +offset += this.range[i] - 1; +System.arraycopy (this.operation, i + 1, this.operation, i, this.length - i); +System.arraycopy (this.range, i + 1, this.range, i, this.length - i); +this.length--; +for (var s = 0; s < this.refCigars.length; s++) { +var d = this.refCigars[s].deleteRange (delstart, delend); +} +}} +if (delpos != null) { +var pos = Clazz.newIntArray (delpos.size () * 2, 0); +for (var k = 0, l = delpos.size (); k < l; k++) { +var dr = (delpos.elementAt (k)); +pos[k * 2] = dr[0]; +pos[k * 2 + 1] = dr[1]; +delpos.setElementAt (null, k); +} +delpos = null; +return pos; +}return null; +}); +Clazz.defineMethod (c$, "getSeqCigarArray", +function () { +if (!this.isSeqCigarArray ()) { +return null; +}var sa = new Array (this.refCigars.length); +for (var i = 0; i < this.refCigars.length; i++) { +sa[i] = this.refCigars[i]; +} +return sa; +}); +});