private MatchCollection getLocationsHash(StringBuffer DNAsequence, String tokenToMatch, HashMap<String, ArrayList<Integer>> DNAhash, int originalLocation){
		MatchCollection out = new MatchCollection(safetyMargin,tokenToMatch.length());
		ArrayList<Integer> possibleLocations = new ArrayList<Integer>(); //= DNAhash.get(tokenToMatch.substring(0, hashSize));
		
		//Limit is the number of SNPS to allow for in a given sequence
	    int limit = 2;
		//Precompute all of the mutations and search for only those.
		ArrayList<String> mutations = getMutations(tokenToMatch, limit);
		
		//Search for any DNA that matches this sequence or a mutation of this sequence
		for(String s: mutations){
			ArrayList<Integer> temp = DNAhash.get(s);
			
			//If a match is found, store that information in possible locaitons
			if(temp != null){
				possibleLocations.addAll(temp);
			}
			
		}
		
		//peakedInterestSize is the value that denotes range around a predicted location
		//It is used to assign a better score to sequences that occur very close to predicted sequences locaiton
		int peakedInterestSize = (int)(DNAsequence.length() * .001);
		//Guarantee that the size is at least 1
		if (peakedInterestSize < 1){
			peakedInterestSize = 1;
		}
		
		if(possibleLocations.size() > 0){
			//Iterate through the DNA, and feed each string to the MatchCollection
			for(int i = 0; i < possibleLocations.size(); i++){
				
				int start = possibleLocations.get(i);
				int stop = start + tokenToMatch.length();
				String temp = DNAsequence.substring(start, stop);
				int score = fuzzyStringAlgorithms.levenshteinDistance(tokenToMatch, temp);
				//Alternative options to use instead of edit distance. Variant is faster then levenshtein distance but is much less accurate if indices are not preserved between the two genomes.
				// eg. levenshtein distance is slower but far better in the real world situations.
//				int score = fuzzyStringAlgorithms.variant(tokenToMatch, temp);
				
				//Give a boost to peptides that occur very close to where the orignal genomes location was
				if(Math.abs(originalLocation - start) < peakedInterestSize){
					//How to boost the score?  Cut in half?  This can be any number of score scaling
					score *= .33;
					
				}//if
				
				//Add matches to the match container, and let it sort out which ones are best
				Match m = new Match(temp, start,stop, score);
				if(!out.contains(m)){
					out.feed(m);
				}//if
			}//for
			
		//If there are no possible choices for comparison in the hash, use the window method to guess
		}else{
			return getLocationsWindowMethod(DNAsequence,tokenToMatch, originalLocation, range);
		}//else
		
		
		return out;
		
	}//getLocationsHash