}
// TODO extend annotation row to enable dynamic and static profile data to
// be stored
- if (aa.groupRef == null && aa.sequenceRef == null && av_renderProfile)
+ if (aa.groupRef == null && aa.sequenceRef == null)
{
return AAFrequency.extractProfile(hconsensus[column],
av_ignoreGapsConsensus);
// to
// be stored
if (aa.groupRef == null && aa.sequenceRef == null
- && av_renderProfile && hStrucConsensus != null
+ && hStrucConsensus != null
&& hStrucConsensus.length > column)
{
return StructureFrequency.extractProfile(hStrucConsensus[column],
boolean centreColLabels, centreColLabelsDef = av
.getCentreColumnLabels();
boolean scaleColLabel = false;
- AlignmentAnnotation consensusAnnot=av.getAlignmentConsensusAnnotation();
+ AlignmentAnnotation consensusAnnot=av.getAlignmentConsensusAnnotation(),structConsensusAnnot=av.getAlignmentStrucConsensusAnnotation();
boolean renderHistogram = true, renderProfile = true, normaliseProfile = false;
BitSet graphGroupDrawn = new BitSet();
for (int i = 0; i < aa.length; i++)
{
AlignmentAnnotation row = aa[i];
+ {
+ // check if this is a consensus annotation row and set the display settings appropriately
+ // TODO: generalise this to have render styles for consensus/profile
+ // data
+ if (row.groupRef != null && row == row.groupRef.getConsensus())
+ {
+ renderHistogram = row.groupRef.isShowConsensusHistogram();
+ renderProfile = row.groupRef.isShowSequenceLogo();
+ normaliseProfile = row.groupRef.isNormaliseSequenceLogo();
+ }
+ else if (row == consensusAnnot || row == structConsensusAnnot)
+ {
+ renderHistogram = av_renderHistogram;
+ renderProfile = av_renderProfile;
+ normaliseProfile = av_normaliseProfile;
+ } else {
+ renderHistogram = true;
+ // don't need to set render/normaliseProfile since they are not currently used in any other annotation track renderer
+ }
+ }
Annotation[] row_annotations = row.annotations;
if (!row.visible)
{