Spaces:
Sleeping
Sleeping
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.header(body, anchor=None) | |
#st.subheader(body, anchor=None) | |
#Anchor is for the URL, can be custom str | |
# https://docs.streamlit.io/library/api-reference/text/st.markdown | |
########## Create Input field ########## | |
disease_or_gard_id = st.text_input('Input a rare disease term or a GARD ID.', 'Fellman syndrome') | |
# st.code(body, language="python") | |
# st.radio(label, options, index=0, format_func=special_internal_function, key=None, help=None, on_change=None, args=None, kwargs=None, *, disabled=False) | |
# https://docs.streamlit.io/library/api-reference/widgets/st.radio | |
filtering = st.sidebar.radio( | |
"What type of filtering would you like?", | |
('Strict', 'Lenient', 'None')) | |
extract_diseases = st.sidebar.checkbox("Extract Rare Diseases", value=False) | |
# https://docs.streamlit.io/library/api-reference/widgets/st.checkbox | |
#LSTM RNN Epi Classifier Model | |
with st.spinner('Loading Epidemiology Classification Model...'): | |
classify_model_vars = classify_abs.init_classify_model() | |
st.success('Epidemiology Classification Model Loaded!') | |
#GARD Dictionary - For filtering and exact match disease/GARD ID identification | |
with st.spinner('Loading GARD Rare Disease Dictionary...'): | |
GARD_dict, max_length = extract_abs.load_GARD_diseases() | |
st.success('GARD Rare Disease Dictionary Loaded!') | |
#BioBERT-based NER pipeline, open `entities` to see | |
with st.spinner('Loading Epidemiology Extraction Model...'): | |
NER_pipeline, entity_classes = extract_abs.init_NER_pipeline() | |
st.success('Epidemiology Extraction Model Loaded!') | |
#max_results is Maximum number of PubMed ID's to retrieve BEFORE filtering | |
max_results = st.sidebar.number_input(label, min_value=1, max_value=None, value=50) | |
# https://docs.streamlit.io/library/api-reference/widgets/st.number_input | |
#filtering options are 'strict','lenient'(default), 'none' | |
if text: | |
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.dataframe(data=None, width=None, height=None) |