Diff of /interface_streamlit.py [000000] .. [e4c2d8]

Switch to unified view

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'}")