|
From: <ole...@us...> - 2016-10-03 18:35:57
|
Revision: 25545
http://sourceforge.net/p/cctbx/code/25545
Author: olegsobolev
Date: 2016-10-03 18:35:55 +0000 (Mon, 03 Oct 2016)
Log Message:
-----------
model_idealization: construct GRM only once and use it in all subprocedures.
Modified Paths:
--------------
trunk/mmtbx/command_line/model_idealization.py
trunk/mmtbx/refinement/geometry_minimization.py
trunk/mmtbx/refinement/real_space/individual_sites.py
trunk/mmtbx/secondary_structure/build/__init__.py
Modified: trunk/mmtbx/command_line/model_idealization.py
===================================================================
--- trunk/mmtbx/command_line/model_idealization.py 2016-10-02 22:22:51 UTC (rev 25544)
+++ trunk/mmtbx/command_line/model_idealization.py 2016-10-03 18:35:55 UTC (rev 25545)
@@ -23,6 +23,7 @@
from cctbx import maptbx, miller
from mmtbx.refinement.real_space.individual_sites import minimize_wrapper_with_map
from mmtbx.pdbtools import truncate_to_poly_gly
+from mmtbx.monomer_library.pdb_interpretation import grand_master_phil_str
turned_on_ss = ssb.ss_idealization_master_phil_str
turned_on_ss = turned_on_ss.replace("enabled = False", "enabled = True")
@@ -96,6 +97,13 @@
self.final_model_statistics = None
self.reference_map = None
+ self.whole_grm = None
+ self.master_grm = None
+ self.working_grm = None
+
+ self.mon_lib_srv = None
+ self.ener_lib = None
+
self.original_hierarchy = None # original pdb_h, without any processing
self.original_boxed_hierarchy = None # original and boxed (if needed)
self.whole_pdb_h = None # boxed with processing (AC trimming, H trimming,...)
@@ -115,6 +123,12 @@
self.cs = None
self.original_hierarchy = self.pdb_input.construct_hierarchy()
+ # couple checks if pdb_h is ok
+ o_c = self.original_hierarchy.overall_counts()
+ o_c.raise_duplicate_atom_labels_if_necessary()
+ o_c.raise_residue_groups_with_multiple_resnames_using_same_altloc_if_necessary()
+ o_c.raise_chains_with_mix_of_proper_and_improper_alt_conf_if_necessary()
+ o_c.raise_improper_alt_conf_if_necessary()
self.original_boxed_hierarchy = self.original_hierarchy.deep_copy()
self.original_boxed_hierarchy.reset_atom_i_seqs()
@@ -135,6 +149,7 @@
self.cs = box.crystal_symmetry()
self.shift_vector = box.shift_vector
+ # self.original_boxed_hierarchy.write_pdb_file(file_name="original_boxed_h.pdb")
if self.shift_vector is not None:
write_whole_pdb_file(
file_name="%s_boxed.pdb" % self.params.output_prefix,
@@ -142,25 +157,24 @@
crystal_symmetry=self.cs,
ss_annotation=self.pdb_input.extract_secondary_structure())
+ asc = self.original_boxed_hierarchy.atom_selection_cache()
if self.params.trim_alternative_conformations:
- asc = self.original_boxed_hierarchy.atom_selection_cache()
sel = asc.selection("altloc ' '")
- self.whole_pdb_h = pdb_h_raw.select(sel)
+ self.whole_pdb_h = self.original_boxed_hierarchy.select(sel).deep_copy()
print >> self.log, "Atoms in original/working model: %d/%d" % (
self.original_boxed_hierarchy.atoms_size(), self.whole_pdb_h.atoms_size())
else:
- self.whole_pdb_h = self.original_boxed_hierarchy
+ self.whole_pdb_h = self.original_boxed_hierarchy.deep_copy()
+ # self.whole_pdb_h.reset_atom_i_seqs()
# Trimming hydrogens
- h_sel = self.whole_pdb_h.atom_selection_cache().selection("not (element H or element D)")
- self.whole_pdb_h = self.whole_pdb_h.select(h_sel)
+ # Many intermediate variables are needed due to strange behavior of
+ # selections described in
+ # iotbx/pdb/tst_hierarchy.py:exercise_selection_and_deep_copy()
+ asc2 = self.whole_pdb_h.atom_selection_cache()
+ h_sel = asc2.selection("not (element H or element D)")
+ temp_h = self.whole_pdb_h.select(h_sel)
+ self.whole_pdb_h = temp_h.deep_copy()
self.whole_pdb_h.reset_atom_i_seqs()
-
- # couple checks if pdb_h is ok
- o_c = self.whole_pdb_h.overall_counts()
- o_c.raise_duplicate_atom_labels_if_necessary()
- o_c.raise_residue_groups_with_multiple_resnames_using_same_altloc_if_necessary()
- o_c.raise_chains_with_mix_of_proper_and_improper_alt_conf_if_necessary()
- o_c.raise_improper_alt_conf_if_necessary()
self.init_model_statistics = geometry_no_grm(
pdb_hierarchy=iotbx.pdb.input(
source_info=None,
@@ -187,6 +201,44 @@
self.reference_map = fft_map.real_map_unpadded(in_place=False)
fft_map.as_xplor_map(file_name="%s.map" % self.params.output_prefix)
+ def get_grm(self):
+ # first make whole grm using self.whole_pdb_h
+ params_line = grand_master_phil_str
+ params = iotbx.phil.parse(
+ input_string=params_line, process_includes=True).extract()
+ params.pdb_interpretation.clash_guard.nonbonded_distance_threshold=None
+ params.pdb_interpretation.peptide_link.ramachandran_restraints = True
+ params.pdb_interpretation.peptide_link.oldfield.weight_scale=3
+ params.pdb_interpretation.peptide_link.oldfield.plot_cutoff=0.03
+ params.pdb_interpretation.nonbonded_weight = 500
+ params.pdb_interpretation.c_beta_restraints=True
+ params.pdb_interpretation.max_reasonable_bond_distance = None
+ params.pdb_interpretation.peptide_link.apply_peptide_plane = True
+ params.pdb_interpretation.ncs_search.enabled = True
+ params.pdb_interpretation.restraints_library.rdl = True
+ processed_pdb_files_srv = mmtbx.utils.\
+ process_pdb_file_srv(
+ crystal_symmetry= self.whole_xrs.crystal_symmetry(),
+ pdb_interpretation_params = params.pdb_interpretation,
+ stop_for_unknowns = False,
+ log=self.log,
+ cif_objects=None)
+ processed_pdb_file, junk = processed_pdb_files_srv.\
+ process_pdb_files(raw_records=flex.split_lines(self.whole_pdb_h.as_pdb_string()))
+
+ self.mon_lib_srv = processed_pdb_files_srv.mon_lib_srv
+ self.ener_lib = processed_pdb_files_srv.ener_lib
+
+ self.whole_grm = get_geometry_restraints_manager(
+ processed_pdb_file, self.whole_xrs, params=params)
+
+ # now select part of it for working with master hierarchy
+ if self.using_ncs:
+ self.master_grm = self.whole_grm.select(self.master_sel)
+ self.working_grm = self.master_grm
+ else:
+ self.working_grm = self.whole_grm
+
def run(self):
t_0 = time()
@@ -196,27 +248,29 @@
chain_similarity_threshold=0.99,
residue_match_radius=999.0)
print >> self.log, "Found NCS groups:"
- ncs_obj.show(format='phil')
+ ncs_obj.show(format='phil', log=self.log)
ncs_restr_group_list = ncs_obj.get_ncs_restraints_group_list(
raise_sorry=False)
- using_ncs = False
+ self.using_ncs = False
total_ncs_selected_atoms = 0
master_sel = flex.size_t([])
filtered_ncs_restr_group_list = self.filter_ncs_restraints_group_list(
self.whole_pdb_h, ncs_restr_group_list)
if len(filtered_ncs_restr_group_list) > 0:
- using_ncs = True
+ self.using_ncs = True
master_sel = flex.bool(self.whole_pdb_h.atoms_size(), True)
for ncs_gr in filtered_ncs_restr_group_list:
for copy in ncs_gr.copies:
master_sel.set_selected(copy.iselection, False)
self.master_pdb_h = self.whole_pdb_h.select(master_sel)
+ self.master_sel=master_sel
self.master_pdb_h.reset_atom_i_seqs()
- if using_ncs:
+ if self.using_ncs:
self.master_pdb_h.write_pdb_file("%s_master_h.pdb" % self.params.output_prefix)
self.working_pdb_h = self.master_pdb_h
- self.working_pdb_h = self.whole_pdb_h
+ else:
+ self.working_pdb_h = self.whole_pdb_h
self.ann = ioss.annotation.from_phil(
phil_helices=self.params.secondary_structure.protein.helix,
@@ -224,11 +278,17 @@
pdb_hierarchy=self.whole_pdb_h)
self.working_xrs = self.working_pdb_h.extract_xray_structure(crystal_symmetry=self.cs)
- self.whole_xrs = self.whole_pdb_h.extract_xray_structure(crystal_symmetry=self.cs)
+ if self.using_ncs:
+ self.whole_xrs = self.whole_pdb_h.extract_xray_structure(crystal_symmetry=self.cs)
+ else:
+ self.whole_xrs = self.working_xrs
if self.params.use_map_for_reference:
self.prepare_reference_map(xrs=self.whole_xrs, pdb_h=self.whole_pdb_h)
+ # getting grm without SS restraints
+ self.get_grm()
+
if self.ann.get_n_helices() + self.ann.get_n_sheets() == 0:
self.ann = self.pdb_input.extract_secondary_structure()
self.original_ann = None
@@ -255,7 +315,6 @@
print >> self.log, "No secondary structure annotations found or SS idealization is disabled."
print >> self.log, "Secondary structure substitution step will be skipped"
self.log.flush()
-
# here we want to do geometry minimization anyway!
negate_selection = None
if self.reference_map is None:
@@ -266,14 +325,15 @@
if outlier_selection_txt != "" and outlier_selection_txt is not None:
negate_selection = "not (%s)" % outlier_selection_txt
self.minimize(
- hierarchy=self.working_pdb_h,
- xrs=self.working_xrs,
- original_pdb_h=self.working_pdb_h,
+ hierarchy=self.whole_pdb_h,
+ xrs=self.whole_xrs,
+ original_pdb_h=self.whole_pdb_h,
+ grm=self.whole_grm,
+ ncs_restraints_group_list=filtered_ncs_restr_group_list,
excl_string_selection=negate_selection,
ss_annotation=self.ann,
reference_map=self.reference_map)
-
-
+ # self.original_boxed_hierarchy.write_pdb_file(file_name="original_boxed_h_1.pdb")
else:
self.params.ss_idealization.file_name_before_regularization = \
"%s_ss_before_reg.pdb" % self.params.output_prefix
@@ -300,7 +360,7 @@
hierarchy=self.working_pdb_h,
fname_suffix="ss_ideal")
# STOP()
- self.params.loop_idealization.minimize_whole = not using_ncs
+ self.params.loop_idealization.minimize_whole = not self.using_ncs
# self.params.loop_idealization.enabled = False
# self.params.loop_idealization.variant_search_level = 0
loop_ideal = loop_idealization(
@@ -354,7 +414,7 @@
grm=grm.geometry,
xrs=self.working_xrs,
map_data=self.reference_map,
- mon_lib_srv=None,
+ mon_lib_srv=self.mon_lib_srv,
rotamer_manager=None,
verbose=True)
@@ -374,7 +434,7 @@
ref_hierarchy_for_final_gm.reset_atom_i_seqs()
if self.params.additionally_fix_rotamer_outliers:
ssb.set_xyz_smart(self.working_pdb_h, fixed_rot_pdb_h)
- if using_ncs:
+ if self.using_ncs:
print >> self.log, "Using ncs"
# multiply back and do geometry_minimization for the whole molecule
for ncs_gr in ncs_restr_group_list:
@@ -393,6 +453,8 @@
self.minimize(
hierarchy=self.whole_pdb_h,
xrs=self.whole_xrs,
+ grm=self.whole_grm,
+ ncs_restraints_group_list=filtered_ncs_restr_group_list,
original_pdb_h=ref_hierarchy_for_final_gm,
excl_string_selection=loop_ideal.ref_exclusion_selection,
ss_annotation=self.ann,
@@ -405,12 +467,15 @@
source_info=None,
lines=self.whole_pdb_h.as_pdb_string()).construct_hierarchy(),
molprobity_scores=True)
+ # self.original_boxed_hierarchy.write_pdb_file(file_name="original_boxed_end.pdb")
self.time_for_run = time() - t_0
def minimize(self,
hierarchy,
xrs,
original_pdb_h,
+ grm,
+ ncs_restraints_group_list,
excl_string_selection,
ss_annotation,
reference_map):
@@ -419,17 +484,24 @@
hierarchy=hierarchy,
xrs=xrs,
original_pdb_h=original_pdb_h,
+ grm=None, # anyway need to reprocess just because of reference model restraints
excl_string_selection=excl_string_selection,
number_of_cycles=self.params.number_of_refinement_cycles,
log=self.log,
- ss_annotation=ss_annotation)
+ ncs_restraints_group_list=ncs_restraints_group_list,
+ ss_annotation=ss_annotation,
+ mon_lib_srv=self.mon_lib_srv,
+ ener_lib=self.ener_lib)
else:
print >> self.log, "Using map as reference"
self.log.flush()
mwwm = minimize_wrapper_with_map(
pdb_h=hierarchy,
xrs=xrs,
- target_map = reference_map,
+ target_map=reference_map,
+ grm=grm,
+ mon_lib_srv=self.mon_lib_srv,
+ ncs_restraints_group_list=ncs_restraints_group_list,
ss_annotation=ss_annotation,
number_of_cycles=self.params.number_of_refinement_cycles,
log=self.log)
Modified: trunk/mmtbx/refinement/geometry_minimization.py
===================================================================
--- trunk/mmtbx/refinement/geometry_minimization.py 2016-10-02 22:22:51 UTC (rev 25544)
+++ trunk/mmtbx/refinement/geometry_minimization.py 2016-10-03 18:35:55 UTC (rev 25545)
@@ -392,8 +392,12 @@
xrs,
original_pdb_h,
excl_string_selection,
+ grm=None,
log=None,
+ ncs_restraints_group_list=[],
ss_annotation = None,
+ mon_lib_srv=None,
+ ener_lib=None,
reference_rotamers = True,
number_of_cycles=1,
run_first_minimization_without_reference=False,
@@ -418,39 +422,40 @@
log = null_out()
# assert hierarchy.atoms_size()==xrs.scatterers().size(), "%d %d" % (
# hierarchy.atoms_size(), xrs.scatterers().size())
- params_line = grand_master_phil_str
- params = iotbx.phil.parse(
- input_string=params_line, process_includes=True).extract()
- params.pdb_interpretation.clash_guard.nonbonded_distance_threshold=None
- params.pdb_interpretation.peptide_link.ramachandran_restraints = True
- params.pdb_interpretation.peptide_link.oldfield.weight_scale=oldfield_weight_scale
- params.pdb_interpretation.peptide_link.oldfield.plot_cutoff=oldfield_plot_cutoff
- params.pdb_interpretation.nonbonded_weight = nonbonded_weight
- params.pdb_interpretation.c_beta_restraints=True
- params.pdb_interpretation.max_reasonable_bond_distance = None
- params.pdb_interpretation.peptide_link.apply_peptide_plane = True
- params.pdb_interpretation.ncs_search.enabled = True
- params.pdb_interpretation.restraints_library.rdl = True
+ if grm is None:
+ params_line = grand_master_phil_str
+ params = iotbx.phil.parse(
+ input_string=params_line, process_includes=True).extract()
+ params.pdb_interpretation.clash_guard.nonbonded_distance_threshold=None
+ params.pdb_interpretation.peptide_link.ramachandran_restraints = True
+ params.pdb_interpretation.peptide_link.oldfield.weight_scale=oldfield_weight_scale
+ params.pdb_interpretation.peptide_link.oldfield.plot_cutoff=oldfield_plot_cutoff
+ params.pdb_interpretation.nonbonded_weight = nonbonded_weight
+ params.pdb_interpretation.c_beta_restraints=True
+ params.pdb_interpretation.max_reasonable_bond_distance = None
+ params.pdb_interpretation.peptide_link.apply_peptide_plane = True
+ params.pdb_interpretation.ncs_search.enabled = True
+ params.pdb_interpretation.restraints_library.rdl = True
- processed_pdb_files_srv = mmtbx.utils.\
- process_pdb_file_srv(
- crystal_symmetry= xrs.crystal_symmetry(),
- pdb_interpretation_params = params.pdb_interpretation,
- stop_for_unknowns = False,
- log=log,
- cif_objects=None)
- processed_pdb_file, junk = processed_pdb_files_srv.\
- process_pdb_files(raw_records=flex.split_lines(hierarchy.as_pdb_string()))
+ processed_pdb_files_srv = mmtbx.utils.\
+ process_pdb_file_srv(
+ crystal_symmetry= xrs.crystal_symmetry(),
+ pdb_interpretation_params = params.pdb_interpretation,
+ stop_for_unknowns = False,
+ log=log,
+ cif_objects=None)
+ processed_pdb_file, junk = processed_pdb_files_srv.\
+ process_pdb_files(raw_records=flex.split_lines(hierarchy.as_pdb_string()))
- mon_lib_srv = processed_pdb_files_srv.mon_lib_srv
- ener_lib = processed_pdb_files_srv.ener_lib
+ mon_lib_srv = processed_pdb_files_srv.mon_lib_srv
+ ener_lib = processed_pdb_files_srv.ener_lib
- ncs_restraints_group_list = []
- if processed_pdb_file.ncs_obj is not None:
- ncs_restraints_group_list = processed_pdb_file.ncs_obj.get_ncs_restraints_group_list()
+ ncs_restraints_group_list = []
+ if processed_pdb_file.ncs_obj is not None:
+ ncs_restraints_group_list = processed_pdb_file.ncs_obj.get_ncs_restraints_group_list()
- grm = get_geometry_restraints_manager(
- processed_pdb_file, xrs, params=params)
+ grm = get_geometry_restraints_manager(
+ processed_pdb_file, xrs, params=params)
if reference_rotamers and original_pdb_h is not None:
# make selection excluding rotamer outliers
@@ -568,3 +573,4 @@
planarity = True,
fix_rotamer_outliers = True,
log = log)
+ grm.geometry.reference_dihedral_manager=None
Modified: trunk/mmtbx/refinement/real_space/individual_sites.py
===================================================================
--- trunk/mmtbx/refinement/real_space/individual_sites.py 2016-10-02 22:22:51 UTC (rev 25544)
+++ trunk/mmtbx/refinement/real_space/individual_sites.py 2016-10-03 18:35:55 UTC (rev 25545)
@@ -398,10 +398,12 @@
target_map,
grm=None,
ncs_restraints_group_list=None,
+ mon_lib_srv=None,
ss_annotation=None,
refine_ncs_operators=False,
number_of_cycles=1,
log=None):
+ from mmtbx.refinement.geometry_minimization import add_rotamer_restraints
self.pdb_h = pdb_h
self.xrs = xrs
self.log = log
@@ -420,7 +422,6 @@
from libtbx.utils import null_out
from scitbx.array_family import flex
import mmtbx.utils
- from mmtbx.refinement.geometry_minimization import add_rotamer_restraints
if self.log is None:
self.log = null_out()
params_line = grand_master_phil_str
@@ -454,20 +455,20 @@
grm = get_geometry_restraints_manager(
processed_pdb_file, xrs, params=params)
# dealing with SS
- if ss_annotation is not None:
- from mmtbx.secondary_structure import manager
- ss_manager = manager(
- pdb_hierarchy=self.pdb_h,
- geometry_restraints_manager=grm.geometry,
- sec_str_from_pdb_file=ss_annotation,
- params=None,
- mon_lib_srv=mon_lib_srv,
- verbose=-1,
- log=self.log)
- grm.geometry.set_secondary_structure_restraints(
- ss_manager=ss_manager,
- hierarchy=self.pdb_h,
- log=self.log)
+ if ss_annotation is not None:
+ from mmtbx.secondary_structure import manager
+ ss_manager = manager(
+ pdb_hierarchy=self.pdb_h,
+ geometry_restraints_manager=grm.geometry,
+ sec_str_from_pdb_file=ss_annotation,
+ params=None,
+ mon_lib_srv=mon_lib_srv,
+ verbose=-1,
+ log=self.log)
+ grm.geometry.set_secondary_structure_restraints(
+ ss_manager=ss_manager,
+ hierarchy=self.pdb_h,
+ log=self.log)
ncs_groups=None
if len(ncs_restraints_group_list) > 0:
ncs_groups=ncs_restraints_group_list
Modified: trunk/mmtbx/secondary_structure/build/__init__.py
===================================================================
--- trunk/mmtbx/secondary_structure/build/__init__.py 2016-10-02 22:22:51 UTC (rev 25544)
+++ trunk/mmtbx/secondary_structure/build/__init__.py 2016-10-03 18:35:55 UTC (rev 25545)
@@ -291,7 +291,7 @@
pdb_hierarchy_template=pdb_hierarchy_template)
def calculate_rmsd_smart(h1, h2, backbone_only=False):
- assert h1.atoms_size() == h2.atoms_size()
+ # assert h1.atoms_size() == h2.atoms_size(), "%d!=%d" % (h1.atoms_size(),h2.atoms_size())
rmsd = 0
n = 0
for atom in h1.atoms():
@@ -436,6 +436,7 @@
xray_structure,
ss_annotation,
params = None,
+ grm=None,
use_plane_peptide_bond_restr=True,
fix_rotamer_outliers=True,
cif_objects=None,
@@ -607,52 +608,52 @@
# print "="*80
# print "="*80
# print "="*80
- custom_par_text = "\n".join([
- "pdb_interpretation.secondary_structure {protein.remove_outliers = False\n%s}" \
- % phil_str,
- "pdb_interpretation.peptide_link.ramachandran_restraints = True",
- "c_beta_restraints = True",
- "pdb_interpretation.secondary_structure.enabled=True",
- "pdb_interpretation.clash_guard.nonbonded_distance_threshold=None",
- "pdb_interpretation.max_reasonable_bond_distance=None",
- # "pdb_interpretation.nonbonded_weight=500",
- "pdb_interpretation.peptide_link.oldfield.weight_scale=3",
- "pdb_interpretation.peptide_link.oldfield.plot_cutoff=0.03",
- "pdb_interpretation.peptide_link.omega_esd_override_value=3",
- "pdb_interpretation.peptide_link.apply_all_trans=True",
- ])
+ if grm is None:
+ custom_par_text = "\n".join([
+ "pdb_interpretation.secondary_structure {protein.remove_outliers = False\n%s}" \
+ % phil_str,
+ "pdb_interpretation.peptide_link.ramachandran_restraints = True",
+ "c_beta_restraints = True",
+ "pdb_interpretation.secondary_structure.enabled=True",
+ "pdb_interpretation.clash_guard.nonbonded_distance_threshold=None",
+ "pdb_interpretation.max_reasonable_bond_distance=None",
+ # "pdb_interpretation.nonbonded_weight=500",
+ "pdb_interpretation.peptide_link.oldfield.weight_scale=3",
+ "pdb_interpretation.peptide_link.oldfield.plot_cutoff=0.03",
+ "pdb_interpretation.peptide_link.omega_esd_override_value=3",
+ "pdb_interpretation.peptide_link.apply_all_trans=True",
+ ])
- if use_plane_peptide_bond_restr:
- custom_par_text += "\npdb_interpretation.peptide_link.apply_peptide_plane=True"
+ if use_plane_peptide_bond_restr:
+ custom_par_text += "\npdb_interpretation.peptide_link.apply_peptide_plane=True"
- custom_pars = params.fetch(
- source=iotbx.phil.parse(custom_par_text)).extract()
- # params.format(python_object=custom_pars)
- # params.show()
- # STOP()
- params = custom_pars
- # params = w_params
+ custom_pars = params.fetch(
+ source=iotbx.phil.parse(custom_par_text)).extract()
+ # params.format(python_object=custom_pars)
+ # params.show()
+ # STOP()
+ params = custom_pars
+ # params = w_params
+ t6 = time()
+ import mmtbx.utils
+ processed_pdb_files_srv = mmtbx.utils.\
+ process_pdb_file_srv(
+ crystal_symmetry= xray_structure.crystal_symmetry(),
+ pdb_interpretation_params = params.pdb_interpretation,
+ log=null_out(),
+ cif_objects=cif_objects)
+ if verbose:
+ print >> log, "Processing file..."
+ log.flush()
+ processed_pdb_file, junk = processed_pdb_files_srv.\
+ process_pdb_files(raw_records=flex.split_lines(real_h.as_pdb_string()))
+ t7 = time()
- t6 = time()
- import mmtbx.utils
- processed_pdb_files_srv = mmtbx.utils.\
- process_pdb_file_srv(
- crystal_symmetry= xray_structure.crystal_symmetry(),
- pdb_interpretation_params = params.pdb_interpretation,
- log=null_out(),
- cif_objects=cif_objects)
- if verbose:
- print >> log, "Processing file..."
- log.flush()
- processed_pdb_file, junk = processed_pdb_files_srv.\
- process_pdb_files(raw_records=flex.split_lines(real_h.as_pdb_string()))
- t7 = time()
+ grm = get_geometry_restraints_manager(
+ processed_pdb_file, xray_structure)
+ t8 = time()
- grm = get_geometry_restraints_manager(
- processed_pdb_file, xray_structure)
- t8 = time()
-
real_h.reset_i_seq_if_necessary()
if verbose:
print >> log, "Adding reference coordinate restraints..."
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|