Tuesday, September 22, 2009

HW 3 Example

Below is my solution for the DNA homework. There are other ways to solve this problem.

import java.util.Scanner;

public class DNASearch {
 
 
static final int MAX_ERRORS = 1;
 
 
public static void main(String[] args){
 
String dna =
       
"ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCC" +
   
"CCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGC" +
   
"CTCCTGACTTTCCTCGCTTGGTGGTTTGAGTGGACCTCCCAGGCCAGTGCCGGGCCCCTCATAGGAGAGG" +
   
"AAGCTCGGGAGGTGGCCAGGCGGCAGGAAGGCGCACCCCCCCAGCAATCCGCGCGCCGGGACAGAATGCC" +
   
"CTGCAGGAACTTCTTCTGGAAGACCTTCTCCTCCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAG" +
   
"TTTAATTACAGACCTGAA";

 
Scanner keyboard = new Scanner(System.in);
 
System.out.print("Enter query:");
 
String query = keyboard.next();
 
for (int dnaIndex =0; dnaIndex < dna.length(); dnaIndex++){ //start comparing at every index
   
int numMatches = 0;
   
//calculate the number of matches between dna[dnaIndex to dnaIndex+query.lenth()] and query
   
for (int queryIndex = 0; queryIndex < query.length() && queryIndex + dnaIndex  < dna.length(); queryIndex++){
   
if (dna.charAt(dnaIndex + queryIndex) == query.charAt(queryIndex))
     numMatches
++;
   
}
   
if (numMatches >= query.length() - MAX_ERRORS){
   
System.out.println("Match at position " + dnaIndex);
   
}
 
}
 
}
}

No comments: