def test_process_with_realigner(self):
        self.processor.options.mode = deepvariant_pb2.DeepVariantOptions.CALLING
        self.processor.options.realigner_options.CopyFrom(
            realigner_pb2.RealignerOptions())
        self.processor.realigner = mock.Mock()
        self.processor.realigner.realign_reads.return_value = [], []

        self.processor.sam_reader = mock.Mock()
        self.processor.sam_reader.query.return_value = []
        self.processor.in_memory_sam_reader = mock.Mock()

        c1, c2 = mock.Mock(), mock.Mock()
        e1, e2, e3 = mock.Mock(), mock.Mock(), mock.Mock()
        self.add_mock('candidates_in_region', retval=([c1, c2], []))
        mock_cpe = self.add_mock('create_pileup_examples',
                                 side_effect=[[e1], [e2, e3]])
        mock_lv = self.add_mock('label_variant')

        self.assertEqual(([c1, c2], [e1, e2, e3], []),
                         self.processor.process(self.region))
        self.processor.sam_reader.query.assert_called_once_with(self.region)
        self.processor.realigner.realign_reads.assert_called_once_with(
            [], self.region)
        self.processor.in_memory_sam_reader.replace_reads.assert_called_once_with(
            [])
        self.assertEqual([mock.call(c1), mock.call(c2)],
                         mock_cpe.call_args_list)
        test_utils.assert_not_called_workaround(mock_lv)
    def test_process_keeps_ordering_of_candidates_and_examples(self, mode):
        self.processor.options.mode = mode

        r1, r2 = mock.Mock(), mock.Mock()
        c1, c2 = mock.Mock(), mock.Mock()
        e1, e2, e3 = mock.Mock(), mock.Mock(), mock.Mock()
        self.processor.in_memory_sam_reader = mock.Mock()
        self.add_mock('region_reads', retval=[r1, r2])
        self.add_mock('candidates_in_region', retval=([c1, c2], []))
        mock_cpe = self.add_mock('create_pileup_examples',
                                 side_effect=[[e1], [e2, e3]])
        mock_lv = self.add_mock('label_variant')
        self.assertEqual(([c1, c2], [e1, e2, e3], []),
                         self.processor.process(self.region))
        self.processor.in_memory_sam_reader.replace_reads.assert_called_once_with(
            [r1, r2])
        # We don't try to label variants when in calling mode.
        self.assertEqual([mock.call(c1), mock.call(c2)],
                         mock_cpe.call_args_list)

        if mode == deepvariant_pb2.DeepVariantOptions.CALLING:
            # In calling mode, we never try to label.
            test_utils.assert_not_called_workaround(mock_lv)
        else:
            self.assertEqual([
                mock.call(e1, c1.variant),
                mock.call(e2, c2.variant),
                mock.call(e3, c2.variant)
            ], mock_lv.call_args_list)
    def test_process_calls_with_candidates(self, mode):
        self.processor.options.mode = mode

        self.processor.in_memory_sam_reader = mock.Mock()
        mock_read = mock.MagicMock()
        mock_candidate = mock.MagicMock()
        mock_example = mock.MagicMock()
        mock_rr = self.add_mock('region_reads', retval=[mock_read])
        mock_cir = self.add_mock('candidates_in_region',
                                 retval=([mock_candidate], []))
        mock_cpe = self.add_mock('create_pileup_examples',
                                 retval=[mock_example])
        mock_lv = self.add_mock('label_variant')
        self.assertEqual(([mock_candidate], [mock_example], []),
                         self.processor.process(self.region))
        mock_rr.assert_called_once_with(self.region)
        self.processor.in_memory_sam_reader.replace_reads.assert_called_once_with(
            [mock_read])
        mock_cir.assert_called_once_with(self.region)
        mock_cpe.assert_called_once_with(mock_candidate)

        if mode == deepvariant_pb2.DeepVariantOptions.CALLING:
            # In calling mode, we never try to label.
            test_utils.assert_not_called_workaround(mock_lv)
        else:
            mock_lv.assert_called_once_with(mock_example,
                                            mock_candidate.variant)
Ejemplo n.º 4
0
 def test_model_init_function(self, path, expected):
   model = mock.Mock(spec=modeling.DeepVariantModel)
   model.initialize_from_checkpoint.return_value = MOCK_SENTINEL_RETURN_VALUE
   self.assertEqual(expected, model_train.model_init_function(model, 3, path))
   if expected:
     model.initialize_from_checkpoint.assert_called_once_with(
         path, 3, is_training=True)
   else:
     test_utils.assert_not_called_workaround(model.initialize_from_checkpoint)
Ejemplo n.º 5
0
 def test_image_no_reads(self):
     # This image is created just from reference and no reads. Checks that the
     # function is listening to all of our image creation parameters (e.g.,
     # reference_band_height, width, height, etc) and is filling the image with
     # empty rows when it runs out of reads.
     image = self.pic.build_pileup(self.dv_call, self.ref, [],
                                   {self.alt_allele})
     self.mock_enc_ref.assert_called_once_with(self.ref)
     test_utils.assert_not_called_workaround(self.mock_enc_read)
     self.assertImageMatches(image, 'ref', 'ref', 'empty', 'empty')
Ejemplo n.º 6
0
  def test_candidates_in_region_no_reads(self):
    self.processor.in_memory_sam_reader = mock.Mock()
    self.processor.in_memory_sam_reader.query.return_value = []
    mock_ac = self.add_mock('_make_allele_counter_for_region')

    self.assertEqual(([], []), self.processor.candidates_in_region(self.region))

    self.processor.in_memory_sam_reader.query.assert_called_once_with(
        self.region)
    # A region with no reads should return out without making an AlleleCounter.
    test_utils.assert_not_called_workaround(mock_ac)
 def test_on_demand_initialization_not_called_if_initialized(self):
     self.processor.initialized = True
     self.assertTrue(self.processor.initialized)
     self.processor.in_memory_sam_reader = mock.Mock()
     mock_rr = self.add_mock('region_reads', retval=[])
     mock_cir = self.add_mock('candidates_in_region', retval=([], []))
     self.processor.process(self.region)
     test_utils.assert_not_called_workaround(self.mock_init)
     mock_rr.assert_called_once_with(self.region)
     self.processor.in_memory_sam_reader.replace_reads.assert_called_once_with(
         [])
     mock_cir.assert_called_once_with(self.region)
 def test_process_calls_no_candidates(self):
     self.processor.in_memory_sam_reader = mock.Mock()
     mock_rr = self.add_mock('region_reads', retval=[])
     mock_cir = self.add_mock('candidates_in_region', retval=([], []))
     mock_cpe = self.add_mock('create_pileup_examples', retval=[])
     mock_lv = self.add_mock('label_variant')
     self.assertEqual(([], [], []), self.processor.process(self.region))
     mock_rr.assert_called_once_with(self.region)
     self.processor.in_memory_sam_reader.replace_reads.assert_called_once_with(
         [])
     mock_cir.assert_called_once_with(self.region)
     test_utils.assert_not_called_workaround(mock_cpe)
     test_utils.assert_not_called_workaround(mock_lv)