+/*
+ * 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.datamodel;
+import java.util.Locale;
+
import java.util.HashSet;
import java.util.List;
import java.util.Set;
* determine codon positions and canonical codon
* for a peptide-to-CDS mapping
*/
- int[] codonIntervals = mapping.getMap().locateInFrom(toPosition, toPosition);
+ int[] codonIntervals = mapping.getMap().locateInFrom(toPosition,
+ toPosition);
int[] codonPositions = codonIntervals == null ? null
: MappingUtils.flattenRanges(codonIntervals);
if (codonPositions != null && codonPositions.length == 3)
codonPos = codonPositions;
baseCodon = new char[3];
int cdsStart = featureSequence.getStart();
- baseCodon[0] = Character
- .toUpperCase(featureSequence.getCharAt(codonPos[0] - cdsStart));
- baseCodon[1] = Character
- .toUpperCase(featureSequence.getCharAt(codonPos[1] - cdsStart));
- baseCodon[2] = Character
- .toUpperCase(featureSequence.getCharAt(codonPos[2] - cdsStart));
+ baseCodon[0] = Character.toUpperCase(
+ featureSequence.getCharAt(codonPos[0] - cdsStart));
+ baseCodon[1] = Character.toUpperCase(
+ featureSequence.getCharAt(codonPos[1] - cdsStart));
+ baseCodon[2] = Character.toUpperCase(
+ featureSequence.getCharAt(codonPos[2] - cdsStart));
}
else
{
* e.g. C,G,T gives variants G and T for base C
*/
Set<String> variantPeptides = new HashSet<>();
- String[] alleles = alls.toUpperCase().split(",");
+ String[] alleles = alls.toUpperCase(Locale.ROOT).split(",");
StringBuilder vars = new StringBuilder();
for (String allele : alleles)
{
- allele = allele.trim().toUpperCase();
+ allele = allele.trim().toUpperCase(Locale.ROOT);
if (allele.length() > 1 || "-".equals(allele))
{
continue; // multi-locus variant
*/
final int i = cdsPos == codonPos[0] ? 0
: (cdsPos == codonPos[1] ? 1 : 2);
- variantCodon[i] = allele.toUpperCase().charAt(0);
+ variantCodon[i] = allele.toUpperCase(Locale.ROOT).charAt(0);
if (variantCodon[i] == baseCodon[i])
{
continue;
*/
var.append("c.").append(String.valueOf(cdsPos))
.append(String.valueOf(baseCodon[i])).append(">")
- .append(String.valueOf(variantCodon[i]))
- .append("(p.=)");
+ .append(String.valueOf(variantCodon[i])).append("(p.=)");
}
else
{
public int[] getMappedPositions(int begin, int end)
{
MapList map = mapping.getMap();
- return mapping.to == featureSequence ? map.locateInFrom(begin, end)
- : map.locateInTo(begin, end);
+ return mapping.to == featureSequence ? map.getOverlapsInFrom(begin, end)
+ : map.getOverlapsInTo(begin, end);
}
/**