コード例 #1
0
ファイル: ana_PropagatedSegments.py プロジェクト: enzyx/hdWE
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
コード例 #2
0
ファイル: ana_CountTransitions.py プロジェクト: enzyx/hdWE
# 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]
コード例 #3
0
# 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: