/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
* Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
/**
* after Olivier's non-conserved only character display
*/
- boolean showUnconserved = false;
+ boolean showNonconserved = false;
/**
* group members
if (!found)
continue;
}
- AlignmentAnnotation newannot = new AlignmentAnnotation(seq
- .getAnnotation()[a]);
+ AlignmentAnnotation newannot = new AlignmentAnnotation(
+ seq.getAnnotation()[a]);
newannot.restrict(startRes, endRes);
newannot.setSequenceRef(seqs[ipos]);
newannot.adjustForAlignment();
}
/**
- * Add s to this sequence group
+ * Add s to this sequence group. If aligment sequence is already contained in
+ * group, it will not be added again, but recalculation may happen if the flag
+ * is set.
*
* @param s
* alignment sequence to be added
}
/**
- * DOCUMENT ME!
+ * Set the first column selected by this group. Runs from 0<=i<N_cols
*
* @param i
- * DOCUMENT ME!
*/
public void setStartRes(int i)
{
}
/**
- * DOCUMENT ME!
+ * Set the groups last selected column. Runs from 0<=i<N_cols
*
* @param i
- * DOCUMENT ME!
*/
public void setEndRes(int i)
{
*/
public SequenceI[] getSequencesInOrder(AlignmentI al)
{
+ return getSequencesInOrder(al, true);
+ }
+
+ /**
+ * return an array representing the intersection of the group with al,
+ * optionally returning an array the size of al.getHeight() where nulls mark
+ * the non-intersected sequences
+ *
+ * @param al
+ * @param trim
+ * @return null or array
+ */
+ public SequenceI[] getSequencesInOrder(AlignmentI al, boolean trim)
+ {
int sSize = sequences.size();
int alHeight = al.getHeight();
- SequenceI[] seqs = new SequenceI[sSize];
+ SequenceI[] seqs = new SequenceI[(trim) ? sSize : alHeight];
int index = 0;
for (int i = 0; i < alHeight && index < sSize; i++)
{
if (sequences.contains(al.getSequenceAt(i)))
{
- seqs[index++] = al.getSequenceAt(i);
+ seqs[(trim) ? index : i] = al.getSequenceAt(i);
+ index++;
}
}
if (index == 0)
{
return null;
}
+ if (!trim)
+ {
+ return seqs;
+ }
if (index < seqs.length)
{
SequenceI[] dummy = seqs;
/**
* @return the showUnconserved
*/
- public boolean getShowunconserved()
+ public boolean getShowNonconserved()
{
- return showUnconserved;
+ return showNonconserved;
}
/**
- * @param showUnconserved
+ * @param showNonconserved
* the showUnconserved to set
*/
- public void setShowunconserved(boolean displayNonconserved)
+ public void setShowNonconserved(boolean displayNonconserved)
{
- this.showUnconserved = displayNonconserved;
+ this.showNonconserved = displayNonconserved;
}
AlignmentAnnotation consensus = null, conservation = null;
}
}
- SequenceI sq = new Sequence("Group" + getName() + " Consensus", seqs
- .toString());
+ SequenceI sq = new Sequence("Group" + getName() + " Consensus",
+ seqs.toString());
sq.setDescription("Percentage Identity Consensus "
+ ((ignoreGapsInConsensus) ? " without gaps" : ""));
return sq;
}
/**
- * @param includeAllConsSymbols
- * the includeAllConsSymbols to set
+ * @param showSequenceLogo
+ * indicates if a sequence logo is shown for consensus annotation
*/
- public void setIncludeAllConsSymbols(boolean includeAllConsSymbols)
+ public void setshowSequenceLogo(boolean showSequenceLogo)
{
- if (this.showSequenceLogo != includeAllConsSymbols && consensus != null)
+ // TODO: decouple calculation from settings update
+ if (this.showSequenceLogo != showSequenceLogo && consensus != null)
{
- this.showSequenceLogo = includeAllConsSymbols;
+ this.showSequenceLogo = showSequenceLogo;
recalcConservation();
}
- this.showSequenceLogo = includeAllConsSymbols;
+ this.showSequenceLogo = showSequenceLogo;
}
/**