Commit cf9c73db authored by milafternoon's avatar milafternoon
Browse files

prefiltering for completed runs

parent 02878f4b
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -196,12 +196,31 @@ def run_parallel(nproc, jobs, clean=True):
    :param clean: bool, whether to delete residual files (to save disk space) or not (for debugging purposes)
    """
    import random
    jobs = filter_completed(jobs)
    with ProcessPoolExecutor(nproc) as executor:
        executor.map(run_gromacs, random.sample(jobs, k=len(jobs)))
    if clean:
        cleanup(jobs)


def filter_completed(jobs):
    completed = []
    for n, job in enumerate(jobs):
        structs_list, dyn_mdp, traj, gmx, alch = job
        m = traj.mod
        traj_alias = traj.ordering
        folder_name = '/'.join(m.topname.split('/')[:-1])
        os.chdir(folder_name)
        if '{tn}-dhdl.xvg'.format(tn=traj_alias) not in os.listdir(folder_name):
            completed.append(n)
            print("in mod {fname} skipping trajectory {tn}, already calculated".format(fname=folder_name,
                                                                                       tn=traj_alias))
    completed.sort(reverse=True)
    for i in completed:
        jobs.pop(i)
    return jobs


def read_quantity():
    """
    reads w_binsorter output