Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
NIRS_Workflow
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CEFE
PACE
NIRS_Workflow
Commits
5b696240
Commit
5b696240
authored
9 months ago
by
Nicolas Barthes
Browse files
Options
Downloads
Patches
Plain Diff
added automated simple interface with default values
parent
f920a27c
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/pages/1-samples_selection.py
+33
-23
33 additions, 23 deletions
src/pages/1-samples_selection.py
with
33 additions
and
23 deletions
src/pages/1-samples_selection.py
+
33
−
23
View file @
5b696240
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
(
"
Export
er le rap
port
"
):
header3
,
=
st
.
columns
(
1
)
if
header3
.
button
(
"
Export
re
port
"
):
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
'
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment