Skip to content

Commit edcdbc6

Browse files
Added getRow() and getColumn() methods to SubstitutionMatrix.
1 parent f04f4b2 commit edcdbc6

3 files changed

Lines changed: 47 additions & 1 deletion

File tree

biojava3-alignment/src/main/java/org/biojava3/alignment/SimpleSubstitutionMatrix.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
import java.io.Reader;
3232
import java.util.ArrayList;
3333
import java.util.Arrays;
34+
import java.util.HashMap;
3435
import java.util.List;
36+
import java.util.Map;
3537
import java.util.Scanner;
3638
import java.util.StringTokenizer;
3739

@@ -273,4 +275,22 @@ public String toString() {
273275
return s.toString();
274276
}
275277

278+
public Map<C, Short> getRow(C row) {
279+
int rowIndex = rows.indexOf(row);
280+
Map<C, Short> map = new HashMap<C, Short>();
281+
for (int colIndex = 0; colIndex < matrix[rowIndex].length; colIndex++) {
282+
map.put(cols.get(colIndex), matrix[rowIndex][colIndex]);
283+
}
284+
return map;
285+
}
286+
287+
public Map<C, Short> getColumn(C column) {
288+
int colIndex = cols.indexOf(column);
289+
Map<C, Short> map = new HashMap<C, Short>();
290+
for (int i = 0; i < matrix.length; i++) {
291+
map.put(rows.get(i), matrix[i][colIndex]);
292+
}
293+
return map;
294+
}
295+
276296
}

biojava3-alignment/src/main/java/org/biojava3/alignment/aaindex/ScaledSubstitutionMatrix.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.biojava3.alignment.aaindex;
22

3+
import java.util.HashMap;
34
import java.util.List;
5+
import java.util.Map;
46
import java.util.StringTokenizer;
57

68
import org.biojava3.alignment.template.SubstitutionMatrix;
@@ -185,6 +187,24 @@ public SubstitutionMatrix<AminoAcidCompound> normalizeMatrix(short scale) {
185187
return null;
186188
}
187189

188-
190+
191+
public Map<AminoAcidCompound, Short> getRow(AminoAcidCompound row) {
192+
int rowIndex = rows.indexOf(row);
193+
Map<AminoAcidCompound, Short> map = new HashMap<AminoAcidCompound, Short>();
194+
for (int colIndex = 0; colIndex < matrix[rowIndex].length; colIndex++) {
195+
map.put(cols.get(colIndex), matrix[rowIndex][colIndex]);
196+
}
197+
return map;
198+
}
199+
200+
public Map<AminoAcidCompound, Short> getColumn(AminoAcidCompound column) {
201+
int colIndex = cols.indexOf(column);
202+
Map<AminoAcidCompound, Short> map = new HashMap<AminoAcidCompound, Short>();
203+
for (int i = 0; i < matrix.length; i++) {
204+
map.put(rows.get(i), matrix[i][colIndex]);
205+
}
206+
return map;
207+
}
208+
189209

190210
}

biojava3-alignment/src/main/java/org/biojava3/alignment/template/SubstitutionMatrix.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
package org.biojava3.alignment.template;
2525

26+
import java.util.Map;
27+
2628
import org.biojava3.core.sequence.template.Compound;
2729
import org.biojava3.core.sequence.template.CompoundSet;
2830

@@ -118,4 +120,8 @@ public interface SubstitutionMatrix<C extends Compound> {
118120
*/
119121
void setName(String name);
120122

123+
Map<C, Short> getRow(C row);
124+
125+
Map<C, Short> getColumn(C column);
126+
121127
}

0 commit comments

Comments
 (0)