sequenceId is a string, not an integer - allows generation of unlimited unique sequen...
[jalview.git] / src / jalview / schemes / ResidueProperties.java
index e55ce18..98868d2 100755 (executable)
@@ -1290,4 +1290,53 @@ public class ResidueProperties
     }
     return ss.toString();
   }
+  // main method generates perl representation of residue property hash
+  /// cut here
+  public static void main(String[] args)
+  {
+    Hashtable aa = new Hashtable(); 
+    System.out.println("my %aa = {");
+    // invert property hashes
+    Enumeration prop = propHash.keys();
+    while (prop.hasMoreElements())
+    {
+      String pname = (String) prop.nextElement();
+      Hashtable phash = (Hashtable) propHash.get(pname);
+      Enumeration res = phash.keys();
+      while (res.hasMoreElements())
+      {
+        String rname = (String) res.nextElement();
+        Vector aprops = (Vector) aa.get(rname);
+        if (aprops==null)
+        {
+          aprops = new Vector();
+          aa.put(rname, aprops);
+        }
+        Integer hasprop = (Integer) phash.get(rname);
+        if (hasprop.intValue()==1)
+        {
+          aprops.addElement(pname);
+        }
+      }
+    }
+    Enumeration res = aa.keys();
+    while (res.hasMoreElements())
+    {
+      String rname = (String) res.nextElement();
+      
+      System.out.print("'"+rname+"' => [");
+      Enumeration props = ((Vector) aa.get(rname)).elements();
+      while (props.hasMoreElements())
+      {
+        System.out.print("'"+(String)props.nextElement()+"'");
+        if (props.hasMoreElements())
+        {
+          System.out.println(", ");
+        }
+      }
+      System.out.println("]"+(res.hasMoreElements() ? "," : ""));
+    }
+    System.out.println("};");
+  }
+  // to here
 }