-/* Copyright (c) 2010 Peter Troshin\r
+/* Copyright (c) 2011 Peter Troshin\r
* \r
- * Amino Acid Conservation Web Service client @version: 1.0 \r
+ * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0 \r
* \r
* This library is free software; you can redistribute it and/or modify it under the terms of the\r
* Apache License version 2 as published by the Apache Software Foundation\r
import java.io.Closeable;\r
import java.io.File;\r
import java.io.IOException;\r
-import java.io.OutputStream;\r
+import java.io.PrintWriter;\r
+import java.io.Writer;\r
import java.net.MalformedURLException;\r
import java.net.URL;\r
import java.util.List;\r
-import java.util.Set;\r
import java.util.logging.Level;\r
import java.util.logging.Logger;\r
\r
import javax.xml.ws.Service;\r
import javax.xml.ws.WebServiceException;\r
\r
-import compbio.data.msa.Annotation;\r
+import compbio.data.msa.SequenceAnnotation;\r
import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.Score;\r
+import compbio.data.sequence.ScoreManager;\r
import compbio.data.sequence.SequenceUtil;\r
import compbio.data.sequence.UnknownFileFormatException;\r
import compbio.metadata.JobSubmissionException;\r
File parametersFile = IOHelper.getFile(cmd, paramFile, true);\r
String presetName = CmdHelper.getPresetName(cmd);\r
\r
- Annotation<AAConWS> msaws = connect();\r
+ SequenceAnnotation<AAConWS> msaws = connect();\r
Preset<AAConWS> preset = null;\r
if (presetName != null) {\r
preset = MetadataHelper.getPreset(msaws, presetName);\r
customOptions = MetadataHelper.processParameters(prms,\r
msaws.getRunnerOptions());\r
}\r
- Set<Score> result = null;\r
+ ScoreManager result = null;\r
if (inputFile != null) {\r
System.out.println("Calculating conservation...");\r
result = analize(inputFile, msaws, preset, customOptions);\r
- OutputStream outStream = null;\r
+ Writer outStream = null;\r
if (outFile != null) {\r
- outStream = IOHelper.getOutStream(outFile);\r
+ outStream = IOHelper.getWriter(outFile);\r
} else {\r
// this stream is going to be closed later which is fine as\r
// std.out will not be\r
- outStream = System.out;\r
+ outStream = new PrintWriter(System.out, true);\r
}\r
writeOut(outStream, result);\r
// stream is closed in the method no need to close it here\r
* @param result\r
* the AACon scores to output\r
*/\r
- static void writeOut(OutputStream outStream, Set<Score> result) {\r
+ static void writeOut(Writer writer, ScoreManager result) {\r
try {\r
- Score.write(result, outStream);\r
+ result.writeOut(writer);\r
} catch (IOException e) {\r
System.err\r
.println("Problems writing output file! Stack trace is below: ");\r
e.printStackTrace();\r
} finally {\r
- if (outStream != null) {\r
+ if (writer != null) {\r
try {\r
- outStream.close();\r
+ writer.close();\r
} catch (IOException ignored) {\r
// e.printStackTrace();\r
}\r
* Connects to a AACon web service by the host and the service name\r
* \r
* \r
- * @return {@link Annotation}\r
+ * @return {@link AlignmentAnnotation}\r
* @throws WebServiceException\r
* if cannot connect to a web service\r
*/\r
- public static Annotation<AAConWS> connect() throws WebServiceException {\r
+ public static SequenceAnnotation<AAConWS> connect()\r
+ throws WebServiceException {\r
URL url = null;\r
log.log(Level.FINE, "Attempting to connect...");\r
try {\r
QName portName = new QName(QUALIFIED_SERVICE_NAME, "AAConWS" + "Port");\r
\r
@SuppressWarnings("unchecked")\r
- Annotation<AAConWS> serviceIF = serv\r
- .getPort(portName, Annotation.class);\r
+ SequenceAnnotation<AAConWS> serviceIF = serv.getPort(portName,\r
+ SequenceAnnotation.class);\r
\r
log.log(Level.FINE, "Connected successfully!");\r
return serviceIF;\r
* @return Set<Score> the conservation scores\r
* @throws UnknownFileFormatException\r
*/\r
- static Set<Score> analize(File file, Annotation<AAConWS> wsproxy,\r
+ static ScoreManager analize(File file, SequenceAnnotation<AAConWS> wsproxy,\r
Preset<AAConWS> preset, List<Option<AAConWS>> customOptions) {\r
\r
List<FastaSequence> fastalist = null;\r
- Set<Score> scores = null;\r
+ ScoreManager scores = null;\r
try {\r
fastalist = SequenceUtil.openInputStream(file.getAbsolutePath());\r
\r