import javax.xml.namespace.QName;\r
import javax.xml.ws.Service;\r
\r
-import compbio.data.msa.FoldWS;\r
import compbio.data.msa.JABAService;\r
import compbio.data.msa.MsaWS;\r
import compbio.data.msa.SequenceAnnotation;\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, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, RNAalifoldWS;\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
\r
public static String toString(Set<Services> services) {\r
if (services == null || services.isEmpty()) {\r
- return "";\r
+ return "No known services...\n";\r
}\r
String value = "";\r
- String delim = ", ";\r
for (Services serv : services) {\r
- value += serv.toString() + delim;\r
+ if (null != serv) {\r
+ value += serv + "\n";\r
+ } else {\r
+ value += "Unknown Service\n";\r
+ }\r
}\r
- value = value.substring(0, value.length() - delim.length());\r
return value;\r
}\r
\r
Class<? extends JABAService> getServiceType() {\r
switch (this) {\r
- // deliberate leaking\r
case AAConWS :\r
case JronnWS :\r
case DisemblWS :\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 RNAalifoldWS :\r
+ case AAConWS :\r
+ case JronnWS :\r
+ case DisemblWS :\r
+ case GlobPlotWS :\r
+ case IUPredWS :\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
- QName portName = new QName(service.getServiceName().getNamespaceURI(),\r
- this.toString() + "Port");\r
+ QName portName = new QName(service.getServiceName().getNamespaceURI(), this.toString() + "Port");\r
return service.getPort(portName, this.getServiceType());\r
}\r
\r
public String getServiceInfo() {\r
switch (this) {\r
case AAConWS :\r
- return AACON_INFO;\r
+ return AACON_INFO.toString();\r
+ case JpredWS :\r
+ return JPRED_INFO.toString();\r
case ClustalOWS :\r
- return CLUSTAL_OMEGA_INFO;\r
+ return CLUSTAL_OMEGA_INFO.toString();\r
case ClustalWS :\r
- return CLUSTAL_INFO;\r
+ return CLUSTAL_INFO.toString();\r
case DisemblWS :\r
- return DISEMBL_INFO;\r
+ return DISEMBL_INFO.toString();\r
case GlobPlotWS :\r
- return GLOBPLOT_INFO;\r
+ return GLOBPLOT_INFO.toString();\r
case IUPredWS :\r
- return IUPRED_INFO;\r
+ return IUPRED_INFO.toString();\r
case JronnWS :\r
- return JRONN_INFO;\r
+ return JRONN_INFO.toString();\r
case MafftWS :\r
- return MAFFT_INFO;\r
+ return MAFFT_INFO.toString();\r
case MuscleWS :\r
- return MUSCLE_INFO;\r
+ return MUSCLE_INFO.toString();\r
case ProbconsWS :\r
- return PROBCONS_INFO;\r
+ return PROBCONS_INFO.toString();\r
case TcoffeeWS :\r
- return TCOFFEE_INFO;\r
+ return TCOFFEE_INFO.toString();\r
case RNAalifoldWS :\r
- return RNAALIFOLD_INFO;\r
+ return RNAALIFOLD_INFO.toString();\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
- public static final String AACON_INFO = new ServiceInfo(AAConWS,\r
- "in preparation", "1.0", "http://www.compbio.dundee.ac.uk/aacon")\r
- .toString();\r
- public static final String CLUSTAL_INFO = new ServiceInfo(\r
- ClustalWS,\r
- "Larkin MA, Blackshields G, Brown NP, Chenna R, McGettigan PA, McWilliam H, Valentin F, Wallace IM, Wilm A, Lopez R, Thompson JD, Gibson TJ, Higgins DG.\r\n"\r
- + "(2007). Clustal W and Clustal X version 2.0. Bioinformatics, 23, 2947-2948. ",\r
- "2.0.12", "http://www.clustal.org/clustal2/").toString();\r
- public static final String CLUSTAL_OMEGA_INFO = new ServiceInfo(\r
- ClustalOWS,\r
+ public String getServiceReference() {\r
+ switch (this) {\r
+ case AAConWS :\r
+ return AACON_INFO.getReference();\r
+ case JpredWS :\r
+ return JPRED_INFO.getReference();\r
+ case ClustalOWS :\r
+ return CLUSTAL_OMEGA_INFO.getReference();\r
+ case ClustalWS :\r
+ return CLUSTAL_INFO.getReference();\r
+ case DisemblWS :\r
+ return DISEMBL_INFO.getReference();\r
+ case GlobPlotWS :\r
+ return GLOBPLOT_INFO.getReference();\r
+ case IUPredWS :\r
+ return IUPRED_INFO.getReference();\r
+ case JronnWS :\r
+ return JRONN_INFO.getReference();\r
+ case MafftWS :\r
+ return MAFFT_INFO.getReference();\r
+ case MuscleWS :\r
+ return MUSCLE_INFO.getReference();\r
+ case ProbconsWS :\r
+ return PROBCONS_INFO.getReference();\r
+ case TcoffeeWS :\r
+ return TCOFFEE_INFO.getReference();\r
+ case RNAalifoldWS :\r
+ return RNAALIFOLD_INFO.getReference();\r
+ default :\r
+ throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
+ }\r
+ }\r
+\r
+ public String getServiceVersion() {\r
+ switch (this) {\r
+ case AAConWS :\r
+ return AACON_INFO.getVersion();\r
+ case JpredWS :\r
+ return JPRED_INFO.getVersion();\r
+ case ClustalOWS :\r
+ return CLUSTAL_OMEGA_INFO.getVersion();\r
+ case ClustalWS :\r
+ return CLUSTAL_INFO.getVersion();\r
+ case DisemblWS :\r
+ return DISEMBL_INFO.getVersion();\r
+ case GlobPlotWS :\r
+ return GLOBPLOT_INFO.getVersion();\r
+ case IUPredWS :\r
+ return IUPRED_INFO.getVersion();\r
+ case JronnWS :\r
+ return JRONN_INFO.getVersion();\r
+ case MafftWS :\r
+ return MAFFT_INFO.getVersion();\r
+ case MuscleWS :\r
+ return MUSCLE_INFO.getVersion();\r
+ case ProbconsWS :\r
+ return PROBCONS_INFO.getVersion();\r
+ case TcoffeeWS :\r
+ return TCOFFEE_INFO.getVersion();\r
+ case RNAalifoldWS :\r
+ return RNAALIFOLD_INFO.getVersion();\r
+ default :\r
+ throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
+ }\r
+ }\r
+\r
+ public String getServiceGroup() {\r
+ switch (this) {\r
+ case AAConWS :\r
+ return "annotation";\r
+ case JpredWS :\r
+ return "annotation";\r
+ case ClustalOWS :\r
+ return "alignment";\r
+ case ClustalWS :\r
+ return "alignment";\r
+ case DisemblWS :\r
+ return "disorder";\r
+ case GlobPlotWS :\r
+ return "disorder";\r
+ case IUPredWS :\r
+ return "disorder";\r
+ case JronnWS :\r
+ return "disorder";\r
+ case MafftWS :\r
+ return "alignment";\r
+ case MuscleWS :\r
+ return "alignment";\r
+ case ProbconsWS :\r
+ return "alignment";\r
+ case TcoffeeWS :\r
+ return "alignment";\r
+ case RNAalifoldWS :\r
+ return "annotation";\r
+ default :\r
+ throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
+ }\r
+ }\r
+ \r
+ static ServiceInfo AACON_INFO = new ServiceInfo(AAConWS,\r
+ "in preparation", "1.0", "http://www.compbio.dundee.ac.uk/aacon");\r
+\r
+ static ServiceInfo JPRED_INFO = new ServiceInfo(JpredWS,\r
+ "Cole C, Barber JD, Barton GJ.reparation" + \r
+ "The Jpred 3 secondary structure prediction server\n" +\r
+ "Nucl. Acids Res. (2008) 36 (suppl 2): W197-W201., doi: 10.1093/nar/gkn238", \r
+ "3.0.3", "http://www.compbio.dundee.ac.uk/www-jpred");\r
+ \r
+ static ServiceInfo CLUSTAL_INFO = new ServiceInfo(ClustalWS,\r
+ "Larkin MA, Blackshields G, Brown NP, Chenna R, McGettigan PA, McWilliam H, Valentin F, " + \r
+ "Wallace IM, Wilm A, Lopez R, Thompson JD, Gibson TJ, Higgins DG.\n" +\r
+ "(2007). Clustal W and Clustal X version 2.0. Bioinformatics, 23, 2947-2948.",\r
+ "2.0.12", "http://www.clustal.org/clustal2/");\r
+\r
+ static ServiceInfo CLUSTAL_OMEGA_INFO = new ServiceInfo(ClustalOWS,\r
"Fast, scalable generation of high quality protein multiple sequence alignments using Clustal Omega\r\n"\r
- + "Fabian Sievers, Andreas Wilm, David Dineen, Toby J. Gibson, Kevin Karplus, Weizhong Li, Rodrigo Lopez, Hamish McWilliam, Michael Remmert, Johannes Söding, Julie D. Thompson, Desmond G. Higgins",\r
- "1.0.2", "http://www.clustal.org/omega").toString();\r
- public static final String DISEMBL_INFO = new ServiceInfo(\r
- DisemblWS,\r
+ + "Fabian Sievers, Andreas Wilm, David Dineen, Toby J. Gibson, Kevin Karplus, Weizhong Li, Rodrigo Lopez, Hamish McWilliam, Michael Remmert, Johannes Söding, Julie D. Thompson, Desmond G. Higgins",\r
+ "1.0.2", "http://www.clustal.org/omega");\r
+\r
+ static ServiceInfo DISEMBL_INFO = new ServiceInfo(DisemblWS,\r
"R. Linding, L.J. Jensen, F. Diella, P. Bork, T.J. Gibson and R.B. Russell\r\n"\r
- + "Protein disorder prediction: implications for structural proteomics\r\n"\r
- + "Structure Vol 11, Issue 11, 4 November 2003", "1.5",\r
- "http://dis.embl.de/").toString();\r
- public static final String GLOBPLOT_INFO = new ServiceInfo(\r
- GlobPlotWS,\r
- "Rune Linding, Robert B. Russell, Victor Neduva and Toby J. Gibson "\r
- + "'GlobPlot: exploring protein sequences for globularity and disorder.' Nucl. Acids Res. (2003) 31 (13): 3701-3708. doi: 10.1093/nar/gkg519\r\n",\r
- "2.3", "http://globplot.embl.de/").toString();\r
- public static final String IUPRED_INFO = new ServiceInfo(\r
- IUPredWS,\r
+ + "Protein disorder prediction: implications for structural proteomics\r\n"\r
+ + "Structure Vol 11, Issue 11, 4 November 2003", "1.5",\r
+ "http://dis.embl.de/");\r
+\r
+ static ServiceInfo GLOBPLOT_INFO = new ServiceInfo(GlobPlotWS,\r
+ "Rune Linding, Robert B. Russell, Victor Neduva and Toby J. Gibson " +\r
+ "'GlobPlot: exploring protein sequences for globularity and disorder.' " + \r
+ "Nucl. Acids Res. (2003) 31 (13): 3701-3708. doi: 10.1093/nar/gkg519\r\n",\r
+ "2.3", "http://globplot.embl.de/");\r
+\r
+ static ServiceInfo IUPRED_INFO = new ServiceInfo(IUPredWS,\r
"The Pairwise Energy Content Estimated from Amino Acid Composition Discriminates between Folded and Intrinsically Unstructured Proteins\r\n"\r
- + "Zsuzsanna Dosztányi, Veronika Csizmók, Péter Tompa and István Simon\r\n"\r
- + "J. Mol. Biol. (2005) 347, 827-839.", "1.0",\r
- "http://iupred.enzim.hu/").toString();\r
- public static final String TCOFFEE_INFO = new ServiceInfo(TcoffeeWS,\r
+ + "Zsuzsanna Dosztányi, Veronika Csizmók, Péter Tompa and István Simon\r\n"\r
+ + "J. Mol. Biol. (2005) 347, 827-839.", "1.0",\r
+ "http://iupred.enzim.hu/");\r
+\r
+ static ServiceInfo TCOFFEE_INFO = new ServiceInfo(TcoffeeWS,\r
"T-Coffee: A novel method for multiple sequence alignments "\r
- + "Notredame, Higgins, Heringa, JMB, 302 (205-217) 2000",\r
- "8.99", "http://tcoffee.crg.cat/apps/tcoffee/index.html")\r
- .toString();\r
- public static final String MUSCLE_INFO = new ServiceInfo(\r
- MuscleWS,\r
+ + "Notredame, Higgins, Heringa, JMB, 302 (205-217) 2000",\r
+ "8.99", "http://tcoffee.crg.cat/apps/tcoffee/index.html");\r
+\r
+ static ServiceInfo MUSCLE_INFO = new ServiceInfo(MuscleWS,\r
"Edgar, R.C. (2004) MUSCLE: multiple sequence alignment with high accuracy and high throughput.Nucleic Acids Res. 32(5):1792-1797.\r\n"\r
- + "doi:10.1093/nar/gkh340", "3.8.31",\r
- "http://www.drive5.com/muscle/").toString();\r
- public static final String PROBCONS_INFO = new ServiceInfo(\r
- ProbconsWS,\r
+ + "doi:10.1093/nar/gkh340", "3.8.31",\r
+ "http://www.drive5.com/muscle/");\r
+\r
+ static ServiceInfo PROBCONS_INFO = new ServiceInfo(ProbconsWS,\r
"Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: "\r
- + "Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340. ",\r
- "1.12", "http://probcons.stanford.edu/").toString();;\r
- public static final String JRONN_INFO = new ServiceInfo(\r
- JronnWS,\r
+ + "Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340. ",\r
+ "1.12", "http://probcons.stanford.edu/");\r
+\r
+ static ServiceInfo JRONN_INFO = new ServiceInfo(JronnWS,\r
"unpublished, original algorithm Yang,Z.R., Thomson,R., McMeil,P. and Esnouf,R.M. (2005) "\r
+ "RONN: the bio-basis function neural network technique applied to the "\r
+ "dectection of natively disordered regions in proteins Bioinformatics 21: 3369-3376\r\n",\r
- "1.0", "http://www.compbio.dundee.ac.uk/jabaws/").toString();;\r
- public static final String MAFFT_INFO = new ServiceInfo(\r
- MafftWS,\r
+ "1.0", "http://www.compbio.dundee.ac.uk/jabaws/");\r
+\r
+ static ServiceInfo MAFFT_INFO = new ServiceInfo(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
-\r
- // TODO reference\r
- public static final String RNAALIFOLD_INFO = new ServiceInfo(\r
- RNAalifoldWS,\r
- "Reference to come", "2.1.2",\r
- "http://www.tbi.univie.ac.at/RNA/").toString();;\r
- \r
+ "6.8.57", "http://mafft.cbrc.jp/alignment/software/");\r
+\r
+ static ServiceInfo RNAALIFOLD_INFO = new ServiceInfo(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/");\r
+\r
@XmlAccessorType(XmlAccessType.FIELD)\r
static class ServiceInfo {\r
Services service;\r
String reference;\r
String version;\r
String moreinfo;\r
- final static String jabaws_version = "2.0";\r
+ final static String jabaws_version = "2.5";\r
final static String line_delimiter = "\n";\r
\r
private ServiceInfo() {\r
\r
@Override\r
public String toString() {\r
- String value = "SERVICE: " + service + " version " + version\r
- + line_delimiter;\r
+ String value = "SERVICE: " + service + " version " + version + line_delimiter + "\n";\r
value += "JABAWS v. " + jabaws_version + line_delimiter;\r
- value += "REFERENCES: " + reference + line_delimiter;\r
+ value += "REFERENCE: " + reference + line_delimiter + "\n";\r
value += "MORE INFORMATION: " + moreinfo + line_delimiter;\r
return value;\r
}\r
+\r
+ public String getReference() {\r
+ return "REFERENCE: " + reference + line_delimiter + "<br>MORE INFORMATION: " + moreinfo + line_delimiter;\r
+ }\r
+\r
+ public String getVersion() {\r
+ return version;\r
+ }\r
}\r
\r
public static void main(String[] args) {\r
System.out.println(MUSCLE_INFO);\r
}\r
-}
\ No newline at end of file
+}\r