ArrayList<AlignmentAnnotation> annots = new ArrayList<AlignmentAnnotation>();
// Search alignment to get all tcoffee annotation and pick one set of annotation to use to colour seqs.
seqMap = new IdentityHashMap<SequenceI, Color[]>();
- for (AlignmentAnnotation al:alignment.getAlignmentAnnotation())
+ int w=0;
+ for (AlignmentAnnotation al:alignment.findAnnotation(TCoffeeScoreFile.TCOFFEE_SCORE))
{
- if (al.sequenceRef!=null && !al.belowAlignment && al.label!=null && (al.label==TCoffeeScoreFile.TCOFFEE_SCORE || al.label.equals(TCoffeeScoreFile.TCOFFEE_SCORE)))
+ if (al.sequenceRef!=null && !al.belowAlignment)
{
annots.add(al);
+ if (w<al.annotations.length)
+ {
+ w=al.annotations.length;
+ }
Color[] scores=new Color[al.annotations.length];
int i=0;
for (Annotation an:al.annotations)
seqMap.put(al.sequenceRef, scores);
}
}
+ // TODO: compute average colour for each symbol type in each column - gives
+ // a second order colourscheme for colouring a sequence logo derived from
+ // the alignment (colour reflects quality of alignment for each residue
+ // class)
}
@Override
public Color findColour(char c, int j, SequenceI seq) {
Color[] cols;
if( seqMap==null || (cols=seqMap.get(seq))==null) {
+// see above TODO about computing a colour for each residue in each column: cc = _rcols[i][indexFor[c]];
return Color.white;
}