+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.io;
+import java.io.IOException;
+import java.util.StringTokenizer;
+
import jalview.analysis.scoremodels.ScoreMatrix;
import jalview.analysis.scoremodels.ScoreModels;
import jalview.datamodel.SequenceI;
-import java.io.IOException;
-import java.util.StringTokenizer;
-
/**
* A class that can parse a file containing a substitution matrix and register
* it for use in Jalview
* and the substitution scores
* </pre>
*/
-public class ScoreMatrixFile extends AlignFile implements
- AlignmentFileReaderI
+public class ScoreMatrixFile extends AlignFile
+ implements AlignmentFileReaderI
{
// first non-comment line identifier - also checked in IdentifyFile
public static final String SCOREMATRIX = "SCOREMATRIX";
{
continue;
}
- if (data.toUpperCase().startsWith(SCOREMATRIX))
+ // equivalent to data.startsWithIgnoreCase(SCOREMATRIX)
+ if (data.regionMatches(true, 0, SCOREMATRIX, 0, SCOREMATRIX.length()))
{
/*
* Parse name from ScoreMatrix <name>
*/
if (row < size)
{
- err = String
- .format("Expected %d rows of score data in score matrix but only found %d",
- size, row);
+ err = String.format(
+ "Expected %d rows of score data in score matrix but only found %d",
+ size, row);
throw new FileFormatException(err);
}
String symbol = scoreLine.nextToken();
if (symbol.length() > 1 || symbol.charAt(0) != alphabet[row])
{
- err = String
- .format("Error parsing score matrix at line %d, expected '%s' but found '%s'",
- lineNo, alphabet[row], symbol);
+ err = String.format(
+ "Error parsing score matrix at line %d, expected '%s' but found '%s'",
+ lineNo, alphabet[row], symbol);
throw new FileFormatException(err);
}
tokenCount = scoreLine.countTokens(); // excluding guide symbol
err = String.format(
"Expected %d scores at line %d: '%s' but found %d", row + 1,
lineNo, data, tokenCount);
- throw new FileFormatException(err);
+ throw new FileFormatException(err);
}
if (!isLowerDiagonalOnly && tokenCount != size)
col++;
} catch (NumberFormatException e)
{
- err = String.format(
- "Invalid score value '%s' at line %d column %d", value,
- lineNo, col);
+ err = String.format("Invalid score value '%s' at line %d column %d",
+ value, lineNo, col);
throw new FileFormatException(err);
}
}
{
String err = "Unexpected aaIndex score matrix data at line " + lineNo
+ ": " + data;
-
+
try
{
String[] toks = data.split(",");