package jalview.ws.rest.clientdefs; import jalview.io.packed.DataProvider.JvDataType; import jalview.util.MessageManager; import jalview.ws.rest.InputType; import jalview.ws.rest.RestClient; import jalview.ws.rest.RestServiceDescription; import jalview.ws.rest.params.Alignment; import jalview.ws.rest.params.JobConstant; import jalview.ws.rest.params.SeqGroupIndexVector; import java.util.Hashtable; public class ShmrRestClient { public static RestClient makeShmmrRestClient() { String action = "Analysis", description = "Sequence Harmony and Multi-Relief (Brandt et al. 2010)", name = MessageManager .getString("label.multiharmony"); Hashtable iparams = new Hashtable(); jalview.ws.rest.params.JobConstant toolp; // toolp = new jalview.ws.rest.JobConstant("tool","jalview"); // iparams.put(toolp.token, toolp); // toolp = new jalview.ws.rest.params.JobConstant("mbjob[method]","shmr"); // iparams.put(toolp.token, toolp); // toolp = new // jalview.ws.rest.params.JobConstant("mbjob[description]","step 1"); // iparams.put(toolp.token, toolp); // toolp = new jalview.ws.rest.params.JobConstant("start_search","1"); // iparams.put(toolp.token, toolp); // toolp = new jalview.ws.rest.params.JobConstant("blast","0"); // iparams.put(toolp.token, toolp); jalview.ws.rest.params.Alignment aliinput = new jalview.ws.rest.params.Alignment(); // SHMR server has a 65K limit for content pasted into the 'ali' parameter, // so we always upload our files. aliinput.token = "ali_file"; aliinput.writeAsFile = true; iparams.put(aliinput.token, aliinput); jalview.ws.rest.params.SeqGroupIndexVector sgroups = new jalview.ws.rest.params.SeqGroupIndexVector(); sgroups.setMinsize(2); sgroups.min = 2;// need at least two group defined to make a partition iparams.put("groups", sgroups); sgroups.token = "groups"; sgroups.sep = " "; RestServiceDescription shmrService = new RestServiceDescription( action, description, name, "http://zeus.few.vu.nl/programs/shmrwww/index.php?tool=jalview",// ?tool=jalview&mbjob[method]=shmr&mbjob[description]=step1", "?tool=jalview", iparams, true, false, '-'); // a priori knowledge of the data returned from the service shmrService.addResultDatatype(JvDataType.ANNOTATION); return new RestClient(shmrService); } }