Exemplo n.º 1
0
def test_entropy_barrier_timescale_elber(toy_elber_model):
    """
    Test entropy barrier system for if it recreates reasonable
    kinetics timescales.
    """
    num_steps = 100000
    fwd_rev_interval = 100
    long_timescale_residence_time_in_ps = 1263.06
    toy_elber_model.openmm_settings.cuda_platform_settings = None
    toy_elber_model.openmm_settings.reference_platform = True
    toy_elber_model.openmm_settings.langevin_integrator.friction_coefficient \
        = 100.0
    toy_elber_model.calculation_settings.num_umbrella_stage_steps = num_steps
    toy_elber_model.calculation_settings.fwd_rev_interval = fwd_rev_interval
    run.run(toy_elber_model, "any")
    analysis = analyze.analyze(toy_elber_model, num_error_samples=100, 
                               skip_checks=False)
    #assert np.isclose(analysis.MFPTs[('anchor_0', 'bulk')], 
    #                  long_timescale_residence_time_in_ps,
    #                  rtol=0.5)
    assert analysis.MFPTs is not None
    assert analysis.k_off is not None
    analysis.print_results()
    image_directory = common_analyze.make_image_directory(toy_elber_model, None)
    analysis.save_plots(image_directory)
    return
Exemplo n.º 2
0
def test_converge_incomplete_md_only_mmvt(toy_mmvt_model):
    num_steps = 100000
    toy_mmvt_model.openmm_settings.cuda_platform_settings = None
    toy_mmvt_model.openmm_settings.reference_platform = True
    toy_mmvt_model.openmm_settings.langevin_integrator.friction_coefficient \
        = 100.0
    toy_mmvt_model.calculation_settings.num_production_steps = num_steps
    toy_mmvt_model.calculation_settings.energy_reporter_interval = num_steps
    run.run(toy_mmvt_model, "any", force_overwrite=True)
    runner_openmm.cleanse_anchor_outputs(toy_mmvt_model,
                                         toy_mmvt_model.anchors[3])

    cutoff = 0.1
    minimum_anchor_transitions = 100
    image_directory = common_analyze.make_image_directory(toy_mmvt_model, None)
    k_on_state = None
    data_sample_list = converge.converge(toy_mmvt_model,
                                         k_on_state,
                                         image_directory=image_directory,
                                         verbose=True)
    rmsd_convergence_results = common_converge.calc_RMSD_conv_amount(
        toy_mmvt_model, data_sample_list)
    transition_minima, transition_prob_results, transition_time_results \
        = common_converge.calc_transition_steps(
            toy_mmvt_model, data_sample_list[-1])
    bd_transition_counts = data_sample_list[-1].bd_transition_counts
    converge.print_convergence_results(toy_mmvt_model,
                                       rmsd_convergence_results, cutoff,
                                       transition_prob_results,
                                       transition_time_results,
                                       minimum_anchor_transitions,
                                       bd_transition_counts)
    return
Exemplo n.º 3
0
def test_converge_default_bd_only_mmvt(host_guest_mmvt_model):
    model = host_guest_mmvt_model
    bd_directory = os.path.join(host_guest_mmvt_model.anchor_rootdir,
                                "b_surface")
    runner_browndye2.run_bd_top(model.browndye_settings.browndye_bin_dir,
                                bd_directory,
                                force_overwrite=True)
    runner_browndye2.run_nam_simulation(
        model.browndye_settings.browndye_bin_dir, bd_directory,
        model.k_on_info.bd_output_glob)
    cutoff = 0.1
    minimum_anchor_transitions = 100
    image_directory = common_analyze.make_image_directory(
        host_guest_mmvt_model, None)
    k_on_state = 0
    data_sample_list = converge.converge(host_guest_mmvt_model,
                                         k_on_state,
                                         image_directory=image_directory,
                                         verbose=True)
    rmsd_convergence_results = common_converge.calc_RMSD_conv_amount(
        host_guest_mmvt_model, data_sample_list)
    transition_minima, transition_prob_results, transition_time_results \
        = common_converge.calc_transition_steps(
            host_guest_mmvt_model, data_sample_list[-1])
    bd_transition_counts = data_sample_list[-1].bd_transition_counts
    converge.print_convergence_results(host_guest_mmvt_model,
                                       rmsd_convergence_results, cutoff,
                                       transition_prob_results,
                                       transition_time_results,
                                       minimum_anchor_transitions,
                                       bd_transition_counts)
    return
