Menu names changed
[jalview.git] / src / jalview / ws / Jemboss.java
index 336be27..7983262 100755 (executable)
@@ -83,8 +83,11 @@ public class Jemboss
         }
         return allfound;
     }
-
-  public SequenceI[] clustalW(SequenceI[] sequences)
+    public SequenceI[] clustalW(SequenceI[] sequences) {
+      // Does the same as below but keeps initial sequence order.
+      return (this.clustalW(sequences, true));
+    }
+  public SequenceI[] clustalW(SequenceI[] sequences, boolean PreserveOrder)
   {
 
     // Simplest client call - with gumph from jemboss.server.TestPrivateServer
@@ -134,12 +137,12 @@ public class Jemboss
     for (int i=0; i<sequences.length; i++) {
         myseq[i] = new Sequence(sequences[i]);
     }
-    // Uniqueify, and 
+    // Uniqueify, and
     Hashtable namemap = uniquify(myseq);
     // Load sequence file into hash
-    
+
     filesToMove.put("jalseqs.fasta",
-                    jalview.io.FastaFile.print(myseq,124,false).getBytes());
+                    jalview.io.FastaFile.print(myseq,124,false, false).getBytes());
 
     if(vamsas_server.getUseAuth() == true)
       if(vamsas_server.getServiceUserName() == null)
@@ -163,7 +166,7 @@ public class Jemboss
           String alfile = h.get(thiskey).toString();
           String format = IdentifyFile.Identify(alfile, "Paste");
           SequenceI[] alignment = null;
-          
+
           if (FormatProperties.contains(format))
             alignment = FormatAdapter.read(alfile, "Paste", format);
           else
@@ -172,6 +175,12 @@ public class Jemboss
             System.out.println("jalview.Jemboss: Couldn't read response:\n"
                                + alfile + "\n---EOF\n");
           else {
+            if (PreserveOrder) {
+              float[] ids = new float[alignment.length];
+              for (int i=0; i<alignment.length; i++)
+                ids[i] = (new Float(alignment[i].getName().substring(8))).floatValue();
+              jalview.util.QuickSort.sort(ids, alignment);
+            }
             if (!deuniquify(namemap, alignment)) {
                   System.out.println("jalview.Jemboss: Warning: Some of the "
                                      +"original sequence names have not been recovered!\n");