Add modules

This commit is contained in:
cryobry
2019-07-07 23:24:54 -04:00
parent 9d1747fc9a
commit a07c751e10
6 changed files with 515 additions and 1 deletions

46
auto_namd/functions.py Normal file
View File

@@ -0,0 +1,46 @@
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