<?xml version="1.0" encoding="UTF-8"?>\r
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>\r
- <endpoint\r
- name='RegistryWS'\r
- implementation='compbio.ws.server.RegistryWS'\r
- url-pattern='/RegistryWS'/>\r
- <endpoint\r
- name='ClustalWS'\r
- implementation='compbio.ws.server.ClustalWS'\r
- url-pattern='/ClustalWS'/>\r
- <endpoint\r
- name='ClustalOWS'\r
- implementation='compbio.ws.server.ClustalOWS'\r
- url-pattern='/ClustalOWS'/>\r
- <endpoint\r
- name='MuscleWS'\r
- implementation='compbio.ws.server.MuscleWS'\r
- url-pattern='/MuscleWS'/>\r
- <endpoint\r
- name='TcoffeeWS'\r
- implementation='compbio.ws.server.TcoffeeWS'\r
- url-pattern='/TcoffeeWS'/>\r
- <endpoint\r
- name='MafftWS'\r
- implementation='compbio.ws.server.MafftWS'\r
- url-pattern='/MafftWS'/>\r
- <endpoint\r
- name='ProbconsWS'\r
- implementation='compbio.ws.server.ProbconsWS'\r
- url-pattern='/ProbconsWS'/>\r
- <endpoint\r
- name='AAConWS'\r
- implementation='compbio.ws.server.AAConWS'\r
- url-pattern='/AAConWS'/>\r
- <endpoint\r
- name='JronnWS'\r
- implementation='compbio.ws.server.JronnWS'\r
- url-pattern='/JronnWS'/>\r
- <endpoint\r
- name='DisemblWS'\r
- implementation='compbio.ws.server.DisemblWS'\r
- url-pattern='/DisemblWS'/>\r
- <endpoint\r
- name='GlobPlotWS'\r
- implementation='compbio.ws.server.GlobPlotWS'\r
- url-pattern='/GlobPlotWS'/>\r
- <endpoint\r
- name='IUPredWS'\r
- implementation='compbio.ws.server.IUPredWS'\r
- url-pattern='/IUPredWS'/>\r
- <endpoint\r
- name='RNAalifoldWS'\r
- implementation='compbio.ws.server.RNAalifoldWS'\r
- url-pattern='/RNAalifoldWS'/>\r
+ <endpoint name='RegistryWS'\r
+ implementation='compbio.ws.server.RegistryWS'\r
+ url-pattern='/RegistryWS'/>\r
+ <endpoint name='ClustalWS'\r
+ implementation='compbio.ws.server.ClustalWS'\r
+ url-pattern='/ClustalWS'/>\r
+ <endpoint name='ClustalOWS'\r
+ implementation='compbio.ws.server.ClustalOWS'\r
+ url-pattern='/ClustalOWS'/>\r
+ <endpoint name='MuscleWS'\r
+ implementation='compbio.ws.server.MuscleWS'\r
+ url-pattern='/MuscleWS'/>\r
+ <endpoint name='TcoffeeWS'\r
+ implementation='compbio.ws.server.TcoffeeWS'\r
+ url-pattern='/TcoffeeWS'/>\r
+ <endpoint name='MafftWS'\r
+ implementation='compbio.ws.server.MafftWS'\r
+ url-pattern='/MafftWS'/>\r
+ <endpoint name='ProbconsWS'\r
+ implementation='compbio.ws.server.ProbconsWS'\r
+ url-pattern='/ProbconsWS'/>\r
+ <endpoint name='AAConWS'\r
+ implementation='compbio.ws.server.AAConWS'\r
+ url-pattern='/AAConWS'/>\r
+ <endpoint name='JronnWS'\r
+ implementation='compbio.ws.server.JronnWS'\r
+ url-pattern='/JronnWS'/>\r
+ <endpoint name='DisemblWS'\r
+ implementation='compbio.ws.server.DisemblWS'\r
+ url-pattern='/DisemblWS'/>\r
+ <endpoint name='GlobPlotWS'\r
+ implementation='compbio.ws.server.GlobPlotWS'\r
+ url-pattern='/GlobPlotWS'/>\r
+ <endpoint name='IUPredWS'\r
+ implementation='compbio.ws.server.IUPredWS'\r
+ url-pattern='/IUPredWS'/>\r
+ <endpoint name='JpredWS'\r
+ implementation='compbio.ws.server.JpredWS'\r
+ url-pattern='/JpredWS'/>\r
++ <endpoint name='RNAalifoldWS'\r
++ implementation='compbio.ws.server.RNAalifoldWS'\r
++ url-pattern='/RNAalifoldWS'/>\r
</endpoints>\r
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>\r
<load-on-startup>1</load-on-startup>\r
</servlet>\r
+ \r
+ <servlet>\r
+ <servlet-name>RNAalifoldWS</servlet-name>\r
+ <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>\r
+ <load-on-startup>1</load-on-startup>\r
+ </servlet>\r
+ <servlet>\r
+ <display-name>Apache-Axis Servlet</display-name>\r
+ <servlet-name>AxisServlet</servlet-name>\r
+ <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>\r
+ </servlet>\r
+ <servlet>\r
+ <display-name>Axis Admin Servlet</display-name>\r
+ <servlet-name>AdminServlet</servlet-name>\r
+ <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>\r
+ <load-on-startup>100</load-on-startup>\r
+ </servlet>\r
\r
+ <servlet>\r
+ <servlet-name>JpredWS</servlet-name>\r
+ <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>\r
+ <load-on-startup>1</load-on-startup>\r
+ </servlet>\r
+ \r
<!-- JABAWS servlet mappings -->\r
<servlet-mapping>\r
<servlet-name>listings</servlet-name>\r
<servlet-name>IUPredWS</servlet-name>\r
<url-pattern>/IUPredWS</url-pattern>\r
</servlet-mapping>\r
+ \r
+ <servlet-mapping>\r
+ <servlet-name>RNAalifoldWS</servlet-name>\r
+ <url-pattern>/RNAalifoldWS</url-pattern>\r
+ </servlet-mapping>\r
+ <servlet-mapping>\r
+ <servlet-name>AxisServlet</servlet-name>\r
+ <url-pattern>/servlet/AxisServlet</url-pattern>\r
+ </servlet-mapping>\r
+ <servlet-mapping>\r
+ <servlet-name>AxisServlet</servlet-name>\r
+ <url-pattern>*.jws</url-pattern>\r
+ </servlet-mapping>\r
+ <servlet-mapping>\r
+ <servlet-name>AxisServlet</servlet-name>\r
+ <url-pattern>/services/*</url-pattern>\r
+ </servlet-mapping>\r
+ <servlet-mapping>\r
+ <servlet-name>AdminServlet</servlet-name>\r
+ <url-pattern>/servlet/AdminServlet</url-pattern>\r
+ </servlet-mapping>\r
\r
+ <servlet-mapping>\r
+ <servlet-name>JpredWS</servlet-name>\r
+ <url-pattern>/JpredWS</url-pattern>\r
+ </servlet-mapping>\r
\r
\r
<!-- JABAWS security constraints -->\r
import java.io.OutputStream;\r
import java.io.OutputStreamWriter;\r
import java.util.ArrayList;\r
+import java.util.Arrays;\r
import java.util.HashMap;\r
+ import java.util.Collections;\r
import java.util.HashSet;\r
import java.util.List;\r
import java.util.Map;\r
}\r
}\r
\r
- // This method tests the loading of horizontally formatted Jronn output file\r
+ // Potential Bug :- Sequence names are shortened to 2-3 letters\r
+ @Test\r
+ public void testReadFastaWriteClustal() {\r
+ \r
+ try {\r
+ FileInputStream fio = new FileInputStream(\r
+ AllTestSuit.TEST_DATA_PATH + "TO1381.fasta");\r
+ assertNotNull(fio);\r
+ List<FastaSequence> fseqs = SequenceUtil.readFasta(fio);\r
+ assertNotNull(fseqs);\r
+ fio.close();\r
+ \r
+ char gapChar = '-';\r
+ FileOutputStream fou = new FileOutputStream(\r
+ AllTestSuit.TEST_DATA_PATH + "TO1381.aln.written");\r
+ SequenceUtil.writeClustal(fou, fseqs, gapChar);\r
+ fou.close();\r
+ \r
+ } catch (FileNotFoundException e) {\r
+ e.printStackTrace();\r
+ fail(e.getLocalizedMessage());\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ fail(e.getLocalizedMessage());\r
+ }\r
- } \r
- \r
- \r
++ }\r
+\r
- \r
- \r
+ /**\r
+ * This test tests the loading of horizontally formatted Jronn output file\r
+ */\r
@Test\r
- public void loadJronnFile() {\r
+ public void LoadJronnFile() {\r
\r
FileInputStream fio;\r
try {\r
fail(e.getMessage());\r
}\r
}\r
+ @Test\r
+ public void ReadJpredResults() {\r
+ try {\r
+ InputStream inStream = new FileInputStream(AllTestSuit.TEST_DATA_PATH + "Jpred.test1.out");\r
+ List<FastaSequence> result = SequenceUtil.readJpredFile(inStream);\r
+ inStream.close();\r
+ assertNotNull(result);\r
+ assertEquals(result.size(), 19);\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ fail(e.getMessage());\r
+ }\r
+ }\r
}\r
+\r
public static final String RUNNER_TEST_LOGGER = "RunnerLogger";\r
\r
public static final String test_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "TO1381.fasta";\r
- \r
public static final String test_alignment_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "TO1381.fasta.aln";\r
- \r
public static final String test_input_real = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "50x500Protein.fasta";\r
- \r
public static final String test_input_dna = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "3dnaseqs.fasta";\r
- \r
public static final String test_input_large = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "1000x3000Dna.fasta";\r
+ \r
+ public static final String test_input_aln = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "unfolded_RF00031.aln";\r
\r
}\r
public static final String CATEGORY_ALIGNMENT = "Alignment";\r
public static final String CATEGORY_DISORDER = "Protein Disorder";\r
public static final String CATEGORY_CONSERVATION = "Conservation";\r
- public static final String CATEGORY_RNASTRUCT = "RNA Structure Prediction";\r
+ public static final String CATEGORY_PREDICTION = "Prediction";\r
- \r
+\r
public String name;\r
Set<Services> services;\r
\r
disorder_services.add(Services.GlobPlotWS);\r
disorder_services.add(Services.IUPredWS);\r
disorder_services.add(Services.JronnWS);\r
- \r
Category disorder = new Category(CATEGORY_DISORDER, disorder_services);\r
+ \r
Set<Services> conservation_services = new HashSet<Services>();\r
conservation_services.add(Services.AAConWS);\r
+ Category conservation = new Category(CATEGORY_CONSERVATION, conservation_services);\r
\r
- Category conservation = new Category(CATEGORY_CONSERVATION,\r
- conservation_services);\r
+ Set<Services> prediction_services = new HashSet<Services>();\r
+ prediction_services.add(Services.JpredWS);\r
++ prediction_services.add(Services.RNAalifoldWS);\r
+ Category prediction = new Category(CATEGORY_PREDICTION, prediction_services);\r
\r
- Set<Services> rnastruct_services = new HashSet<Services>();\r
- rnastruct_services.add(Services.RNAalifoldWS);\r
- \r
- Category rnastruct = new Category(CATEGORY_RNASTRUCT,\r
- rnastruct_services);\r
- \r
Set<Category> categories = new HashSet<Category>();\r
categories.add(alignment);\r
categories.add(disorder);\r
}\r
return alignment;\r
}\r
-\r
+ \r
/**\r
- * Prints Jws2Client usage information to standard out\r
- * \r
- * @param exitStatus\r
- */\r
- static void printUsage(int exitStatus) {\r
- System.out.println(Constraints.help_text);\r
- System.exit(exitStatus);\r
- }\r
- \r
- /**\r
* Starts command line client, if no parameter are supported print help. Two\r
* parameters are required for successful call the JWS2 host name and a\r
* service name.\r
* Make sure this class has NO references to runners or engines as it is a\r
* part of minimal client package. Such things should go into ServicesUtil\r
*/\r
- MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS,\r
- JronnWS, DisemblWS, GlobPlotWS, IUPredWS, RNAalifoldWS;\r
- MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, JpredWS;\r
++ MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, JpredWS, RNAalifoldWS;\r
\r
public static Services getService(String servName) {\r
servName = servName.trim().toLowerCase();\r
case DisemblWS :\r
case GlobPlotWS :\r
case IUPredWS :\r
+ case RNAalifoldWS :\r
return SequenceAnnotation.class;\r
- \r
- // deliberate leaking\r
+ case JpredWS :\r
case ClustalWS :\r
case ClustalOWS :\r
case MafftWS :\r
case ProbconsWS :\r
case TcoffeeWS :\r
return MsaWS.class;\r
- \r
++\r
default :\r
- throw new RuntimeException("Unrecognised Web Service Type "\r
- + this + " - Should never happened!");\r
+ throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
}\r
}\r
\r
+ \r
+ String getServiceNamespace() {\r
+ switch (this) {\r
- case JpredWS :\r
++ case RNAalifoldWS :\r
+ case AAConWS :\r
+ case JronnWS :\r
+ case DisemblWS :\r
+ case GlobPlotWS :\r
+ case IUPredWS :\r
- case ClustalOWS :\r
+ return JABAService.V2_SERVICE_NAMESPACE;\r
++ case ClustalOWS :\r
++ case JpredWS :\r
+ case ClustalWS :\r
+ case MafftWS :\r
+ case MuscleWS :\r
+ case ProbconsWS :\r
+ case TcoffeeWS :\r
+ return JABAService.SERVICE_NAMESPACE;\r
+ default :\r
+ throw new RuntimeException("Unrecognised JABAWS Namespace for service " + this +"!");\r
+ }\r
+ }\r
+ \r
JABAService getInterface(Service service) {\r
assert service != null;\r
\r
return PROBCONS_INFO;\r
case TcoffeeWS :\r
return TCOFFEE_INFO;\r
+ case RNAalifoldWS :\r
+ return RNAALIFOLD_INFO;\r
default :\r
- throw new RuntimeException("Unrecognised Web Service Type "\r
- + this + " - Should never happened!");\r
+ throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
}\r
}\r
\r
MafftWS,\r
"Katoh, Toh 2010 (Bioinformatics 26:1899-1900)\r\n"\r
+ "Parallelization of the MAFFT multiple sequence alignment program. ",\r
- "6.8.57", "http://mafft.cbrc.jp/alignment/software/").toString();;\r
+ "6.8.57", "http://mafft.cbrc.jp/alignment/software/").toString();\r
\r
- // TODO reference\r
+ public static final String RNAALIFOLD_INFO = new ServiceInfo(\r
+ RNAalifoldWS,\r
+ "Ivo L. Hofacker, Martin Fekete, and Peter F. Stadler 'Secondary Structure Prediction"\r
+ + " for Aligned RNA Sequences'. J.Mol.Biol. 319: 1059-1066, 2002. Stephan H. Bernhart,"\r
+ + " Ivo L. Hofacker, Sebastian Will, Andreas R. Gruber, and Peter F. Stadler. "\r
+ + "'RNAalifold: Improved consensus structure prediction for RNA alignments'. BMC Bioinformatics, 9:474, 2008.\r\n",\r
- "2.1.2", "http://www.tbi.univie.ac.at/RNA/").toString();;\r
- \r
++ "2.1.2", "http://www.tbi.univie.ac.at/RNA/").toString();\r
++\r
@XmlAccessorType(XmlAccessType.FIELD)\r
static class ServiceInfo {\r
Services service;\r
public static void main(String[] args) {\r
System.out.println(MUSCLE_INFO);\r
}\r
--}
++}\r
return Jronn.class;\r
case IUPredWS :\r
return IUPred.class;\r
+ case RNAalifoldWS :\r
+ return RNAalifold.class;\r
default :\r
- throw new RuntimeException(\r
- "Unknown web service implementation class for service: "\r
- + service);\r
+ throw new RuntimeException("Unknown web service implementation class for service: " + service);\r
}\r
}\r
\r
public class WSTester {\r
\r
/**\r
- * Sequences to be used as input for all WS\r
+ * Test sequences to be used as input for WS\r
*/\r
- public static final String fastaInput = ">Foo\n"\r
- + "MTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV"\r
- + "\n>Bar\n"\r
- + "ASDAAPEHPGIALWLHALEDAGQAEAAAAYTRAHQLLPEEPYITAQLLNAVA\n";\r
- \r
- public static final String fastaAlignment = ">Foo\n"\r
- + "MTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV--------\n"\r
- + ">Bar\n"\r
- + "ASDAAPEH------------PGIALWLHALE-DAGQAEAAA---AYTRAHQLLPEEPYITAQLLNAVA\n"\r
- + "";\r
- \r
- public static final String fastaRNAAlignment = ">Foo\n"\r
- + "C-UUGCGUUAAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G-GGUUUCUGUUGGAUGGUUG----GCAAC\n"\r
- + ">Bar\n"\r
- + "G-UGGCGCUUAUGACGCAGUUGUCU-UAAA-CUCGAAC--UCGA-GCGGGCAAUUGCUGAU-UACGAUUAACCAC\n";\r
+ public static final String fastaInput2records = \r
+ ">Foo\nMTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV\n"\r
+ + ">Bar\nASDAAPEHPGIALWLHALEDAGQAEAAAAYTRAHQLLPEEPYITAQLLNAVA\n";\r
+ public static final String fastaInput1record = \r
+ ">Foo\nMTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV\n";\r
+ public static final String fastaAlignment = \r
+ ">Foo\nMTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV--------\n"\r
+ + ">Bar\nASDAAPEH------------PGIALWLHALE-DAGQAEAAA---AYTRAHQLLPEEPYITAQLLNAVA\n";\r
++ public static final String fastaRNAAlignment = \r
++ ">Foo\nC-UUGCGUUAAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G-GGUUUCUGUUGGAUGGUUG----GCAAC\n"\r
++ + ">Bar\nG-UGGCGCUUAUGACGCAGUUGUCU-UAAA-CUCGAAC--UCGA-GCGGGCAAUUGCUGAU-UACGAUUAACCAC\n";\r
\r
+ /**\r
+ * Status strings\r
+ */\r
private static final String FAILED = "FAILED";\r
private static final String OK = "OK";\r
- \r
private static final String UNSUPPORTED = "UNSUPPORTED";\r
\r
/**\r
SequenceAnnotation<T> wservice, Services service) throws Exception {\r
writer.print("Calling analyse.........");\r
\r
- List<FastaSequence> input = loadSeqs();\r
+ List<FastaSequence> input = loadSeqs(2);\r
- if (service == Services.AAConWS) {\r
+ if (service == Services.AAConWS ) {\r
input = loadAlignment();\r
+ } else if (service == Services.RNAalifoldWS) {\r
+ input = loadRNAAlignment();\r
}\r
boolean success = testDefaultAnalyse(input, wservice, null, null);\r
\r
throws ResultNotAvailableException {\r
WSUtil.validateJobId(jobId);\r
AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
- ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine\r
- .getResults(jobId);\r
- \r
+ ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine.getResults(jobId);\r
ScoreManager mas = aacon.getResults();\r
+ \r
log.trace(jobId + " getConservation : " + mas);\r
return mas;\r
}\r
<property name="iupred.wsdl" location="${wsdl.dir}/IUPredWS.wsdl" />\r
<property name="jronn.wsdl" location="${wsdl.dir}/JronnWS.wsdl" />\r
<property name="registry.wsdl" location="${wsdl.dir}/RegistryWS.wsdl" />\r
+ <property name="rnaalifold.wsdl" location="${wsdl.dir}/RNAalifold.wsdl" /> \r
+ \r
<taskdef name="wsgen" onerror="report" classname="com.sun.tools.ws.ant.WsGen">\r
<classpath refid="project.classpath" />\r
</taskdef>\r
<classpath refid="classes.path" />\r
<classpath refid="project.classpath" />\r
</wsgen>\r
- \r
+ <wsgen sei="compbio.ws.server.RNAalifoldWS"\r
+ sourcedestdir="${basedir}/webservices"\r
+ destdir="${classes}"\r
+ resourcedestdir="${wsdl.dir}"\r
+ keep="true" genwsdl="true"\r
+ extension="false"\r
+ xendorsed="true"\r
+ verbose="true">\r
+ <classpath refid="classes.path" />\r
+ <classpath refid="project.classpath" />\r
+ </wsgen>\r
+ \r
</target>\r
+ \r
\r
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">\r
<classpath refid="project.classpath" />\r
package="compbio.ws.client.stub" target="2.1"\r
quiet="false">\r
</wsimport>\r
- \r
+ <wsimport wsdl="${rnaalifold.wsdl}" \r
+ sourcedestdir="${basedir}/webservices/" \r
+ keep="true" extension="false" \r
+ verbose="true" xnocompile="true" xendorsed="true"\r
+ package="compbio.ws.client.stub" target="2.1"\r
+ quiet="false">\r
+ </wsimport>\r
+ \r
</target>\r
\r
<!-- \r