12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import os
- import re
- import argparse
- # Natural sort
- def natural_key(string_):
- return [int(s) if s.isdigit() else s for s in re.split(r'(\d+)', string_)]
- # Return absolute path from relative or absolute path
- def abs_path(path):
- abs_path = os.path.abspath(path)
- return abs_path
- # Sanitize user input paths
- def san_path(path):
- san_path = os.path.normpath(path)
- return san_path
- # Argument parser for run_simulations.py
- def sim_parser(defaults):
- # Use default settings from run_simulation.py to generate argument parser
- parser = argparse.ArgumentParser()
- for _arg, _val in defaults.items():
- parser.add_argument(f'--{_arg}', type=type(_val[0]), default=_val[0], help=_val[1])
- args_dict = vars(parser.parse_args())
- return args_dict
- # Argument parser for run_analysis.py
- def analysis_parser():
- parser = argparse.ArgumentParser()
- parser.add_argument('--steps', type=int,
- help='Number of timesteps to run the simulation')
- parser.add_argument('--jobs_path', type=str, nargs='+', action='append',
- help='Directory path containing the jobs to be run')
- parser.add_argument('--namd_params', type=str,
- help='Optional parameters to send to namd')
- parser.add_argument('--ffs_path', type=str,
- help='Location of the forcefield files')
- parser.add_argument('--namd2_bin', type=str,
- help='Location of the namd2 executable')
- args = parser.parse_args()
- return args
|