Example #1
0
    def filter_by_final_increment(anm_ener, final_ener, T):
        filt_anm_ener = []
        filt_final_ener = []
        threshold_ener = MetropolisMCSimulator.energy_for_probability(0.1, T)

        for i in range(len(anm_ener)):
            if final_ener[i] < threshold_ener:
                filt_anm_ener.append(anm_ener[i])
                filt_final_ener.append(final_ener[i])

        return filt_anm_ener, filt_final_ener, threshold_ener
        if experiment_details["prefix"] == "IC":
            raw_data, data_len = load_ic_data(os.path.join(workspace, 
                                                          folder_name,
                                                          options.folder),
                                             skip_first = 15)

        # Start processing        
        modes = raw_data["modes"]
        _mode_frequencies = get_mode_frequencies(modes, 
                                                os.path.join(workspace, folder_name, "info",
                                                    nmd_file_name[experiment_details["prefix"]])
                                                )
        
        energy_increments = process_energy_differences(raw_data)
        rmsd_increments = process_after_perturb_rmsd(raw_data)
        acc_mean_and_avg = MetropolisMCSimulator(energy_increments).perform_simulation(
                                                    min(100,len(energy_increments)), 20, 300)
        
        # Fill all data structure
        all_data[ENERGY_LABEL].extend(energy_increments)
        all_data[RMSD_LABEL].extend(rmsd_increments)
        all_data["Mode"].extend(modes)
        all_data["time_per_step"].extend(raw_data["time_per_step"])
        all_data[p1].extend([v1]*data_len)
        all_data[p2].extend([v2]*data_len)
        
        # Fill the other structures
        acceptances[v1,v2] = acc_mean_and_avg
        avg_rmsd[v1,v2] = (numpy.mean(rmsd_increments),
                           numpy.std(rmsd_increments))
        avg_energy[v1,v2] = numpy.mean(energy_increments)
        std_energy[v1,v2] = numpy.std(energy_increments)
Example #3
0
    folders = [
        "IC_dispFact_0.65_dm_1", "IC_dispFact_0.65_dm_2",
        "IC_dispFact_0.65_dm_3", "IC_dispFact_0.65_dm_4",
        "IC_dispFact_0.65_dm_5", "IC_dispFact_0.65_dm_6",
        "IC_dispFact_0.65_dm_7", "IC_dispFact_0.65_dm_8",
        "IC_dispFact_0.65_dm_9", "IC_dispFact_0.65_dm_10"
    ]

    distances = {}
    for folder in folders:
        raw_data, min_len = load_single_proc_data(options.sim_type,
                                                  os.path.join(folder, "info"))

        energy_increments = process_energy_differences(raw_data)
        mc = MetropolisMCSimulator(energy_increments)

        who_is_accepted = mc.who_is_accepted(options.temperature)

        coords = numpy.reshape(raw_data["coords_after"],
                               (len(raw_data["coords_after"]),
                                len(raw_data["coords_after"][0]) / 3, 3))
        distances[folder] = calc_distances(coords, range(
            len(coords)))  #who_is_accepted[:150])

    sns.set_style("whitegrid")
    row_len = 4
    col_len = 3
    folders.extend(["IC_dispFact_0.65_dm_10", "IC_dispFact_0.65_dm_10"])
    f, axes = prepare_subplots(row_len, col_len)
    for i, folder in enumerate(folders):
