code: def codons(self, frame):
          
          start = frame
          while start + 3 <= self.size:
              yield self.sequence[start : start + 3], start
              start += 3
docs: A generator that yields DNA in one codon blocks
          "frame" counts for 0. This function yields a tuple (triplet, index) with
          index relative to the original DNA sequence