}
else
{
- graphGroup_refs.put(key, new Object[]
- { refSeq, refGroup });
+ graphGroup_refs.put(key, new Object[] { refSeq, refGroup });
graphGroup.put(key, row.label);
}
}
text.append(properties.get(key));
}
// TODO: output alignment visualization settings here if required
- // iterate through one or more views, defining, marking columns and rows as visible/hidden, and emmitting view properties.
- // View specific annotation is
+ // iterate through one or more views, defining, marking columns and rows
+ // as visible/hidden, and emmitting view properties.
+ // View specific annotation is
}
return text.toString();
}
boolean rslt = readAnnotationFile(viewport.getAlignment(), colSel,
file, protocol);
- if (rslt
- && (colSel.hasSelectedColumns() || colSel.hasHiddenColumns()))
+ if (rslt && (colSel.hasSelectedColumns() || colSel.hasHiddenColumns()))
{
viewport.setColumnSelection(colSel);
}
return rslt;
}
+
public boolean readAnnotationFile(AlignmentI al, String file,
String protocol)
{
String lastread = "";
- private static String GRAPHLINE = "GRAPHLINE", COMBINE = "COMBINE";
+ private static String GRAPHLINE = "GRAPHLINE", COMBINE = "COMBINE",
+ STRUCTMODEL = "STRUCTMODEL";
public boolean parseAnnotationFrom(AlignmentI al, ColumnSelection colSel,
- BufferedReader in)
- throws Exception
+ BufferedReader in) throws Exception
{
nlinesread = 0;
ArrayList<Object[]> combineAnnotation_calls = new ArrayList<Object[]>();
else if (token.equalsIgnoreCase(COMBINE))
{
// keep a record of current state and resolve groupRef at end
- combineAnnotation_calls.add(new Object[]
- { st, refSeq, groupRef });
+ combineAnnotation_calls
+ .add(new Object[] { st, refSeq, groupRef });
modified = true;
continue;
}
else if (token.equalsIgnoreCase(GRAPHLINE))
{
// resolve at end
- deferredAnnotation_calls.add(new Object[]
- { GRAPHLINE, st, refSeq, groupRef });
+ deferredAnnotation_calls.add(new Object[] { GRAPHLINE, st,
+ refSeq, groupRef });
modified = true;
continue;
}
modified = true;
continue;
}
-
+ else if (token.equalsIgnoreCase(STRUCTMODEL))
+ {
+ boolean failedtoadd = true;
+ // expect
+ // STRUCTMODEL <QUERYID> <TemplateID> <URL to model> <URL to
+ // alignment>
+ if (st.hasMoreTokens()) {
+ refSeq = al.findName(refSeqId = st.nextToken());
+ if (refSeq == null)
+ {
+ System.err.println("Couldn't locate " + refSeqId
+ + " in the alignment for STRUCTMODEL");
+ refSeqId = null;
+ }
+ else
+ {
+ String tempId = st.nextToken();
+ String urlToModel = st.nextToken();
+ String urlToPairwise = st.hasMoreTokens() ? st.nextToken()
+ : "";
+ if (add_structmodel(refSeq, tempId, urlToModel, urlToPairwise))
+ {
+ failedtoadd = false;
+ }
+ }
+ }
+ if (failedtoadd)
+ {
+ System.err
+ .println("Need <QueryId> <TemplateId> <URL to Model> [<URL to pairwise alignment>] as tab separated fields after "
+ + STRUCTMODEL);
+ } else {
+ modified = true;
+ }
+ continue;
+ }
// Parse out the annotation row
graphStyle = AlignmentAnnotation.getGraphValueFromString(token);
label = st.nextToken();
(SequenceI) _deferred_args[2], // refSeq
(_deferred_args[3] == null) ? null : groupRefLookup
.get(_deferred_args[3]) // the reference
- // group, or null
+ // group, or null
);
}
}
(SequenceI) _combine_args[1], // refSeq
(_combine_args[2] == null) ? null : groupRefLookup
.get(_combine_args[2]) // the reference group,
- // or null
+ // or null
);
}
}
return modified;
}
+ /**
+ * resolve a structural model and generate and add an alignment sequence for
+ * it
+ *
+ * @param refSeq2
+ * @param tempId
+ * @param urlToModel
+ * @param urlToPairwise
+ * @return true if model and sequence was added
+ */
+ private boolean add_structmodel(SequenceI refSeq2, String tempId,
+ String urlToModel, String urlToPairwise)
+ {
+
+ return false;
+ }
+
+ private void add_structmodel(StringTokenizer st)
+ {
+
+ // TODO Auto-generated method stub
+
+ }
+
private void parseHideCols(ColumnSelection colSel, String nextToken)
{
- StringTokenizer inval = new StringTokenizer(nextToken,",");
+ StringTokenizer inval = new StringTokenizer(nextToken, ",");
while (inval.hasMoreTokens())
{
String range = inval.nextToken().trim();
*/
public String printCSVAnnotations(AlignmentAnnotation[] annotations)
{
+ if (annotations == null)
+ {
+ return "";
+ }
StringBuffer sp = new StringBuffer();
for (int i = 0; i < annotations.length; i++)
{