code: def _setup_incorporate(self):
          
          seq = list(self._transcript_data.transcript_sequence)
  
          # get initial start/end points; will modify these based on the variant length
          cds_start = self._transcript_data.cds_start
          cds_stop = self._transcript_data.cds_stop
  
          start_end = []
          for pos in (self._var_c.posedit.pos.start, self._var_c.posedit.pos.end):
              # list is zero-based; seq pos is 1-based
              if pos.datum == Datum.CDS_START:
                  if pos.base < 0:    # 5' UTR
                      result = cds_start - 1
                  else:    # cds/intron
                      if pos.offset <= 0:
                          result = (cds_start - 1) + pos.base - 1
                      else:
                          result = (cds_start - 1) + pos.base
              elif pos.datum == Datum.CDS_END:    # 3' UTR
                  result = cds_stop + pos.base - 1
              else:
                  raise NotImplementedError("Unsupported/unexpected location")
              start_end.append(result)
  
          # unpack; increment end by 1 (0-based exclusive)
          (start, end) = start_end
          end += 1
  
          if DBG:
              print("len seq:{} cds_start:{} cds_stop:{} start:{} end:{}".format(
                  len(seq), cds_start, cds_stop, start, end))
          return seq, cds_start, cds_stop, start, end
docs: Helper to setup incorporate functions
          :return (transcript sequence, cds start [1-based], cds stop [1-based],
          cds start index in seq [inc, 0-based], cds end index in seq [excl, 0-based])
          :rtype (list, int, int, int, int)