[Biojava-l] adding toSequenceIterator method for Alignment
Matthew Pocock
matthew_pocock@yahoo.co.uk
Fri, 19 Jul 2002 00:40:14 +0100
Cool. Looks good. Commit away. Could you add some javadocs (class &
constructor)?
Matthew
Singh, Nimesh wrote:
> I've created a class called AlignmentSequenceIterator that I intend to put in the org.biojava.bio.seq package. It will do the real work. I've also added
> public SequenceIterator sequenceIterator() {
> return new AlignmentSequenceIterator(this);
> }
> to each alignment class. It should work fine in every alignment, because AlignmentSequenceIterator uses the getLabels and symbolListForLabel methods from the Alignment interface.
>
> If this is fine, then I'll upload everything later today. If you have any suggestions for changes, then let me know.
>
> Nimesh
>
>
> Here is the cod for AlignmentSequenceIterator:
>
> public class AlignmentSequenceIterator implements SequenceIterator {
> private Alignment align;
> private Iterator labels;
> private SequenceFactory sf;
> public AlignmentSequenceIterator(Alignment align) {
> this.align = align;
> labels = align.getLabels().iterator();
> sf = new SimpleSequenceFactory();
> }
> public boolean hasNext() {
> return labels.hasNext();
> }
> public Sequence nextSequence() throws NoSuchElementException, BioException {
> if (!hasNext()) {
> throw new NoSuchElementException("No more sequences in the alignment.");
> }
> else {
> try {
> Object label = labels.next();
> SymbolList symList = align.symbolListForLabel(label);
> Sequence seq = sf.createSequence(symList, label.toString(), label.toString(), null);
> return seq;
> } catch (Exception e) {
> throw new BioException(e, "Could not read sequence");
> }
> }
> }
> }
> _______________________________________________
> Biojava-l mailing list - Biojava-l@biojava.org
> http://biojava.org/mailman/listinfo/biojava-l
>