65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
|
|
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()
|