- UPDATING_CONSENSUS = true;
-
- try
- {
- int aWidth = (alignment != null) ? alignment.getWidth() : 0; // null
- // pointer
- // possibility
- // here.
- if (aWidth < 0)
- {
- return;
- }
-
- consensus.annotations = null;
- consensus.annotations = new Annotation[aWidth];
-
- hconsensus = new Hashtable[aWidth];
- AAFrequency.calculate(alignment.getSequencesArray(), 0, alignment
- .getWidth(), hconsensus);
-
- for (int i = 0; i < aWidth; i++)
- {
- float value = 0;
- if (ignoreGapsInConsensusCalculation)
- {
- value = ((Float) hconsensus[i].get(AAFrequency.PID_NOGAPS))
- .floatValue();
- }
- else
- {
- value = ((Float) hconsensus[i].get(AAFrequency.PID_GAPS))
- .floatValue();
- }
-
- String maxRes = hconsensus[i].get(AAFrequency.MAXRESIDUE)
- .toString();
- String mouseOver = hconsensus[i].get(AAFrequency.MAXRESIDUE)
- + " ";
-
- if (maxRes.length() > 1)
- {
- mouseOver = "[" + maxRes + "] ";
- maxRes = "+";
- }
-
- mouseOver += ((int) value + "%");
- consensus.annotations[i] = new Annotation(maxRes, mouseOver, ' ',
- value);
- }
-
- if (globalColourScheme != null)
- {
- globalColourScheme.setConsensus(hconsensus);
- }
-
- } catch (OutOfMemoryError error)
- {
- alignment.deleteAnnotation(consensus);
-
- consensus = null;
- hconsensus = null;
- new OOMWarning("calculating consensus", error);
- }
- UPDATING_CONSENSUS = false;
- updatingConsensus = false;
-
- if (ap != null)
- {
- ap.paintAlignment(true);
- }
- }
- }
-
- /**
- * get the consensus sequence as displayed under the PID consensus annotation
- * row.
- *
- * @return consensus sequence as a new sequence object
- */
- public SequenceI getConsensusSeq()
- {
- if (consensus == null)
- {
- updateConsensus(null);
- }
- if (consensus == null)
- {
- return null;
- }
- StringBuffer seqs = new StringBuffer();
- for (int i = 0; i < consensus.annotations.length; i++)
- {
- if (consensus.annotations[i] != null)
- {
- if (consensus.annotations[i].description.charAt(0) == '[')
- {
- seqs.append(consensus.annotations[i].description.charAt(1));
- }
- else
- {
- seqs.append(consensus.annotations[i].displayCharacter);
- }
- }
- }
-
- SequenceI sq = new Sequence("Consensus", seqs.toString());
- sq.setDescription("Percentage Identity Consensus "
- + ((ignoreGapsInConsensusCalculation) ? " without gaps" : ""));
- return sq;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public SequenceGroup getSelectionGroup()
- {
- return selectionGroup;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param sg
- * DOCUMENT ME!
- */
- public void setSelectionGroup(SequenceGroup sg)
- {
- selectionGroup = sg;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getConservationSelected()
- {
- return conservationColourSelected;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b
- * DOCUMENT ME!
- */
- public void setConservationSelected(boolean b)
- {
- conservationColourSelected = b;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getAbovePIDThreshold()
- {
- return abovePIDThreshold;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b
- * DOCUMENT ME!
- */
- public void setAbovePIDThreshold(boolean b)
- {
- abovePIDThreshold = b;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getStartRes()
- {
- return startRes;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getEndRes()
- {
- return endRes;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getStartSeq()
- {
- return startSeq;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param cs
- * DOCUMENT ME!
- */
- public void setGlobalColourScheme(ColourSchemeI cs)
- {
- globalColourScheme = cs;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public ColourSchemeI getGlobalColourScheme()
- {
- return globalColourScheme;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param res
- * DOCUMENT ME!
- */
- public void setStartRes(int res)
- {
- this.startRes = res;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param seq
- * DOCUMENT ME!
- */
- public void setStartSeq(int seq)
- {
- this.startSeq = seq;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param res
- * DOCUMENT ME!
- */
- public void setEndRes(int res)
- {
- if (res > (alignment.getWidth() - 1))
- {
- // log.System.out.println(" Corrected res from " + res + " to maximum " +
- // (alignment.getWidth()-1));
- res = alignment.getWidth() - 1;
- }
-
- if (res < 0)
- {
- res = 0;
- }
-
- this.endRes = res;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param seq
- * DOCUMENT ME!
- */
- public void setEndSeq(int seq)
- {
- if (seq > alignment.getHeight())
- {
- seq = alignment.getHeight();
- }
-
- if (seq < 0)
- {
- seq = 0;
- }
-
- this.endSeq = seq;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getEndSeq()
- {
- return endSeq;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param f
- * DOCUMENT ME!
- */
- public void setFont(Font f)
- {
- font = f;
-
- Container c = new Container();
-
- java.awt.FontMetrics fm = c.getFontMetrics(font);
- setCharHeight(fm.getHeight());
- setCharWidth(fm.charWidth('M'));
- validCharWidth = true;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public Font getFont()
- {
- return font;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param w
- * DOCUMENT ME!
- */
- public void setCharWidth(int w)
- {
- this.charWidth = w;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getCharWidth()
- {
- return charWidth;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param h
- * DOCUMENT ME!
- */
- public void setCharHeight(int h)
- {
- this.charHeight = h;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getCharHeight()
- {
- return charHeight;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param w
- * DOCUMENT ME!
- */
- public void setWrappedWidth(int w)
- {
- this.wrappedWidth = w;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getWrappedWidth()
- {
- return wrappedWidth;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public AlignmentI getAlignment()
- {
- return alignment;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param align
- * DOCUMENT ME!
- */
- public void setAlignment(AlignmentI align)
- {
- if (alignment != null && alignment.getCodonFrames() != null)
- {
- StructureSelectionManager.getStructureSelectionManager()
- .removeMappings(alignment.getCodonFrames());
- }
- this.alignment = align;
- if (alignment.getCodonFrames() != null)
- {
- StructureSelectionManager.getStructureSelectionManager().addMappings(
- alignment.getCodonFrames());
- }
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param state
- * DOCUMENT ME!
- */
- public void setWrapAlignment(boolean state)
- {
- wrapAlignment = state;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param state
- * DOCUMENT ME!
- */
- public void setShowText(boolean state)
- {
- showText = state;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param state
- * DOCUMENT ME!
- */
- public void setRenderGaps(boolean state)
- {
- renderGaps = state;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getColourText()
- {
- return showColourText;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param state
- * DOCUMENT ME!
- */
- public void setColourText(boolean state)
- {
- showColourText = state;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param state
- * DOCUMENT ME!
- */
- public void setShowBoxes(boolean state)
- {
- showBoxes = state;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getWrapAlignment()
- {
- return wrapAlignment;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getShowText()
- {
- return showText;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getShowBoxes()
- {
- return showBoxes;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public char getGapCharacter()
- {
- return getAlignment().getGapCharacter();
- }