{
if (!groups.contains(sg))
{
- groups.addElement(sg);
+ if(hiddenSequences.getSize()>0)
+ {
+ //We're not going to make groups of
+ //Hidden sequences
+ int i, iSize = sg.getSize(false);
+ for (i = 0; i < iSize; i++)
+ {
+ if (!sequences.contains(sg.getSequenceAt(i)))
+ {
+ sg.deleteSequence(sg.getSequenceAt(i), false);
+ iSize--;
+ i--;
+ }
+ }
+
+ if (sg.getSize(true) < 1)
+ return;
+ }
+
+ groups.addElement(sg);
}
}
public void deleteAllGroups()
{
groups.removeAllElements();
-
- int i = 0;
-
- while (i < sequences.size())
- {
- SequenceI s = getSequenceAt(i);
- s.setColor(java.awt.Color.white);
- i++;
- }
}
/** */
aSize = annotations.length;
}
+ if(aSize<1)
+ return;
+
AlignmentAnnotation[] temp = new AlignmentAnnotation[aSize - 1];
int tIndex = 0;
// Can only be done once, if dataset is not null
// This will not be performed
Sequence[] seqs = new Sequence[getHeight()];
+ SequenceI currentSeq;
for (int i = 0; i < getHeight(); i++)
{
- if(getSequenceAt(i).getDatasetSequence()!=null)
+ currentSeq = getSequenceAt(i);
+ if(currentSeq.getDatasetSequence()!=null)
{
- seqs[i] = (Sequence)getSequenceAt(i).getDatasetSequence();
+ seqs[i] = (Sequence)currentSeq.getDatasetSequence();
}
else
{
- seqs[i] = new Sequence(getSequenceAt(i).getName(),
+ seqs[i] = new Sequence(currentSeq.getName(),
AlignSeq.extractGaps(
jalview.util.Comparison.GapChars,
- getSequenceAt(i).getSequence()
+ currentSeq.getSequence()
),
- getSequenceAt(i).getStart(),
- getSequenceAt(i).getEnd());
- seqs[i].sequenceFeatures = getSequenceAt(i).getSequenceFeatures();
+ currentSeq.getStart(),
+ currentSeq.getEnd());
+ seqs[i].sequenceFeatures = currentSeq.getSequenceFeatures();
+ seqs[i].setDescription(currentSeq.getDescription());
getSequenceAt(i).setSequenceFeatures(null);
getSequenceAt(i).setDatasetSequence(seqs[i]);
}
return dataset;
}
- public boolean padGaps() {
+ public boolean padGaps()
+ {
boolean modified=false;
//Remove excess gaps from the end of alignment
maxLength++;
+ int cLength;
for (int i = 0; i < sequences.size();
i++)
{
current = getSequenceAt(i);
+ cLength = current.getLength();
- if (current.getLength() < maxLength)
+ if (cLength < maxLength)
{
- current.insertCharAt(maxLength - 1, gapCharacter);
+ current.insertCharAt(cLength,
+ maxLength-cLength, gapCharacter);
modified=true;
}
else if(current.getLength() > maxLength)