def ligands(self): if (self._ligands is None): return dummy_validation() return self._ligands
def as_table1_column (self, label, wavelength, log, re_compute_r_factors=Auto) : """ Extract information for display in the traditional 'Table 1' of crystallographic statistics in structure articles. """ outer_shell = None data_stats = self.data_stats if (data_stats is None) : data_stats = dummy_validation() merging_stats = dummy_validation() merging_outer = dummy_validation() n_refl_uniq = data_stats.n_refl n_refl_refine = data_stats.n_refl_refine n_free = data_stats.n_free completeness = data_stats.completeness completeness_outer = data_stats.completeness_outer d_max_min = self.d_max_min() d_max, d_min = d_max_min if (self.merging is not None) : merging_stats = self.merging.overall merging_outer = self.merging.bins[-1] n_refl_uniq = merging_stats.n_uniq epsilon = 0.001 if ((merging_stats.d_min > d_min + 2*epsilon) or (merging_stats.d_max < d_max - 2*epsilon)) : raise Sorry(("Resolution limits for unmerged data in the structure "+ "'%s' do not cover the "+ "full range present in the merged data: %g - %g (merged) versus "+ "%g - %g (unmerged)") % (label, d_max, d_min, merging_stats.d_max, merging_stats.d_min)) r_work = self.r_work() r_free = self.r_free() n_tls_groups = None if (self.header_info is not None) : if (self.header_info.n_tls_groups > 0) : n_tls_groups = self.header_info.n_tls_groups use_header_values = (not re_compute_r_factors or (not self.header_info.is_phenix_refinement() and (re_compute_r_factors is Auto))) r_work, r_free, warned = rfactor_sanity_check( r_work_pdb=self.header_info.r_work, r_free_pdb=self.header_info.r_free, r_work_fmodel=r_work, r_free_fmodel=r_free, out=log, structure_name=label, re_compute_r_factors=not use_header_values) if (use_header_values) : n_refl_refine = data_stats.n_refl return iotbx.table_one.column( label=label, space_group=self.space_group_info(), unit_cell=self.unit_cell().parameters(), # data properties wavelength=wavelength, d_max_min=d_max_min, n_refl_all=merging_stats.n_obs, n_refl=n_refl_uniq, multiplicity=merging_stats.mean_redundancy, completeness=completeness * 100.0, i_over_sigma=merging_stats.i_over_sigma_mean, wilson_b=data_stats.wilson_b, r_sym=merging_stats.r_merge, r_meas=merging_stats.r_meas, r_pim=merging_stats.r_pim, cc_one_half=merging_stats.cc_one_half, cc_star=merging_stats.cc_star, # refinement n_refl_refine=n_refl_refine, n_free=n_free, r_work=r_work, r_free=r_free, cc_work=merging_stats.cc_work, cc_free=merging_stats.cc_free, # model properties n_atoms=self.model_stats.all.n_non_hd, n_macro_atoms=self.model_stats.macromolecules.n_non_hd, n_ligand_atoms=self.model_stats.ligands.n_non_hd, n_waters=self.model_stats.water.n_non_hd, n_residues=self.model_stats.n_protein, bond_rmsd=self.rms_bonds(), angle_rmsd=self.rms_angles(), rama_favored=self.rama_favored(), rama_allowed=self.rama_allowed(), rama_outliers=self.rama_outliers(), rota_outliers=self.rota_outliers(), clashscore=self.clashscore(), adp_mean=self.model_stats.all.b_mean, adp_mean_mm=self.model_stats.macromolecules.b_mean, adp_mean_lig=self.model_stats.ligands.b_mean, adp_mean_wat=self.model_stats.water.b_mean, n_tls_groups=n_tls_groups, anomalous_flag=data_stats.anomalous_flag, ).add_outer_shell( # XXX we need a consistency check here as well d_max_min=(data_stats.d_max_outer, data_stats.d_min_outer), n_refl=data_stats.n_refl_outer, n_refl_all=merging_outer.n_obs, n_refl_refine=data_stats.n_refl_refine_outer, n_free=data_stats.n_free_outer, cc_one_half=merging_outer.cc_one_half, cc_star=merging_outer.cc_star, r_sym=merging_outer.r_merge, r_meas=merging_outer.r_meas, r_pim=merging_outer.r_pim, i_over_sigma=merging_outer.i_over_sigma_mean, multiplicity=merging_outer.mean_redundancy, completeness=completeness_outer * 100, cc_work=merging_outer.cc_work, cc_free=merging_outer.cc_free, r_work=data_stats.r_work_outer, r_free=data_stats.r_free_outer)
def water(self): if (self._water is None): return dummy_validation() return self._water
def macromolecules(self): if (self._macromolecules is None): return dummy_validation() return self._macromolecules
def ligands (self) : if (self._ligands is None) : return dummy_validation() return self._ligands
def water (self) : if (self._water is None) : return dummy_validation() return self._water
def macromolecules (self) : if (self._macromolecules is None) : return dummy_validation() return self._macromolecules