import java.util.regex.Matcher;\r
import java.util.regex.Pattern;\r
\r
+import compbio.conservation.Method;\r
+\r
/**\r
* Utility class for operations on sequences\r
* \r
String singleSeq = scan.next();\r
Scanner scansingle = new Scanner(singleSeq);\r
StringBuffer seqbuffer = new StringBuffer();\r
- List<Float> coils = new ArrayList<Float>();\r
- List<Float> rem = new ArrayList<Float>();\r
- List<Float> hotloops = new ArrayList<Float>();\r
+ ArrayList<Float> coils = new ArrayList<Float>();\r
+ ArrayList<Float> rem = new ArrayList<Float>();\r
+ ArrayList<Float> hotloops = new ArrayList<Float>();\r
\r
MultiAnnotatedSequence<DisemblResultAnnot> disemblRes = new MultiAnnotatedSequence<DisemblResultAnnot>(\r
DisemblResultAnnot.class);\r
return results;\r
}\r
\r
+ /**\r
+ * Read AACon result with no alignment files. This method leaves incoming\r
+ * the InputStream results open!\r
+ * \r
+ * @param results\r
+ * output file of AAConservation\r
+ * @return {@link MultiAnnotatedSequence}\r
+ */\r
+ public static MultiAnnotatedSequence<Method> readResults(InputStream results) {\r
+ if (results == null) {\r
+ throw new NullPointerException(\r
+ "InputStream with results must be provided");\r
+ }\r
+ MultiAnnotatedSequence<Method> annotations = new MultiAnnotatedSequence<Method>(\r
+ Method.class);\r
+ Scanner sc = new Scanner(results);\r
+ sc.useDelimiter("#");\r
+ while (sc.hasNext()) {\r
+ String line = sc.next();\r
+ int spacePos = line.indexOf(" ");\r
+ assert spacePos > 0 : "Space is expected as delimited between method "\r
+ + "name and values!";\r
+ String methodLine = line.substring(0, spacePos);\r
+ Method method = Method.getMethod(methodLine);\r
+ assert method != null : "Method " + methodLine\r
+ + " is not recognized! ";\r
+ Scanner valuesScanner = new Scanner(line.substring(spacePos));\r
+ ArrayList<Float> values = new ArrayList<Float>();\r
+ while (valuesScanner.hasNextDouble()) {\r
+ Double value = valuesScanner.nextDouble();\r
+ values.add(value.floatValue());\r
+ }\r
+ annotations.addAnnotation(method, values);\r
+ }\r
+ return annotations;\r
+ }\r
+\r
}\r