Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / jalview / commands / RemoveGapsCommand.js
1 Clazz.declarePackage ("jalview.commands");
2 Clazz.load (["jalview.commands.EditCommand"], "jalview.commands.RemoveGapsCommand", ["jalview.util.Comparison"], function () {
3 c$ = Clazz.declareType (jalview.commands, "RemoveGapsCommand", jalview.commands.EditCommand);
4 Clazz.makeConstructor (c$, 
5 function (description, seqs, al) {
6 Clazz.superConstructor (this, jalview.commands.RemoveGapsCommand, []);
7 this.description = description;
8 var width = 0;
9 for (var i = 0; i < seqs.length; i++) {
10 if (seqs[i].getLength () > width) {
11 width = seqs[i].getLength ();
12 }}
13 this.findGaps (seqs, 0, width, al);
14 }, "~S,~A,jalview.datamodel.AlignmentI");
15 Clazz.makeConstructor (c$, 
16 function (description, seqs, start, end, al) {
17 Clazz.superConstructor (this, jalview.commands.RemoveGapsCommand, []);
18 this.description = description;
19 this.findGaps (seqs, start, end, al);
20 }, "~S,~A,~N,~N,jalview.datamodel.AlignmentI");
21 Clazz.defineMethod (c$, "findGaps", 
22 function (seqs, start, end, al) {
23 var startCol = -1;
24 var endCol = -1;
25 var deletedCols = 0;
26 var j;
27 var jSize;
28 this.clearEdits ();
29 var $delete = true;
30 var sequence;
31 for (var s = 0; s < seqs.length; s++) {
32 deletedCols = 0;
33 startCol = -1;
34 endCol = -1;
35 sequence = seqs[s].getSequence (start, end + 1);
36 jSize = sequence.length;
37 for (j = 0; j < jSize; j++) {
38 $delete = true;
39 if (!jalview.util.Comparison.isGap (sequence[j])) {
40 if ($delete) {
41 endCol = j;
42 }$delete = false;
43 }if ($delete && startCol == -1) {
44 startCol = j;
45 }if (!$delete && startCol > -1) {
46 this.appendEdit (jalview.commands.EditCommand.Action.DELETE_GAP,  Clazz.newArray (-1, [seqs[s]]), start + startCol - deletedCols, endCol - startCol, al, false, null);
47 deletedCols += (endCol - startCol);
48 startCol = -1;
49 endCol = -1;
50 }}
51 if ($delete && startCol > -1) {
52 this.appendEdit (jalview.commands.EditCommand.Action.DELETE_GAP,  Clazz.newArray (-1, [seqs[s]]), start + startCol - deletedCols, jSize - startCol, al, false, null);
53 }}
54 this.performEdit (0, null);
55 }, "~A,~N,~N,jalview.datamodel.AlignmentI");
56 });