|
a |
|
b/interface_streamlit.py |
|
|
1 |
import joblib |
|
|
2 |
import pandas as pd |
|
|
3 |
import streamlit as st |
|
|
4 |
|
|
|
5 |
model = joblib.load('kidney_disease_model.pkl') |
|
|
6 |
|
|
|
7 |
def get_user_input(): |
|
|
8 |
age = st.number_input("Enter age", min_value=1, max_value=100, value=25) |
|
|
9 |
blood_pressure = st.number_input("Enter blood pressure", min_value=50, max_value=200, value=120) |
|
|
10 |
specific_gravity = st.number_input("Enter specific gravity", min_value=1.005, max_value=1.025,format="%.3f", value=1.015) |
|
|
11 |
albumin = st.number_input("Enter albumin", min_value=0, max_value=5, value=0) |
|
|
12 |
sugar = st.number_input("Enter sugar", min_value=0, max_value=5, value=0) |
|
|
13 |
red_blood_cells = st.selectbox("Enter red blood cells (0 for abnormal, 1 for normal)", [0, 1]) |
|
|
14 |
pus_cell = st.selectbox("Enter pus cell (0 for abnormal, 1 for normal)", [0, 1]) |
|
|
15 |
pus_cell_clumps = st.selectbox("Enter pus cell clumps (0 for not present, 1 for present)", [0, 1]) |
|
|
16 |
bacteria = st.selectbox("Enter bacteria (0 for not present, 1 for present)", [0, 1]) |
|
|
17 |
blood_glucose_random = st.number_input("Enter blood glucose random", min_value=70, max_value=400, value=100) |
|
|
18 |
blood_urea = st.number_input("Enter blood urea", min_value=10, max_value=200, value=50) |
|
|
19 |
serum_creatinine = st.number_input("Enter serum creatinine", min_value=0.5, max_value=8.0, value=1.0) |
|
|
20 |
sodium = st.number_input("Enter sodium", min_value=125, max_value=150, value=135) |
|
|
21 |
potassium = st.number_input("Enter potassium", min_value=2.5, max_value=7.0, value=4.5) |
|
|
22 |
haemoglobin = st.number_input("Enter haemoglobin", min_value=5.0, max_value=17.0, value=14.0) |
|
|
23 |
packed_cell_volume = st.number_input("Enter packed cell volume", min_value=20, max_value=50, value=40) |
|
|
24 |
white_blood_cell_count = st.number_input("Enter white blood cell count", min_value=4000, max_value=15000, value=8000) |
|
|
25 |
red_blood_cell_count = st.number_input("Enter red blood cell count", min_value=2.5, max_value=6.0, value=5.0) |
|
|
26 |
hypertension = st.selectbox("Enter hypertension (0 for no, 1 for yes)", [0, 1]) |
|
|
27 |
diabetes_mellitus = st.selectbox("Enter diabetes mellitus (0 for no, 1 for yes)", [0, 1]) |
|
|
28 |
coronary_artery_disease = st.selectbox("Enter coronary artery disease (0 for no, 1 for yes)", [0, 1]) |
|
|
29 |
appetite = st.selectbox("Enter appetite (0 for poor, 1 for good)", [0, 1]) |
|
|
30 |
peda_edema = st.selectbox("Enter peda edema (0 for no, 1 for yes)", [0, 1]) |
|
|
31 |
aanemia = st.selectbox("Enter aanemia (0 for no, 1 for yes)", [0, 1]) |
|
|
32 |
|
|
|
33 |
return [[age, blood_pressure, specific_gravity, albumin, sugar, red_blood_cells, pus_cell, |
|
|
34 |
pus_cell_clumps, bacteria, blood_glucose_random, blood_urea, serum_creatinine, sodium, |
|
|
35 |
potassium, haemoglobin, packed_cell_volume, white_blood_cell_count, red_blood_cell_count, |
|
|
36 |
hypertension, diabetes_mellitus, coronary_artery_disease, appetite, peda_edema, aanemia]] |
|
|
37 |
|
|
|
38 |
st.title('Kidney Disease Clinical Trial Eligibility Checker') |
|
|
39 |
|
|
|
40 |
user_input = get_user_input() |
|
|
41 |
|
|
|
42 |
input_data = pd.DataFrame(user_input, columns=['age', 'blood_pressure', 'specific_gravity', 'albumin', 'sugar', 'red_blood_cells', 'pus_cell', |
|
|
43 |
'pus_cell_clumps', 'bacteria', 'blood_glucose_random', 'blood_urea', 'serum_creatinine', 'sodium', |
|
|
44 |
'potassium', 'haemoglobin', 'packed_cell_volume', 'white_blood_cell_count', 'red_blood_cell_count', |
|
|
45 |
'hypertension', 'diabetes_mellitus', 'coronary_artery_disease', 'appetite', 'peda_edema', 'aanemia']) |
|
|
46 |
|
|
|
47 |
if st.button('Check Eligibility'): |
|
|
48 |
prediction = model.predict(input_data)[0] |
|
|
49 |
eligibility = prediction == 0 |
|
|
50 |
st.write(f"Eligibility for clinical trials: {'Eligible' if eligibility else 'Not Eligible'}") |