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

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