import jalview.api.FeatureColourI;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.datamodel.features.FeatureMatcher;
+import jalview.datamodel.features.FeatureMatcherSet;
+import jalview.datamodel.features.FeatureMatcherSetI;
import jalview.gui.AlignFrame;
import jalview.io.DataSourceType;
import jalview.io.FileLoader;
import jalview.schemes.FeatureColour;
import jalview.util.matcher.Condition;
-import jalview.util.matcher.KeyedMatcher;
-import jalview.util.matcher.KeyedMatcherSet;
-import jalview.util.matcher.KeyedMatcherSetI;
import jalview.viewmodel.seqfeatures.FeatureRendererModel.FeatureSettingsBean;
import java.awt.Color;
seqs.get(2).addSequenceFeature(
new SequenceFeature("Pfam", "Desc", 14, 22, 2f, "RfamGroup"));
// bug in findAllFeatures - group not checked for a known feature type
- seqs.get(2).addSequenceFeature(
- new SequenceFeature("Rfam", "Desc", 5, 9, Float.NaN,
- "RfamGroup"));
+ seqs.get(2).addSequenceFeature(new SequenceFeature("Rfam", "Desc", 5, 9,
+ Float.NaN, "RfamGroup"));
// existing feature type with null group
seqs.get(3).addSequenceFeature(
new SequenceFeature("Rfam", "Desc", 5, 9, Float.NaN, null));
data[1] = new FeatureSettingsBean("Pfam", colour, null, false);
data[2] = new FeatureSettingsBean("Scop", colour, null, false);
fr.setFeaturePriority(data);
- assertEquals(fr.getRenderOrder(), Arrays.asList("Scop", "Pfam", "Rfam"));
+ assertEquals(fr.getRenderOrder(),
+ Arrays.asList("Scop", "Pfam", "Rfam"));
assertEquals(fr.getDisplayedFeatureTypes(), Arrays.asList("Rfam"));
/*
features = fr.findFeaturesAtColumn(seq, 5);
assertEquals(features.size(), 1);
assertTrue(features.contains(sf8));
-
+
/*
* give "Type3" features a graduated colour scheme
* - first with no threshold
/*
* hide feature type, then unhide
+ * - feature type visibility should not affect the result
*/
FeatureSettingsBean[] data = new FeatureSettingsBean[1];
data[0] = new FeatureSettingsBean("Cath", fc, null, false);
fr.setFeaturePriority(data);
- assertNull(fr.getColour(sf1));
+ assertEquals(fr.getColour(sf1), Color.red);
data[0] = new FeatureSettingsBean("Cath", fc, null, true);
fr.setFeaturePriority(data);
assertEquals(fr.getColour(sf1), Color.red);
// score 6 is half way from yellow(255, 255, 0) to red(255, 0, 0)
Color expected = new Color(255, 128, 0);
assertEquals(fr.getColour(sf2), expected);
-
+
/*
* above threshold, score is above threshold - no change
*/
// with filter on AF < 4
gc.setAboveThreshold(false);
assertEquals(fr.getColour(sf2), expected);
- KeyedMatcherSetI filter = new KeyedMatcherSet();
- filter.and(new KeyedMatcher(Condition.LT, 4f, "AF"));
+ FeatureMatcherSetI filter = new FeatureMatcherSet();
+ filter.and(FeatureMatcher.byAttribute(Condition.LT, "4.0", "AF"));
fr.setFeatureFilter("Cath", filter);
assertNull(fr.getColour(sf2));
// with filter on 'Consequence contains missense'
- filter = new KeyedMatcherSet();
- filter.and(new KeyedMatcher(Condition.Contains, "missense",
+ filter = new FeatureMatcherSet();
+ filter.and(FeatureMatcher.byAttribute(Condition.Contains, "missense",
"Consequence"));
fr.setFeatureFilter("Cath", filter);
// if feature has no Consequence attribute, no colour
sf2.setValue("Consequence", "Missense variant");
assertEquals(fr.getColour(sf2), expected);
- // with filter on CSQ.Feature contains "ENST01234"
- filter = new KeyedMatcherSet();
- filter.and(new KeyedMatcher(Condition.Matches, "ENST01234", "CSQ",
- "Feature"));
+ // with filter on CSQ:Feature contains "ENST01234"
+ filter = new FeatureMatcherSet();
+ filter.and(FeatureMatcher.byAttribute(Condition.Matches, "ENST01234",
+ "CSQ", "Feature"));
fr.setFeatureFilter("Cath", filter);
// if feature has no CSQ data, no colour
assertNull(fr.getColour(sf2));