コード例 #1
0
def calculate_binned_contacts_vs_q(args):
    trajsfile = args.trajs
    function = args.function
    coordfile = args.coordfile
    coordname = coordfile.split(".")[0]
    bins = args.bins
    chunksize = args.chunksize
    topology = args.topology
    periodic = args.periodic

    # Data source
    trajfiles = ["%s" % x.rstrip("\n") for x in open(trajsfile, "r").readlines()]
    dir = os.path.dirname(trajfiles[0])

    # Parameterize contact-based reaction coordinate
    pairs, contact_params = util.get_contact_params(dir, args)
    coord_sources = ["%s/%s" % (os.path.dirname(trajfiles[i]), coordfile) for i in range(len(trajfiles))]

    if not all([os.path.exists(x) for x in coord_sources]):
        # Parameterize contact-based reaction coordinate
        contact_function = util.get_sum_contact_function(pairs, function, contact_params, periodic=periodic)

        # Calculate contact function over directories
        contacts = util.calc_coordinate_multiple_trajs(
            trajfiles,
            contact_function,
            topology,
            chunksize,
            save_coord_as=args.coordfile,
            savepath=args.savepath,
            collect=True,
        )
    else:
        # Load precalculated coordinate
        contacts = [np.loadtxt(coord_sources[i]) for i in range(len(coord_sources))]

    # Parameterize pairwise contact function
    pairwise_contact_function = util.get_pair_contact_function(pairs, function, contact_params, periodic=periodic)

    # Calculate pairwise contacts over directories
    bin_edges, avgqi_by_bin = util.bin_multiple_coordinates_for_multiple_trajs(
        trajfiles, contacts, pairwise_contact_function, pairs.shape[0], bins, topology, chunksize
    )

    return bin_edges, avgqi_by_bin
コード例 #2
0
ファイル: pairEng.py プロジェクト: ajkluber/simulation
    args = parser.parse_args()
    return args


if __name__ == "__main__":
    args = get_args()

    trajsfile = args.trajs
    topology = args.topology
    chunksize = args.chunksize
    periodic = args.periodic

    if args.saveas is None:
        save_coord_as = {"native": "Enative.dat", "nonnative": "Enonnative.dat"}[args.contacts]
    else:
        save_coord_as = args.saveas

    # Data source
    trajfiles = ["%s" % (x.rstrip("\n")) for x in open(trajsfile, "r").readlines()]
    dir = os.path.dirname(trajfiles[0])

    # Parameterize contact energy function.
    pairs, pair_type, eps, contact_params = util.get_pair_energy_params(dir, args)
    energy_function = util.get_contact_energy_function(pairs, pair_type, eps, contact_params, periodic=periodic)

    # Calculate contact function over directories
    util.calc_coordinate_multiple_trajs(
        trajfiles, energy_function, topology, chunksize, save_coord_as=save_coord_as, savepath=args.savepath
    )