Merge branch 'patch/JAL-840_clustalx_docs_fix' into develop
authorJames Procter <j.procter@dundee.ac.uk>
Wed, 6 Dec 2023 14:14:12 +0000 (14:14 +0000)
committerJames Procter <j.procter@dundee.ac.uk>
Wed, 6 Dec 2023 14:14:12 +0000 (14:14 +0000)
help/help/html/colourSchemes/clustal.html
src/jalview/schemes/ClustalxColourScheme.java
test/jalview/schemes/ClustalxColourSchemeTest.java

index b3d44db..f57d53f 100755 (executable)
@@ -61,42 +61,42 @@ td {
             <tr>
               <td rowspan="2">Hydrophobic</td>
               <td rowspan="2" bgcolor="#80a0f0">BLUE</td>
-              <td>A,I,L,M,F,W,V</td>
-              <td>{&gt;60%, WLVIMAFCHP}</td>
+              <td>A,C,I,L,M,F,W,V</td>
+              <td>{&gt;60%, WLVIMAFCYHP}</td>
             </tr>
             <tr>
               <td>C</td>
-              <td>{&gt;60%, WLVIMAFCHP}</td>
+              <td>{&gt;60%, WLVIMAFCYHP}</td>
             </tr>
             <tr>
               <td>Positive charge</td>
               <td bgcolor="#f01505">RED</td>
               <td>K,R</td>
-              <td>{&gt;60%,KR},{&gt;80%, K,R,Q}</td>
+              <td>{&gt;60%,KR},{&gt;85%, K,R,Q}</td>
             </tr>
             <tr>
               <td rowspan="2">Negative charge</td>
               <td rowspan="2" bgcolor="#c048c0">MAGENTA</td>
               <td>E</td>
-              <td>{&gt;60%,KR},{&gt;50%,QE},{&gt;85%,E,Q,D}</td>
+              <td>{&gt;60%,KR},{&gt;50%,QE},{&gt;50%,ED},{&gt;85%,E,Q,D}</td>
             </tr>
             <tr>
               <td>D</td>
-              <td>{&gt;60%,KR}, {&gt;85%, K,R,Q}, {&gt;50%,ED}</td>
+              <td>{&gt;60%,KR}, {&gt;85%, D,E,N}, {&gt;50%,ED}</td>
             </tr>
             <tr>
               <td rowspan="3">Polar</td>
               <td rowspan="3" bgcolor="#15c015">GREEN</td>
               <td>N</td>
-              <td>{&gt;50%, N}, {&gt;85%, N,Y}</td>
+              <td>{&gt;50%, N}, {&gt;85%, N,D}</td>
             </tr>
             <tr>
               <td>Q</td>
-              <td>{&gt;60%,KR},{&gt;50%,QE},{&gt;85%,Q,E,K,R}</td>
+              <td>{&gt;60%,KR},{&gt;50%,QE},{&gt;85%,Q,T,K,R}</td>
             </tr>
             <tr>
               <td>S,T</td>
-              <td>{&gt;60%, WLVIMAFCHP}, {&gt;50%, TS}, {&gt;85%,S,T}</td>
+              <td>{&gt;60%, WLVIMAFCYHP}, {&gt;50%, TS}, {&gt;85%,S,T}</td>
             </tr>
             <tr>
               <td>Cysteines</td>
@@ -120,7 +120,7 @@ td {
               <td>Aromatic</td>
               <td bgcolor="#15a4a4">CYAN</td>
               <td>H,Y</td>
-              <td>{&gt;60%, WLVIMAFCHP}, {&gt;85%,
+              <td>{&gt;60%, WLVIMAFCYHP}, {&gt;85%,
                 W,Y,A,C,P,Q,F,H,I,L,M,V}</td>
             </tr>
             <tr>
index 5a2d5dc..04097a8 100755 (executable)
@@ -21,6 +21,7 @@
 package jalview.schemes;
 
 import java.awt.Color;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -28,6 +29,7 @@ import jalview.api.AlignViewportI;
 import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.SequenceCollectionI;
 import jalview.datamodel.SequenceI;
+import jalview.util.ColorUtils;
 import jalview.util.Comparison;
 
 public class ClustalxColourScheme extends ResidueColourScheme
@@ -362,4 +364,63 @@ public class ClustalxColourScheme extends ResidueColourScheme
   {
     return false;
   }
+  public String toRuleRep()
+  {
+    makeColours();
+    HashMap<String, String> cols=new HashMap();
+    for (String res:ResidueProperties.aa) {
+      StringBuilder sb = new StringBuilder();
+      
+      int rnum=ResidueProperties.aaIndex[res.charAt(0)];
+      if (rnum<0 || rnum>=residueColour.length)
+      {
+        continue;
+      }
+      
+      ConsensusColour cc = residueColour[rnum];
+      if (cc==null)
+      {
+        continue;
+      }
+      //sb.append("Residue "+res+" ("+rnum+")");
+      //sb.append("\t");
+      sb.append(cc.c.toString());
+      double f=0;
+      sb.append("\t");
+      for (Consensus cons: cc.cons) {
+        if (cons.threshold==0 || f!=cons.threshold)
+        {
+          if (f!=0)
+          {
+
+              sb.append("}, {");
+          } else {
+          sb.append("{");
+          }
+        sb.append(cons.threshold);
+        sb.append(",");
+        f=cons.threshold;
+        } else {
+          sb.append(",");
+        }
+        sb.append(cons.maskstr);
+      }
+      sb.append("}");
+      String clxrep=sb.toString();
+      String xres = cols.get(clxrep);
+      if (xres==null) { xres = "";}
+      xres+=res;
+      cols.put(clxrep, xres);
+    }
+    StringBuilder sb = new StringBuilder();
+    for (String clxrep:cols.keySet())
+    {
+      sb.append(cols.get(clxrep));
+      sb.append("\t");
+      sb.append(clxrep);
+      sb.append("\n");
+      
+    }
+    return sb.toString();
+  }
 }
index 6731465..d476d6e 100644 (file)
@@ -151,4 +151,12 @@ public class ClustalxColourSchemeTest
     // viewport
     // assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalPink);
   }
+  @Test
+  public void testDocString()
+  {
+    /* verify we have some sort of useful output */
+    ClustalxColourScheme x = new ClustalxColourScheme();
+    String out = x.toRuleRep();
+    System.out.print(out);
+  }
 }