X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FFeaturesFile.java;fp=src%2Fjalview%2Fio%2FFeaturesFile.java;h=75fdc4c186f881ed616a8f8e3774159f65f09aa4;hb=bb4e715f6a6681100b7b43562211cf690118ee8a;hp=70f2ac70c5c350799f5f224f5c76fed5953baf4f;hpb=f62fb8ea4730ed1d33acbd766543628435a444f3;p=jalview.git diff --git a/src/jalview/io/FeaturesFile.java b/src/jalview/io/FeaturesFile.java index 70f2ac7..75fdc4c 100755 --- a/src/jalview/io/FeaturesFile.java +++ b/src/jalview/io/FeaturesFile.java @@ -49,9 +49,11 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; /** * Parses and writes features files, which may be in Jalview, GFF2 or GFF3 @@ -679,7 +681,20 @@ public class FeaturesFile extends AlignFile implements FeaturesSourceI FeatureRenderer fr, String[] featureTypes, SequenceI[] sequences, boolean includeNonPositional) { - List featureGroups = fr.getFeatureGroups(); + /* + * get all positional feature groups + */ + Set featureGroups = new HashSet<>(fr.getFeatureGroups()); + + /* + * add non-positional feature groups, just in case any are not + * also positional feature groups + */ + for (SequenceI seq : sequences) + { + Set nonPosGroups = seq.getFeatures().getFeatureGroups(false); + featureGroups.addAll(nonPosGroups); + } /* * sort groups alphabetically, and ensure that features with a