JAL-2920 revised TODO for JAL-3025
[jalview.git] / src / jalview / ws / dbsources / Uniprot.java
index 274ad32..c311ea9 100644 (file)
@@ -316,25 +316,43 @@ public class Uniprot extends DbSourceProxyImpl
       int p = 0;
       for (String var : variants)
       {
-        // TODO proper HGVC nomenclature for delins structural variations
+        // TODO proper HGVS nomenclature for delins structural variations
+        // http://varnomen.hgvs.org/recommendations/protein/variant/delins/
+        // for now we are pragmatic - any orig/variant sequence longer than
+        // three characters is shown with single-character notation rather than
+        // three-letter notation
         sb.append("p.");
-        for (int c = 0, clen = orig.length(); c < clen; c++)
+        if (orig.length() < 4)
         {
-          char origchar = orig.charAt(c);
-          String orig3 = ResidueProperties.aa2Triplet.get("" + origchar);
-          sb.append(orig3 == null ? origchar
-                  : StringUtils.toSentenceCase(orig3));
+          for (int c = 0, clen = orig.length(); c < clen; c++)
+          {
+            char origchar = orig.charAt(c);
+            String orig3 = ResidueProperties.aa2Triplet.get("" + origchar);
+            sb.append(orig3 == null ? origchar
+                    : StringUtils.toSentenceCase(orig3));
+          }
+        }
+        else
+        {
+          sb.append(orig);
         }
 
         sb.append(Integer.toString(uf.getPosition()));
 
-        for (int c = 0, clen = var.length(); c < clen; c++)
+        if (var.length() < 4)
         {
-          char varchar = var.charAt(c);
-          String var3 = ResidueProperties.aa2Triplet.get("" + varchar);
-
-          sb.append(var3 != null ? StringUtils.toSentenceCase(var3)
-                  : "" + varchar);
+          for (int c = 0, clen = var.length(); c < clen; c++)
+          {
+            char varchar = var.charAt(c);
+            String var3 = ResidueProperties.aa2Triplet.get("" + varchar);
+
+            sb.append(var3 != null ? StringUtils.toSentenceCase(var3)
+                    : "" + varchar);
+          }
+        }
+        else
+        {
+          sb.append(var);
         }
         if (++p != variants.size())
         {