def build_cluster_pair_info(O, other, work_params, reindexing_assistant): from scitbx.array_family import flex scale_max = work_params.scale_estimation_scale_max assert scale_max > 0 scale_min = 1/scale_max miis_i, esti_i = O.miis_perms[0], O.esti_perms[0] result = [] for j_perm in xrange(len(reindexing_assistant.cb_ops)): miis_j, esti_j = other.miis_perms[j_perm], other.esti_perms[j_perm] i_seqs, j_seqs = miis_i.intersection_i_seqs(other=miis_j) if (i_seqs.size() < 2): return None x = esti_i.select(i_seqs) y = esti_j.select(j_seqs) if (((x != 0) | (y != 0)).count(True) < 2): return None num = flex.sum(x*y) den = flex.sum_sq(x) if (num > den * scale_min and num < den * scale_max): scale = num / den rms = flex.mean_sq(x*scale-y)**0.5 result.append(perm_rms_info(n=x.size(), scale=scale, rms=rms)) else: return None result = perm_rms_list(array=result) result.set_score() return result
def residual_contribution(u_isos_current, u_isos_average): diff = u_isos_current - u_isos_average self.rms_with_respect_to_average.append( adptbx.u_as_b(flex.mean_sq(diff)**0.5)) self.number_of_restraints += diff.size()
def get_chi_score(x, y, s): scale, offset = linear_fit(x, y, s) x = x * scale + offset score = flex.mean_sq((y - x) / s) return score, x
def residual_contribution(u_isos_current, u_isos_average): diff = u_isos_current - u_isos_average self.rms_with_respect_to_average.append(adptbx.u_as_b( flex.mean_sq(diff)**0.5)) self.number_of_restraints += diff.size()