Source code for petab.visualize.cli

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

import matplotlib.pyplot as plt

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


[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, )