Esempio n. 1
0
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)
Esempio n. 2
0
                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):