You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to make a few changes in the function def plot_per_dependent_variable to create plots for the steady-state data and
I would like to share the modified function (please see below) with you.
Thanks so much for the new release, this helps me a lot in obtaining the steady-state data in the required format.
def plot_per_dependent_variable_ss(**kwargs):
"""
This function creates a figure for each dependent variable, with traces for all experiments.
:param kwargs:
- | `model`: to specify the data model to be used (if not specified
| the one from :func:`.get_current_model` will be taken)
:return: array of tuples (fig, ax) for each figure created
"""
dm = model_io.get_model_from_dict_or_default(kwargs)
task = dm.getTask(TASK_PARAMETER_ESTIMATION)
assert (isinstance(task, COPASI.CFitTask))
problem = task.getProblem()
assert (isinstance(problem, COPASI.CFitProblem))
experiments = problem.getExperimentSet()
assert (isinstance(experiments, COPASI.CExperimentSet))
result = []
num_experiments = experiments.getExperimentCount()
if num_experiments == 0:
return result
data = get_simulation_results(**kwargs)
exp_data = data[0] # experimental data
sim_data = data[1] # simulation data
dependent_variables = {}
for i in range(num_experiments):
experiment = experiments.getExperiment(i)
mapping = get_experiment_mapping(experiment)
# set independent values for that experiment
independent = mapping[mapping.type == 'independent']
xname = independent.iloc[0].mapping
# set dependent values for that experiment
dependent = mapping[mapping.type == 'dependent']
num_dependent = dependent.shape[0]
for j in range(num_dependent):
name = dependent.iloc[j].mapping
if name not in dependent_variables:
dependent_variables[name] = []
dependent_variables[name].append(i)
for dependent in dependent_variables:
fig, ax = plt.subplots()
cycler = plt.cycler("color", plt.cm.tab20c.colors)()
ax.set_title(dependent)
experiment_indices = dependent_variables[dependent]
for i in experiment_indices:
experiment = experiments.getExperiment(i)
exp_name = experiment.getObjectName()
nextval = next(cycler)['color']
name = dependent
if name not in sim_data[i].columns:
name = name[1:-1]
sim_data[i][xname] = exp_data[i][xname]
# print(sim_data[i])
sim_data[i].reset_index().plot(x=xname, y=name,
label="{0} Fit".format(exp_name), ax=ax, color=nextval)
exp_data[i].plot.scatter(x=xname, y=dependent, ax=ax, color=nextval,
label='{0} Measured'.format(exp_name))
# plt.savefig('ss.png')
result.append((fig, ax))
return result
The text was updated successfully, but these errors were encountered:
Hello @fbergmann ,
I tried to make a few changes in the function
def plot_per_dependent_variable
to create plots for the steady-state data andI would like to share the modified function (please see below) with you.
Thanks so much for the new release, this helps me a lot in obtaining the steady-state data in the required format.
The text was updated successfully, but these errors were encountered: