private boolean canClip=false;
- public void drawPseudoNode(Graphics g, Color nonCanColor, Annotation[] row_annotations,
+ public void drawNotCanonicalAnnot(Graphics g, Color nonCanColor, Annotation[] row_annotations,
int lastSSX, int x, int y, int iconOffset, int startRes,
int column, boolean validRes, boolean validEnd)
{
}
// 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)
{
}
if (ss >=65)
{
- // System.out.println("ss="+ss);
// distinguish between forward/backward base-pairing
if (row_annotations[column].displayCharacter.indexOf(ss+32) > -1)
{
-
- ss = (char) (ss+32);
+ ss = (char) (ss+32);
+
}
}
-
+
if (!validRes || (ss != lastSS))
- {
-
-
+ {
+
+
if (x > -1)
- {
-
-
+ {
+
+
int nb_annot=x-temp;
//System.out.println("\t type :"+lastSS+"\t x :"+x+"\t nbre annot :"+nb_annot);
switch (lastSS)
- {
-
+ {
+
case '$':
drawHelixAnnot(g, row_annotations, lastSSX, x, y, iconOffset, startRes,
column, validRes, validEnd);
case '(': // Stem case for RNA secondary structure
case ')': // and opposite direction
-
-
drawStemAnnot(g, row_annotations, lastSSX, x, y, iconOffset, startRes,
column, validRes, validEnd);
temp=x;
case 'z':
Color nonCanColor= getNotCanonicalColor(lastSS);
- drawPseudoNode(g, nonCanColor, row_annotations, lastSSX, x, y, iconOffset, startRes,
+ drawNotCanonicalAnnot(g, nonCanColor, row_annotations, lastSSX, x, y, iconOffset, startRes,
column, validRes, validEnd);
temp=x;
break;
case 'Z':
case 'z':
//System.out.println(lastSS);
-
Color nonCanColor = getNotCanonicalColor(lastSS);
- drawPseudoNode(g,nonCanColor, row_annotations, lastSSX, x, y, iconOffset, startRes,
+ drawNotCanonicalAnnot(g,nonCanColor, row_annotations, lastSSX, x, y, iconOffset, startRes,
column, validRes, validEnd);
-
break;
-
default:
drawGlyphLine(g, row_annotations, lastSSX, x, y, iconOffset, startRes,
column, validRes, validEnd);
{
aa[gg].visible = false;
}
-
if (aa[gg].graphMax > groupmax)
{
groupmax = aa[gg].graphMax;
}
else if (row.graph == AlignmentAnnotation.BAR_GRAPH)
{
- drawBarGraph(g, row, row_annotations, startRes, endRes, row.graphMin,
- row.graphMax, y);
+ drawBarGraph(g, row, row_annotations, startRes, endRes,
+ 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;