*/
package jalview.analysis.scoremodels;
+import jalview.api.analysis.PairwiseScoreModelI;
+import jalview.api.analysis.SimilarityScoreModelI;
+import jalview.datamodel.AlignmentView;
import jalview.math.Matrix;
import jalview.math.MatrixI;
import java.util.Arrays;
-public class ScoreMatrix implements PairwiseScoreModelI
+public class ScoreMatrix implements SimilarityScoreModelI,
+ PairwiseScoreModelI
{
+ /*
+ * Jalview 2.10.1 treated gaps as X (peptide) or N (nucleotide)
+ * for pairwise scoring; 2.10.2 uses gap score (last column) in
+ * score matrix (JAL-2397)
+ * Set this flag to true (via Groovy) for 2.10.1 behaviour
+ */
+ private static boolean scoreGapAsAny = false;
+
public static final short UNMAPPED = (short) -1;
private static final String BAD_ASCII_ERROR = "Unexpected character %s in getPairwiseScore";
* <li>and so on</li>
* </ul>
*/
- public MatrixI computePairwiseScores(String[] seqs)
+ @Override
+ public MatrixI findSimilarities(AlignmentView seqstrings)
+ {
+ char gapChar = scoreGapAsAny ? (seqstrings.isNa() ? 'N' : 'X') : ' ';
+ String[] seqs = seqstrings.getSequenceStrings(gapChar);
+ return findSimilarities(seqs);
+ }
+
+ /**
+ * @param seqs
+ * @return
+ */
+ protected MatrixI findSimilarities(String[] seqs)
{
double[][] values = new double[seqs.length][];
for (int row = 0; row < seqs.length; row++)