示例#1
0
文件: report.py 项目: rjgildea/dials
    def overall_report(data):
        # Start by adding some overall numbers
        report = {
            "n": len(reflections),
            "n_full": data["full"].count(True),
            "n_partial": data["full"].count(False),
            "n_overload": data["over"].count(True),
            "n_ice": data["ice"].count(True),
            "n_summed": data["sum"].count(True),
            "n_fitted": data["prf"].count(True),
            "n_integated": data["int"].count(True),
            "n_invalid_bg": data["ninvbg"].count(True),
            "n_invalid_fg": data["ninvfg"].count(True),
            "n_failed_background": data["fbgd"].count(True),
            "n_failed_summation": data["fsum"].count(True),
            "n_failed_fitting": data["fprf"].count(True),
        }

        # Compute mean background
        try:
            report["mean_background"] = flex.mean(
                data["background.mean"].select(data["int"])
            )
        except Exception:
            report["mean_background"] = 0.0

        # Compute mean I/Sigma summation
        try:
            report["ios_sum"] = flex.mean(data["intensity.sum.ios"].select(data["sum"]))
        except Exception:
            report["ios_sum"] = 0.0

        # Compute mean I/Sigma profile fitting
        try:
            report["ios_prf"] = flex.mean(data["intensity.prf.ios"].select(data["prf"]))
        except Exception:
            report["ios_prf"] = 0.0

        # Compute the mean profile correlation
        try:
            report["cc_prf"] = flex.mean(
                data["profile.correlation"].select(data["prf"])
            )
        except Exception:
            report["cc_prf"] = 0.0

        # Compute the correlations between summation and profile fitting
        try:
            mask = data["sum"] & data["prf"]
            Isum = data["intensity.sum.value"].select(mask)
            Iprf = data["intensity.prf.value"].select(mask)
            report["cc_pearson_sum_prf"] = pearson_correlation_coefficient(Isum, Iprf)
            report["cc_spearman_sum_prf"] = spearman_correlation_coefficient(Isum, Iprf)
        except Exception:
            report["cc_pearson_sum_prf"] = 0.0
            report["cc_spearman_sum_prf"] = 0.0

        # Return the overall report
        return report
示例#2
0
  def overall_report(data):

    # Start by adding some overall numbers
    report = OrderedDict()
    report['n']                   = len(reflections)
    report['n_full']              = data['full'].count(True)
    report['n_partial']           = data['full'].count(False)
    report['n_overload']          = data['over'].count(True)
    report['n_ice']               = data['ice'].count(True)
    report['n_summed']            = data['sum'].count(True)
    report['n_fitted']            = data['prf'].count(True)
    report['n_integated']         = data['int'].count(True)
    report['n_invalid_bg']        = data['ninvbg'].count(True)
    report['n_invalid_fg']        = data['ninvfg'].count(True)
    report['n_failed_background'] = data['fbgd'].count(True)
    report['n_failed_summation']  = data['fsum'].count(True)
    report['n_failed_fitting']    = data['fprf'].count(True)

    # Compute mean background
    try:
      report['mean_background'] = flex.mean(
        data['background.mean'].select(data['int']))
    except Exception:
      report['mean_background'] = 0.0

    # Compute mean I/Sigma summation
    try:
      report['ios_sum'] = flex.mean(
        data['intensity.sum.ios'].select(data['sum']))
    except Exception:
      report['ios_sum'] = 0.0

    # Compute mean I/Sigma profile fitting
    try:
      report['ios_prf'] = flex.mean(
        data['intensity.prf.ios'].select(data['prf']))
    except Exception:
      report['ios_prf'] = 0.0

    # Compute the mean profile correlation
    try:
      report['cc_prf'] = flex.mean(
        data['profile.correlation'].select(data['prf']))
    except Exception:
      report['cc_prf'] = 0.0

    # Compute the correlations between summation and profile fitting
    try:
      mask = data['sum'] & data['prf']
      Isum = data['intensity.sum.value'].select(mask)
      Iprf = data['intensity.prf.value'].select(mask)
      report['cc_pearson_sum_prf'] = pearson_correlation_coefficient(Isum, Iprf)
      report['cc_spearman_sum_prf'] = spearman_correlation_coefficient(Isum, Iprf)
    except Exception:
      report['cc_pearson_sum_prf'] = 0.0
      report['cc_spearman_sum_prf'] = 0.0

    # Return the overall report
    return report