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); } /**