Skip to content

Commit

Permalink
- include experiment information in statistic
Browse files Browse the repository at this point in the history
  • Loading branch information
fbergmann committed Sep 30, 2022
1 parent 1cbf289 commit ffa3ec0
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion basico/task_parameterestimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -1457,7 +1457,47 @@ def get_fit_statistic(include_parameters=False, include_experiments=False, inclu
result['parameters'] = parameters

if include_experiments:
raise NotImplementedError()
if COPASI.CVersion.VERSION.getVersionDevel() < 263:
raise ValueError("Newer COPASI version required to return experiment statistic")

experiment_stats = []
for i in range(experiments.getExperimentCount()):
exp = experiments.getExperiment(i)

validValueCount = exp.getValidValueCount()
totalValueCount = exp.getTotalValueCount()
print(f' datapoints: {validValueCount} of {totalValueCount}')

item = {
'name': exp.getObjectName(),
'valid_points': validValueCount,
'total_points': totalValueCount,
'obj': exp.getObjectiveValue(),
'rms': exp.getRMS(),
'error_mean': exp.getErrorMean(),
'error_mean_sd': exp.getErrorMeanSD(),
'dependent_data': []
}

objects = experiments.getDependentObjects()

for j in range(objects.size()):
obj = experiments.getDependentObjects().get(j)
count = exp.getColumnValidValueCount(obj)
if not count:
continue
item['dependent_data'].append(
{
'name': obj.getObjectDisplayName(),
'data_points': count,
'obj': exp.getObjectiveValue(obj),
'rms': exp.getRMS(obj),
'error_mean': exp.getErrorSum(obj) / count,
}
)
experiment_stats.append(item)

result['experiments'] = experiment_stats

if include_fitted:
dependent = experiments.getDependentObjects()
Expand Down

0 comments on commit ffa3ec0

Please sign in to comment.