Print a sequence in a readable format.

        :param outstream: if `None`, formatted sequence is returned as a
                          string; otherwise, it is treated as a file-like
                          object and the formatted sequence is printed to the
                          outstream
        :param linewidth: width for wrapping sequences over multiple lines; set
                          to 0 for no wrapping

def format_seq(self, outstream=None, linewidth=70):
        """
        Print a sequence in a readable format.

        :param outstream: if `None`, formatted sequence is returned as a
                          string; otherwise, it is treated as a file-like
                          object and the formatted sequence is printed to the
                          outstream
        :param linewidth: width for wrapping sequences over multiple lines; set
                          to 0 for no wrapping
        """
        if linewidth == 0 or len(self.seq) <= linewidth:
            if outstream is None:
                return self.seq
            else:
                print(self.seq, file=outstream)
                return

        i = 0
        seq = ''
        while i < len(self.seq):
            if outstream is None:
                seq += self.seq[i:i+linewidth] + '\n'
            else:
                print(self.seq[i:i+linewidth], file=outstream)
            i += linewidth
        if outstream is None:
            return seq