def prepare_seekr(): parser = argparse.ArgumentParser(description="top level SEEKR program used to prepare and generate all input files necessary for a SEEKR calculation") parser.add_argument('input_filename', metavar='INPUT_FILENAME', type = str, help="name of SEEKR input file") args = parser.parse_args() #parse command line arguments args = vars(args) #converts to dictionary _get_inputs(args,) sys_params = _get_sys_params(inputs) #parse general system parameters (structures, forcefield files, directory names from input file) md_milestones = _parse_milestone_inputs(inputs) #parse milestone CV parameters and milestone values from input file milestones, md_anchor_list = _generate_milestone_lists(md_milestones) #generate upper/lower bounds of a SINGLE CV for each anchor/Voronoi celli # TODO generate anchor lists for multiple milestone CV's # TODO BD milestones #print(milestones) _generate_filetree(inputs, sys_params) #creates/clears top level ditectory filetree_settings = _get_filetree_settings(md_anchor_list) md_filetree_settings_all = {**filetree_settings, **sys_params} anchor_dirlist, md_file_paths = filetree.md_filetree(md_filetree_settings_all) md_settings = _get_md_settings(inputs, md_file_paths) #parse parameters for MD simulations from input file md_settings_all = {**md_settings, **sys_params, **filetree_settings,} md.main(md_settings_all, milestones) print(milestones[-1]) milestone_filename= os.path.join(sys_params['rootdir'], 'milestones.xml') anchor_list = _group_milestones_to_anchor(milestones, anchor_dirlist, md_file_paths,) print('Anchor List',anchor_list) _write_milestone_file(anchor_list, md_settings['master_temperature'], sys_params['md_time_factor'], sys_params['bd_time_factor'],milestone_filename) structures = _load_structures(inputs, sys_params) bd_settings = _get_bd_settings(inputs, sys_params, structures) bd_milestone = anchor_list[-1] print(bd_milestone) #bd_milestone_pair = bd_milestone['%s_pair_list' %bd_milestone['key']][-1] bd_lower_bound = bd_milestone['milestone_params'][0]['lower_bound'] bd_lower_bound_index = bd_milestone['milestone_params'][0]['lower_milestone_index'] bd_index = bd_milestone['milestone_params'][0]['upper_milestone_index'] b_surf_distance = bd_milestone['milestone_params'][0]['upper_bound'] #bd_milestone_index = bd_settings.update({'b_surf_distance' : b_surf_distance, 'bd_lower_bound' : bd_lower_bound, 'bd_lower_bound_index' : bd_lower_bound_index, 'bd_index': bd_index, }) print("BD b surface distance", b_surf_distance) bd.main(bd_settings)
float(milestone.dimensions['centery']), 'z': float(milestone.dimensions['centerz']), 'radius': float(milestone.dimensions['radius']), 'index': milestone.index, 'siteid': milestone.siteid }) bd_settings['siteids'].append(milestone.siteid) #bd_settings = bd_settings.items() + [('milestone_list',milestone_list)]) bd_settings.update(milestone_settings) bd.main(bd_settings) other_necessary_files = { 'la.tcl': '/path/to/la.tcl', 'etc': '', } # write program paths to a pickle #print 'namd_special', program_paths['namd_special'] #program_paths_filename=os.path.join(sys_params['rootdir'], 'program_paths.pkl') #program_paths_file= open(program_paths_filename, 'wb') #pickle.dump(program_paths, program_paths_file) #program_paths_file.close class Test_seekr(unittest.TestCase):