File size: 3,592 Bytes
4d58ea1 c87c55c 4d58ea1 78f7cb6 6cf9c2b 398a6f6 6cf9c2b 78f7cb6 c6be718 4d58ea1 78f7cb6 4d58ea1 6cf9c2b 398a6f6 4d58ea1 6cf9c2b 4d58ea1 c87c55c 6cf9c2b c87c55c 4d58ea1 6cf9c2b c87c55c 6cf9c2b 4d58ea1 c87c55c 4d58ea1 6cf9c2b 78f7cb6 6cf9c2b c87c55c 4d58ea1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# %%
import gradio as gr
import joblib
import numpy as np
loaded_rf_2way = joblib.load("STPI_2WAY_RandomForest.joblib")
loaded_rf_3way = joblib.load("STPI_3WAY_RandomForest.joblib")
def STPI(t_0_5_MaxValue,t_1_0_MaxValue,t_2_0_MaxValue,
# Acc_0_5__1_0_MaxValue,
Abs_Diff_t_0_5_MaxValue,Abs_Diff_t_1_0_MaxValue,Abs_Diff_t_2_0_MaxValue,Optional_Custom_Message='No_Message'):
print('------------------')
print(Optional_Custom_Message)
X = [t_0_5_MaxValue,t_1_0_MaxValue,t_2_0_MaxValue,
# Acc_0_5__1_0_MaxValue,
Abs_Diff_t_0_5_MaxValue,Abs_Diff_t_1_0_MaxValue,Abs_Diff_t_2_0_MaxValue]
print(X)
outcome_decoded = ['Normal','Keratoconic','Suspect']
file_object = open('stpi_data.txt', 'a')
file_object.write(str(t_0_5_MaxValue))
file_object.write(';')
file_object.write(str(t_1_0_MaxValue))
file_object.write(';')
file_object.write(str(t_2_0_MaxValue))
file_object.write(';')
# file_object.write(str(Acc_0_5__1_0_MaxValue))
# file_object.write(';')
file_object.write(str(Abs_Diff_t_0_5_MaxValue))
file_object.write(';')
file_object.write(str(Abs_Diff_t_1_0_MaxValue))
file_object.write(';')
file_object.write(str(Abs_Diff_t_2_0_MaxValue))
file_object.write(';')
file_object.write(Optional_Custom_Message)
file_object.write('\n')
file_object.close()
result_2way = loaded_rf_2way.predict([X])
print('The patient is ', outcome_decoded[int(result_2way)], ' through the 2way method')
probs_2way = loaded_rf_2way.predict_proba([X])
probs_2way = str(np.round(probs_2way[0], decimals=2))
print('2 way class Probabilities (Normal/KC) are ', probs_2way)
result_3way = loaded_rf_3way.predict([X])
probs_3way = loaded_rf_3way.predict_proba([X])
probs_3way = str(np.round(probs_3way[0], decimals=2))
print('3 way class Probabilities (Normal/Suspect/KC) are ', probs_3way)
if result_2way == 0:
print('The patient is ', outcome_decoded[int(result_3way)], 'through the 3way method')
# result = 'The 3-way classification resulted in a ', outcome_decoded[int(result_3way)] + ' patient.'
# further_analysis = 'Futher analysis using the 2-way classification resulted in a ' + outcome_decoded[int(result_2way)] + ' label.'
return 'The 3-way classification resulted in a ' + outcome_decoded[int(result_3way)] + ' patient. Futher analysis using the 2-way classification resulted in a ' + outcome_decoded[int(result_2way)] + ' label. ' + '2 way class Probabilities (Normal/KC) are ' + probs_2way + ' and 3 way class Probabilities (Normal/Suspect/KC) are ' + probs_3way
# result = 'The 2-way classification resulted in a ', outcome_decoded[int(result_2way)] + ' patient.'
# further_analysis = 'Futher analysis using the 3-way classification resulted in a ' + outcome_decoded[int(result_3way)] + ' label.'
return 'The 2-way classification resulted in a ' + outcome_decoded[int(result_2way)] + ' patient. Futher analysis using the 3-way classification resulted in a ' + outcome_decoded[int(result_3way)] + ' label. ' + '2 way class Probabilities (Normal/KC) are ' + probs_2way + ' and 3 way class Probabilities (Normal/Suspect/KC) are ' + probs_3way
iface = gr.Interface(
fn=STPI,
title='STPI Calculator',
description='Calculates the STPI through summarized tomographic parameters. Beta version by Prof. Shady Awwad, Jad Assaf MD and Jawad Kaisania.',
inputs=["number", "number","number",
# "number",
"number", "number","number","text"],
outputs="text")
iface.launch(
# share=True
)
# %%
|