def create_all_new_restraints(self, pdb_hierarchy, grm, log=sys.stdout): # initialize cache and monomer library server for underlying procedures if self.mon_lib_srv is None: from mmtbx.monomer_library import server self.mon_lib_srv = server.server() plane_cache = {} t0 = time.time() proteins_hbonds, prot_angle_proxies = self.create_protein_hbond_proxies( log=log, annotation=self.actual_sec_str) t1 = time.time() # print >> log, " Time for creating protein proxies:%f" % (t1-t0) stacking_proxies = nucleic_acids.get_stacking_proxies( pdb_hierarchy=pdb_hierarchy, stacking_phil_params=self.params.secondary_structure.\ nucleic_acid.stacking_pair, grm=grm, mon_lib_srv=self.mon_lib_srv, plane_cache=plane_cache) t2 = time.time() # print >> log, " Time for creating stacking proxies:%f" % (t2-t1) (hb_bond_proxies, hb_angle_proxies, planarity_bp_proxies, parallelity_bp_proxies) = nucleic_acids.get_basepair_proxies( pdb_hierarchy=pdb_hierarchy, bp_phil_params=self.params.secondary_structure.nucleic_acid.base_pair, grm=grm, mon_lib_srv=self.mon_lib_srv, plane_cache=plane_cache, hbond_distance_cutoff=self.params.secondary_structure.\ nucleic_acid.hbond_distance_cutoff, scale_bonds_sigma=self.params.secondary_structure.\ nucleic_acid.scale_bonds_sigma) t4 = time.time() # print >> log, " Time for creating basepair proxies (hbond, angle, planarity):%f" % (t4-t2) self.stats = { 'n_protein_hbonds': 0, 'n_na_hbonds': 0, 'n_na_hbond_angles': 0, 'n_na_basepairs': 0, 'n_na_stacking_pairs': 0 } print(" Restraints generated for nucleic acids:", file=log) print(" %d hydrogen bonds" % len(hb_bond_proxies), file=log) print(" %d hydrogen bond angles" % len(hb_angle_proxies), file=log) print(" %d basepair planarities" % len(planarity_bp_proxies), file=log) print(" %d basepair parallelities" % len(parallelity_bp_proxies), file=log) print(" %d stacking parallelities" % len(stacking_proxies), file=log) all_hbonds = proteins_hbonds.deep_copy() all_hbonds.extend(hb_bond_proxies) all_angle = prot_angle_proxies.deep_copy() all_angle.extend(hb_angle_proxies) return (all_hbonds, all_angle, planarity_bp_proxies, parallelity_bp_proxies + stacking_proxies)
def create_all_new_restraints(self, pdb_hierarchy, grm, log=sys.stdout): # initialize cache and monomer library server for underlying procedures if self.mon_lib_srv is None: from mmtbx.monomer_library import server self.mon_lib_srv = server.server() plane_cache = {} t0 = time.time() proteins_hbonds = self.create_protein_hbond_proxies( log=log, annotation=self.actual_sec_str) t1 = time.time() # print >> log, " Time for creating protein proxies:%f" % (t1-t0) stacking_proxies = nucleic_acids.get_stacking_proxies( pdb_hierarchy=pdb_hierarchy, stacking_phil_params=self.params.secondary_structure.\ nucleic_acid.stacking_pair, grm=grm, mon_lib_srv=self.mon_lib_srv, plane_cache=plane_cache) t2 = time.time() # print >> log, " Time for creating stacking proxies:%f" % (t2-t1) planarity_bp_proxies, parallelity_bp_proxies = nucleic_acids.\ get_basepair_plane_proxies( pdb_hierarchy=pdb_hierarchy, bp_phil_params=self.params.secondary_structure.nucleic_acid.base_pair, grm=grm, mon_lib_srv=self.mon_lib_srv, plane_cache=plane_cache) t3 = time.time() # print >> log, " Time for creating planar/parall proxies:%f" % (t3-t2) hb_bond_proxies, hb_angle_proxies = nucleic_acids.\ get_basepair_hbond_proxies( pdb_hierarchy=pdb_hierarchy, bp_phil_params=self.params.secondary_structure.nucleic_acid.base_pair, hbond_distance_cutoff=self.params.secondary_structure.\ nucleic_acid.hbond_distance_cutoff) t4 = time.time() # print >> log, " Time for creating hbond-angle proxies:%f" % (t4-t3) self.stats = {'n_protein_hbonds':0, 'n_na_hbonds':0, 'n_na_hbond_angles':0, 'n_na_basepairs':0, 'n_na_stacking_pairs':0} print >> log, " Restraints generated for nucleic acids:" print >> log, " %d hydrogen bonds" % len(hb_bond_proxies) print >> log, " %d hydrogen bond angles" % len(hb_angle_proxies) print >> log, " %d basepair planarities" % len(planarity_bp_proxies) print >> log, " %d basepair parallelities" % len(parallelity_bp_proxies) print >> log, " %d stacking parallelities" % len(stacking_proxies) all_hbonds = proteins_hbonds.deep_copy() all_hbonds.extend(hb_bond_proxies) return (all_hbonds, hb_angle_proxies, planarity_bp_proxies, parallelity_bp_proxies+stacking_proxies)