print the nice looking alignment.  Must have data accessable from get_query_sequence() and get_refernece_sequencec()

    :returns: Pretty print string.
    :rtype: string

def print_alignment(self,chunk_size=40,min_intron_size=68):
    """print the nice looking alignment.  Must have data accessable from get_query_sequence() and get_refernece_sequencec()

    :returns: Pretty print string.
    :rtype: string

    """
    has_qual = True
    if not self.query_quality: has_qual = False
    trantab = maketrans('01',' *')
    [qstrs,tstrs,ystrs] = self.get_alignment_strings(min_intron_size=min_intron_size)
    print 'Alignment for Q: '+str(self.alignment_ranges[0][1].chr)
    for i in range(len(qstrs)):
      print 'Exon '+str(i+1)
      #+' T: '+self._alignment_ranges[i][0].get_range_string()+' Q: '+str(self._alignment_ranges[i][1].start)+'-'+str(self._alignment_ranges[i][1].end)
      mm = ''.join([str(int(qstrs[i][j]!=tstrs[i][j] and qstrs[i][j]!='-' and tstrs[i][j]!='-' and tstrs[i][j]!='N')) for j in range(len(qstrs[i]))]).translate(trantab)
      t =  tstrs[i] #target
      q = qstrs[i]  #query
      s = ystrs[i] #quality
      for y in [[mm[x:x+chunk_size],t[x:x+chunk_size],q[x:x+chunk_size],s[x:x+chunk_size]] for x in range(0,len(mm),chunk_size)]:
        print '  '+y[0]
        print 'T '+y[1]
        print 'Q '+y[2]
        if has_qual: print 'Y '+y[3]        
        print ''