code: def qc_table_html(self, tests, alias=None):
          
          data = self.qc_data(tests, alias=alias)
          all_tests = [list(d.keys()) for d in data.values()]
          tests = list(set(utils.flatten_list(all_tests)))
  
          # Header row.
          r = '</th><th>'.join(['Curve', 'Passed', 'Score'] + tests)
          rows = '<tr><th>{}</th></tr>'.format(r)
  
          styles = {
              True: "#CCEECC",   # Green
              False: "#FFCCCC",  # Red
          }
  
          # Quality results.
          for curve, results in data.items():
  
              if results:
                  norm_score = sum(results.values()) / len(results)
              else:
                  norm_score = -1
  
              rows += '<tr><th>{}</th>'.format(curve)
              rows += '<td>{} / {}</td>'.format(sum(results.values()), len(results))
              rows += '<td>{:.3f}</td>'.format(norm_score)
  
              for test in tests:
                  result = results.get(test, '')
                  style = styles.get(result, "#EEEEEE")
                  rows += '<td style="background-color:{};">'.format(style)
                  rows += '{}</td>'.format(result)
              rows += '</tr>'
  
          html = '<table>{}</table>'.format(rows)
          return html
docs: Makes a nice table out of ``qc_data()``
  
          Returns:
              str. An HTML string.