|
| 1 | +#!/usr/bin/env python |
| 2 | + |
| 3 | +"""Calculates the ranking file by scoring intra-swarm""" |
| 4 | + |
| 5 | +from __future__ import print_function |
| 6 | +import sys |
| 7 | +import os |
| 8 | +import argparse |
| 9 | +from lightdock.util.logger import LoggingManager |
| 10 | +from lightdock.constants import DEFAULT_SWARM_FOLDER, GSO_OUTPUT_FILE |
| 11 | +from lightdock.util.analysis import read_ranking_file |
| 12 | +from lightdock.util.analysis import read_lightdock_output |
| 13 | +from lightdock.util.analysis import write_ranking_to_file |
| 14 | + |
| 15 | + |
| 16 | +log = LoggingManager.get_logger('lgd_rank_swarm') |
| 17 | + |
| 18 | + |
| 19 | +def parse_command_line(): |
| 20 | + parser = argparse.ArgumentParser(prog='lgd_rank_swarm') |
| 21 | + parser.add_argument("num_swarms", help="number of swarms to consider", type=int, metavar="num_swarms") |
| 22 | + parser.add_argument("steps", help="steps to consider", type=int, metavar="steps") |
| 23 | + return parser.parse_args() |
| 24 | + |
| 25 | + |
| 26 | +if __name__ == '__main__': |
| 27 | + |
| 28 | + try: |
| 29 | + CURRENT_FOLDER = os.getcwd() |
| 30 | + args = parse_command_line() |
| 31 | + |
| 32 | + for swarm_id in range(args.num_swarms): |
| 33 | + os.chdir(os.path.join(DEFAULT_SWARM_FOLDER + str(swarm_id))) |
| 34 | + result_file_name = os.path.join(GSO_OUTPUT_FILE % args.steps) |
| 35 | + lightdock_output = read_lightdock_output(result_file_name) |
| 36 | + for g in lightdock_output: |
| 37 | + g.id_cluster = swarm_id |
| 38 | + g.pdb_file = "lightdock_" + str(g.id_glowworm) + ".pdb" |
| 39 | + write_ranking_to_file(lightdock_output, order_by="scoring") |
| 40 | + os.chdir(CURRENT_FOLDER) |
| 41 | + except IOError: |
| 42 | + log.warning("Either num_clusters or steps not found. Exiting...") |
| 43 | + raise SystemExit() |
0 commit comments