class_docstr: Fast overlap detection of a genomic position against a database of Ranges.
  
  Enables O(log n) computation of whether a point chr:pos falls within one of a
  large number of genomic ranges.
  
  This class does not supports overlapping or adjacent intervals. Any such
  intervals will be automatically merged together in the constructor.
  
  This class is immutable. No methods should be added that directly modify the
  ranges held by the class.
class_docstr_tok: ["Fast","overlap","detection","of","a","genomic","position","against","a","database","of","Ranges",".","Enables","O","(","log","n",")","computation","of","whether","a","point","chr",":","pos","falls","within","one","of","a","large","number","of","genomic","ranges",".","This","class","does","not","supports","overlapping","or","adjacent","intervals",".","Any","such","intervals","will","be","automatically","merged","together","in","the","constructor",".","This","class","is","immutable",".","No","methods","should","be","added","that","directly","modify","the","ranges","held","by","the","class","."]
docstr: Chops out all of the intervals in other from this this RangeSet.
  
  NOTE: This is a *MUTATING* operation for performance reasons. Make a copy
  of self if you want to avoid modifying the RangeSet.
  
  Args:
    other: A RangeSet object whose intervals will be removed from this
      RangeSet.
docstr_tok: ["Chops","out","all","of","the","intervals","in","other","from","this","this","RangeSet",".","NOTE",":","This","is","a","*","MUTATING","*","operation","for","performance","reasons",".","Make","a","copy","of","self","if","you","want","to","avoid","modifying","the","RangeSet",".","Args",":","other",":","A","RangeSet","object","whose","intervals","will","be","removed","from","this","RangeSet","."]
code: def exclude_regions(self, other: "RangeSet"):
      """Chops out all of the intervals in other from this this RangeSet.
  
      NOTE: This is a *MUTATING* operation for performance reasons. Make a copy
      of self if you want to avoid modifying the RangeSet.
  
      Args:
        other: A RangeSet object whose intervals will be removed from this
          RangeSet.
      """
      # pylint: disable=protected-access
      for chrname, chr_intervals in six.iteritems(other._by_chr):
          # If refname is present in self, difference those two IntervalTrees.
          self_intervals = self._by_chr.get(chrname, None)
          if self_intervals:
              for begin, end, _ in chr_intervals:
                  self_intervals.chop(begin, end)
              if self_intervals.is_empty():
                  # Cleanup after ourselves by removing empty trees from our map.
                  del self._by_chr[chrname]
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import re
  from typing import Dict, Iterable, Optional, Sequence
  from absl import logging
  from etils import epath
  import intervaltree
  import six
  from third_party.nucleus.io import bed
  from third_party.nucleus.protos import position_pb2
  from third_party.nucleus.protos import range_pb2
  from third_party.nucleus.protos import reference_pb2
  from third_party.nucleus.protos import variants_pb2
label_desc: Use image node_id 7 for calling the RangeSet obj's underlying member method code with example usage: obj.exclude_regions(other) without return types