[Biojava-l] Having problems using biojava regex.

Charles Danko dankoc at gmail.com
Wed Mar 14 16:15:11 UTC 2007


Hi,

I'm having problems using the biojava regex classes.

According to my understanding, the code posted below is the simplest
possible example of this class.

However, my output is:
TAG
false
0
TAG

The TAG, TAG part of the output is for pattern.patternAsString() and
occurence.pattern().patternAsString().  As I understand it, both of these
are correct, leading me to believe that both the Pattern and Matcher objects
are being created correctly.  However, occurences.find() = false and
occurences.groupCount() = 0 ... meaning it's not finding any matches!?

Where am I going wrong?

Many thanks!
Charles

import org.biojava.bio.*;
import org.biojava.bio.seq.*;
import org.biojava.bio.symbol.*;
import org.biojava.utils.regex.*;
import java.util.*;
import java.io.*;

public class Ambiguity2 {
  public static void main(String[] args) {
    try {
        FiniteAlphabet IUPAC = DNATools.getDNA();

        // Create pattern using pattern factory.
        Pattern pattern;
        PatternFactory FACTORY = PatternFactory.makeFactory(IUPAC);
        try{
            pattern = FACTORY.compile("TAG");
        } catch(Exception e) {e.printStackTrace(); return;}
        System.out.println(pattern.patternAsString());

        // Variables needed...
        Matcher occurences;

        // Promoter & Element
        Element WorkingElement = new Element("ElementName");
        SymbolList WorkingPromoter = DNATools.createDNA
("TAGAGATAGACGATAGC");

        // Obtain iterator of patterns.
        try {
            occurences = pattern.matcher( WorkingPromoter );
        } catch(Exception e) {e.printStackTrace(); return;}
        System.out.println(occurences.find());
        System.out.println(occurences.groupCount());
        System.out.println(occurences.pattern().patternAsString());
        // Foreach match
        while( occurences.find() ) {
                // Create Occurence object using information from patterns.
            System.out.println("Match: " +"\t"+ WorkingPromoter +"\n"+
occurences.start() +"\t"+ occurences.group().seqString());
        }
    }

    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}



More information about the Biojava-l mailing list