X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FMappedFeatures.java;h=46379749e114fc6c1ef1c6a85633552567276b20;hb=d1e20f6a5654ea6baf378afa3277b4e751c69a96;hp=87609c6afbc43d5b2d515ab53dbb219abc5fbc85;hpb=69e8792b5f1ed2c02cff0a1ee328793ab5c0f423;p=jalview.git
diff --git a/src/jalview/datamodel/MappedFeatures.java b/src/jalview/datamodel/MappedFeatures.java
index 87609c6..4637974 100644
--- a/src/jalview/datamodel/MappedFeatures.java
+++ b/src/jalview/datamodel/MappedFeatures.java
@@ -1,5 +1,27 @@
+/*
+ * 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 .
+ * 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;
@@ -90,7 +112,8 @@ public class MappedFeatures
* 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)
@@ -98,12 +121,12 @@ public class MappedFeatures
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
{
@@ -179,12 +202,12 @@ public class MappedFeatures
* e.g. C,G,T gives variants G and T for base C
*/
Set 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
@@ -200,7 +223,7 @@ public class MappedFeatures
*/
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;
@@ -216,8 +239,7 @@ public class MappedFeatures
*/
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
{
@@ -274,8 +296,8 @@ public class MappedFeatures
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);
}
/**