JAL-1601 trial constructor and test for JPred RSBS description
authorJames Procter <jprocter@ls30857.local>
Fri, 5 Jun 2015 10:04:25 +0000 (11:04 +0100)
committerJames Procter <jprocter@ls30857.local>
Fri, 5 Jun 2015 10:07:36 +0000 (11:07 +0100)
src/jalview/ws/rest/RestClient.java
test/jalview/ws/rest/Jpred4RSBSService.java [new file with mode: 0644]

index 31b069d..b637d32 100644 (file)
@@ -354,6 +354,38 @@ public class RestClient extends WSClient implements WSClientI,
     return new RestClient(shmrService);
   }
 
+  public static RestClient makeJPred4RestClient()
+  {
+    String action = "Secondary Structure Prediction", description = "JPred4 Secondary Structure prediction (Drozdetskiy et al 2015)", name = "JPred4 Consensus";
+    Hashtable<String, InputType> iparams = new Hashtable<String, InputType>();
+    jalview.ws.rest.params.JobConstant toolp;
+
+    jalview.ws.rest.params.Alignment aliinput = new jalview.ws.rest.params.Alignment();
+    aliinput.token = "file";
+    aliinput.writeAsFile = true;
+    aliinput.setAlignmentFormat("FASTA"); // probably not needed since FASTA is
+                                          // default
+    iparams.put(aliinput.token, aliinput);
+    aliinput.min = 2;
+    aliinput.max = 1000;
+    toolp = new JobConstant("mode", "msa");
+    iparams.put(toolp.token, toolp);
+
+    RestServiceDescription jpred4msa = new RestServiceDescription(
+            action,
+            description,
+            name,
+            "http://www.compbio.dundee.ac.uk/jpred4/cgi-bin/submit", "",
+            Arrays.asList(new String[]
+            // chklog?
+            { "http://www.compbio.dundee.ac.uk/jpred4/job/",
+                "http://www.compbio.dundee.ac.uk/jpred4/results/" }),
+            iparams, false, false, '-');
+    // a priori knowledge of the data returned from the service
+    jpred4msa.addResultDatatype(JvDataType.ANNOTATION);
+    return new RestClient(jpred4msa);
+  }
+
   public AlignmentPanel recoverAlignPanelForView()
   {
     AlignmentPanel[] aps = Desktop
diff --git a/test/jalview/ws/rest/Jpred4RSBSService.java b/test/jalview/ws/rest/Jpred4RSBSService.java
new file mode 100644 (file)
index 0000000..a318767
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+package jalview.ws.rest;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import jalview.gui.AlignFrame;
+
+import java.util.Map;
+
+import org.junit.Test;
+
+/**
+ * @author jimp
+ * 
+ */
+public class Jpred4RSBSService
+{
+
+  @Test
+  public void testJPred4ServiceDefinition()
+  {
+
+    assertTrue(
+            "Test Rsd Exchange with JPred4",
+            TestRestServiceDescription.testRsdExchange("Test using JPred4",
+                    RestClient.makeJPred4RestClient().service));
+  }
+
+  @Test
+  public void testJPred4ServiceDataprep() throws Exception
+  {
+    RestClient _rc = RestClient.makeJPred4RestClient();
+    assertNotNull(_rc);
+    AlignFrame alf = new jalview.io.FileLoader(false)
+            .LoadFileWaitTillLoaded("examples/testdata/smad.fa",
+                    jalview.io.FormatAdapter.FILE);
+    assertNotNull("Couldn't find test data.", alf);
+
+    RestClient rc = new RestClient(_rc.service, alf, true);
+
+    assertNotNull("Couldn't creat RestClient job.", rc);
+    jalview.bin.Cache.initLogger();
+    RestJob rjb = new RestJob(0, new RestJobThread(rc),
+            rc.av.getAlignment(), null);
+    rjb.setAlignmentForInputs(rc.service.getInputParams().values(),
+            rc.av.getAlignment());
+    for (Map.Entry<String, InputType> e : rc.service.getInputParams()
+            .entrySet())
+    {
+      System.out.println("For Input '" + e.getKey() + ":\n"
+              + e.getValue().formatForInput(rjb).getContentLength());
+    }
+  }
+
+
+}