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
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