From 07e886b4efc14f40c79421d3a47f68734b58ff7d Mon Sep 17 00:00:00 2001 From: James Procter Date: Fri, 5 Jun 2015 11:04:25 +0100 Subject: [PATCH] JAL-1601 trial constructor and test for JPred RSBS description --- src/jalview/ws/rest/RestClient.java | 32 ++++++++++++ test/jalview/ws/rest/Jpred4RSBSService.java | 75 +++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 test/jalview/ws/rest/Jpred4RSBSService.java diff --git a/src/jalview/ws/rest/RestClient.java b/src/jalview/ws/rest/RestClient.java index 31b069d..b637d32 100644 --- a/src/jalview/ws/rest/RestClient.java +++ b/src/jalview/ws/rest/RestClient.java @@ -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 iparams = new Hashtable(); + 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 index 0000000..a318767 --- /dev/null +++ b/test/jalview/ws/rest/Jpred4RSBSService.java @@ -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 . + * 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 e : rc.service.getInputParams() + .entrySet()) + { + System.out.println("For Input '" + e.getKey() + ":\n" + + e.getValue().formatForInput(rjb).getContentLength()); + } + } + + +} -- 1.7.10.2