Get a report on context-specific errors relative to what is expected on the target strand.

    :returns: Object with a 'header' and a 'data' where data describes context: before,after ,reference, query.  A total is kept for each reference base, and individual errors are finally checked
    :rtype: dict()

def get_target_context_error_report(self):
    """Get a report on context-specific errors relative to what is expected on the target strand.

    :returns: Object with a 'header' and a 'data' where data describes context: before,after ,reference, query.  A total is kept for each reference base, and individual errors are finally checked
    :rtype: dict()

    """
    report = {}
    report['header'] = ['before','after','reference','query','fraction']
    report['data'] = []
    r = self.get_target_context_errors()
    for b in sorted(r.keys()):
      for a in sorted(r[b].keys()):
        for t in sorted(r[b][a]):
          for q in sorted(r[b][a]):
            v = 0
            if r[b][a][t]['total'] > 0:
              v = float(r[b][a][t]['types'][q])/float(r[b][a][t]['total'])
            report['data'].append([b,a,t,q,v])
    return report