Spaces:
Sleeping
Sleeping
init app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import numpy as np
|
| 3 |
+
import pickle
|
| 4 |
+
import joblib
|
| 5 |
+
|
| 6 |
+
def predict(Height,Weight,INR,Race,Age,gender,Diabetes,Simvastatin,Amiodarone,VKORC1, ml_model):
|
| 7 |
+
|
| 8 |
+
age_encoder = joblib.load('my_le_age.joblib')
|
| 9 |
+
en_age = age_encoder.transform([Age])[0]
|
| 10 |
+
race_encoder = joblib.load('my_le_race.joblib')
|
| 11 |
+
en_race = race_encoder.transform([Race])[0]
|
| 12 |
+
gen_encoder = joblib.load('my_le_gender.joblib')
|
| 13 |
+
en_gen = gen_encoder.transform([gender])[0]
|
| 14 |
+
sim_encoder = joblib.load('my_le_sim.joblib')
|
| 15 |
+
en_sim = sim_encoder.transform([Simvastatin])[0]
|
| 16 |
+
ami_encoder = joblib.load('my_le_ami.joblib')
|
| 17 |
+
en_ami = ami_encoder.transform([Amiodarone])[0]
|
| 18 |
+
vk_encoder = joblib.load('my_le_vk.joblib')
|
| 19 |
+
en_vk = vk_encoder.transform([VKORC1])[0]
|
| 20 |
+
input_features=np.array([Height,Weight,INR,en_race,en_age,en_gen,Diabetes,en_sim,en_ami,en_vk]).reshape(1,-1)
|
| 21 |
+
norm_features = scaler.fit_transform(input_features)
|
| 22 |
+
|
| 23 |
+
if(ml_model == 'Linear'):
|
| 24 |
+
with open('lrn_model.pkl', 'rb') as file:
|
| 25 |
+
lrn_model = pickle.load(file)
|
| 26 |
+
res = lrn_model.predict(norm_features)[0]
|
| 27 |
+
elif(ml_model == 'SVRegressor'):
|
| 28 |
+
with open('svr_model.pkl', 'rb') as file:
|
| 29 |
+
lrn_model = pickle.load(file)
|
| 30 |
+
res = lrn_model.predict(norm_features)[0]
|
| 31 |
+
elif(ml_model == 'Decision Trees Regressor'):
|
| 32 |
+
with open('dt_model.pkl', 'rb') as file:
|
| 33 |
+
lrn_model = pickle.load(file)
|
| 34 |
+
res = lrn_model.predict(norm_features)[0]
|
| 35 |
+
elif(ml_model == 'Lasso Regression'):
|
| 36 |
+
with open('lasso_model.pkl', 'rb') as file:
|
| 37 |
+
lrn_model = pickle.load(file)
|
| 38 |
+
res = lrn_model.predict(norm_features)[0]
|
| 39 |
+
else:
|
| 40 |
+
with open('mlp_model.pkl', 'rb') as file:
|
| 41 |
+
lrn_model = pickle.load(file)
|
| 42 |
+
res = lrn_model.predict(norm_features)[0]
|
| 43 |
+
|
| 44 |
+
return res
|
| 45 |
+
|
| 46 |
+
return en_gen
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
Height = gr.inputs.Number(label='Height (cm)')
|
| 50 |
+
Weight = gr.inputs.Number(label='Weight (kg)')
|
| 51 |
+
INR = gr.inputs.Number(label='INR on Reported Therapeutic Dose of Warfarin')
|
| 52 |
+
Race = gr.inputs.Dropdown(['African-American','Asian','Black','Black African','Black Caribbean',
|
| 53 |
+
'Black or African American','Black other','Caucasian','Chinese',
|
| 54 |
+
'Han Chinese','Hispanic','Indian','Intermediate' ,'Japanese', 'Korean',
|
| 55 |
+
'Malay', 'Other' ,'Other (Black British)' ,'Other (Hungarian)',
|
| 56 |
+
'Other Mixed Race' ,'White' ,'other'], label='Race')
|
| 57 |
+
Age = gr.inputs.Dropdown(['10 - 19','20 - 29','30 - 39','40 - 49','50 - 59','60 - 69','70 - 79','80 - 89','90+'],label='Age')
|
| 58 |
+
gender = gr.inputs.Dropdown(["male", "female"], label="Gender")
|
| 59 |
+
Diabetes = gr.inputs.Number(label='Diabetes')
|
| 60 |
+
Simvastatin = gr.inputs.Number(label='Simvastatin (Zocor)')
|
| 61 |
+
Amiodarone = gr.inputs.Number(label='Amiodarone (Cordarone)')
|
| 62 |
+
VKORC1 = gr.inputs.Dropdown(['A/A','A/G','G/G'], label='VKORC1 genotype: -1639 G>A (3673); chr16:31015190; rs9923231; C/T')
|
| 63 |
+
ml_model = gr.inputs.Dropdown(["Linear", "SVRegressor", "Decision Trees Regressor","Lasso Regression", "MLP Neural Network"], label="ML Model")
|
| 64 |
+
outputs = [
|
| 65 |
+
gr.outputs.Textbox(label="Dose"),
|
| 66 |
+
]
|
| 67 |
+
# Create interface
|
| 68 |
+
interface = gr.Interface(
|
| 69 |
+
fn=predict,
|
| 70 |
+
inputs=[Height,Weight,INR,Race,Age,gender,Diabetes,Simvastatin,Amiodarone,VKORC1,
|
| 71 |
+
ml_model],
|
| 72 |
+
outputs=outputs
|
| 73 |
+
)
|
| 74 |
+
|
| 75 |
+
# Launch interface
|
| 76 |
+
interface.launch()
|