@Test public void testNormalizeDiploidLikelihoodMatrixFromLog10() { double[][] likelihoodMatrix = { {-90.2, 0, 0}, {-190.1, -2.1, 0}, {-7.0, -17.5, -35.9} }; double[][] normalizedMatrix = { {-88.1, 0, 0}, {-188.0, 0.0, 0}, {-4.9, -15.4, -33.8} }; Assert.assertTrue( compareDoubleArrays( LikelihoodCalculationEngine.normalizeDiploidLikelihoodMatrixFromLog10(likelihoodMatrix), normalizedMatrix)); double[][] likelihoodMatrix2 = { {-90.2, 0, 0, 0}, {-190.1, -2.1, 0, 0}, {-7.0, -17.5, -35.9, 0}, {-7.0, -17.5, -35.9, -1000.0}, }; double[][] normalizedMatrix2 = { {-88.1, 0, 0, 0}, {-188.0, 0.0, 0, 0}, {-4.9, -15.4, -33.8, 0}, {-4.9, -15.4, -33.8, -997.9}, }; Assert.assertTrue( compareDoubleArrays( LikelihoodCalculationEngine.normalizeDiploidLikelihoodMatrixFromLog10( likelihoodMatrix2), normalizedMatrix2)); }
@Test(dataProvider = "PcrErrorModelTestProvider", enabled = true) public void createPcrErrorModelTest(final String repeat, final int repeatLength) { final LikelihoodCalculationEngine engine = new LikelihoodCalculationEngine( (byte) 0, false, PairHMM.HMM_IMPLEMENTATION.ORIGINAL, 0.0, true, LikelihoodCalculationEngine.PCR_ERROR_MODEL.CONSERVATIVE); final String readString = Utils.dupString(repeat, repeatLength); final byte[] insQuals = new byte[readString.length()]; final byte[] delQuals = new byte[readString.length()]; Arrays.fill(insQuals, (byte) LikelihoodCalculationEngine.INITIAL_QSCORE); Arrays.fill(delQuals, (byte) LikelihoodCalculationEngine.INITIAL_QSCORE); engine.applyPCRErrorModel(readString.getBytes(), insQuals, delQuals); final RepeatCovariate repeatCovariate = new RepeatLengthCovariate(); repeatCovariate.initialize( LikelihoodCalculationEngine.MAX_STR_UNIT_LENGTH, LikelihoodCalculationEngine.MAX_REPEAT_LENGTH); for (int i = 1; i < insQuals.length; i++) { final int repeatLengthFromCovariate = repeatCovariate.findTandemRepeatUnits(readString.getBytes(), i - 1).getSecond(); final byte adjustedScore = LikelihoodCalculationEngine.getErrorModelAdjustedQual(repeatLengthFromCovariate, 3.0); Assert.assertEquals(insQuals[i - 1], adjustedScore); Assert.assertEquals(delQuals[i - 1], adjustedScore); } }