diff --git a/seekrtools/long_trajectory/long_trajectory.py b/seekrtools/long_trajectory/long_trajectory.py index b2816c9..e9b3d58 100644 --- a/seekrtools/long_trajectory/long_trajectory.py +++ b/seekrtools/long_trajectory/long_trajectory.py @@ -82,7 +82,7 @@ def anchor_mmvt_output_slicer_dicer(model, anchor): for output_file_name in output_file_list: with open(output_file_name) as f: for line in f.readlines(): - if line.startswith("#") or line.startwith("CHECKPOINT"): + if line.startswith("#") or line.startswith("CHECKPOINT"): continue line_split = line.strip().split(",") dest_milestone_alias = int(line_split[0]) @@ -143,8 +143,10 @@ def make_fragment_list(model): -def make_long_trajectory(model, all_anchors_fragment_list, starting_anchor_index): - ITER = 1000 +def make_long_trajectory(model, all_anchors_fragment_list, starting_anchor_index, ITER = 200000): + + + current_anchor_index = starting_anchor_index @@ -155,6 +157,7 @@ def make_long_trajectory(model, all_anchors_fragment_list, starting_anchor_index long_traj = current_fragment.traj[:] + for i in range(ITER): current_anchor = model.anchors[current_anchor_index] dest_milestone_index = current_fragment.dest_milestone @@ -164,13 +167,20 @@ def make_long_trajectory(model, all_anchors_fragment_list, starting_anchor_index break next_anchor_index = dest_milestone.neighbor_anchor_index - next_anchor_fragment_dict = all_anchors_fragment_list[next_anchor_index] + try: + next_anchor_fragment_dict = all_anchors_fragment_list[next_anchor_index] + except IndexError: + print("Trajectory terminated before final iteration at : " + str(i)) + break next_anchor_fragment_list = next_anchor_fragment_dict[dest_milestone.index] + if len(next_anchor_fragment_list) == 0: + print("Max Iteration number reached : " + str(i)) + break next_fragment = random.choice(next_anchor_fragment_list) long_traj += next_fragment.traj current_anchor_index = next_anchor_index current_fragment = next_fragment - + return long_traj @@ -184,4 +194,4 @@ def make_long_trajectory(model, all_anchors_fragment_list, starting_anchor_index long_traj = make_long_trajectory(model, all_anchors_fragment_list, bound_anchor) -long_traj.save("muller_test.dcd") \ No newline at end of file +long_traj.save("muller_test.dcd")