Beispiel #1
0
    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)