Example #4
0
                        data_folder,
                        "perturb_energy_before.log",
                        "final_energy.log",  # Energy of the whole step
                        "initial_cc.log",
                        "after_minimization_cc.log",
                        "step_time.log")

                if experiment_details["prefix"] == "IC":
                    raw_data, min_len = load_ic_data(data_folder, max_samples)

                # skip first frame (usually an outlayer)
                #print "DBG", min_len-1, len(modes), len(process_modes(experiment_details["prefix"], modes, 10))
                energy_increments = process_energy_differences(raw_data)
                rmsd_increments = process_after_perturb_rmsd(raw_data)

                mc = MetropolisMCSimulator(energy_increments)
                acceptances[T][v1, v2] = mc.perform_simulation(
                    min(200, len(energy_increments)), 40, T)
                avg_energy[T][v1, v2] = numpy.mean(energy_increments)
                std_energy[T][v1, v2] = numpy.std(energy_increments)
                avg_rmsd[T][v1, v2] = numpy.mean(rmsd_increments)
                std_rmsd[T][v1, v2] = numpy.std(rmsd_increments)
                p1_keys.append(v1)
                p2_keys.append(v2)

                # Rmsf calculations
                rmsf_coords = numpy.reshape(
                    raw_data["coords_after"],
                    (len(raw_data["coords_after"]),
                     len(raw_data["coords_after"][0]) / 3, 3))
                rmsf[T][v1,
                # skip first frame (usually an outlayer)
                energy_increments = process_energy_differences(raw_data)[1:]
                rmsd_increments = process_after_perturb_rmsd(raw_data)[1:]
                # Coordinates reshape for rmsf
                rmsf_coords = numpy.reshape(
                    raw_data["coords_after"],
                    (len(raw_data["coords_after"]),
                     len(raw_data["coords_after"][0]) / 3, 3))

                acceptances[dataset["prefix"]][T, v1, v2] = []
                rmsd[dataset["prefix"]][T, v1, v2] = []
                rmsf[dataset["prefix"]][T, v1, v2] = []
                for num_steps in range(step_granularity, max_samples + 1,
                                       step_granularity):
                    # Acceptance calc.
                    mc = MetropolisMCSimulator(energy_increments[0:num_steps])
                    acceptances[dataset["prefix"]][T, v1, v2].append(
                        mc.perform_simulation(
                            min(num_steps / 2, len(energy_increments)), 40, T))
                    # Rmsf calculations
                    _rmsf = coords_rmsf(rmsf_coords[0:num_steps])
                    rmsf[dataset["prefix"]][T, v1,
                                            v2].append(rms(rmsf_ref, _rmsf))
                    # RMSD avg. calc
                    rmsd[dataset["prefix"]][T, v1, v2].append(
                        (numpy.mean(rmsd_increments[0:num_steps]),
                         numpy.std(rmsd_increments[0:num_steps])))

            pickle.dump(
                (acceptances, rmsf, rmsd),
                open(os.path.join(options.results_folder, "per_step_data"),
Example #6
0
        if sim_type == "CC" :
            label = "CC ANM step"
            data_range = (-1.5, 39)
            data_range = (-2, 60)#ubi
            axis = axes[1]
            color = colors[1]
        else:
            label = "IC"
            data_range = (-140, 177)
            data_range = (-65, 400)#ubi
            axis = axes[0]
            color = colors[0]

        print label,  numpy.mean(energy_increments), numpy.std(energy_increments)
        print "Ratio", calc_ratio(energy_increments)
        print "Acceptance", MetropolisMCSimulator(energy_increments).perform_simulation(5000,200,300)
        
        axis.hist(energy_increments,
                  #energy_increments[energy_increments < numpy.mean(energy_increments)+(numpy.std(energy_increments)*3)], 
                 bins =100, 
                 range = data_range, 
                 label = label, 
                 alpha = 0.75, 
                 normed=True,
                 color = color)
        axis.legend()
#         plt.xlabel("Energy increment (kcal / mol)")
#         plt.legend()
#         plt.show()
    
        # Then calculate the "full pele stuff too"
    create_directory(options.results_folder)
    
    if options.num_procs > 1:
        raw_data, min_lens = load_data_from_multiple_processors(options.sim_type, 
                                                                options.num_procs, 
                                                                data_folder,
                                                                10)
    else:
        raw_data, min_len = load_single_proc_data(options.sim_type, data_folder, 10)
    
    
    ####################
    # Acceptance
    ####################
    energy_increments = process_energy_differences(raw_data)
    mc = MetropolisMCSimulator(energy_increments)
    acc = mc.perform_simulation(min(200,len(energy_increments)), 40, options.temperature)
    print "Acceptance ", acc
    open(os.path.join(options.results_folder,"acceptance.txt"),"w").write("%.3f (%.3f)"%acc)

    print "Energy avg.", numpy.mean(energy_increments), numpy.std(energy_increments)
    print "Energy median",numpy.median(energy_increments) 

#     ####################
#     # Rmsf
#     ####################    
#     rmsf_coords = numpy.reshape(raw_data["coords_after"], (len(raw_data["coords_after"]), 
#                                                                            len(raw_data["coords_after"][0])/3, 
#                                                                            3))
#     who_is_accepted = mc.who_is_accepted(options.temperature)
#     rmsf = coords_rmsf(rmsf_coords[who_is_accepted])