Skip to content
Snippets Groups Projects
Commit 5b696240 authored by Nicolas Barthes's avatar Nicolas Barthes
Browse files

added automated simple interface with default values

parent f920a27c
No related branches found
No related tags found
No related merge requests found
from Packages import *
st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide")
from Modules import *
repertoire_a_vider = 'D:/Mouhcine/nirs_workflow/src/Report/figures'
# empty temp figures
repertoire_a_vider = 'D:/Mouhcine/nirs_workflow/src/Report/figures'
if os.path.exists(repertoire_a_vider):
for fichier in os.listdir(repertoire_a_vider):
chemin_fichier = os.path.join(repertoire_a_vider, fichier)
......@@ -11,27 +12,40 @@ if os.path.exists(repertoire_a_vider):
elif os.path.isdir(chemin_fichier):
shutil.rmtree(chemin_fichier)
# HTML pour le bandeau "CEFE - CNRS"
# bandeau_html = """
# <div style="width: 100%; background-color: #4682B4; padding: 10px; margin-bottom: 10px;">
# <h1 style="text-align: center; color: white;">CEFE - CNRS</h1>
# </div>
# """
# # Injecter le code HTML du bandeau
# st.markdown(bandeau_html, unsafe_allow_html=True)
add_header()
#load specific model page css
local_css(css_file / "style_model.css")
#define some variables
tcr=pd.DataFrame()
sam=pd.DataFrame()
sam1=pd.DataFrame()
dim_red_methods=['', 'PCA','UMAP', 'NMF'] # List of dimensionality reduction algos
cluster_methods = ['', 'Kmeans','HDBSCAN', 'AP'] # List of clustering algos
selec_strategy = ['center','random']
# path = os.path.dirname(os.path.abspath(__file__)).replace('\\','/')
# css_file = path[:path.find('/pages')]+'/style'
# local_css(css_file +"/style_model.css")
local_css(css_file / "style_model.css")
# check session state and define default values if simple interface to automate processing
st.session_state["interface"] = st.session_state.get('interface')
if st.session_state["interface"] == 'simple':
st.write(':red[Automated Simple Interface]')
hide_pages("Predictions")
if 37 not in st.session_state:
default_reduction_option = 1
else:
default_reduction_option = dim_red_methods.index(st.session_state.get(37))
if 38 not in st.session_state:
default_clustering_option = 1
else:
default_clustering_option = cluster_methods.index(st.session_state.get(38))
if 102 not in st.session_state:
default_sample_selection_option = 1
else:
default_sample_selection_option = selec_strategy.index(st.session_state.get(102))
if st.session_state["interface"] == 'advanced':
default_reduction_option = 0
default_clustering_option = 0
default_sample_selection_option = 0
################################### I - Data Loading and Visualization ########################################
st.header("I - Spectral Data Visualization", divider='blue')
......@@ -111,9 +125,6 @@ scores, loadings, pc = st.columns([2, 3, 0.5])
influence, hotelling, qexp = st.columns([2, 2, 1])
st.header('III - Selected samples for chemical analysis', divider='blue')
dim_red_methods=['', 'PCA','UMAP', 'NMF'] # List of dimensionality reduction algos
cluster_methods = ['', 'Kmeans','HDBSCAN', 'AP'] # List of clustering algos
dr_model = None # dimensionality reduction model
cl_model = None # clustering model
......@@ -122,8 +133,8 @@ t = pd.DataFrame # scores
p = pd.DataFrame # loadings
labels = []
if not spectra.empty:
dim_red_method = pc.selectbox("Dimensionality reduction techniques: ", options = dim_red_methods, key = 37)
clus_method = pc.selectbox("Clustering techniques: ", options = cluster_methods, key = 38)
dim_red_method = pc.selectbox("Dimensionality reduction techniques: ", options = dim_red_methods, index = default_reduction_option, key = 37)
clus_method = pc.selectbox("Clustering techniques: ", options = cluster_methods, index = default_clustering_option, key = 38)
xc = standardize(spectra, center=True, scale=False)
......@@ -196,7 +207,6 @@ if not t.empty:
#################################################### III - Samples selection using the reduced data preentation ######
selec_strategy = ['center','random']
samples_df_chem = pd.DataFrame
selected_samples = []
selected_samples_idx = []
......@@ -205,7 +215,7 @@ selected_samples_idx = []
if labels:
if clus_method:
selection = scores.radio('Select samples selection strategy:',
options = selec_strategy)
options = selec_strategy, index = default_sample_selection_option, key=102)
# Strategy 0
if selection == selec_strategy[0]:
# list samples at clusters centers - Use sklearn.metrics.pairwise_distances_argmin if you want more than 1 sample per cluster
......@@ -499,8 +509,8 @@ Ac_Km = ['Spectra_Plot.png', 'Elbow.png', 'graphe_loadings.png', 'plot_axe1_axe2
# Streamlit container
with st.container():
header3, header4 = st.columns(2)
if header3.button("Exporter le rapport"):
header3, = st.columns(1)
if header3.button("Export report"):
if test == '.csv':
if dim_red_method == dim_red_methods[1] and clus_method == cluster_methods[1]:
latex_report = report.report(sam, tcr, Nb_ech, nb_clu, 'sample', Ac_Km, 'csv', 'kmeans')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment