/** DOCUMENT ME!! */
public Hashtable[] hconsensus;
-
+
public Hashtable[] hStrucConsensus;
-
+
AlignmentAnnotation consensus;
-
+
AlignmentAnnotation strucConsensus;
AlignmentAnnotation conservation;
AlignmentAnnotation[] groupConservation;
boolean autoCalculateConsensus = true;
-
- boolean autoCalculateStrucConsensus = true;
+ boolean autoCalculateStrucConsensus = true;
/** DOCUMENT ME!! */
public int ConsPercGaps = 25; // JBPNote : This should be a scalable property!
new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
consensus.hasText = true;
consensus.autoCalculated = true;
-
- //TODO check if this can done accordingly
+
+ // TODO check if this can done accordingly
strucConsensus = new AlignmentAnnotation("StrucConsensus", "PID",
new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
strucConsensus.hasText = true;
if (Cache.getDefault("SHOW_IDENTITY", true))
{
alignment.addAnnotation(consensus);
- //TODO: Make own if for structure
+ // TODO: Make own if for structure
alignment.addAnnotation(strucConsensus);
}
-
+
}
if (jalview.bin.Cache.getProperty("DEFAULT_COLOUR") != null)
ConservationThread conservationThread;
ConsensusThread consensusThread;
-
+
StrucConsensusThread strucConsensusThread;
boolean consUpdateNeeded = false;
static boolean UPDATING_CONSENSUS = false;
-
+
static boolean UPDATING_STRUC_CONSENSUS = false;
static boolean UPDATING_CONSERVATION = false;
boolean updatingConsensus = false;
-
+
boolean updatingStrucConsensus = false;
boolean updatingConservation = false;
consensus.annotations = new Annotation[aWidth];
hconsensus = new Hashtable[aWidth];
- AAFrequency.calculate(alignment.getSequencesArray(), 0,
- alignment.getWidth(), hconsensus, true);
+ AAFrequency.calculate(alignment.getSequencesArray(), 0, alignment
+ .getWidth(), hconsensus, true);
updateAnnotation(true);
if (globalColourScheme != null)
{
}
}
}
-
- //--------START Structure Conservation
+
+ // --------START Structure Conservation
public void updateStrucConsensus(final AlignmentPanel ap)
{
- // see note in mantis : issue number 8585
+ // see note in mantis : issue number 8585
if (strucConsensus == null || !autoCalculateStrucConsensus)
{
return;
public void run()
{
- updatingStrucConsensus = true;
+ updatingStrucConsensus = true;
while (UPDATING_STRUC_CONSENSUS)
{
try
strucConsensus.annotations = new Annotation[aWidth];
hStrucConsensus = new Hashtable[aWidth];
-
- AlignmentAnnotation[] aa = ap.av.getAlignment().getAlignmentAnnotation();
- AlignmentAnnotation rnaStruc = null;
- for(int i=0; i<aa.length;i++){
- if(aa[i].getRNAStruc() != null){
- rnaStruc=aa[i];
- break;
- }
- }
-
- AlignmentAnnotation rna = ap.av.getAlignment().getAlignmentAnnotation()[0];
+
+ AlignmentAnnotation[] aa = ap.av.getAlignment()
+ .getAlignmentAnnotation();
+ AlignmentAnnotation rnaStruc = null;
+ for (int i = 0; i < aa.length; i++)
+ {
+ if (aa[i].getRNAStruc() != null)
+ {
+ rnaStruc = aa[i];
+ break;
+ }
+ }
+
+ AlignmentAnnotation rna = ap.av.getAlignment()
+ .getAlignmentAnnotation()[0];
StructureFrequency.calculate(alignment.getSequencesArray(), 0,
alignment.getWidth(), hStrucConsensus, true, rnaStruc);
- //TODO AlignmentAnnotation rnaStruc!!!
+ // TODO AlignmentAnnotation rnaStruc!!!
updateAnnotation(true);
if (globalColourScheme != null)
{
// it will either return or wait until one calculation is finished.
if (immediate
|| (!updatingStrucConsensus && strucConsensus != null && hStrucConsensus != null))
- {
- StructureFrequency.completeConsensus(strucConsensus, hStrucConsensus, 0,
- hStrucConsensus.length, false,
+ {
+ StructureFrequency.completeConsensus(strucConsensus,
+ hStrucConsensus, 0, hStrucConsensus.length, false,
showSequenceLogo);
}
}
}
- //--------END Structure Conservation
+
+ // --------END Structure Conservation
/**
* get the consensus sequence as displayed under the PID consensus annotation
/**
* Set the selection group for this window.
*
- * @param sg - group holding references to sequences in this alignment view
- *
+ * @param sg
+ * - group holding references to sequences in this alignment view
+ *
*/
public void setSelectionGroup(SequenceGroup sg)
{
/**
* GUI state
+ *
* @return true if conservation based shading is enabled
*/
public boolean getConservationSelected()
/**
* GUI state
+ *
* @param b
* enable conservation based shading
*/
/**
* GUI state
+ *
* @return true if percent identity threshold is applied to shading
*/
public boolean getAbovePIDThreshold()
* GUI state
*
*
- * @param b indicate if percent identity threshold is applied to shading
+ * @param b
+ * indicate if percent identity threshold is applied to shading
*/
public void setAbovePIDThreshold(boolean b)
{
{
if (alignment != null && alignment.getCodonFrames() != null)
{
- StructureSelectionManager.getStructureSelectionManager(Desktop.instance)
- .removeMappings(alignment.getCodonFrames());
+ StructureSelectionManager.getStructureSelectionManager(
+ Desktop.instance).removeMappings(alignment.getCodonFrames());
}
this.alignment = align;
if (alignment.getCodonFrames() != null)
{
- StructureSelectionManager.getStructureSelectionManager(Desktop.instance).addMappings(
- alignment.getCodonFrames());
+ StructureSelectionManager.getStructureSelectionManager(
+ Desktop.instance).addMappings(alignment.getCodonFrames());
}
}
public jalview.datamodel.CigarArray getViewAsCigars(
boolean selectedRegionOnly)
{
- return new jalview.datamodel.CigarArray(alignment, (hasHiddenColumns ? colSel : null), (selectedRegionOnly ? selectionGroup : null));
+ return new jalview.datamodel.CigarArray(alignment,
+ (hasHiddenColumns ? colSel : null),
+ (selectedRegionOnly ? selectionGroup : null));
}
/**
* boolean true to just return the selected view
* @return AlignmentView
*/
- public jalview.datamodel.AlignmentView getAlignmentView(boolean selectedOnly)
+ public jalview.datamodel.AlignmentView getAlignmentView(
+ boolean selectedOnly)
{
return getAlignmentView(selectedOnly, false);
}
-
+
/**
* return a compact representation of the current alignment selection to pass
* to an analysis function
* @param selectedOnly
* boolean true to just return the selected view
* @param markGroups
- * boolean true to annotate the alignment view with groups on the alignment (and intersecting with selected region if selectedOnly is true)
+ * boolean true to annotate the alignment view with groups on the
+ * alignment (and intersecting with selected region if selectedOnly
+ * is true)
* @return AlignmentView
*/
- public jalview.datamodel.AlignmentView getAlignmentView(boolean selectedOnly, boolean markGroups)
+ public jalview.datamodel.AlignmentView getAlignmentView(
+ boolean selectedOnly, boolean markGroups)
{
- return new AlignmentView(alignment, colSel, selectionGroup, hasHiddenColumns, selectedOnly, markGroups);
+ return new AlignmentView(alignment, colSel, selectionGroup,
+ hasHiddenColumns, selectedOnly, markGroups);
}
/**
{
updateConsensus(ap);
}
- if(autoCalculateStrucConsensus)
+ if (autoCalculateStrucConsensus)
{
- updateStrucConsensus(ap);
+ updateStrucConsensus(ap);
}
// Reset endRes of groups if beyond alignment width
{
Alignment al = (Alignment) alignment;
Conservation c = new Conservation("All",
- ResidueProperties.propHash, 3, al.getSequences(), 0,
- al.getWidth() - 1);
+ ResidueProperties.propHash, 3, al.getSequences(), 0, al
+ .getWidth() - 1);
c.calculate();
c.verdict(false, ConsPercGaps);
SequenceGroup sg = (SequenceGroup) alignment.getGroups().elementAt(s);
if (sg.cs != null && sg.cs instanceof ClustalxColourScheme)
{
- ((ClustalxColourScheme) sg.cs).resetClustalX(
- sg.getSequences(hiddenRepSequences), sg.getWidth());
+ ((ClustalxColourScheme) sg.cs).resetClustalX(sg
+ .getSequences(hiddenRepSequences), sg.getWidth());
}
sg.recalcConservation();
}
/**
* checks current SelectionGroup against record of last hash value, and
* updates record.
- * @param b update the record of last hash value
+ *
+ * @param b
+ * update the record of last hash value
*
* @return true if SelectionGroup changed since last call (when b is true)
*/
boolean isSelectionGroupChanged(boolean b)
{
- int hc = (selectionGroup == null || selectionGroup.getSize()==0) ? -1 : selectionGroup.hashCode();
- if (hc!=-1 && hc != sgrouphash)
+ int hc = (selectionGroup == null || selectionGroup.getSize() == 0) ? -1
+ : selectionGroup.hashCode();
+ if (hc != -1 && hc != sgrouphash)
{
- if (b) {sgrouphash = hc;}
+ if (b)
+ {
+ sgrouphash = hc;
+ }
return true;
}
return false;
}
/**
- * checks current colsel against record of last hash value, and optionally updates
- * record.
-
- * @param b update the record of last hash value
+ * checks current colsel against record of last hash value, and optionally
+ * updates record.
+ *
+ * @param b
+ * update the record of last hash value
* @return true if colsel changed since last call (when b is true)
*/
boolean isColSelChanged(boolean b)
{
- int hc = (colSel == null || colSel.size()==0) ? -1 : colSel.hashCode();
- if (hc!=-1 && hc != colselhash)
+ int hc = (colSel == null || colSel.size() == 0) ? -1 : colSel
+ .hashCode();
+ if (hc != -1 && hc != colselhash)
{
- if (b) {colselhash = hc;}
+ if (b)
+ {
+ colselhash = hc;
+ }
return true;
}
return false;
public StructureSelectionManager getStructureSelectionManager()
{
- return StructureSelectionManager.getStructureSelectionManager(Desktop.instance);
+ return StructureSelectionManager
+ .getStructureSelectionManager(Desktop.instance);
}
/**
*
* @param pdbEntries
- * @return a series of SequenceI arrays, one for each PDBEntry, listing which sequence in the alignment holds a reference to it
+ * @return a series of SequenceI arrays, one for each PDBEntry, listing which
+ * sequence in the alignment holds a reference to it
*/
public SequenceI[][] collateForPDB(PDBEntry[] pdbEntries)
{
ArrayList<SequenceI[]> seqvectors = new ArrayList<SequenceI[]>();
- for (PDBEntry pdb: pdbEntries) {
- ArrayList<SequenceI> seqs = new ArrayList<SequenceI>();
- for (int i = 0; i < alignment.getHeight(); i++)
- {
- Vector pdbs = alignment.getSequenceAt(i)
- .getDatasetSequence().getPDBId();
- if (pdbs == null)
- continue;
- SequenceI sq;
- for (int p = 0; p < pdbs.size(); p++)
+ for (PDBEntry pdb : pdbEntries)
+ {
+ ArrayList<SequenceI> seqs = new ArrayList<SequenceI>();
+ for (int i = 0; i < alignment.getHeight(); i++)
{
- PDBEntry p1 = (PDBEntry) pdbs.elementAt(p);
- if (p1.getId().equals(pdb.getId()))
+ Vector pdbs = alignment.getSequenceAt(i).getDatasetSequence()
+ .getPDBId();
+ if (pdbs == null)
+ continue;
+ SequenceI sq;
+ for (int p = 0; p < pdbs.size(); p++)
{
- if (!seqs.contains(sq=alignment.getSequenceAt(i)))
- seqs.add(sq);
+ PDBEntry p1 = (PDBEntry) pdbs.elementAt(p);
+ if (p1.getId().equals(pdb.getId()))
+ {
+ if (!seqs.contains(sq = alignment.getSequenceAt(i)))
+ seqs.add(sq);
- continue;
+ continue;
+ }
}
}
- }
- seqvectors.add(seqs.toArray(new SequenceI[seqs.size()]));
+ seqvectors.add(seqs.toArray(new SequenceI[seqs.size()]));
}
return seqvectors.toArray(new SequenceI[seqvectors.size()][]);
}
boolean mouseDragging = false;
boolean MAC = false;
-
- //for editing cursor
+
+ // for editing cursor
int cursorX = 0;
+
int cursorY = 0;
/**
*/
public int adjustPanelHeight()
{
- int height=calcPanelHeight();
+ int height = calcPanelHeight();
this.setPreferredSize(new Dimension(1, height));
if (ap != null)
{
}
/**
- * calculate the height for visible annotation, revalidating bounds where necessary
- * ABSTRACT GUI METHOD
+ * calculate the height for visible annotation, revalidating bounds where
+ * necessary ABSTRACT GUI METHOD
+ *
* @return total height of annotation
*/
public int calcPanelHeight()
/*
* Just display the needed structure options
*/
- if(av.alignment.isNucleotide()==true){
- item = new JMenuItem(STEM);
- item.addActionListener(this);
- pop.add(item);
- }else{
- item = new JMenuItem(HELIX);
- item.addActionListener(this);
- pop.add(item);
- item = new JMenuItem(SHEET);
- item.addActionListener(this);
- pop.add(item);
+ if (av.alignment.isNucleotide() == true)
+ {
+ item = new JMenuItem(STEM);
+ item.addActionListener(this);
+ pop.add(item);
+ }
+ else
+ {
+ item = new JMenuItem(HELIX);
+ item.addActionListener(this);
+ pop.add(item);
+ item = new JMenuItem(SHEET);
+ item.addActionListener(this);
+ pop.add(item);
}
item = new JMenuItem(LABEL);
item.addActionListener(this);
*/
public void mouseClicked(MouseEvent evt)
{
- if(activeRow !=-1){
- AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
- AlignmentAnnotation anot = aa[activeRow];
-
- if(anot.description.equals("secondary structure")){
- //System.out.println(anot.description+" "+anot.getRNAStruc());
- }
- }
+ if (activeRow != -1)
+ {
+ AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
+ AlignmentAnnotation anot = aa[activeRow];
+
+ if (anot.description.equals("secondary structure"))
+ {
+ // System.out.println(anot.description+" "+anot.getRNAStruc());
+ }
+ }
}
- //TODO mouseClicked-content and drawCursor are quite experimental!
- public void drawCursor(Graphics graphics, SequenceI seq, int res, int x1, int y1)
- {
- int pady = av.charHeight / 5;
- int charOffset = 0;
- graphics.setColor(Color.black);
- graphics.fillRect(x1, y1, av.charWidth, av.charHeight);
- if (av.validCharWidth)
- {
- graphics.setColor(Color.white);
+ // TODO mouseClicked-content and drawCursor are quite experimental!
+ public void drawCursor(Graphics graphics, SequenceI seq, int res, int x1,
+ int y1)
+ {
+ int pady = av.charHeight / 5;
+ int charOffset = 0;
+ graphics.setColor(Color.black);
+ graphics.fillRect(x1, y1, av.charWidth, av.charHeight);
- char s = seq.getCharAt(res);
+ if (av.validCharWidth)
+ {
+ graphics.setColor(Color.white);
- charOffset = (av.charWidth - fm.charWidth(s)) / 2;
- graphics.drawString(String.valueOf(s), charOffset + x1,
- (y1 + av.charHeight) - pady);
- }
+ char s = seq.getCharAt(res);
- }
+ charOffset = (av.charWidth - fm.charWidth(s)) / 2;
+ graphics.drawString(String.valueOf(s), charOffset + x1,
+ (y1 + av.charHeight) - pady);
+ }
+
+ }
/**
* DOCUMENT ME!
boolean[] graphGroupDrawn = new boolean[aa.length];
int charOffset = 0; // offset for a label
float fmWidth, fmScaling = 1f; // scaling for a label to fit it into a
- // column.
+ // column.
Font ofont = g.getFont();
// \u03B2 \u03B1
for (int i = 0; i < aa.length; i++)
}
if (row.hasIcons)
{
- char ss=row.annotations[column].secondaryStructure;
- if (ss=='S')
+ char ss = row.annotations[column].secondaryStructure;
+ if (ss == 'S')
{
// distinguish between forward/backward base-pairing
- if (row.annotations[column].displayCharacter.indexOf(')')>-1)
+ if (row.annotations[column].displayCharacter.indexOf(')') > -1)
{
- ss='s';
+ ss = 's';
}
}
- if (!validRes
- || (ss != lastSS))
+ if (!validRes || (ss != lastSS))
{
if (x > -1)
{
int x1 = lastSSX;
int x2 = (x * av.charWidth);
Regex closeparen = new Regex("(\\))");
-
- String dc = column==0 ? "" : row.annotations[column - 1].displayCharacter;
-
- boolean diffupstream=sCol == 0 || row.annotations[sCol - 1] == null
+
+ String dc = column == 0 ? ""
+ : row.annotations[column - 1].displayCharacter;
+
+ boolean diffupstream = sCol == 0 || row.annotations[sCol - 1] == null
|| !dc.equals(row.annotations[sCol - 1].displayCharacter);
- boolean diffdownstream=!validRes || !validEnd || row.annotations[column] == null
+ boolean diffdownstream = !validRes || !validEnd
+ || row.annotations[column] == null
|| !dc.equals(row.annotations[column].displayCharacter);
- //System.out.println("Column "+column+" diff up: "+diffupstream+" down:"+diffdownstream);
+ // System.out.println("Column "+column+" diff up: "+diffupstream+" down:"+diffdownstream);
// If a closing base pair half of the stem, display a backward arrow
- if (column > 0
- && closeparen
- .search(dc))
+ if (column > 0 && closeparen.search(dc))
{
if (diffupstream)
// if (validRes && column>1 && row.annotations[column-2]!=null &&
}
if (diffdownstream)
{
- x2-=1;
+ x2 -= 1;
}
}
else
}
if (diffupstream)
{
- x1+=1;
+ x1 += 1;
}
}
// draw arrow body
int column, boolean validRes, boolean validEnd)
{
g.setColor(Color.gray);
- g.fillRect(lastSSX, y + 6 + iconOffset, (x * av.charWidth) - lastSSX, 2);
+ g
+ .fillRect(lastSSX, y + 6 + iconOffset, (x * av.charWidth)
+ - lastSSX, 2);
}
private void drawSheetAnnot(Graphics g, AlignmentAnnotation row,
if (MAC)
{
- int ofs=av.charWidth/2;
+ int ofs = av.charWidth / 2;
// Off by 1 offset when drawing rects and ovals
// to offscreen image on the MAC
- g.fillRoundRect(lastSSX, y + 4 + iconOffset, x2-x1, 8, 8, 8);
+ g.fillRoundRect(lastSSX, y + 4 + iconOffset, x2 - x1, 8, 8, 8);
if (sCol == 0 || row.annotations[sCol - 1] == null
|| row.annotations[sCol - 1].secondaryStructure != 'H')
{
- } else {
-// g.setColor(Color.orange);
- g.fillRoundRect(lastSSX, y + 4 + iconOffset, x2-x1-ofs+1, 8, 0, 0);
}
- if (!validRes || row.annotations[column] == null
+ else
+ {
+ // g.setColor(Color.orange);
+ g.fillRoundRect(lastSSX, y + 4 + iconOffset, x2 - x1 - ofs + 1, 8,
+ 0, 0);
+ }
+ if (!validRes || row.annotations[column] == null
|| row.annotations[column].secondaryStructure != 'H')
{
-
- } else {
-// g.setColor(Color.magenta);
- g.fillRoundRect(lastSSX+ofs, y + 4 + iconOffset, x2-x1-ofs+1, 8, 0, 0);
-
+
+ }
+ else
+ {
+ // g.setColor(Color.magenta);
+ g.fillRoundRect(lastSSX + ofs, y + 4 + iconOffset, x2 - x1 - ofs
+ + 1, 8, 0, 0);
+
}
-
+
return;
}
x1 += av.charWidth / 2;
}
- if (!validRes || row.annotations[column] == null
+ if (!validRes || row.annotations[column] == null
|| row.annotations[column].secondaryStructure != 'H')
{
g.fillArc((x * av.charWidth) - av.charWidth, y + 4 + iconOffset,
g.fillRect(x1, y + 4 + iconOffset, x2 - x1, 8);
}
-public void drawLineGraph(Graphics g, AlignmentAnnotation aa, int sRes,
+ public void drawLineGraph(Graphics g, AlignmentAnnotation aa, int sRes,
int eRes, int y, float min, float max, int graphHeight)
{
if (sRes > aa.annotations.length)
// draw profile if available
if (renderProfile && aa.annotations[column].value != 0)
{
+
int profl[] = getProfileFor(aa, column);
- /*if(profl != null){
- for(int i=0; i<profl.length;i++){
- System.out.print(profl[i]+",");
- }
- System.out.print("drawProfile\n");
- }*/
- int ht = y1, htn = y2 - y1;// aa.graphHeight;
- float wdth;
- double ht2 = 0;
- char[] dc = new char[1];
- LineMetrics lm;
- for (int c = 1; profl != null && c < profl[0];)
+ // just try to draw the logo if profl is not null
+ if (profl != null)
{
- dc[0] = (char) profl[c++];
- wdth = av.charWidth;
- wdth /= (float) fm.charsWidth(dc, 0, 1);
- if (c > 2)
+ /*
+ * if (profl != null) {
+ *
+ * for (int i = 0; i < profl.length; i++) { System.out.print(profl[i]
+ * + ","); }
+ *
+ * }
+ */
+ int ht = y1, htn = y2 - y1;// aa.graphHeight;
+ float wdth;
+ double ht2 = 0;
+ char[] dc;
+
+ /**
+ * profl.length == 11 indicates that the profile of a secondary
+ * structure conservation row was accesed.
+ * Therefore dc gets length 2, to have space for a basepair instead of
+ * just a single nucleotide
+ */
+ if (profl.length == 22)
{
- ht += (int) ht2;
+ dc = new char[2];
}
+ else
{
- // if (aa.annotations[column].value==0) {
- // g.setFont(ofont.deriveFont(AffineTransform.getScaleInstance(wdth,
- // (ht2=(aa.graphHeight*0.1/av.charHeight)))));
- // ht = y2-(int)ht2;
- // } else {
- g.setFont(ofont.deriveFont(AffineTransform.getScaleInstance(
- wdth, (ht2 = (htn * ((double) profl[c++]) / 100.0))
- / av.charHeight)));
- lm = g.getFontMetrics().getLineMetrics(dc, 0, 1, g);
- // htn -=ht2;
- // }
- g.setColor(profcolour.findColour(dc[0])); // (av.globalColourScheme!=null)
- // ? );// try to get a
- // colourscheme for the
- // group(aa.groupRef.cs==null)
- // ? av.textColour2 :
- // cs.findColour(dc));
- //System.out.println(dc[0]);
- g.drawChars(dc, 0, 1, x * av.charWidth,
- (int) (ht + lm.getHeight()));
- // ht+=g.getFontMetrics().getAscent()-g.getFontMetrics().getDescent();
+ dc = new char[1];
+ }
+
+ LineMetrics lm;
+ for (int c = 1; profl != null && c < profl[0];)
+ {
+ dc[0] = (char) profl[c++];
+
+ if (aa.label.startsWith("StrucConsensus"))
+ {
+ dc[1] = 'A';
+ }
+
+ wdth = av.charWidth;
+ wdth /= (float) fm.charsWidth(dc, 0, dc.length);
+
+ if (c > 2)
+ {
+ ht += (int) ht2;
+ }
+ {
+ // if (aa.annotations[column].value==0) {
+ // g.setFont(ofont.deriveFont(AffineTransform.getScaleInstance(wdth,
+ // (ht2=(aa.graphHeight*0.1/av.charHeight)))));
+ // ht = y2-(int)ht2;
+ // } else {
+ g.setFont(ofont.deriveFont(AffineTransform.getScaleInstance(
+ wdth, (ht2 = (htn * ((double) profl[c++]) / 100.0))
+ / av.charHeight)));
+ lm = g.getFontMetrics().getLineMetrics(dc, 0, 1, g);
+ // htn -=ht2;
+ // }
+ g.setColor(profcolour.findColour(dc[0])); // (av.globalColourScheme!=null)
+ // ? );// try to get a
+ // colourscheme for the
+ // group(aa.groupRef.cs==null)
+ // ? av.textColour2 :
+ // cs.findColour(dc));
+ // System.out.println(dc[0]);
+
+ g.drawChars(dc, 0, dc.length, x * av.charWidth,
+ (int) (ht + lm.getHeight()));
+
+ // ht+=g.getFontMetrics().getAscent()-g.getFontMetrics().getDescent();
+ }
}
+ g.setFont(ofont);
}
- g.setFont(ofont);
}
x++;
}
&& aa.groupRef.isShowSequenceLogo())
{
return AAFrequency.extractProfile(
- aa.groupRef.consensusData[column],
- aa.groupRef.getIgnoreGapsConsensus());
+ aa.groupRef.consensusData[column], aa.groupRef
+ .getIgnoreGapsConsensus());
}
// TODO extend annotation row to enable dynamic and static profile data to
// be stored
if (aa.groupRef == null && aa.sequenceRef == null
&& av.isShowSequenceLogo())
{
- return AAFrequency.extractProfile(av.hconsensus[column],
- av.getIgnoreGapsConsensus());
+ return AAFrequency.extractProfile(av.hconsensus[column], av
+ .getIgnoreGapsConsensus());
}
- }else{
- if (aa.autoCalculated && aa.label.startsWith("StrucConsensus")){
- if (aa.groupRef != null && aa.groupRef.consensusData != null
- && aa.groupRef.isShowSequenceLogo())
- {
- return StructureFrequency.extractProfile(
- aa.groupRef.consensusData[column],
- aa.groupRef.getIgnoreGapsConsensus());
- }
- // TODO extend annotation row to enable dynamic and static profile data to
- // be stored
- if (aa.groupRef == null && aa.sequenceRef == null
- && av.isShowSequenceLogo())
- {
- return StructureFrequency.extractProfile(av.hconsensus[column],
- av.getIgnoreGapsConsensus());
- }
+ }
+ else
+ {
+ if (aa.autoCalculated && aa.label.startsWith("StrucConsensus"))
+ {
+ if (aa.groupRef != null && aa.groupRef.consensusData != null
+ && aa.groupRef.isShowSequenceLogo())
+ {
+ //TODO check what happens for group selections
+ return StructureFrequency.extractProfile(
+ aa.groupRef.consensusData[column], aa.groupRef
+ .getIgnoreGapsConsensus(),column);
}
+ // TODO extend annotation row to enable dynamic and static profile data
+ // to
+ // be stored
+ if (aa.groupRef == null && aa.sequenceRef == null
+ && av.isShowSequenceLogo())
+ {
+ return StructureFrequency.extractProfile(av.hStrucConsensus[column],
+ av.getIgnoreGapsConsensus(),column);
+ }
+ }
}
return null;