def test_fetch_invalid_read(self, log_patcher): bad_read = mock.Mock(is_unmapped=False, reference_start=0, reference_end=0, query_name='BAD_READ') fh = mock.Mock(references=['chr'], spec=['references', 'fetch']) fh.configure_mock(**{'fetch.return_value': [bad_read]}) cache = BamCache(fh) cache.fetch('chr', 1, 10) self.assertEqual(0, len(cache.cache)) log_patcher.assert_called_with('ignoring invalid read', 'BAD_READ', level=logging.DEBUG)
def setUpModule(): global REFERENCE_GENOME REFERENCE_GENOME = load_reference_genome(get_data('mock_reference_genome.fa')) if 'CTCCAAAGAAATTGTAGTTTTCTTCTGGCTTAGAGGTAGATCATCTTGGT' != REFERENCE_GENOME['fake'].seq[0:50].upper(): raise AssertionError('fake genome file does not have the expected contents') global BAM_CACHE BAM_CACHE = BamCache(get_data('mini_mock_reads_for_events.sorted.bam')) global FULL_BAM_CACHE FULL_BAM_CACHE = BamCache(get_data('mock_reads_for_events.sorted.bam')) global READS READS = {} for read in BAM_CACHE.fetch('reference3', 1, 8000): if read.qname not in READS: READS[read.qname] = [None, None] if read.is_supplementary: continue if read.is_read1: READS[read.qname][0] = read else: READS[read.qname][1] = read