}
// 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(),structConsensusAnnot=av.getAlignmentStrucConsensusAnnotation();
+ boolean renderHistogram = true, renderProfile = true, normaliseProfile = false;
BitSet graphGroupDrawn = new BitSet();
int charOffset = 0; // offset for a label
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)
{
else if (row.graph == AlignmentAnnotation.BAR_GRAPH)
{
drawBarGraph(g, row, row_annotations, startRes, endRes,
- row.graphMin, row.graphMax, y);
+ row.graphMin, row.graphMax, y, renderHistogram,renderProfile,normaliseProfile);
}
}
} else {
public void drawBarGraph(Graphics g, AlignmentAnnotation _aa,
Annotation[] aa_annotations, int sRes, int eRes, float min,
- float max, int y)
+ float max, int y, boolean renderHistogram,boolean renderProfile,boolean normaliseProfile)
{
if (sRes > aa_annotations.length)
{
int column;
int aaMax = aa_annotations.length - 1;
- boolean renderHistogram = true, renderProfile = true, normaliseProfile = false;
- // if (aa.autoCalculated && aa.label.startsWith("Consensus"))
- {
- // TODO: generalise this to have render styles for consensus/profile data
- if (_aa.groupRef != null)
- {
- renderHistogram = _aa.groupRef.isShowConsensusHistogram();
- renderProfile = _aa.groupRef.isShowSequenceLogo();
- normaliseProfile = _aa.groupRef.isNormaliseSequenceLogo();
- }
- else
- {
- renderHistogram = av_renderHistogram;
- renderProfile = av_renderProfile;
- normaliseProfile = av_normaliseProfile;
- }
- }
while (x < eRes - sRes)
{
column = sRes + x;