- UniprotFeature uf = new UniprotFeature();
- assertEquals("", Uniprot.getDescription(uf));
-
- uf.setDescription("Hello");
- assertEquals("Hello", Uniprot.getDescription(uf));
-
- uf.setPosition(23);
- uf.setOriginal("K");
- Vector<String> vars = new Vector();
- vars.add("y");
- uf.setVariation(vars);
- assertEquals("p.Lys23Tyr Hello", Uniprot.getDescription(uf));
-
- vars.clear();
- vars.add("z"); // unknown variant - fails gracefully
- uf.setVariation(vars);
- assertEquals("p.Lys23z Hello", Uniprot.getDescription(uf));
-
- uf.setVariation(null); // variant missing - is ignored
- assertEquals("Hello", Uniprot.getDescription(uf));
+ FeatureType ft = new FeatureType();
+ assertEquals("", Uniprot.getDescription(ft));
+
+ ft.setDescription("Hello");
+ assertEquals("Hello", Uniprot.getDescription(ft));
+
+ ft.setLocation(new LocationType());
+ ft.getLocation().setPosition(new PositionType());
+ ft.getLocation().getPosition().setPosition(BigInteger.valueOf(23));
+ ft.setOriginal("K");
+ ft.getVariation().add("y");
+ assertEquals("p.Lys23Tyr Hello", Uniprot.getDescription(ft));
+
+ // multiple variants generate an html description over more than one line
+ ft.getVariation().add("W");
+ assertEquals("<html>p.Lys23Tyr<br/> p.Lys23Trp Hello</html>",
+ Uniprot.getDescription(ft));
+
+ /*
+ * indel cases
+ * up to 3 bases (original or variant) are shown using 3 letter code
+ */
+ ft.getVariation().clear();
+ ft.getVariation().add("KWE");
+ ft.setOriginal("KLS");
+ assertEquals("p.LysLeuSer23LysTrpGlu Hello",
+ Uniprot.getDescription(ft));
+
+ // adding a fourth original base switches to single letter code
+ ft.setOriginal("KLST");
+ assertEquals("p.KLST23LysTrpGlu Hello", Uniprot.getDescription(ft));
+
+ // adding a fourth variant switches to single letter code
+ ft.getVariation().clear();
+ ft.getVariation().add("KWES");
+ assertEquals("p.KLST23KWES Hello", Uniprot.getDescription(ft));
+
+ ft.getVariation().clear();
+ ft.getVariation().add("z"); // unknown variant - fails gracefully
+ ft.setOriginal("K");
+ assertEquals("p.Lys23z Hello", Uniprot.getDescription(ft));
+
+ ft.getVariation().clear(); // variant missing - is ignored
+ assertEquals("Hello", Uniprot.getDescription(ft));