Exemplo n.º 4
0
def test_converge_default_md_only_elber(toy_elber_model):
    num_steps = 100000
    fwd_rev_interval = 100
    toy_elber_model.openmm_settings.cuda_platform_settings = None
    toy_elber_model.openmm_settings.reference_platform = True
    toy_elber_model.openmm_settings.langevin_integrator.friction_coefficient \
        = 100.0
    toy_elber_model.calculation_settings.num_umbrella_stage_steps = num_steps
    toy_elber_model.calculation_settings.fwd_rev_interval = fwd_rev_interval
    run.run(toy_elber_model, "any")

    cutoff = 0.1
    minimum_anchor_transitions = 100
    image_directory = common_analyze.make_image_directory(
        toy_elber_model, None)
    k_on_state = None
    data_sample_list = converge.converge(toy_elber_model,
                                         k_on_state,
                                         image_directory=image_directory,
                                         verbose=True)
    rmsd_convergence_results = common_converge.calc_RMSD_conv_amount(
        toy_elber_model, data_sample_list)
    transition_minima, transition_prob_results, transition_time_results \
        = common_converge.calc_transition_steps(
            toy_elber_model, data_sample_list[-1])
    bd_transition_counts = data_sample_list[-1].bd_transition_counts
    converge.print_convergence_results(toy_elber_model,
                                       rmsd_convergence_results, cutoff,
                                       transition_prob_results,
                                       transition_time_results,
                                       minimum_anchor_transitions,
                                       bd_transition_counts)
    return
Exemplo n.º 5
0
def test_calc_RMSD_conv_amount_elber(toy_elber_model):
    for anchor in toy_elber_model.anchors:
        runner_openmm.cleanse_anchor_outputs(toy_elber_model, anchor)
    anchor1 = toy_elber_model.anchors[1]
    anchor1_output_filename = os.path.join(toy_elber_model.anchor_rootdir,
                                           anchor1.directory,
                                           anchor1.production_directory,
                                           "forward.restart1.out")
    copyfile(test_output_filename_elber, anchor1_output_filename)
    image_directory = common_analyze.make_image_directory(
        toy_elber_model, None)
    data_sample_list = converge.converge(toy_elber_model,
                                         0,
                                         image_directory=image_directory,
                                         verbose=True)
    convergence_results = common_converge.calc_RMSD_conv_amount(
        toy_elber_model, data_sample_list)

    for alpha, anchor in enumerate(toy_elber_model.anchors):
        if anchor.bulkstate:
            continue
        if anchor.index == 1:
            assert convergence_results[alpha] < 1.0
        else:
            assert convergence_results[alpha] == 1e99

    return
Exemplo n.º 6
0
def test_calc_transition_steps_elber(toy_elber_model):
    for anchor in toy_elber_model.anchors:
        runner_openmm.cleanse_anchor_outputs(toy_elber_model, anchor)
    anchor1 = toy_elber_model.anchors[1]
    anchor1_output_filename = os.path.join(toy_elber_model.anchor_rootdir,
                                           anchor1.directory,
                                           anchor1.production_directory,
                                           "forward.restart1.out")
    copyfile(test_output_filename_elber, anchor1_output_filename)
    image_directory = common_analyze.make_image_directory(
        toy_elber_model, None)
    data_sample_list = converge.converge(toy_elber_model,
                                         0,
                                         image_directory=image_directory,
                                         verbose=True)
    transition_minima, transition_prob_results, transition_time_results \
        = common_converge.calc_transition_steps(
        toy_elber_model, data_sample_list[-1])

    for alpha, anchor in enumerate(toy_elber_model.anchors):
        if anchor.bulkstate:
            continue
        if anchor.index == 1:
            assert transition_minima[alpha] == 3
            assert transition_prob_results[alpha][(1, 2)] == 5
            assert transition_prob_results[alpha][(1, 0)] == 3
            assert np.isclose(transition_time_results[alpha][1], (1.324 / 5))
        else:
            assert transition_minima[alpha] == 0
            for key in transition_prob_results[alpha]:
                assert transition_prob_results[alpha][key] == 0
            for key in transition_time_results[alpha]:
                assert transition_time_results[alpha][key] == 0

    return
Exemplo n.º 7
0
 argparser.add_argument(
     "-T", "--maximum_time", dest="maximum_time", default=None, type=float,
     help="A user may wish to stop the analysis of simulation time for "\
     "each anchor at a particular time. Enter the time (in ps) at which to "\
     "end the analysis at a given anchor if the simulation time exceeds it.")
 
 args = argparser.parse_args() # parse the args into a dictionary
 args = vars(args)
 model_file = args["model_file"]
 force_warning = args["force_warning"]
 num_error_samples = args["num_error_samples"]
 stride_error_samples = args["stride_error_samples"]
 skip_error_samples = args["skip_error_samples"]
 image_directory = args["image_directory"]
 skip_checks = args["skip_checks"]
 min_time = args["minimum_time"]
 max_time = args["maximum_time"]
 model = base.load_model(model_file)
 image_directory = common_analyze.make_image_directory(
     model, image_directory)
 if not skip_checks:
     check.check_post_simulation_all(model, long_check=True)
 
 analysis = analyze(model, force_warning=force_warning, 
         num_error_samples=num_error_samples, 
         stride_error_samples=stride_error_samples,
         skip_error_samples=skip_error_samples, 
         skip_checks=skip_checks, min_time=min_time, max_time=max_time)
 analysis.print_results()
 print("All plots being saved to:", image_directory)
 analysis.save_plots(image_directory)