[Biojava-l] FASTA Parser problems

Williamson, TC tcw102 at york.ac.uk
Fri Jul 8 10:28:40 EDT 2005


Hello all.

I'm having trouble with the FASTA Parser presented in BioJava in Anger.

I just don't seem to be able to get any results from my file.  Here is 
the script:

import java.io.*;
import java.util.*;


import org.biojava.bio.program.sax.*;
import org.biojava.bio.program.ssbind.*;
import org.biojava.bio.search.*;
import org.biojava.bio.seq.db.*;
import org.xml.sax.*;
import org.biojava.bio.*;

public class BlastParser {
   /**
    * String location is the full path of a FASTA output file
    */
   public static void main(String[] args) {
     try {
       //get the Blast input as a Stream
       String location = "Full//path//of//file";
       InputStream is = new FileInputStream(location);

       //make a FastaSearchSAXParser
       FastaSearchSAXParser parser = new FastaSearchSAXParser();

       //make the SAX event adapter that will pass events to a Handler.
       SeqSimilarityAdapter adapter = new SeqSimilarityAdapter();

       //set the parsers SAX event adapter
       parser.setContentHandler(adapter);

       //The list to hold the SeqSimilaritySearchResults
       List results = new ArrayList();

       //create the SearchContentHandler that will build 
SeqSimilaritySearchResults
       //in the results List
       SearchContentHandler builder = new BlastLikeSearchBuilder(results,
           new DummySequenceDB("queries"), new 
DummySequenceDBInstallation());

       //register builder with adapter
       adapter.setSearchContentHandler(builder);

       //parse the file, after this the result List will be populated with
       //SeqSimilaritySearchResults
       parser.parse(new InputSource(is));

       //output some blast details
       for (Iterator i = results.iterator(); i.hasNext(); ) {
         SeqSimilaritySearchResult result =
             (SeqSimilaritySearchResult)i.next();

         Annotation anno = result.getAnnotation();

         for (Iterator j = anno.keys().iterator(); j.hasNext(); ) {
           Object key = j.next();
           Object property = anno.getProperty(key);
           System.out.println(key+" : "+property);
         }
         System.out.println("Hits: ");

         //list the hits
         for (Iterator k = result.getHits().iterator(); k.hasNext(); ) {
           SeqSimilaritySearchHit hit =
               (SeqSimilaritySearchHit)k.next();
           System.out.print("\tmatch: "+hit.getSubjectID());
           System.out.println("\te score: "+hit.getEValue());
         }

         System.out.println("\n");
       }

     }
     catch (SAXException ex) {
       //XML problem
       ex.printStackTrace();
     }catch (IOException ex) {
       //IO problem, possibly file not found
       ex.printStackTrace();
     }
   }
}


More information about the Biojava-l mailing list