diff --git a/test/test_multiplefit.py b/test/test_multiplefit.py index 3d2f1e657e0bfe8571c74583b4651f5e44e0e919..05e38b4583f5c309b41658b4d1d7af01820d1231 100755 --- a/test/test_multiplefit.py +++ b/test/test_multiplefit.py @@ -3,7 +3,7 @@ import IMP import IMP.core import IMP.algebra import IMP.atom - +import IMP.test import IMP.pmi.macros import IMP.bayesianem @@ -11,7 +11,7 @@ import IMP.bayesianem.restraint import math -def setup_gaussian(): +def setup_gaussian(m): std=[1,1,1] center=[0,0,0] var=[s**2 for s in std] @@ -25,11 +25,10 @@ def setup_gaussian(): return p -def create_gem_ref(target_ps,density_ps,label): - gem = IMP.bayesianem.restraint.GaussianEMRestraintWrapper(density_ps,target_ps=target_ps, - slope=0.000001, - target_radii_scale=3.0, - target_is_rigid_body=True) +def create_gem_ref(root_hier, target_ps, density_ps, label): + gem = IMP.bayesianem.restraint.GaussianEMRestraintWrapper( + density_ps, target_ps=target_ps, slope=0.000001, + target_radii_scale=3.0, target_is_rigid_body=True) gem.set_label(label) gem.add_target_density_to_hierarchy(root_hier) gem.add_to_model() @@ -56,76 +55,81 @@ def create_gem_cross(target_ps,density_ps,label): return gem -# setting up parameters - -rbmaxtrans = 4.00 -fbmaxtrans = 5.00 -rbmaxrot=0.05 -outputobjects = [] -sampleobjects = [] - -# setting up topology - -m = IMP.Model() -s = IMP.pmi.topology.System(m) -root_hier = s.build() - -#em -p11=setup_gaussian() -p21=setup_gaussian() -p31=setup_gaussian() -p12=setup_gaussian() -p22=setup_gaussian() -p32=setup_gaussian() - -#root_hier.add_child(IMP.atom.Hierarchy.setup_particle(p1)) -#root_hier.add_child(IMP.atom.Hierarchy.setup_particle(p2)) -#root_hier.add_child(IMP.atom.Hierarchy.setup_particle(p3)) - -IMP.atom.show_molecular_hierarchy(root_hier) - - -gem=create_gem_ref([p11,p12],[p21,p22],'12') -print(gem.get_output()) -outputobjects.append(gem) -sampleobjects.append(gem) - -gem=create_gem_ref([p11,p12],[p31,p32],'13') -print(gem.get_output()) -outputobjects.append(gem) -sampleobjects.append(gem) - -gem=create_gem_cross([p21,p22],[p31,p32],'23') -print(gem.get_output()) -outputobjects.append(gem) -sampleobjects.append(gem) - - - -mc1=IMP.pmi.macros.ReplicaExchange0(m, - root_hier=root_hier, - monte_carlo_sample_objects=sampleobjects, - output_objects=outputobjects, - monte_carlo_temperature=1.0, - simulated_annealing=None, - simulated_annealing_minimum_temperature=1.0, - simulated_annealing_maximum_temperature=20.0, - simulated_annealing_minimum_temperature_nframes=100, - simulated_annealing_maximum_temperature_nframes=100, - replica_exchange_minimum_temperature=1.0, - replica_exchange_maximum_temperature=100.0, - number_of_best_scoring_models=0, - monte_carlo_steps=10, - number_of_frames=100000, - write_initial_rmf=True, - initial_rmf_name_suffix="initial", - stat_file_name_suffix="stat", - best_pdb_name_suffix="model", - do_clean_first=True, - do_create_directories=True, - global_output_directory="output_shuffle_rex_xl", - rmf_dir="rmfs/", - best_pdb_dir="pdbs/", - replica_stat_file_suffix="stat_replica") -mc1.execute_macro() - +class Tests(IMP.test.TestCase): + def test_multiple(self): + # setting up parameters + + rbmaxtrans = 4.00 + fbmaxtrans = 5.00 + rbmaxrot=0.05 + outputobjects = [] + sampleobjects = [] + + # setting up topology + + m = IMP.Model() + s = IMP.pmi.topology.System(m) + root_hier = s.build() + + #em + p11=setup_gaussian(m) + p21=setup_gaussian(m) + p31=setup_gaussian(m) + p12=setup_gaussian(m) + p22=setup_gaussian(m) + p32=setup_gaussian(m) + + #root_hier.add_child(IMP.atom.Hierarchy.setup_particle(p1)) + #root_hier.add_child(IMP.atom.Hierarchy.setup_particle(p2)) + #root_hier.add_child(IMP.atom.Hierarchy.setup_particle(p3)) + + IMP.atom.show_molecular_hierarchy(root_hier) + + + gem=create_gem_ref(root_hier, [p11,p12],[p21,p22],'12') + print(gem.get_output()) + outputobjects.append(gem) + sampleobjects.append(gem) + + gem=create_gem_ref(root_hier, [p11,p12],[p31,p32],'13') + print(gem.get_output()) + outputobjects.append(gem) + sampleobjects.append(gem) + + gem=create_gem_cross([p21,p22],[p31,p32],'23') + print(gem.get_output()) + outputobjects.append(gem) + sampleobjects.append(gem) + + + + mc1=IMP.pmi.macros.ReplicaExchange0( + m, root_hier=root_hier, + monte_carlo_sample_objects=sampleobjects, + output_objects=outputobjects, + monte_carlo_temperature=1.0, + simulated_annealing=None, + simulated_annealing_minimum_temperature=1.0, + simulated_annealing_maximum_temperature=20.0, + simulated_annealing_minimum_temperature_nframes=100, + simulated_annealing_maximum_temperature_nframes=100, + replica_exchange_minimum_temperature=1.0, + replica_exchange_maximum_temperature=100.0, + number_of_best_scoring_models=0, + monte_carlo_steps=10, + number_of_frames=100000, + write_initial_rmf=True, + initial_rmf_name_suffix="initial", + stat_file_name_suffix="stat", + best_pdb_name_suffix="model", + do_clean_first=True, + do_create_directories=True, + global_output_directory="output_shuffle_rex_xl", + rmf_dir="rmfs/", + best_pdb_dir="pdbs/", + replica_stat_file_suffix="stat_replica") + mc1.execute_macro() + + +if __name__ == '__main__': + IMP.test.main()