code: def clip_end(self, seq, mm_score):
      
      lim = mm_score - 1
      other_end = len(seq) - 1
      other_start = 0
  
      for i in range(len(self.sequenceData) - 1, lim - 1, -1):
        self_end = i
        self_start = i - (len(seq) - 1)
  
        if self_start < 0:
          self_start = 0
          other_start = other_end - self_end
  
        score = self.similarity(self_start, self_end, other_start,
                                other_end, seq)
        if (score >= mm_score):
          self.nsRight(len(seq) + (len(self) - i) - 1)
          break
docs: Clip a sequence from the end of this sequence -- we assume the sequence
        to be clipped will always begin somewhere in this sequence, but may not
        be fully contained. If found, replaced with Ns.
  
        :param seq: sequence to be clipped
        :param mm_score: the number of matching bases needed to consider a hit,
                         mm_score = len(seq) would be 100% match