docs: def is_subset(self):
        """Return value if tx_obj2 is a complete subset of tx_obj1 or tx_obj1 is a complete subset of tx_obj2
  
        values:
  
        * Return 1: Full overlap (mutual subests) 
        * Return 2: two is a subset of one
        * Return 3: one is a subset of two
        * Return False if neither is a subset of the other
        """
        if len(self.overs) == 0: return False
        if len(self.dif1) > 0: # make sure they are consecutive if more than one
          if len([x for x in self.dif1 if x != 1]) != 0: return False
          if len([x for x in self.dif2 if x != 1]) != 0: return False
        #look closely at what we are doing here
        onecov = self.start1 and self.end1
        twocov = self.start2 and self.end2
        if onecov and twocov:
          if self.tx_obj1.get_exon_count() != self.tx_obj2.get_exon_count():
             raise ValueError('how can be same with different exons'+"\n"+str(self.overs)+"\n"+str(self.dif1)+"\n"+str(self.dif2)+"\n"+str(len(self.j1))+"\n"+str(len(self.j2))+"\n"+str(self.tx_obj1.get_exon_count())+"\n"+str(self.tx_obj2.get_exon_count()))
          return 1
        elif twocov: return 2
        elif onecov: return 3
        return False