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)
                # 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 #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
        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"