예제 #1
0
    def test_merge_predictions_simplifies_alleles(self):
        """Checks that merge_predictions simplifies alleles."""
        ref, alts = 'CCA', ['CA', 'C']
        inputs = [
            _create_call_variants_output(ref=ref,
                                         indices=[0],
                                         probabilities=[0.0, 1.0, 0.0],
                                         alts=alts),
            _create_call_variants_output(ref=ref,
                                         indices=[1],
                                         probabilities=[1.0, 0.0, 0.0],
                                         alts=alts),
            _create_call_variants_output(ref=ref,
                                         indices=[0, 1],
                                         probabilities=[0.0, 1.0, 0.0],
                                         alts=alts),
        ]

        for permuted_inputs in itertools.permutations(inputs):
            # qual_filter=2 is needed so we remove our middle 'C' allele.
            variant, probs = postprocess_variants.merge_predictions(
                permuted_inputs, qual_filter=2)
            np.testing.assert_almost_equal(probs, [0.0, 1.0, 0.0])
            self.assertEqual(variant.reference_bases, 'CC')
            self.assertEqual(variant.alternate_bases, ['C'])
예제 #2
0
 def test_merge_predictions(self, inputs, expected_unnormalized_probs):
     denominator = sum(expected_unnormalized_probs)
     for permuted_inputs in itertools.permutations(inputs):
         _, predictions = postprocess_variants.merge_predictions(
             permuted_inputs)
         np.testing.assert_almost_equal(
             predictions,
             [x / denominator for x in expected_unnormalized_probs])
  def test_merge_predictions_simplifies_alleles(self):
    """Checks that merge_predictions simplifies alleles."""
    ref, alts = 'CCA', ['CA', 'C']
    inputs = [
        _create_call_variants_output(
            ref=ref, indices=[0], probabilities=[0.0, 1.0, 0.0], alts=alts),
        _create_call_variants_output(
            ref=ref, indices=[1], probabilities=[1.0, 0.0, 0.0], alts=alts),
        _create_call_variants_output(
            ref=ref, indices=[0, 1], probabilities=[0.0, 1.0, 0.0], alts=alts),
    ]

    for permuted_inputs in itertools.permutations(inputs):
      # qual_filter=2 is needed so we remove our middle 'C' allele.
      variant, probs = postprocess_variants.merge_predictions(
          permuted_inputs, qual_filter=2)
      np.testing.assert_almost_equal(probs, [0.0, 1.0, 0.0])
      self.assertEqual(variant.reference_bases, 'CC')
      self.assertEqual(variant.alternate_bases, ['C'])
예제 #4
0
 def test_exception_merge_predictions(self, inputs, text):
   with self.assertRaisesRegexp(ValueError, text):
     postprocess_variants.merge_predictions(inputs)
 def test_exception_merge_predictions(self, inputs, text):
   with self.assertRaisesRegexp(ValueError, text):
     postprocess_variants.merge_predictions(inputs)
 def test_merge_predictions(self, inputs, expected_unnormalized_probs):
   denominator = sum(expected_unnormalized_probs)
   for permuted_inputs in itertools.permutations(inputs):
     _, predictions = postprocess_variants.merge_predictions(permuted_inputs)
     np.testing.assert_almost_equal(
         predictions, [x / denominator for x in expected_unnormalized_probs])