BioJava:Performance:AlignSW

From BioJava

Jump to: navigation, search

This is the source code for the Smith Waterman performance example.

/*
 * Jun 25, 2008 Copyright (c) ZBiT, University of Tübingen, Germany
 * Compiler: JDK 1.6.0
 */
 
/**
 * @author Andreas Dr&auml;ger (draeger) <andreas.draeger@uni-tuebingen.de>
 * @date Jun 25, 2008
 */
public class AlignmentTest {
 
       /**
        * This method computes a pairwise local alignment between two given sequences
        * and prints the result on the standard output stream. The sequences must be
        * genbank files and the substitution matrix must be defined for the same
        * alphabet than both sequences.
        *
        * @param args
        *          query sequence file (genbank), subject sequence file (genbank),
        *          substitution matrix file
 
        */
       public static void main(String[] args) {
               try {
                       RichSequenceIterator rsiQuery = org.biojavax.bio.seq.RichSequence.IOTools
                           .readGenbankDNA(new BufferedReader(new FileReader(args[0])),
                               RichObjectFactory.getDefaultNamespace());
                       RichSequenceIterator rsiSubject = org.biojavax.bio.seq.RichSequence.IOTools
                           .readGenbankDNA(new BufferedReader(new FileReader(args[1])),
                               RichObjectFactory.getDefaultNamespace());
                       if (rsiQuery.hasNext() && rsiSubject.hasNext()) {
                               RichSequence query = rsiQuery.nextRichSequence();
                               RichSequence subject = rsiSubject.nextRichSequence();
                               SequenceAlignment sa = new SmithWaterman(0, 5, 2, 2, 1,
                                   new SubstitutionMatrix((FiniteAlphabet) query.getAlphabet(),
                                       new File(args[2])));
                               sa.pairwiseAlignment(query, subject);
                               System.out.println(sa.getAlignmentString());
                       }
               } catch (FileNotFoundException e) {
                       e.printStackTrace();
               } catch (NoSuchElementException e) {
                       e.printStackTrace();
               } catch (BioException e) {
                       e.printStackTrace();
               } catch (IOException e) {
                       e.printStackTrace();
               } catch (Exception e) {
                       e.printStackTrace();
               }
       }
 
}
Personal tools