Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
np.random.shuffle(idx)
pick_idx = idx[:iter_pick_number]
rest_idx = idx[iter_pick_number:]
# dump the picked candinate data
picked_systems = dpdata.MultiSystems()
for j in pick_idx:
sys_name, sys_id = labels[j]
picked_systems.append(sys_candinate[sys_name][sys_id])
sys_data_path = os.path.join(work_path, picked_data_name)
picked_systems.to_deepmd_raw(sys_data_path)
picked_systems.to_deepmd_npy(sys_data_path, set_size=iter_pick_number)
# dump the rest data (not picked candinate data and failed data)
rest_systems = dpdata.MultiSystems()
for j in rest_idx:
sys_name, sys_id = labels[j]
rest_systems.append(sys_candinate[sys_name][sys_id])
rest_systems += sys_failed
sys_data_path = os.path.join(work_path, rest_data_name)
rest_systems.to_deepmd_raw(sys_data_path)
rest_systems.to_deepmd_npy(sys_data_path, set_size=rest_idx.size)
# dump the accurate data -- to another directory
sys_data_path = os.path.join(work_path, accurate_data_name)
sys_accurate.to_deepmd_raw(sys_data_path)
sys_accurate.to_deepmd_npy(sys_data_path, set_size=sys_accurate.get_nframes())
system_index = list(set_tmp)
system_index.sort()
cwd = os.getcwd()
for ss in system_index :
sys_output = glob.glob(os.path.join(work_path, "task.%s.*/output"%ss))
sys_output.sort()
for idx,oo in enumerate(sys_output) :
sys = dpdata.LabeledSystem(oo, fmt = 'gaussian/log')
if len(sys) > 0:
sys.check_type_map(type_map = jdata['type_map'])
if jdata.get('use_atom_pref', False):
sys.data['atom_pref'] = np.load(os.path.join(os.path.dirname(oo), "atom_pref.npy"))
if idx == 0:
if jdata.get('use_clusters', False):
all_sys = dpdata.MultiSystems(sys, type_map = jdata['type_map'])
else:
all_sys = sys
else:
all_sys.append(sys)
sys_data_path = os.path.join(work_path, 'data.%s'%ss)
all_sys.to_deepmd_raw(sys_data_path)
all_sys.to_deepmd_npy(sys_data_path, set_size = len(sys_output))
def convert_data(jdata):
s = dpdata.MultiSystems(*[dpdata.LabeledSystem(x, fmt="gaussian/log")
for x in glob.glob(os.path.join(fp_path, "*", "output"))],
type_map=jdata["type_map"])
s.to_deepmd_npy(data_path)
dlog.info("Initial data is avaiable in %s" % os.path.abspath(data_path))
for cc_key, cc_value in counter.items():
dlog.info("{0:9s} : {1:6d} in {2:6d} {3:6.2f} %".format(cc_key, cc_value, fp_sum, cc_value/fp_sum*100))
# label the candidate system
labels = []
for key, system in sys_candinate.systems.items():
labels.extend([(key, j) for j in range(len(system))])
# candinate: pick up randomly
iter_pick_number = jdata['iter_pick_number']
idx = np.arange(counter['candidate'])
np.random.shuffle(idx)
pick_idx = idx[:iter_pick_number]
rest_idx = idx[iter_pick_number:]
# dump the picked candinate data
picked_systems = dpdata.MultiSystems()
for j in pick_idx:
sys_name, sys_id = labels[j]
picked_systems.append(sys_candinate[sys_name][sys_id])
sys_data_path = os.path.join(work_path, picked_data_name)
picked_systems.to_deepmd_raw(sys_data_path)
picked_systems.to_deepmd_npy(sys_data_path, set_size=iter_pick_number)
# dump the rest data (not picked candinate data and failed data)
rest_systems = dpdata.MultiSystems()
for j in rest_idx:
sys_name, sys_id = labels[j]
rest_systems.append(sys_candinate[sys_name][sys_id])
rest_systems += sys_failed
sys_data_path = os.path.join(work_path, rest_data_name)
rest_systems.to_deepmd_raw(sys_data_path)
def get_systems(path, jdata):
system = get_system_cls(jdata)
systems = dpdata.MultiSystems(
*[system(os.path.join(path, s), fmt='deepmd/npy') for s in os.listdir(path)])
return systems
def post_model_devi(iter_index, jdata, mdata):
"""calculate the model deviation"""
iter_name = make_iter_name(iter_index)
work_path = os.path.join(iter_name, model_devi_name)
tasks = glob.glob(os.path.join(work_path, "task.*"))
e_trust_lo = jdata['e_trust_lo']
e_trust_hi = jdata['e_trust_hi']
f_trust_lo = jdata['f_trust_lo']
f_trust_hi = jdata['f_trust_hi']
sys_accurate = dpdata.MultiSystems()
sys_candinate = dpdata.MultiSystems()
sys_failed = dpdata.MultiSystems()
for task in tasks:
# e.out
details_e = glob.glob(os.path.join(task, "{}.*.e.out".format(detail_file_name_prefix)))
e_all = np.array([np.loadtxt(detail_e, ndmin=2)[:, 1] for detail_e in details_e])
e_std = np.std(e_all, axis=0)
n_frame = e_std.size
# f.out
details_f = glob.glob(os.path.join(task, "{}.*.f.out".format(detail_file_name_prefix)))
f_all = np.array([np.loadtxt(detail_f, ndmin=2)[:, 3:6].reshape((n_frame, -1, 3)) for detail_f in details_f])
# (n_model, n_frame, n_atom, 3)
f_std = np.std(f_all, axis=0)
# (n_frame, n_atom, 3)