Source code for cinnabar.cli
"""
cinnabar.cli
================
Containing the command line interface usage of cinnabar.
"""
import argparse
from cinnabar import plotting
from cinnabar.femap import FEMap
[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)
# generate the MLE absolute values first
network.generate_absolute_values()
# 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, source="", title=args.title, filename=f"{args.prefix}DDGs.png")
if "dg" in args.plot:
plotting.plot_DGs(network, source="MLE", title=args.title, filename=f"{args.prefix}DGs.png")
if "all ddg" in args.plot:
plotting.plot_all_DDGs(network, source="MLE", title=args.title, filename=f"{args.prefix}all_DDGs.png")
if __name__ == "__main__":
main()