Source code for cinnabar.arsenic
"""
cinnabar.arsenic
================
Containing the command line interface usage of cinnabar.
"""
import argparse
from . import FEMap, plotting
[docs]
def main():
parser = argparse.ArgumentParser(description="Get input")
parser.add_argument("csv", type=str, help="Path to the results csv file")
parser.add_argument(
"--plot",
default=["all"],
choices=["all", "ddg", "dg", "all ddg", "network"],
nargs="+",
help="Which plots to generate",
)
parser.add_argument("--stats", default="all", help="Which statistics to generate")
parser.add_argument("--plotly", action="store_true")
parser.add_argument(
"--method", type=str, default="", help="Name of the method, used for labelling"
)
parser.add_argument(
"--target", type=str, default="", help="Name of the target, used for labelling"
)
parser.add_argument(
"--prefix", type=str, default="", help="Prefix for figure filenames generated"
)
parser.add_argument(
"--title", type=str, default="", help="Title for plots generated"
)
args = parser.parse_args()
if args.title == "":
args.title = f"{args.method} {args.target}"
if args.plot == ["all"]:
args.plot = ["ddg", "dg", "all ddg", "network"]
network = FEMap.from_csv(args.csv)
# this generates the three plots that we need
if "network" in args.plot:
network.draw_graph(title=args.title, filename=f"{args.prefix}network.png")
if "ddg" in args.plot:
plotting.plot_DDGs(
network.to_legacy_graph(), title=args.title, filename=f"{args.prefix}DDGs.png"
)
if "dg" in args.plot:
plotting.plot_DGs(
network.to_legacy_graph(), title=args.title, filename=f"{args.prefix}DGs.png"
)
if "all ddg" in args.plot:
plotting.plot_all_DDGs(
network.to_legacy_graph(), title=args.title, filename=f"{args.prefix}all_DDGs.png"
)
if __name__ == "__main__":
main()