+ if (sg.cs == null)\r
+ {\r
+ sg.cs = def;\r
+ }\r
+ }\r
+ }\r
+\r
+ void setBelowAlignment(AlignmentI al, StringTokenizer st)\r
+ {\r
+ String token;\r
+ AlignmentAnnotation aa;\r
+ while (st.hasMoreTokens())\r
+ {\r
+ token = st.nextToken();\r
+ for (int i = 0; i < al.getAlignmentAnnotation().length; i++)\r
+ {\r
+ aa = al.getAlignmentAnnotation()[i];\r
+ if (aa.sequenceRef == refSeq && aa.label.equals(token))\r
+ {\r
+ aa.belowAlignment = true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ void addAlignmentDetails(AlignmentI al, StringTokenizer st)\r
+ {\r
+ String keyValue, key, value;\r
+ while (st.hasMoreTokens())\r
+ {\r
+ keyValue = st.nextToken();\r
+ key = keyValue.substring(0, keyValue.indexOf("="));\r
+ value = keyValue.substring(keyValue.indexOf("=") + 1);\r
+ al.setProperty(key, value);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Write annotations as a CSV file of the form 'label, value, value, ...' for\r
+ * each row.\r
+ * \r
+ * @param annotations\r
+ * @return CSV file as a string.\r
+ */\r
+ public String printCSVAnnotations(AlignmentAnnotation[] annotations)\r
+ {\r
+ StringBuffer sp = new StringBuffer();\r
+ for (int i = 0; i < annotations.length; i++)\r
+ {\r
+ String atos = annotations[i].toString();\r
+ int p = 0;\r
+ do\r
+ {\r
+ int cp = atos.indexOf("\n", p);\r
+ sp.append(annotations[i].label);\r
+ sp.append(",");\r
+ if (cp > p)\r
+ {\r
+ sp.append(atos.substring(p, cp + 1));\r
+ }\r
+ else\r
+ {\r
+ sp.append(atos.substring(p));\r
+ sp.append("\n");\r
+ }\r
+ p = cp + 1;\r
+ } while (p > 0);\r