X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fio%2FFeaturesFile.java;h=92473ecee55322ecf3c16d9fd94e34df6659fd37;hb=10b40b4ec840e5076c95109b0ea518928385821c;hp=9a4dc0e023ee79e8ee79b2c37324d855bb8e6dd0;hpb=3b3c59cfa50e942d2fa5b367b7117cade9459ce7;p=jalview.git diff --git a/src/jalview/io/FeaturesFile.java b/src/jalview/io/FeaturesFile.java index 9a4dc0e..92473ec 100755 --- a/src/jalview/io/FeaturesFile.java +++ b/src/jalview/io/FeaturesFile.java @@ -20,6 +20,18 @@ */ package jalview.io; +import java.awt.Color; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + import jalview.analysis.AlignmentUtils; import jalview.analysis.SequenceIdMatcher; import jalview.api.AlignViewportI; @@ -44,18 +56,6 @@ import jalview.util.MapList; import jalview.util.ParseHtmlBodyAndLinks; import jalview.util.StringUtils; -import java.awt.Color; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; - /** * Parses and writes features files, which may be in Jalview, GFF2 or GFF3 * format. These are tab-delimited formats but with differences in the use of @@ -74,11 +74,7 @@ import java.util.TreeMap; */ public class FeaturesFile extends AlignFile implements FeaturesSourceI { - /* - * map-valued attributes are prefixed with this for output to GFF3; - * the prefix is removed if found on reading - */ - public static final String MAP_ATTRIBUTE_PREFIX = "jvmap_"; + private static final String EQUALS = "="; private static final String TAB_REGEX = "\\t"; @@ -92,8 +88,6 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI private static final String ID_NOT_SPECIFIED = "ID_NOT_SPECIFIED"; - private static final String NOTE = "Note"; - protected static final String GFF_VERSION = "##gff-version"; private AlignmentI lastmatchedAl = null; @@ -742,7 +736,6 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI if (mf != null) { - MapList mapping = mf.mapping.getMap(); for (SequenceFeature sf : mf.features) { /* @@ -758,9 +751,7 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI found.add(sf); int begin = sf.getBegin(); int end = sf.getEnd(); - int[] range = mf.mapping.getTo() == seq.getDatasetSequence() - ? mapping.locateInTo(begin, end) - : mapping.locateInFrom(begin, end); + int[] range = mf.getMappedPositions(begin, end); SequenceFeature sf2 = new SequenceFeature(sf, range[0], range[1], group, sf.getScore()); complementary.add(sf2); @@ -1192,7 +1183,7 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI { String formatted = StringUtils.urlEncode(value.toString(), GffHelperI.GFF_ENCODABLE); - sb.append(key).append("=").append(formatted); + sb.append(key).append(EQUALS).append(formatted); } } } @@ -1201,7 +1192,7 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI * Formats the map entries as * *
- * jvmap_key={key1=value1,key2=value2,...} + * key=key1=value1,key2=value2,... ** * and appends this to the string buffer @@ -1222,7 +1213,7 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI * AbstractMap.toString would be a shortcut here, but more reliable * to code the required format in case toString changes in future */ - sb.append(MAP_ATTRIBUTE_PREFIX).append(key).append("={"); + sb.append(key).append(EQUALS); boolean first = true; for (Entry, ?> entry : map.entrySet()) { @@ -1231,12 +1222,11 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI sb.append(","); } first = false; - sb.append(entry.getKey().toString()).append("="); + sb.append(entry.getKey().toString()).append(EQUALS); String formatted = StringUtils.urlEncode(entry.getValue().toString(), GffHelperI.GFF_ENCODABLE); sb.append(formatted); } - sb.append("}"); } /**