Spaces:
Sleeping
Sleeping
import streamlit as st | |
import os | |
ROOT_FIG_DIR = f'{os.getcwd()}/figures/' | |
def get_product_dev_page_layout(): | |
# st.title("Data Details") | |
# st.write( | |
# """ | |
# ## | |
# Examining data is the key factor here and it provides deta-centric approach to test any idea. | |
# """) | |
# list_test = """<ul> | |
# <li><strong>Target Group: </strong>Developer, Model Owners, Product Managers</li> | |
# </ul>""" | |
# st.markdown(list_test, unsafe_allow_html=True) | |
# LAYING OUT THE MIDDLE SECTION OF THE APP WITH THE MAPS | |
# row4_1, row4_2, row4_3 = st.columns((1,1,1)) | |
row4_1, row4_2, row4_3 = st.tabs(["Data Source Information", "Exploratory Data Stats", "Data Onboarding"]) | |
with row4_1: | |
# st.write("**Data Source Info**") | |
st.subheader('Data Source Information') | |
# new_title = '<h4 style="color:Green;">Data set infor:</h4>' | |
# st.markdown(new_title, unsafe_allow_html=True) | |
# where the data comes and how it is collected, what the data includes, what are the details of the data, how the data is used. | |
# answers four different questions | |
st.write(" Data set consists of OCT images from CNV, DME, DRUSEN and NORMAL cases...(from 4686 adult patients) a") | |
st.caption('Source') | |
st.write("[Labeled Optical Coherence Tomography (OCT) and Chest X-Ray Images for Classification](https://data.mendeley.com/datasets/rscbjbr9sj/3)") | |
with st.expander('Data Collection Details(Click for more info)'): | |
st.write("""As stated OCT images are clloected from the Shiley Eye Institute of the University of California San Diego, | |
the California Retinal Research Foundation, | |
Medical Center Ophthalmology Associates, the Shanghai First People’s Hospital, and Beijing Tongren Eye Center between | |
July 1, 2013 and March 1, 2017.""") | |
st.caption('Case Samples') | |
# https://www.aao.org/eye-health/ask-ophthalmologist-q/choroidal-neovascularization-definition-treatment | |
st.image('./figures/oct_details.png') | |
list_test = """<ul>Case explanations: | |
<li><strong>CNV: </strong>t) choroidal neovascularization (CNV) with neovascular membrane (white arrowheads) and associated subretinal fluid (arrows</li> | |
<li> <strong style="color:Green;"><em>DRUSEN: </em></strong> Multiple drusen (arrowheads) present in early AMD</li> | |
<li><strong>DME: </strong>) Diabetic | |
macular edema (DME) with retinal-thickening-associated intraretinal fluid</li> | |
<li>Normal</li> | |
</ul>""" | |
st.markdown(list_test, unsafe_allow_html=True) | |
st.caption('License:') | |
with st.expander('License: CC BY 4.0 license'): | |
st.write(""" | |
The files associated with this dataset are licensed under a Creative Commons Attribution 4.0 International license. What does this mean? | |
You can share, copy and modify this dataset so long as you give appropriate credit, | |
provide a link to the CC BY license, and indicate if changes were made, but you may not do | |
so in a way that suggests the rights holder has endorsed you or your use of the dataset. | |
Note that further permission may be required for any content within the dataset | |
that is identified as belonging to a third party. More details about the licences can be found | |
[here](https://creativecommons.org/about/cclicenses/). | |
""") | |
# st.write("Open to be used for researh.") | |
with row4_2: | |
st.subheader('Exploratory Data Stats') | |
with st.expander('Training Data Info'): | |
col1, col2 = st.columns((1,1)) | |
st.write("**Raw Data Details**") | |
with col1: | |
st.caption('Number of Images per Category') | |
st.image(f'{ROOT_FIG_DIR}/train_raw_category_dist.png') | |
with col2: | |
st.caption('Aspect ratio') | |
st.image(f'{ROOT_FIG_DIR}/train_raw_aspectratio_dist.png') | |
st.caption('Image Samples') | |
st.image(f'{ROOT_FIG_DIR}/train_samples.png') | |
with st.expander('Test Data Info'): | |
st.write("**Raw Data Details**") | |
st.caption('Number of Images per Category') | |
st.image(f'{ROOT_FIG_DIR}/test_category_dist.png') | |
st.caption('Aspect ratio') | |
st.image(f'{ROOT_FIG_DIR}/test_aspectratio_dist.png') | |
st.caption('Image Samples') | |
st.image(f'{ROOT_FIG_DIR}/train_samples.png') | |
with row4_3: | |
# st.write("**Post Processesd Data Details**") | |
st.subheader('Pre-Processing Details') | |
st.write( | |
""" | |
## | |
Since the training set has a problem of class imbalanced, we need to solve this issue. To do so, representative sampling strategy is used with hierarchical clustering. | |
""") | |
# st.caption('') | |
new_title = '<h5 style="color:Black;">Post Processing Steps:</h5>' | |
st.markdown(new_title, unsafe_allow_html=True) | |
code = '''def representative_sampling(): | |
for each_class in category_list: | |
embeddings = get_resnet50_embeddings(each_class) | |
n_cluster = run_hierarchical_clustering(embeddings) | |
samples = get_representative_n_samples_within_each_cluster(n_cluster)''' | |
st.code(code, language='python') | |
with st.expander('Training Data Info after Representative Sampling'): | |
# new_title = '<h5 style="color:Black;">Training Set Info after Representative Sampling:</h5>' | |
# st.markdown(new_title, unsafe_allow_html=True) | |
col1, col2 = st.columns((1,1)) | |
with col1: | |
st.caption('Number of Images per Category') | |
st.image(f'{ROOT_FIG_DIR}/train_filter_category_dist.png') | |
with col2: | |
st.caption('Aspect ratio') | |
st.image(f'{ROOT_FIG_DIR}/train_filter_aspectratio_dist.png') | |
st.caption('Image Samples') | |
st.image(f'{ROOT_FIG_DIR}/train_samples.png') | |
st.write("Model Input Size Resizing: 180x180x3") | |
# st.caption('Post Processing Steps:') | |
# code = '''def representative_sampling(): | |
# ... for class_i in category_list: | |
# ... print("Hello, Streamlit!")''' | |
# st.code(code, language='python') | |
# st.code('for class_i in category_list: hiearhical_cluster(class_i)') | |
def get_developer_page_layout(): | |
st.header("Developer") | |
markdown = """ | |
1. For the [GitHub repository](https://github.com/giswqs/streamlit-multipage-template) or [use it as a template](https://github.com/giswqs/streamlit-multipage-template/generate) for your own project. | |
2. Customize the sidebar by changing the sidebar text and logo in each Python files. | |
3. Find your favorite emoji from https://emojipedia.org. | |
""" | |
st.markdown(markdown) | |