Clover icon

Coverage Report

  1. Project Clover database Thu Nov 7 2024 10:11:34 GMT
  2. Package jalview.commands

File RemoveGapsCommand.java

 

Coverage histogram

../../img/srcFileCovDistChart0.png
60% of files have more coverage

Code metrics

18
36
3
1
116
77
15
0.42
12
3
5

Classes

Class Line # Actions
RemoveGapsCommand 26 36 15
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.commands;
22   
23    import jalview.datamodel.AlignmentI;
24    import jalview.datamodel.SequenceI;
25   
 
26    public class RemoveGapsCommand extends EditCommand
27    {
 
28  0 toggle public RemoveGapsCommand(String description, SequenceI[] seqs,
29    AlignmentI al)
30    {
31  0 this.description = description;
32  0 int width = 0;
33  0 for (int i = 0; i < seqs.length; i++)
34    {
35  0 if (seqs[i].getLength() > width)
36    {
37  0 width = seqs[i].getLength();
38    }
39    }
40   
41  0 findGaps(seqs, 0, width, al);
42    }
43   
 
44  0 toggle public RemoveGapsCommand(String description, SequenceI[] seqs, int start,
45    int end, AlignmentI al)
46    {
47  0 this.description = description;
48  0 findGaps(seqs, start, end, al);
49    }
50   
 
51  0 toggle void findGaps(SequenceI[] seqs, int start, int end, AlignmentI al)
52    {
53   
54  0 int startCol = -1, endCol = -1;
55  0 int deletedCols = 0;
56   
57  0 int j, jSize;
58   
59  0 clearEdits();
60   
61  0 boolean delete = true;
62  0 char[] sequence;
63   
64  0 for (int s = 0; s < seqs.length; s++)
65    {
66  0 deletedCols = 0;
67  0 startCol = -1;
68  0 endCol = -1;
69  0 sequence = seqs[s].getSequence(start, end + 1);
70   
71  0 jSize = sequence.length;
72  0 for (j = 0; j < jSize; j++)
73    {
74  0 delete = true;
75   
76  0 if (!jalview.util.Comparison.isGap(sequence[j]))
77    {
78  0 if (delete)
79    {
80  0 endCol = j;
81    }
82   
83  0 delete = false;
84    }
85   
86  0 if (delete && startCol == -1)
87    {
88  0 startCol = j;
89    }
90   
91  0 if (!delete && startCol > -1)
92    {
93  0 this.appendEdit(
94    Action.DELETE_GAP, new SequenceI[]
95    { seqs[s] }, start + startCol - deletedCols,
96    endCol - startCol, al, false, null);
97   
98  0 deletedCols += (endCol - startCol);
99  0 startCol = -1;
100  0 endCol = -1;
101    }
102    }
103  0 if (delete && startCol > -1)
104    {
105  0 this.appendEdit(
106    Action.DELETE_GAP, new SequenceI[]
107    { seqs[s] }, start + startCol - deletedCols,
108    jSize - startCol, al, false, null);
109    }
110   
111    }
112   
113  0 performEdit(0, null);
114    }
115   
116    }