def check_overlaps(chr1, start1, end1, chr2, start2, end2, expected): nbp = end1 - start1 read = test_utils.make_read( 'A' * nbp, chrom=chr1, start=start1, cigar='{}M'.format(nbp)) region = ranges.make_range(chr2, start2, end2) self.assertEqual(utils.read_overlaps_region(read, region), expected) # This check ensures we get the same result calling ranges.ranges_overlap. self.assertEqual( ranges.ranges_overlap(region, utils.read_range(read)), expected)
def query(self, region): """Returns an iterator for going through the reads in the region. Args: region: nucleus.genomics.v1.Range. The query region. Returns: An iterator over nucleus.genomics.v1.Read protos. """ # TODO(b/37353140): Add a faster query version for sorted reads. return (read for read in self.reads if ranges.ranges_overlap(region, utils.read_range(read)))
def query(self, region): """Iterate over records overlapping a query region. Args: region: third_party.nucleus.protos.Range, query region. Returns: An iterator over third_party.nucleus.protos.Read """ # redacted return (read for read in self.reads if ranges.ranges_overlap(region, read_range(read)))
def query(self, region): """Iterate over records overlapping a query region. Args: region: nucleus.genomics.v1.Range, the query region. Returns: An iterator over nucleus.genomics.v1.Read's. """ # TODO(b/37353140): Add a faster query version for sorted reads. return (read for read in self.reads if ranges.ranges_overlap(region, utils.read_range(read)))
def variants_overlap(variant1, variant2): """Returns True if the range of variant1 and variant2 overlap. This is equivalent to: ranges_overlap(variant_range(variant1), variant_range(variant2)) Args: variant1: nucleus.genomics.v1.Variant we want to compare for overlap. variant2: nucleus.genomics.v1.Variant we want to compare for overlap. Returns: True if the variants overlap, False otherwise. """ return ranges.ranges_overlap(variant_range(variant1), variant_range(variant2))
def query(self, region): return iter(variant for variant in self.variants if ranges.ranges_overlap( variant_utils.variant_range(variant), region))
def check_overlaps(chr1, start1, end1, chr2, start2, end2, expected): i1 = ranges.make_range(chr1, start1, end1) i2 = ranges.make_range(chr2, start2, end2) self.assertEqual(ranges.ranges_overlap(i1, i2), expected) self.assertEqual(ranges.ranges_overlap(i2, i1), expected)