Skip to content

Commit

Permalink
Merge pull request #620 from StochSS/fix-live-output-final-graph
Browse files Browse the repository at this point in the history
HOTFIX: Live output graph final step
  • Loading branch information
seanebum authored Oct 4, 2021
2 parents 76f1ee7 + 99acb91 commit 83be7cb
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 32 deletions.
36 changes: 16 additions & 20 deletions examples/DataVisualization/LiveOutput.ipynb

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions gillespy2/core/liveGraphing.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,5 +247,3 @@ def display(self, curr_state, curr_time, trajectory_base, finished=False):

if self.file_path is not None and self.display_type != "graph":
file_obj.close()
if finished:
time.sleep(3)
13 changes: 11 additions & 2 deletions gillespy2/core/results.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,13 +242,19 @@ def to_array(self):
return results

@classmethod
def build_from_solver_results(cls, solver):
def build_from_solver_results(cls, solver, live_output_options):
"""
Build a gillespy2.Results object using the provided solver results.
:param solver: The solver used to run the simulation.
:type solver: gillespy2.GillesPySolver
:param live_output_options: dictionary contains options for live_output. By default {"interval":1}.
"interval" specifies seconds between displaying.
"clear_output" specifies if display should be refreshed with each display
:type live_output_options: dict
"""
print(live_output_options)
if solver.rc == 33:
from gillespy2.core import log
log.warning('GillesPy2 simulation exceeded timeout.')
Expand All @@ -260,7 +266,10 @@ def build_from_solver_results(cls, solver):
temp = Trajectory(data=solver.result[i], model=solver.model, solver_name=solver.name, rc=solver.rc)
results_list.append(temp)

return Results(results_list)
results = Results(results_list)
if "type" in live_output_options.keys() and live_output_options['type'] == "graph":
results.plot()
return results
else:
raise ValueError("number_of_trajectories must be non-negative and non-zero")

Expand Down
2 changes: 1 addition & 1 deletion gillespy2/solvers/cpp/ode_c_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,4 @@ def run(self=None, model: Model = None, t: int = 20, number_of_trajectories: int
self.result = simulation_data
self.rc = int(sim_status)

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)
2 changes: 1 addition & 1 deletion gillespy2/solvers/cpp/ssa_c_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,4 @@ def run(self=None, model: Model = None, t: int = 20, number_of_trajectories: int
self.result = simulation_data
self.rc = int(sim_status)

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)
2 changes: 1 addition & 1 deletion gillespy2/solvers/cpp/tau_hybrid_c_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,4 @@ def run(self=None, model: Model = None, t: int = 20, number_of_trajectories: int
self.result = simulation_data
self.rc = int(sim_status)

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)
2 changes: 1 addition & 1 deletion gillespy2/solvers/cpp/tau_leaping_c_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,4 @@ def run(self=None, model: Model = None, t: int = 20, number_of_trajectories: int
self.result = simulation_data
self.rc = int(sim_status)

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)
2 changes: 1 addition & 1 deletion gillespy2/solvers/numpy/ode_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ def run(self, model=None, t=20, number_of_trajectories=1, increment=None, show_l
if hasattr(self, 'has_raised_exception'):
raise self.has_raised_exception

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)

def ___run(self, model, curr_state, curr_time, timeline, trajectory_base, tmpSpecies, live_grapher, t=20,
number_of_trajectories=1, increment=0.05, timeout=None, show_labels=True, integrator='lsoda',
Expand Down
2 changes: 1 addition & 1 deletion gillespy2/solvers/numpy/ssa_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ def run(self, model=None, t=20, number_of_trajectories=1, increment=None, seed=N
if hasattr(self, 'has_raised_exception'):
raise self.has_raised_exception

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)

def ___run(self, model, curr_state, total_time, timeline, trajectory_base, live_grapher, t=20,
number_of_trajectories=1, increment=0.05, seed=None, debug=False, show_labels=True, resume=None,
Expand Down
2 changes: 1 addition & 1 deletion gillespy2/solvers/numpy/tau_hybrid_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -932,7 +932,7 @@ def run(self, model=None, t=20, number_of_trajectories=1, increment=None, seed=N
if hasattr(self, 'has_raised_exception'):
raise self.has_raised_exception

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)

def ___run(self, model, curr_state, curr_time, timeline, trajectory_base, initial_state, live_grapher, t=20,
number_of_trajectories=1, increment=0.05, seed=None,
Expand Down
2 changes: 1 addition & 1 deletion gillespy2/solvers/numpy/tau_leaping_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ def run(self, model=None, t=20, number_of_trajectories=1, increment=None, seed=N
if hasattr(self, 'has_raised_exception'):
raise self.has_raised_exception

return Results.build_from_solver_results(self)
return Results.build_from_solver_results(self, live_output_options)

def ___run(self, model, curr_state,total_time, timeline, trajectory_base, tmpSpecies, live_grapher, t=20,
number_of_trajectories=1, increment=0.05, seed=None, debug=False, profile=False, show_labels=True,
Expand Down

0 comments on commit 83be7cb

Please sign in to comment.