import jalview.gui.Desktop;
import jalview.gui.JvOptionPane;
import jalview.schemes.FeatureColour;
-import jalview.structure.StructureSelectionManager;
import jalview.util.matcher.Condition;
import jalview.viewmodel.seqfeatures.FeatureRendererModel;
import jalview.viewmodel.seqfeatures.FeatureRendererModel.FeatureSettingsBean;
/*
* remove any sequence mappings created so they don't pollute other tests
*/
- StructureSelectionManager ssm = StructureSelectionManager
- .getStructureSelectionManager(Desktop.instance);
- ssm.resetAll();
+ Desktop.getInstance().getStructureSelectionManager().resetAll();
}
@BeforeClass(alwaysRun = true)
assertEquals(expected, exported);
/*
- * include non-positional features
+ * include non-positional features, but still no positional features
*/
fr.setGroupVisibility("uniprot", true);
exported = featuresFile.printJalviewFormat(al.getSequencesArray(), fr,
true);
- expected = "Cath\tFER_CAPAA\t-1\t0\t0\tDomain\t0.0\n"
- + "desc1\tFER_CAPAN\t-1\t0\t0\tPfam\t1.3\n"
+ expected = "\nSTARTGROUP\tuniprot\n"
+ + "Cath\tFER_CAPAA\t-1\t0\t0\tDomain\t0.0\n"
+ + "ENDGROUP\tuniprot\n\n"
+ + "desc1\tFER_CAPAN\t-1\t0\t0\tPfam\t1.3\n\n"
+ "desc3\tFER1_SOLLC\t-1\t0\t0\tPfam\n"; // NaN is not output
- assertEquals(expected, exported);
+ assertEquals(
+ expected.replace("\n", System.getProperty("line.separator")),
+ exported);
/*
* set METAL (in uniprot group) and GAMMA-TURN visible, but not Pfam
+ "Turn\tFER_CAPAA\t-1\t36\t38\tGAMMA-TURN\t0.0\n"
+ "Iron\tFER_CAPAA\t-1\t39\t39\tMETAL\t0.0\n"
+ "ENDGROUP\tuniprot\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
/*
* now set Pfam visible
exported = featuresFile.printJalviewFormat(al.getSequencesArray(), fr,
false);
/*
- * features are output within group, ordered by sequence and by type
+ * features are output within group, ordered by sequence and type
*/
expected = "METAL\tcc9900\n"
+ "Pfam\tff0000\n"
+ "Iron\tFER_CAPAA\t-1\t39\t39\tMETAL\t0.0\n"
+ "<html>Pfam domain<a href=\"http://pfam.xfam.org/family/PF00111\">Pfam_3_4</a></html>\tFER_CAPAA\t-1\t20\t20\tPfam\t0.0\n"
+ "ENDGROUP\tuniprot\n"
- // null / empty group features output after features in named
- // groups:
+ // null / empty group features are output after named groups
+ + "\ndesc2\tFER_CAPAN\t-1\t4\t9\tPfam\n"
+ + "\ndesc4\tFER1_SOLLC\t-1\t5\t8\tPfam\t-2.6\n";
+ assertEquals(fixLineEnd(expected), exported);
+
+ /*
+ * hide uniprot group
+ */
+ fr.setGroupVisibility("uniprot", false);
+ expected = "METAL\tcc9900\n" + "Pfam\tff0000\n"
+ + "GAMMA-TURN\tscore|ff0000|00ffff|noValueMin|20.0|95.0|below|66.0\n"
+ + "\ndesc2\tFER_CAPAN\t-1\t4\t9\tPfam\n"
+ + "\ndesc4\tFER1_SOLLC\t-1\t5\t8\tPfam\t-2.6\n";
+ exported = featuresFile.printJalviewFormat(al.getSequencesArray(), fr,
+ false);
+ assertEquals(fixLineEnd(expected), exported);
+
+ /*
+ * include non-positional (overrides group not shown)
+ */
+ exported = featuresFile.printJalviewFormat(al.getSequencesArray(), fr,
+ true);
+ expected = "METAL\tcc9900\n" + "Pfam\tff0000\n"
+ + "GAMMA-TURN\tscore|ff0000|00ffff|noValueMin|20.0|95.0|below|66.0\n"
+ + "\nSTARTGROUP\tuniprot\n"
+ + "Cath\tFER_CAPAA\t-1\t0\t0\tDomain\t0.0\n"
+ + "ENDGROUP\tuniprot\n"
+ + "\ndesc1\tFER_CAPAN\t-1\t0\t0\tPfam\t1.3\n"
+ "desc2\tFER_CAPAN\t-1\t4\t9\tPfam\n"
+ + "\ndesc3\tFER1_SOLLC\t-1\t0\t0\tPfam\n"
+ "desc4\tFER1_SOLLC\t-1\t5\t8\tPfam\t-2.6\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
}
@Test(groups = { "Functional" })
String exported = featuresFile.printGffFormat(al.getSequencesArray(),
fr, false);
String gffHeader = "##gff-version 2\n";
- assertEquals(gffHeader, exported);
+ assertEquals(
+ fixLineEnd(gffHeader),
+ exported);
exported = featuresFile.printGffFormat(al.getSequencesArray(), fr,
true);
- assertEquals(gffHeader, exported);
+ assertEquals(
+ fixLineEnd(gffHeader),
+ exported);
/*
* add some features
*/
exported = featuresFile.printGffFormat(al.getSequencesArray(), fr,
false);
- assertEquals(gffHeader, exported);
+ assertEquals(
+ fixLineEnd(gffHeader),
+ exported);
/*
* include non-positional features
true);
String expected = gffHeader
+ "FER_CAPAA\tUniprot\tDomain\t0\t0\t0.0\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(
+ fixLineEnd(expected),
+ exported);
/*
* set METAL (in uniprot group) and GAMMA-TURN visible, but not Pfam
false);
// METAL feature has null group: description used for column 2
expected = gffHeader + "FER_CAPAA\tCath\tMETAL\t39\t39\t1.2\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(
+ expected.replace("\n", System.getProperty("line.separator")),
+ exported);
/*
* set s3dm group visible
// METAL feature has null group: description used for column 2
expected = gffHeader + "FER_CAPAA\tCath\tMETAL\t39\t39\t1.2\t.\t.\n"
+ "FER_CAPAN\ts3dm\tGAMMA-TURN\t36\t38\t2.1\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(
+ expected.replace("\n", System.getProperty("line.separator")),
+ exported);
/*
* now set Pfam visible
+ "FER_CAPAA\tCath\tMETAL\t39\t39\t1.2\t.\t.\n"
+ "FER_CAPAN\ts3dm\tGAMMA-TURN\t36\t38\t2.1\t.\t.\n"
+ "FER_CAPAN\tUniprot\tPfam\t20\t20\t0.0\t+\t2\tx=y;black=white\n";
- assertEquals(expected, exported);
+ assertEquals(
+ expected.replace("\n", System.getProperty("line.separator")),
+ exported);
+ }
+
+ private String fixLineEnd(String s)
+ {
+ return s.replace("\n", System.getProperty("line.separator"));
}
/**
visible.put("foobar", new FeatureColour(Color.blue));
ff.outputFeatureFilters(sb, visible, featureFilters);
String expected = "\nSTARTFILTERS\nfoobar\tLabel Present\npfam\t(CSQ:PolyPhen Present) AND (Score LE -2.4)\nENDFILTERS\n";
- assertEquals(expected, sb.toString());
+ assertEquals(fixLineEnd(expected), sb.toString());
}
/**
String expected = gffHeader
+ "FER_CAPAA\tCath\tMETAL\t39\t39\t1.2\t.\t.\n"
+ "FER_CAPAA\tCath\tMETAL\t41\t41\t0.6\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(
+ fixLineEnd(expected), exported);
/*
* now threshold to Score > 1.1 - should exclude sf2
*/
- FeatureColourI fc = new FeatureColour(Color.white, Color.BLACK,
+ FeatureColourI fc = new FeatureColour(null, Color.white, Color.BLACK,
Color.white, 0f, 2f);
fc.setAboveThreshold(true);
fc.setThreshold(1.1f);
exported = featuresFile.printGffFormat(al.getSequencesArray(), fr,
false);
expected = gffHeader + "FER_CAPAA\tCath\tMETAL\t39\t39\t1.2\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
/*
* remove threshold and check sf2 is exported
false);
expected = gffHeader + "FER_CAPAA\tCath\tMETAL\t39\t39\t1.2\t.\t.\n"
+ "FER_CAPAA\tCath\tMETAL\t41\t41\t0.6\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
/*
* filter on (clin_sig contains Benign) - should include sf2 and exclude sf1
exported = featuresFile.printGffFormat(al.getSequencesArray(), fr,
false);
expected = gffHeader + "FER_CAPAA\tCath\tMETAL\t41\t41\t0.6\t.\t.\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
}
/**
+ "ENDGROUP\tgrp1\n\nSTARTGROUP\tgrp2\n"
+ "Cath\tFER_CAPAA\t-1\t41\t41\tMETAL\t0.6\n"
+ "ENDGROUP\tgrp2\n";
- assertEquals(expected, exported);
+ assertEquals(
+ fixLineEnd(expected),
+ exported);
/*
* now threshold to Score > 1.1 - should exclude sf2
* (and there should be no empty STARTGROUP/ENDGROUP output)
*/
- FeatureColourI fc = new FeatureColour(Color.white, Color.BLACK,
+ FeatureColourI fc = new FeatureColour(null, Color.white, Color.BLACK,
Color.white, 0f, 2f);
fc.setAboveThreshold(true);
fc.setThreshold(1.1f);
+ "STARTGROUP\tgrp1\n"
+ "Cath\tFER_CAPAA\t-1\t39\t39\tMETAL\t1.2\n"
+ "ENDGROUP\tgrp1\n";
- assertEquals(expected, exported);
+ assertEquals(
+ expected.replace("\n", System.getProperty("line.separator")),
+ exported);
/*
* remove threshold and check sf2 is exported
+ "ENDGROUP\tgrp1\n\nSTARTGROUP\tgrp2\n"
+ "Cath\tFER_CAPAA\t-1\t41\t41\tMETAL\t0.6\n"
+ "ENDGROUP\tgrp2\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
/*
* filter on (clin_sig contains Benign) - should include sf2 and exclude sf1
+ "STARTGROUP\tgrp2\n"
+ "Cath\tFER_CAPAA\t-1\t41\t41\tMETAL\t0.6\n"
+ "ENDGROUP\tgrp2\n";
- assertEquals(expected, exported);
+ assertEquals(fixLineEnd(expected), exported);
}
}