File size: 2,010 Bytes
d7784f0
 
ddff90b
 
7ce5b82
ddff90b
7ce5b82
ddff90b
 
0416a61
f2852e3
847adc5
0416a61
6d2e57c
 
 
 
 
 
 
 
f2852e3
38efeba
847adc5
f2852e3
0416a61
f2852e3
ddff90b
f2852e3
 
 
 
 
 
 
 
6d2e57c
7ead1f4
6d2e57c
0416a61
 
 
 
 
3ed57d7
1656abd
 
f2852e3
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
import nltk
nltk.download('stopwords')
import pandas as pd
#classify_abs is a dependency for extract_abs
import classify_abs
import extract_abs
#pd.set_option('display.max_colwidth', None)
import streamlit as st

########## Title for the Web App ##########
st.title("Epidemiology Extraction Pipeline for Rare Diseases")
st.subheader("National Center for Advancing Translational Sciences (NIH/NCATS)") 

#### CHANGE SIDEBAR WIDTH ###
st.markdown(f'''
    <style>
        section[data-testid="stSidebar"] .css-ng1t4o {{width: 10rem;}}
        section[data-testid="stSidebar"] .css-1d391kg {{width: 10rem;}}
    </style>
''',unsafe_allow_html=True)

#max_results is Maximum number of PubMed ID's to retrieve BEFORE filtering
max_results = st.sidebar.number_input("Maximum number of articles to find in PubMed", min_value=1, max_value=None, value=50)

filtering = st.sidebar.radio("What type of filtering would you like?",('Strict', 'Lenient', 'None'))

extract_diseases = st.sidebar.checkbox("Extract Rare Diseases", value=False)

with st.spinner('Loading Epidemiology Models and Dependencies...'):
    classify_model_vars = classify_abs.init_classify_model()
    st.success('Epidemiology Classification Model Loaded!')
    NER_pipeline, entity_classes = extract_abs.init_NER_pipeline()
    st.success('Epidemiology Extraction Model Loaded!')
    GARD_dict, max_length = extract_abs.load_GARD_diseases()
st.success('All Models and Dependencies Loaded!')

disease_or_gard_id = st.text_input("Input a rare disease term or GARD ID.", value="Fellman syndrome")

if disease_or_gard_id:
  df = extract_abs.search_term_extraction(disease_or_gard_id, max_results, filtering,
                                           NER_pipeline, entity_classes, 
                                           extract_diseases,GARD_dict, max_length, 
                                           classify_model_vars)
  st.dataframe(df)
  st.balloons()
  #st.dataframe(data=None, width=None, height=None)
  
# st.code(body, language="python")