We implemented the Mann-Whitney U-test (MWUT) to calculate the error between experimental data and simulations. The U-test is a non-parametric statistical test that, within a confidence level, determine if a stochastic repeated measurements is identical or not to another repeated measurements.
1. We count how many times experimental data (expi) are larger than simulated values (simj):
for i in range(len(exp)):
*for* j in range(len(sim)):
*if* expi > simj:
Uexp ← Uexp + 1.0
*else if* expi < simj:
Usim ← Usim + 1.0
*else*:
Uexp ← Uexp + 0.5
Usim ← Usim + 0.5
We determine if Uexp is statistically significant:
for i in range(len(exp)):
*if* len(exp) × len(sim) − min(Uexp, Usim) ≤ Ucritic:
null hypothesis, H0, is rejected
Umodel ← Umodel + 1.0
Note
The U-test is the only fitness function that has known limits: For a perfect model, the U-test is zero. A complete wrong model will have a Umodel equal to the number of Observables times the number of experimental time points. For instance, the example model we use to compare with BioNetFit has 2 Observables and 7 experimental time points, then a max Umodel equal to 14.