Split this sequence into two halves and return them. The original
      sequence remains unmodified.

      :param point: defines the split point, if None then the centre is used
      :return: two Sequence objects -- one for each side

def split(self, point=None):
    """
      Split this sequence into two halves and return them. The original
      sequence remains unmodified.

      :param point: defines the split point, if None then the centre is used
      :return: two Sequence objects -- one for each side
    """
    if point is None:
      point = len(self) / 2

    r1 = Sequence(self.name + ".1", self.sequenceData[:point])
    r2 = Sequence(self.name + ".2", self.sequenceData[point:])

    return r1, r2