-
- /**
- * DOCUMENT ME!
- *
- * @param align DOCUMENT ME!
- */
- public void setAlignment(AlignmentI align)
- {
- this.alignment = align;
- }
-
- /**
- * 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();
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param gap DOCUMENT ME!
- */
- public void setGapCharacter(char gap)
- {
- if (getAlignment() != null)
- {
- getAlignment().setGapCharacter(gap);
- }
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param thresh DOCUMENT ME!
- */
- public void setThreshold(int thresh)
- {
- threshold = thresh;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getThreshold()
- {
- return threshold;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param inc DOCUMENT ME!
- */
- public void setIncrement(int inc)
- {
- increment = inc;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getIncrement()
- {
- return increment;
- }
-
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public ColumnSelection getColumnSelection()
- {
- return colSel;
- }
-
-
- /**
- * DOCUMENT ME!
- *
- * @param tree DOCUMENT ME!
- */
- public void setCurrentTree(NJTree tree)
- {
- currentTree = tree;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public NJTree getCurrentTree()
- {
- return currentTree;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b DOCUMENT ME!
- */
- public void setColourAppliesToAllGroups(boolean b)
- {
- colourAppliesToAllGroups = b;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getColourAppliesToAllGroups()
- {
- return colourAppliesToAllGroups;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getShowJVSuffix()
- {
- return showJVSuffix;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b DOCUMENT ME!
- */
- public void setShowJVSuffix(boolean b)
- {
- showJVSuffix = b;
- }
-
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getShowAnnotation()
- {
- return showAnnotation;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b DOCUMENT ME!
- */
- public void setShowAnnotation(boolean b)
- {
- showAnnotation = b;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getScaleAboveWrapped()
- {
- return scaleAboveWrapped;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getScaleLeftWrapped()
- {
- return scaleLeftWrapped;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public boolean getScaleRightWrapped()
- {
- return scaleRightWrapped;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b DOCUMENT ME!
- */
- public void setScaleAboveWrapped(boolean b)
- {
- scaleAboveWrapped = b;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b DOCUMENT ME!
- */
- public void setScaleLeftWrapped(boolean b)
- {
- scaleLeftWrapped = b;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param b DOCUMENT ME!
- */
- public void setScaleRightWrapped(boolean b)
- {
- scaleRightWrapped = b;
- }
-
- /**
- * Property change listener for changes in alignment
- *
- * @param listener DOCUMENT ME!
- */
- public void addPropertyChangeListener(
- java.beans.PropertyChangeListener listener)
- {
- changeSupport.addPropertyChangeListener(listener);
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param listener DOCUMENT ME!
- */
- public void removePropertyChangeListener(
- java.beans.PropertyChangeListener listener)
- {
- changeSupport.removePropertyChangeListener(listener);
- }
-
- /**
- * Property change listener for changes in alignment
- *
- * @param prop DOCUMENT ME!
- * @param oldvalue DOCUMENT ME!
- * @param newvalue DOCUMENT ME!
- */
- public void firePropertyChange(String prop, Object oldvalue, Object newvalue)
- {
- changeSupport.firePropertyChange(prop, oldvalue, newvalue);
- }
-
- public void setIgnoreGapsConsensus(boolean b, AlignmentPanel ap)
- {
- ignoreGapsInConsensusCalculation = b;
- updateConsensus(ap);
- if(globalColourScheme!=null)
- {
- globalColourScheme.setThreshold(globalColourScheme.getThreshold(), ignoreGapsInConsensusCalculation);
- }
- }
-
- public boolean getIgnoreGapsConsensus()
- {
- return ignoreGapsInConsensusCalculation;
- }
-
- public void setDataset(boolean b)
- {
- isDataset = b;
- }
-
- public boolean isDataset()
- {
- return isDataset;
- }
-
-
- public void hideSelectedColumns()
- {
- if (colSel.size() < 1)
- return;
-
- colSel.hideSelectedColumns();
- setSelectionGroup(null);
-
- hasHiddenColumns = true;
- }
-
-
- public void hideColumns(int start, int end)
- {
- if(start==end)
- colSel.hideColumns(start);
- else
- colSel.hideColumns(start, end);
-
- hasHiddenColumns = true;
- }
-
- public void hideAllSelectedSeqs()
- {
- if (selectionGroup == null)
- return;
-
- SequenceI[] seqs = selectionGroup.getSequencesInOrder(alignment);
-
- hideSequence(seqs);
-
- setSelectionGroup(null);
- }
-
- public void hideSequence(SequenceI [] seq)
- {
- if(seq!=null)
- {
- for (int i = 0; i < seq.length; i++)
- alignment.getHiddenSequences().hideSequence(seq[i]);
-
- hasHiddenRows = true;
- firePropertyChange("alignment", null, alignment.getSequences());
- }
- }
-
- public void showSequence(int index)
- {
- Vector tmp = alignment.getHiddenSequences().showSequence(index);
- if(tmp.size()>0)
- {
- if(selectionGroup==null)
- {
- selectionGroup = new SequenceGroup();
- selectionGroup.setEndRes(alignment.getWidth()-1);
- }
-
- for (int t = 0; t < tmp.size(); t++)
- {
- selectionGroup.addSequence(
- (SequenceI) tmp.elementAt(t), false
- );
- }
- firePropertyChange("alignment", null, alignment.getSequences());
- }
-
- if(alignment.getHiddenSequences().getSize()<1)
- hasHiddenRows = false;
- }
-
- public void showColumn(int col)
- {
- colSel.revealHiddenColumns(col);
- if(colSel.getHiddenColumns()==null)
- hasHiddenColumns = false;
- }
-
- public void showAllHiddenColumns()
- {
- colSel.revealAllHiddenColumns();
- hasHiddenColumns = false;
- }
-
- public void showAllHiddenSeqs()
- {
- if(alignment.getHiddenSequences().getSize()>0)
- {
- if(selectionGroup==null)
- {
- selectionGroup = new SequenceGroup();
- selectionGroup.setEndRes(alignment.getWidth()-1);
- }
- Vector tmp = alignment.getHiddenSequences().showAll();
- for(int t=0; t<tmp.size(); t++)
- {
- selectionGroup.addSequence(
- (SequenceI)tmp.elementAt(t), false
- );
- }
- firePropertyChange("alignment", null, alignment.getSequences());
- hasHiddenRows = false;
- }
- }
-
- public void invertColumnSelection()
- {
- int column;
- for(int i=0; i<alignment.getWidth(); i++)
- {
- column = i;
-
- if(colSel.contains(column))
- colSel.removeElement(column);
- else
- colSel.addElement(column);
-
- }
-
- }
-
- public int adjustForHiddenSeqs(int alignmentIndex)
- {
- return alignment.getHiddenSequences().adjustForHiddenSeqs(alignmentIndex);
- }
-
- /**
- * This method returns the a new SequenceI [] with
- * the selection sequence and start and end points adjusted
- * @return String[]
- */
- public SequenceI[] getSelectionAsNewSequence()
- {
- SequenceI[] sequences;
-
- if (selectionGroup == null)
- sequences = alignment.getSequencesArray();
- else
- sequences = selectionGroup.getSelectionAsNewSequences(alignment);
-
- return sequences;
- }
-
- /**
- * This method returns the visible alignment as text, as
- * seen on the GUI, ie if columns are hidden they will not
- * be returned in the result.
- * Use this for calculating trees, PCA, redundancy etc on views
- * which contain hidden columns.
- * @return String[]
- */
- public jalview.datamodel.CigarArray getViewAsCigars(boolean selectedRegionOnly)
- {
- CigarArray selection=null;
- SequenceI [] seqs= null;
- int i, iSize;
- int start = 0, end = 0;
- if(selectedRegionOnly && selectionGroup!=null)
- {
- iSize = selectionGroup.getSize(false);
- seqs = selectionGroup.getSequencesInOrder(alignment);
- start = selectionGroup.getStartRes();
- end = selectionGroup.getEndRes(); // inclusive for start and end in SeqCigar constructor
- }
- else
- {
- iSize = alignment.getHeight();
- seqs = alignment.getSequencesArray();
- end = alignment.getWidth()-1;
- }
- SeqCigar[] selseqs = new SeqCigar[iSize];
- for(i=0; i<iSize; i++)
- {
- selseqs[i] = new SeqCigar(seqs[i], start, end);
- }
- selection=new CigarArray(selseqs);
- // now construct the CigarArray operations
- if (hasHiddenColumns) {
- Vector regions = colSel.getHiddenColumns();
- int [] region;
- int hideStart, hideEnd;
- int last=start;
- for (int j = 0; last<end & j < regions.size(); j++)
- {
- region = (int[]) regions.elementAt(j);
- hideStart = region[0];
- hideEnd = region[1];
- // edit hidden regions to selection range
- if(hideStart<last) {
- if (hideEnd > last)
- {
- hideStart = last;
- } else
- continue;
- }
-
- if (hideStart>end)
- break;
-
- if (hideEnd>end)
- hideEnd=end;
-
- if (hideStart>hideEnd)
- break;
- /**
- * form operations...
- */
- if (last<hideStart)
- selection.addOperation(CigarArray.M, hideStart-last);
- selection.addOperation(CigarArray.D, 1+hideEnd-hideStart);
- last = hideEnd+1;
- }
- // Final match if necessary.
- if (last<end)
- selection.addOperation(CigarArray.M, end-last+1);
- } else {
- selection.addOperation(CigarArray.M, end-start+1);
- }
- return selection;
- }
- /**
- * 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
- * @return AlignmentView
- */
- jalview.datamodel.AlignmentView getAlignmentView(boolean selectedOnly) {
- // JBPNote:
- // this is here because the AlignmentView constructor modifies the CigarArray
- // object. Refactoring of Cigar and alignment view representation should
- // be done to remove redundancy.
- CigarArray aligview = getViewAsCigars(selectedOnly);
- if (aligview!=null) {
- return new AlignmentView(aligview,
- (selectedOnly && selectionGroup!=null) ? selectionGroup.getStartRes() : 0);
- }
- return null;
- }
- /**
- * This method returns the visible alignment as text, as
- * seen on the GUI, ie if columns are hidden they will not
- * be returned in the result.
- * Use this for calculating trees, PCA, redundancy etc on views
- * which contain hidden columns.
- * @return String[]
- */
- public String [] getViewAsString(boolean selectedRegionOnly)
- {
- String [] selection = null;
- SequenceI [] seqs= null;
- int i, iSize;
- int start = 0, end = 0;
- if(selectedRegionOnly && selectionGroup!=null)
- {
- iSize = selectionGroup.getSize(false);
- seqs = selectionGroup.getSequencesInOrder(alignment);
- start = selectionGroup.getStartRes();
- end = selectionGroup.getEndRes()+1;
- }
- else
- {
- iSize = alignment.getHeight();
- seqs = alignment.getSequencesArray();
- end = alignment.getWidth();
- }
-
- selection = new String[iSize];
- if (hasHiddenColumns) {
- selection = colSel.getVisibleSequenceStrings(start, end, seqs);
- } else {
- for(i=0; i<iSize; i++)
- {
- selection[i] = seqs[i].getSequence(start, end);
- }
-
- }
- return selection;
- }
-
- public boolean getShowHiddenMarkers()
- {
- return showHiddenMarkers;
- }
-
- public void setShowHiddenMarkers(boolean show)
- {
- showHiddenMarkers = show;
- }
-
- public String getSequenceSetId()
- {
- if(sequenceSetID==null)
- sequenceSetID = alignment.hashCode()+"";
-
- return sequenceSetID;
- }
-
- public void alignmentChanged(AlignmentPanel ap)
- {
- if (padGaps)
- alignment.padGaps();
-
- if (hconsensus != null && autoCalculateConsensus)
- {
- updateConsensus(ap);
- updateConservation(ap);
- }
-
- //Reset endRes of groups if beyond alignment width
- int alWidth = alignment.getWidth();
- Vector groups = alignment.getGroups();
- if(groups!=null)
- {
- for(int i=0; i<groups.size(); i++)
- {
- SequenceGroup sg = (SequenceGroup)groups.elementAt(i);
- if(sg.getEndRes()>alWidth)
- sg.setEndRes(alWidth-1);
- }
- }
-
- if(selectionGroup!=null && selectionGroup.getEndRes()>alWidth)
- selectionGroup.setEndRes(alWidth-1);
-
- resetAllColourSchemes();
-
- alignment.adjustSequenceAnnotations();
- }
-
-
- void resetAllColourSchemes()
- {
- ColourSchemeI cs = globalColourScheme;
- if(cs!=null)
- {
- if (cs instanceof ClustalxColourScheme)
- {
- ( (ClustalxColourScheme) cs).
- resetClustalX(alignment.getSequences(),
- alignment.getWidth());
- }
-
- cs.setConsensus(hconsensus);
- if (cs.conservationApplied())
- {
- Alignment al = (Alignment) alignment;
- Conservation c = new Conservation("All",
- ResidueProperties.propHash, 3,
- al.getSequences(), 0,
- al.getWidth() - 1);
- c.calculate();
- c.verdict(false, ConsPercGaps);
-
- cs.setConservation(c);
- }
- }
-
- int s, sSize = alignment.getGroups().size();
- for(s=0; s<sSize; s++)
- {
- SequenceGroup sg = (SequenceGroup)alignment.getGroups().elementAt(s);
- if(sg.cs!=null && sg.cs instanceof ClustalxColourScheme)
- {
- ((ClustalxColourScheme)sg.cs).resetClustalX(
- sg.getSequences(true), sg.getWidth());
- }
- sg.recalcConservation();
- }
- }
-
-
- public Color getSequenceColour(SequenceI seq)
- {
- if(sequenceColours==null || !sequenceColours.containsKey(seq))
- return Color.white;
- else
- return (Color)sequenceColours.get(seq);
- }
-
- public void setSequenceColour(SequenceI seq, Color col)
- {
- if(sequenceColours==null)
- sequenceColours = new Hashtable();
-
- if(col == null)
- sequenceColours.remove(seq);
- else
- sequenceColours.put(seq, col);
- }
-