code: def print_graphic(self):
          
          aLhang, aRhang, bLhang, bRhang = self.get_hangs()
  
          achar = ">"
          bchar = "<" if self.orientation == '-' else ">"
          if self.qreverse:
              achar = "<"
              bchar = {">" : "<", "<" : ">"}[bchar]
  
          print(aLhang, aRhang, bLhang, bRhang, file=sys.stderr)
          width = 50  # Canvas
          hitlen = self.hitlen
          lmax = max(aLhang, bLhang)
          rmax = max(aRhang, bRhang)
          bpwidth = lmax + hitlen + rmax
          ratio = width * 1. / bpwidth
  
          _ = lambda x: int(round(x * ratio, 0))
          a1, a2 = _(aLhang), _(aRhang)
          b1, b2 = _(bLhang), _(bRhang)
          hit = max(_(hitlen), 1)
  
          msg = " " * max(b1 - a1, 0)
          msg += achar * (a1 + hit + a2)
          msg += " " * (width - len(msg) + 2)
          msg += "{0} ({1})".format(self.aid, self.asize)
          print(msg, file=sys.stderr)
  
          msg = " " * max(a1, b1)
          msg += "|" * hit
          print(msg, file=sys.stderr)
  
          msg = " " * max(a1 - b1, 0)
          msg += bchar * (b1 + hit + b2)
          msg += " " * (width - len(msg) + 2)
          msg += "{0} ({1})".format(self.bid, self.bsize)
          print(msg, file=sys.stderr)
          print(self, file=sys.stderr)
docs: >>>>>>>>>>>>>>>>>>>             seqA (alen)
                    ||||||||
                   <<<<<<<<<<<<<<<<<<<<<  seqB (blen)