new script to read and analyse the generated fits
This commit is contained in:
parent
f3aa721745
commit
3880e32fdc
64
fit_statistics.py
Normal file
64
fit_statistics.py
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
from ModelFit import get_best_fit
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
import os
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
|
def get_all_cell_folders(dir):
|
||||||
|
paths = []
|
||||||
|
for item in os.listdir(dir):
|
||||||
|
cell_path = os.path.join(dir, item)
|
||||||
|
if os.path.isdir(cell_path):
|
||||||
|
paths.append(cell_path)
|
||||||
|
|
||||||
|
return paths
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
|
||||||
|
values_models = {}
|
||||||
|
values_cells = {}
|
||||||
|
|
||||||
|
for cell in get_all_cell_folders("results/invivo_results/"):
|
||||||
|
best_fit = get_best_fit(cell)
|
||||||
|
c_behaviour, m_behaviour = best_fit.get_behaviour_values()
|
||||||
|
|
||||||
|
for key in c_behaviour.keys():
|
||||||
|
if key not in values_cells.keys():
|
||||||
|
values_cells[key] = []
|
||||||
|
if key not in values_models.keys():
|
||||||
|
values_models[key] = []
|
||||||
|
|
||||||
|
values_cells[key].append(c_behaviour[key])
|
||||||
|
values_models[key].append(m_behaviour[key])
|
||||||
|
|
||||||
|
percentage_error_data = []
|
||||||
|
labels = []
|
||||||
|
for key in values_models.keys():
|
||||||
|
errors = []
|
||||||
|
for i in range(len(values_models[key])):
|
||||||
|
if values_cells[key][i] == 0:
|
||||||
|
if values_models[key][i] == 0:
|
||||||
|
errors.append(0)
|
||||||
|
else:
|
||||||
|
print("Cannot calc % error if reference is 0")
|
||||||
|
continue
|
||||||
|
errors.append((values_models[key][i] / values_cells[key][i]) -1)
|
||||||
|
|
||||||
|
percentage_error_data.append(errors)
|
||||||
|
labels.append(key)
|
||||||
|
|
||||||
|
plt.boxplot(percentage_error_data)
|
||||||
|
plt.xticks(range(1, len(percentage_error_data)+1, 1), labels=labels, rotation=45)
|
||||||
|
plt.show()
|
||||||
|
plt.close()
|
||||||
|
|
||||||
|
# plt.plot([np.median(x) for x in percentage_error_data], 'o')
|
||||||
|
# plt.xticks(range(len(percentage_error_data)), labels=labels, rotation=45)
|
||||||
|
# plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user