import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.StringTokenizer;
import java.util.Vector;
String version;
// String id;
Hashtable seqAnn = new Hashtable(); // Sequence related annotations
- Hashtable seqs = new Hashtable();
+ LinkedHashMap<String, String> seqs = new LinkedHashMap<String, String>();
Regex p, r, rend, s, x;
// Temporary line for processing RNA annotation
// String RNAannot = "";
r = new Regex("# STOCKHOLM ([\\d\\.]+)");
if (!r.search(nextLine()))
{
- throw new IOException(MessageManager.getString("exception.stockholm_invalid_format"));
+ throw new IOException(
+ MessageManager
+ .getString("exception.stockholm_invalid_format"));
}
else
{
}
}
// logger.debug("Number of sequences: " + this.noSeqs);
- Enumeration accs = seqs.keys();
- while (accs.hasMoreElements())
+ for (Map.Entry<String, String> skey : seqs.entrySet())
{
- String acc = (String) accs.nextElement();
// logger.debug("Processing sequence " + acc);
- String seq = (String) seqs.remove(acc);
+ String acc = skey.getKey();
+ String seq = skey.getValue();
if (maxLength < seq.length())
{
maxLength = seq.length();
AlignmentAnnotation an = (AlignmentAnnotation) vv
.elementAt(ii);
seqO.addAlignmentAnnotation(an);
+ annotations.add(an);
}
}
}
if (!x.search(line))
{
// logger.error("Could not parse sequence line: " + line);
- throw new IOException(MessageManager.formatMessage("exception.couldnt_parse_sequence_line", new String[]{line}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.couldnt_parse_sequence_line", new String[]
+ { line }));
}
- String ns = (String) seqs.get(x.stringMatched(1));
+ String ns = seqs.get(x.stringMatched(1));
if (ns == null)
{
ns = "";
}
else
{
- throw new IOException(MessageManager.formatMessage("exception.error_parsing_line", new String[]{line}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.error_parsing_line", new String[]
+ { line }));
}
}
else if (annType.equals("GC"))
strucAnn = new Hashtable();
}
- Vector newStruc = new Vector();
+ Vector<AlignmentAnnotation> newStruc = new Vector<AlignmentAnnotation>();
parseAnnotationRow(newStruc, type, ns);
-
+ for (AlignmentAnnotation alan : newStruc)
+ {
+ alan.visible = false;
+ }
+ // annotations.addAll(newStruc);
strucAnn.put(type, newStruc);
seqAnn.put(acc, strucAnn);
}
}
else
{
- throw new IOException(MessageManager.formatMessage("exception.unknown_annotation_detected", new String[]{annType,annContent}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.unknown_annotation_detected", new String[]
+ { annType, annContent }));
}
}
}
out.append(new Format("%-" + maxid + "s").form("#=GC " + label
+ " "));
+ boolean isrna = aa.isValidStruc();
for (int j = 0; j < aa.annotations.length; j++)
{
String ch = (aa.annotations[j] == null) ? "-"
: aa.annotations[j].displayCharacter;
- if (ch.length() == 0)
+ if (ch.length() == 0 || isrna)
{
char ll = aa.annotations[j].secondaryStructure;
if (Character.toString(ll).equals(" "))