public void calcLogOddsWeight() {
		logOdds = new double[BASES.length][length];
		double b[] = new double[BASES.length];

		// Update counts
		int total = 0;
		for (int baseNum = 0; baseNum < BASES.length; baseNum++) {
			count[baseNum] = 0;
			for (int i = 0; i < length; i++) {
				count[baseNum] += countMatrix[baseNum][i];
				total += countMatrix[baseNum][i];
			}
		}

		// Calculate b[i]
		for (int baseNum = 0; baseNum < BASES.length; baseNum++)
			b[baseNum] = ((double) (count[baseNum] + 1)) / (total);

		for (int i = 0; i < length; i++) {
			for (int baseNum = 0; baseNum < BASES.length; baseNum++) {
				double p = ((double) (countMatrix[baseNum][i] + 1)) / ((double) total);
				logOdds[baseNum][i] = -p * Math.log(p / b[baseNum]) / LOG2;
			}
		}
	}