Exemple #1
0
 def ligands(self):
     if (self._ligands is None):
         return dummy_validation()
     return self._ligands
Exemple #2
0
 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)
Exemple #3
0
 def water(self):
     if (self._water is None):
         return dummy_validation()
     return self._water
Exemple #4
0
 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