diff --git a/java/src/org/broadinstitute/sting/secondarybase/FourProb.java b/java/src/org/broadinstitute/sting/secondarybase/FourProb.java deleted file mode 100755 index d15a6abdc..000000000 --- a/java/src/org/broadinstitute/sting/secondarybase/FourProb.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.broadinstitute.sting.secondarybase; - -import org.broadinstitute.sting.utils.Utils; -import org.broadinstitute.sting.utils.QualityUtils; - -/** - * FourProb represents four base hypotheses, their probabilities, and their ranking among one another. - * - * @author Kiran Garimella - */ -public class FourProb { - private double[] baseProbs; - private int[] baseIndices; - - /** - * Constructor for FourProb. - * - * @param baseLikes the unsorted base hypothesis probabilities (in ACGT order). - */ - public FourProb(double[][] baseLikes) { - double[] baseProbs = new double[4]; - for (int baseCurIndex = 0; baseCurIndex < 4; baseCurIndex++) { - for (int basePrevIndex = 0; basePrevIndex < baseLikes.length; basePrevIndex++) { - baseProbs[baseCurIndex] += baseLikes[basePrevIndex][baseCurIndex]; - } - } - - int[] baseIndices = {0, 1, 2, 3}; - - Integer[] perm = Utils.SortPermutation(baseProbs); - double[] ascendingBaseProbs = Utils.PermuteArray(baseProbs, perm); - int[] ascendingBaseIndices = Utils.PermuteArray(baseIndices, perm); - - this.baseProbs = new double[4]; - this.baseIndices = new int[4]; - - for (int i = 0; i < 4; i++) { - this.baseProbs[i] = ascendingBaseProbs[3 - i]; - this.baseIndices[i] = ascendingBaseIndices[3 - i]; - } - } - - /** - * Returns the index of the base at the specified rank. - * - * @param rank (0 = best, 3 = worst) the rank of the base whose index should be returned - * @return the index (0, 1, 2, 3). - */ - public int indexAtRank(int rank) { return baseIndices[rank]; } - - /** - * Returns the base label of the base at the specified rank. - * @param rank (0 = best, 3 = worst) the rank of the base whose index should be returned - * @return the base label (A, C, G, T). - */ - public char baseAtRank(int rank) { return baseIndexToBase(indexAtRank(rank)); } - - /** - * Returns the probability of the base at the specified rank. - * @param rank (0 = best, 3 = worst) the rank of the base whose index should be returned - * @return the probability of the base (0.0-1.0) - */ - public double probAtRank(int rank) { return baseProbs[rank]; } - - /** - * Returns the quality score of the base at the specified rank. - * @param rank (0 = best, 3 = worst) the rank of the base whose index should be returned - * @return the quality score of the base (0-40) - */ - public byte qualAtRank(int rank) { return QualityUtils.probToQual(probAtRank(rank)); } - - /** - * A utility method to convert a base index into a base label. - * @param baseIndex the index of the base (0, 1, 2, 3). - * @return A, C, G, T, or '.' if the base index can't be understood. - */ - private char baseIndexToBase(int baseIndex) { - switch (baseIndex) { - case 0: return 'A'; - case 1: return 'C'; - case 2: return 'G'; - case 3: return 'T'; - default: return '.'; - } - } - - /** - * Prettily formats the FourProb info. - * - * @return a prettily formatted Sting containing the base and quality score in rank order. - */ - public String toString() { - return ( - "[" + baseAtRank(0) + ":" + qualAtRank(0) + " " - + baseAtRank(1) + ":" + qualAtRank(1) + " " - + baseAtRank(2) + ":" + qualAtRank(2) + " " - + baseAtRank(3) + ":" + qualAtRank(3) + "]" - ); - } -}