[Biojava-l] Issues with FlexibleAlignment
Matthew Pocock
matthew.pocock at ncl.ac.uk
Fri Nov 25 06:39:12 EST 2005
Hi,
This should be returning the symbol AlphabetManager.getGap(), which should be
the same as EMPTY_ALPHABET.getGap(). Could somebody fix this?
Matthew
On Thursday 24 November 2005 14:54, Russ Kepler wrote:
> In working with FlexibleAlignment I've found a problem. When an overlap is
> empty the underlying code in AbstractULAlignment will return nulls for
> positions not containing symbols, and this confuses things later on. An
> example program below will demonstrate a simple case of the problem (code
> stolen from TestSimpleAlignment.java and modified).
>
> Is there a symbol that should be returned for this case? It should be
> distinct from the gap symbol as areas outside the aligning sequence isn't
> gap space, it just doesn't exist. Some comments in the list archive suggest
> that a space was going to be returned, but I can't see an attempt to
> implement that (it's not added to the alphabet, as an example) and right
> now a null is returned.
>
>
> package symbol;
>
> import java.util.ArrayList;
> import java.util.Iterator;
>
> import org.biojava.bio.alignment.FlexibleAlignment;
> import org.biojava.bio.alignment.SimpleAlignmentElement;
> import org.biojava.bio.symbol.RangeLocation;
> import org.biojava.bio.symbol.SymbolList;
>
> public class TestFlexibleAlignment {
> public static void main(String[] args) {
> try {
> // make three random sequences
> SymbolList res1 = Tools.createSymbolList(10);
> SymbolList res2 = Tools.createSymbolList(10);
> SymbolList res3 = Tools.createSymbolList(10);
>
> // think of three names
> String name1 = "pigs";
> String name2 = "dogs";
> String name3 = "cats";
>
> // create list with reference sequence
> ArrayList list = new ArrayList(1);
> SymbolList refSeq = Tools.createSymbolList(30);
> list.add(new SimpleAlignmentElement("reference", refSeq, new
> RangeLocation(1, 30))); // create the alignment with the reference sequence
> FlexibleAlignment ali = new FlexibleAlignment(list);
>
> // add the sequences as alignments
> ali.addSequence(new SimpleAlignmentElement(name1, res1, new
> RangeLocation(1, 10))); ali.addSequence(new SimpleAlignmentElement(name2,
> res2, new RangeLocation(11, 20))); ali.addSequence(new
> SimpleAlignmentElement(name3, res3, new RangeLocation(21, 30)));
>
> // print out each row in the alignment
> System.out.println("Sequences in alignment");
> for(Iterator i = ali.getLabels().iterator(); i.hasNext(); ) {
> String label = (String) i.next();
> SymbolList rl = ali.symbolListForLabel(label);
> System.out.println(label + ":\t" + rl.seqString());
> }
> System.out.flush();
>
> // print out each column
> System.out.println("Columns");
> for(int i = 1; i <= ali.length(); i++) {
> System.out.println(i + ":\t" + ali.symbolAt(i).getName());
> }
> } catch (Exception ex) {
> ex.printStackTrace(System.err);
> System.exit(1);
> }
> }
> }
> _______________________________________________
> Biojava-l mailing list - Biojava-l at biojava.org
> http://biojava.org/mailman/listinfo/biojava-l
More information about the Biojava-l
mailing list