Source code for petab.visualize.cli

"""Command-line interface for visualization."""
import argparse
from pathlib import Path

import matplotlib.pyplot as plt

from .. import Problem, get_simulation_df, get_visualization_df
from .plot_data_and_simulation import plot_problem


[docs] def _parse_cli_args(): """Parse command-line arguments.""" parser = argparse.ArgumentParser( description="Create PEtab visualizations." ) parser.add_argument( "-y", "--yaml", dest="yaml_file_name", required=True, help="PEtab problem YAML filename", ) parser.add_argument( "-s", "--simulations", dest="simulation_file_name", required=False, help="PEtab simulation filename", ) parser.add_argument( "-o", "--output-directory", dest="output_directory", required=True, help="Output directory", ) parser.add_argument( "-v", "--visualizations", required=False, dest="visualization_file_name", help="PEtab visualization specification filename", ) parser.add_argument( "--style", required=False, dest="style_file_name", help="Matplotlib style file", ) return parser.parse_args()
[docs] def _petab_visualize_main(): """Entrypoint for visualization command-line interface.""" args = _parse_cli_args() petab_problem = Problem.from_yaml(args.yaml_file_name) simulations_df = None if args.simulation_file_name: simulations_df = get_simulation_df(args.simulation_file_name) if args.visualization_file_name: petab_problem.visualization_df = get_visualization_df( args.visualization_file_name ) if args.style_file_name: plt.style.use(args.style_file_name) # Avoid errors when plotting without X server plt.switch_backend("agg") Path(args.output_directory).mkdir(exist_ok=True, parents=True) plot_problem( petab_problem=petab_problem, simulations_df=simulations_df, subplot_dir=args.output_directory, )