}
/**
- * 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;