diff --git a/Class_Mod/UMAP_.py b/Class_Mod/UMAP_.py index 8d415ebb9b32761ea9c53c06a88363e0300206da..2bb51177a0329fa118e956d9a31b6359b158bc82 100644 --- a/Class_Mod/UMAP_.py +++ b/Class_Mod/UMAP_.py @@ -1,6 +1,6 @@ # UMAP function for the Sample Selection module -from Packages import * -from Class_Mod.DATA_HANDLING import * +from Packages import * +from Class_Mod.DATA_HANDLING import * class Umap: @@ -10,13 +10,14 @@ class Umap: def __init__(self, data_import, numerical_data, cat_data): self.x = data_import self.numerical_data = numerical_data - if len(cat_data) > 0: + if cat_data is None: + self.categorical_data_encoded = cat_data + elif len(cat_data) > 0: self.categorical_data = cat_data self.le = LabelEncoder() self.categorical_data_encoded = self.le.fit_transform(self.categorical_data) - else: - self.categorical_data = False + self.categorical_data_encoded = None self.model = UMAP(n_neighbors=20, n_components=3, min_dist=0.0, random_state=42,) self.model.fit(self.numerical_data, y = self.categorical_data_encoded) diff --git a/pages/1-samples_selection.py b/pages/1-samples_selection.py index 2edb875368402305ff6bcbf9bfdbe77a37fffecc..8f11ea69236a9609a6d1390ed68f70612263e161 100644 --- a/pages/1-samples_selection.py +++ b/pages/1-samples_selection.py @@ -88,7 +88,13 @@ if not spectra.empty: if dim_red_method == dim_red_methods[1]: dr_model = LinearPCA(xc, Ncomp=5) elif dim_red_method == dim_red_methods[2]: - dr_model = Umap(data_import = imp, numerical_data = MinMaxScale(spectra), cat_data = meta_data) + if not meta_data.empty: + filter = meta_data.columns[1:] + col = pc.selectbox('Supervised UMAP by:', options= filter, key=108) + supervised = meta_data[col] + else: + supervised = None + dr_model = Umap(data_import = imp, numerical_data = MinMaxScale(spectra), cat_data = supervised) if dr_model: axis1 = pc.selectbox("x-axis", options = dr_model.scores_.columns, index=0) @@ -109,7 +115,7 @@ if not t.empty: data, labels = cl_model.fit_optimal(nclusters = ncluster) elif clus_method == cluster_methods[2]: - optimized_hdbscan = Hdbscan(model.scores_raw_) + optimized_hdbscan = Hdbscan(dr_model.scores_raw_) labels, hdbscan_score = optimized_hdbscan.HDBSCAN_scores_ ##### Plots