import java.io.PrintStream;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
/**
ScGroup()
{
- seqs = new ArrayList<SeqCigar>();
+ seqs = new ArrayList<>();
}
/**
{
return seqs.size();
}
+
+ public SequenceGroup getNewSequenceGroup(char c)
+ {
+ SequenceGroup newsg = new SequenceGroup(sg);
+ for (SeqCigar seq : seqs)
+ {
+ newsg.addSequence(seq.getSeq(c), false);
+ }
+ return newsg;
+ }
}
/**
SequenceI[] selseqs;
if (selection != null && selection.getSize() > 0)
{
- List<SequenceI> sel = selection.getSequences(null);
this.selected = new ScGroup();
selseqs = selection.getSequencesInOrder(alignment,
selectedRegionOnly);
selseqs = alignment.getSequencesArray();
}
- List<List<SequenceI>> seqsets = new ArrayList<List<SequenceI>>();
+ List<List<SequenceI>> seqsets = new ArrayList<>();
// get the alignment's group list and make a copy
- List<SequenceGroup> grps = new ArrayList<SequenceGroup>();
+ List<SequenceGroup> grps = new ArrayList<>();
List<SequenceGroup> gg = alignment.getGroups();
grps.addAll(gg);
ScGroup[] sgrps = null;
// strip out any groups that do not actually intersect with the
// visible and selected region
int ssel = selection.getStartRes(), esel = selection.getEndRes();
- List<SequenceGroup> isg = new ArrayList<SequenceGroup>();
+ List<SequenceGroup> isg = new ArrayList<>();
for (SequenceGroup sg : grps)
{
if (!(sg.getStartRes() > esel || sg.getEndRes() < ssel))
{
if (scGroups == null)
{
- scGroups = new ArrayList<ScGroup>();
+ scGroups = new ArrayList<>();
}
addedgps[sg] = true;
scGroups.add(sgrps[sg]);
}
}
+
+ /**
+ * return pruned visible sequences in each group in alignment view
+ *
+ * @param c
+ * @return
+ */
+ public Collection<? extends AnnotatedCollectionI> getVisibleGroups(char c)
+ {
+ ArrayList<SequenceGroup> groups = new ArrayList<>();
+ for (ScGroup sc : scGroups)
+ {
+ SequenceGroup sg = sc.getNewSequenceGroup(c);
+ groups.add(sg);
+ }
+ return groups;
+ }
}