parser.add_argument('-e', '--last_it', dest="last_iteration", type=int, default=-1, help="Last iteration to use.") parser.add_argument('-v', '--verbose', action="store_true", dest="verbose", help="Print information for every iteration") args = parser.parse_args() logger = Logger(args.logdir) iterations = logger.loadIterations(args.first_iteration, args.last_iteration, verbose=True) VERBOSE = args.verbose total_count = 0 for iteration in iterations: total_iteration_segments = 0 active_bins = 0 inactive_bins = 0 for this_bin in iteration: this_number_of_segments = this_bin.getNumberOfSegments() if this_bin.getSampleRegion(): active_bins += 1 total_count += this_number_of_segments total_iteration_segments += this_number_of_segments
# Initialize print( '\033[1mCalculating PMF\033[0m (Free Energy is given in kcal/mol at 298K).' ) args = parser.parse_args() if args.plot: import matplotlib.pyplot as plt # failproofing for segment plotting if args.first_iteration == args.last_iteration and \ args.plot_segments: raise Exception("Need more than 1 iteration for --segments\n") #get the actual Iteration from logger module logger = Logger(args.logdir) iterations = logger.loadIterations(begin=args.first_iteration, end=args.last_iteration) # load md module if not args.input_md_conf: args.input_md_conf = logger.loadConfigFile(iterations[0].getId()) md_module = MD_module(args.input_md_conf, debug=False) # Load cpptraj input file as one string with linebreaks and delete the last line break try: cpptraj_lines_file = open(args.cpptraj_lines_file_path, 'r') except: print('Error: could not open ' + args.cpptraj_lines_file_path) cpptraj_lines = '' for line in cpptraj_lines_file: cpptraj_lines = cpptraj_lines + line cpptraj_lines = cpptraj_lines[0:-1]
# Initialize print( '\033[1mCalculating Bin Free Energies\033[0m (Free Energy is given in kcal/mol at 298K).' ) args = parser.parse_args() last_iteration = args.last_iteration first_iteration = args.first_iteration logger = Logger(args.logdir) if last_iteration < 0: last_iteration = logger.getLastIterationId() n_iterations = last_iteration - first_iteration + 1 #initialize bin probability evolution array with size of last frame number_of_bins iteration = logger.loadIterations(logger.getLastIterationId(), logger.getLastIterationId())[0] n_bins = iteration.getNumberOfBins() bin_probabilities = numpy.zeros( [n_iterations, iteration.getNumberOfBins(), 2], float) for i in range(0, len(bin_probabilities[:, 0, 0])): for j in range(0, len(bin_probabilities[0, :, 0])): for k in range(0, 2): bin_probabilities[i, j, k] = 0 for i in range(first_iteration, last_iteration): print(i) iteration = logger.loadIterations(i, i)[0] i = i - first_iteration for j in range(iteration.getNumberOfBins()): bin_probabilities[i, j, 0] = iteration.bins[j].getProbability() if bin_probabilities[i, j, 0] > 0.0: