+ /**
+ * add an annotation character to the output row
+ *
+ * @param seq
+ * @param key
+ * @param k
+ * @param isrna
+ * @param ann
+ * @param sequenceI
+ */
+ private char outputCharacter(String key, int k, boolean isrna,
+ Annotation[] ann, SequenceI sequenceI)
+ {
+ char seq = ' ';
+ Annotation annot = ann[k];
+ String ch = (annot == null) ? ((sequenceI == null) ? "-" : Character
+ .toString(sequenceI.getCharAt(k))) : annot.displayCharacter;
+ if (key != null && key.equals("SS"))
+ {
+ if (annot == null)
+ {
+ // sensible gap character if one is available or make one up
+ return sequenceI == null ? '-' : sequenceI.getCharAt(k);
+ }
+ else
+ {
+ // valid secondary structure AND no alternative label (e.g. ' B')
+ if (annot.secondaryStructure > ' ' && ch.length() < 2)
+ {
+ return annot.secondaryStructure;
+ }
+ }
+ }
+
+ if (ch.length() == 0)
+ {
+ seq = '.';
+ }
+ else if (ch.length() == 1)
+ {
+ seq = ch.charAt(0);
+ }
+ else if (ch.length() > 1)
+ {
+ seq = ch.charAt(1);
+ }
+ return seq;
+ }
+