Source code for sbmlsim.test.data.diff.simulate_examples

from pathlib import Path

import pandas as pd
from matplotlib import pyplot as plt

from sbmlsim.diff import DataSetsComparison, get_files_by_extension
from sbmlsim.model import RoadrunnerSBMLModel
from sbmlsim.simulation import TimecourseSim
from sbmlsim.simulator import SimulatorSerial as Simulator
from sbmlsim.test import DATA_DIR, MODEL_REPRESSILATOR


[docs]def run_simulations(create_files=True): """Run all the simulations. :return: """ diff_path = Path(DATA_DIR) / "diff" simulator = Simulator( RoadrunnerSBMLModel(MODEL_REPRESSILATOR), absolute_tolerance=1e-16, relative_tolerance=1e-13, ) simulations = get_files_by_extension(diff_path) for simulation_key, json_path in simulations.items(): tsv_path = diff_path / "sbmlsim" / f"{simulation_key}.tsv" tcsim = TimecourseSim.from_json(json_path) # print(tcsim) xres = simulator.run_timecourse(tcsim) if create_files: df = xres.to_mean_dataframe() df.to_csv(tsv_path, sep="\t", index=False)
[docs]def run_comparisons(create_files=True): """Run comparison of test simulations. :return: """ diff_path = Path(DATA_DIR) / "diff" simulation_keys = get_files_by_extension(diff_path) print(simulation_keys) for simulation_key in simulation_keys.keys(): # run the comparison df_dict = {} for simulator_key in ["sbmlsim", "jws"]: tsv_path = diff_path / simulator_key / f"{simulation_key}.tsv" df_dict[simulator_key] = pd.read_csv(tsv_path, sep="\t") # perform comparison dsc = DataSetsComparison( dfs_dict=df_dict, columns_filter=None, title=f"{simulation_key} (sbmlsim | jws)", ) f = dsc.report() if create_files: fig_path = diff_path / f"{simulation_key}_diff.png" f.savefig(fig_path, dpi=150, bbox_inches="tight") plt.show() report_path = diff_path / f"{simulation_key}_diff.tsv" with open(report_path, "w") as f_report: f_report.write(dsc.report_str())
if __name__ == "__main__": run_simulations() run_comparisons()