def tests(Cls): initializer = Cls(os.path.join(os.getcwd()+r"/test_files", "beta.res")) print initializer.symmetry._unit_cell for scatterer in initializer.scatterers: print getattr(scatterer,"label"), getattr(scatterer,"site"),\ adptbx.u_star_as_u_iso(initializer.symmetry._unit_cell, scatterer.u_star)
def _initialize_from_ins(self, **kwargs): iucr_structure = from_ins.from_ins(self.fname, **kwargs) self.scatterers = iucr_structure.scatterers() self.symmetry = iucr_structure.crystal_symmetry() for scatterer in self.scatterers: setattr(scatterer, "u_iso", adptbx.u_star_as_u_iso(self.unit_cell, scatterer.u_star))
def exercise_tensor_rank_2_orth_and_frac_linear_maps(): from cctbx import adptbx, sgtbx p1 = sgtbx.space_group_info('P1') for i in xrange(100): uc = p1.any_compatible_unit_cell(27) u_star = matrix.col.random(n=6, a=0, b=1) u_iso_ref = adptbx.u_star_as_u_iso(uc, u_star) u_iso = matrix.col(uc.u_star_to_u_iso_linear_form()).dot(u_star) assert approx_equal(u_iso, u_iso_ref, eps=1e-15) u_cart_ref = adptbx.u_star_as_u_cart(uc, u_star) u_cart = matrix.sqr(uc.u_star_to_u_cart_linear_map()) * u_star assert approx_equal(u_cart, u_cart_ref, eps=1e-15) u_cif_ref = adptbx.u_star_as_u_cif(uc, u_star) u_cif = matrix.diag(uc.u_star_to_u_cif_linear_map())*(u_star) assert approx_equal(u_cif, u_cif_ref)
def exercise_tensor_rank_2_orth_and_frac_linear_maps(): from cctbx import adptbx, sgtbx p1 = sgtbx.space_group_info('P1') for i in range(100): uc = p1.any_compatible_unit_cell(27) u_star = matrix.col.random(n=6, a=0, b=1) u_iso_ref = adptbx.u_star_as_u_iso(uc, u_star) u_iso = matrix.col(uc.u_star_to_u_iso_linear_form()).dot(u_star) assert approx_equal(u_iso, u_iso_ref, eps=1e-15) u_cart_ref = adptbx.u_star_as_u_cart(uc, u_star) u_cart = matrix.sqr(uc.u_star_to_u_cart_linear_map()) * u_star assert approx_equal(u_cart, u_cart_ref, eps=1e-15) u_cif_ref = adptbx.u_star_as_u_cif(uc, u_star) u_cif = matrix.diag(uc.u_star_to_u_cif_linear_map()) * (u_star) assert approx_equal(u_cif, u_cif_ref)
def split_u(u_eq, xray_structure, tls_selections, offset): global time_split_u timer = user_plus_sys_time() uc = xray_structure.unit_cell() for tls_selection in tls_selections: if (offset): offset_ = adptbx.b_as_u(5.0) else: offset_ = 0.0 for i_seq in tls_selection: sc = xray_structure.scatterers()[i_seq] u_nm = sc.u_star u_nm_iso = adptbx.u_star_as_u_iso(uc, u_nm) u_iso_new = u_eq[i_seq] - u_nm_iso if u_iso_new < 0.0: u_iso_new = 0.0 assert u_iso_new >= 0.0 sc.u_iso = u_iso_new assert sc.flags.use_u_aniso() assert sc.flags.use_u_iso() u_iso = xray_structure.scatterers().extract_u_iso().select( xray_structure.use_u_iso()) assert (u_iso < 0.0).count(True) == 0 time_split_u += timer.elapsed()
def u_star_minus_u_iso_airlie(unit_cell, u_star): u_iso = adptbx.u_star_as_u_iso(unit_cell,u_star) u_star_as_beta = adptbx.u_star_as_beta(u_star) u_iso_as_beta = adptbx.u_iso_as_beta(unit_cell,u_iso) beta_minus_u_iso = [a-i for a,i in zip(u_star_as_beta,u_iso_as_beta)] return adptbx.beta_as_u_star(beta_minus_u_iso)
def u_star_minus_u_iso_airlie(unit_cell, u_star): u_iso = adptbx.u_star_as_u_iso(unit_cell, u_star) u_star_as_beta = adptbx.u_star_as_beta(u_star) u_iso_as_beta = adptbx.u_iso_as_beta(unit_cell, u_iso) beta_minus_u_iso = [a - i for a, i in zip(u_star_as_beta, u_iso_as_beta)] return adptbx.beta_as_u_star(beta_minus_u_iso)