code: def coding_sequence(self):
          
          if self.sequence is None:
              return None
  
          start = self.first_start_codon_spliced_offset
          end = self.last_stop_codon_spliced_offset
  
          # If start codon is the at nucleotide offsets [3,4,5] and
          # stop codon is at nucleotide offsets  [20,21,22]
          # then start = 3 and end = 22.
          #
          # Adding 1 to end since Python uses non-inclusive ends in slices/ranges.
  
          # pylint: disable=invalid-slice-index
          # TODO(tavi) Figure out pylint is not happy with this slice
          return self.sequence[start:end + 1]
docs: cDNA coding sequence (from start codon to stop codon, without
          any introns)