Skip to content

Commit

Permalink
Allow control of running mmCIF conversions on tests that use pdb_str_…
Browse files Browse the repository at this point in the history
…xxx for models
  • Loading branch information
terwill committed Feb 20, 2025
1 parent 46fb0cf commit 0836234
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 9 deletions.
29 changes: 29 additions & 0 deletions libtbx/test_utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -913,6 +913,35 @@ def exercise():
assert precision_approx_equal(0.799999,0.800004,precision=18)==False
print("OK")

def iterate_tests_without_and_with_mmCIF_conversion():
""" Return a simple iterator that first does nothing and returns False,
then converts all pdb_str_xxxx locals to mmCIF-only format
and prints a notice and returns True.
Behavior can be modified by specifying "skip_mmcif" or "mmcif_only"
in sys.argv or by setting the value of the environmental
variable REGRESSION_SKIP_CIF ( mmcif_only, skip_mmcif,
blank or missing is run both)
"""
skip_string = os.environ.get("REGRESSION_SKIP_CIF",None)
if skip_string is None:
if 'mmcif_only' in sys.argv:
skip_string = 'mmcif_only'
elif 'skip_mmcif' in sys.argv:
skip_string = 'skip_mmcif'

if skip_string in [None, '']:
run_list = [False, True]
elif skip_string == 'mmcif_only':
run_list = [True]
elif skip_string == 'skip_mmcif':
run_list = [False]
else:
raise Sorry(
"Unrecognized value of REGRESSION_SKIP_CIF: '%s'" %(skip_string))

return run_list

def convert_pdb_to_cif_for_pdb_str(locals, chain_addition = "ZXLONG",
key_str="pdb_str", hetatm_name_addition = "ZY", print_new_string = True):
# Converts all the strings that start with "pdb_str" from PDB to mmcif
Expand Down
21 changes: 12 additions & 9 deletions mmtbx/regression/tst_minimize_chain.py
Original file line number Diff line number Diff line change
Expand Up @@ -636,32 +636,35 @@ def tst_02(args,prefix=None):
return rmsd

if (__name__ == "__main__"):
for mmcif in [False, True]:
t0=time.time()
from libtbx.test_utils import iterate_tests_without_and_with_mmCIF_conversion
for mmcif in iterate_tests_without_and_with_mmCIF_conversion():
if mmcif:
from libtbx.test_utils import convert_pdb_to_cif_for_pdb_str
convert_pdb_to_cif_for_pdb_str(locals())
print(80*"-")
print("RERUNNING WITH MMCIF")
print(80*"-")
t0=time.time()

print("\nRunning merge_models alone")
t0a=time.time()
rmsd=tst_01()
print("Time: %6.4f"%(time.time()-t0))
print("Time: %6.4f"%(time.time()-t0a))
print("OK")

args=["number_of_build_cycles=2","number_of_macro_cycles=1","number_of_trials=2","random_seed=77141"]
t0=time.time()
t0a=time.time()
print("Running standard minimize_chain")
extra_args=['merge_models=False','pdb_out=std.pdb']
rmsd=tst_02(args+extra_args,prefix='tst_02')
print("Time: %6.4f"%(time.time()-t0))
print("OK")
print("RMSD %7.2f "%rmsd)
print("Time: %6.4f"%(time.time()-t0a))

t0=time.time()
t0a=time.time()
print("\nRunning standard minimize_chain plus merge_models")
extra_args=['merge_models=True','pdb_out=merged.pdb']
rmsd=tst_02(args+extra_args,prefix='tst_03')
print("Time: %6.4f"%(time.time()-t0))
print("OK")
print("RMSD %7.2f "%rmsd)
print("Time: %6.4f"%(time.time()-t0a))
print("Total Time: %6.4f"%(time.time()-t0))
print("OK")

0 comments on commit 0836234

Please sign in to comment.