From f6090be94f51b3e01617712f636e79b12fbc35f8 Mon Sep 17 00:00:00 2001 From: Daniel Strobl <50872326+danielStrobl@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:06:36 +0100 Subject: [PATCH 1/5] Update isolated_labels.py --- scib/metrics/isolated_labels.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scib/metrics/isolated_labels.py b/scib/metrics/isolated_labels.py index 74aa873c..19fe10d1 100644 --- a/scib/metrics/isolated_labels.py +++ b/scib/metrics/isolated_labels.py @@ -1,5 +1,6 @@ import pandas as pd from sklearn.metrics import f1_score +from sklearn.metrics import silhouette_samples from .clustering import cluster_optimal_resolution from .silhouette import silhouette @@ -227,7 +228,8 @@ def max_f1(adata, label_key, cluster_key, label, argmax=False): else: # AWS score between isolated label vs rest adata.obs[iso_label_key] = adata.obs[label_key] == isolated_label - score = silhouette(adata, iso_label_key, embed) + adata.obs['silhouette_temp'] = silhouette_samples(adata.obsm[embed], adata.obs[iso_label_key]) + score = adata.obs[adata.obs[iso_label_key]].silhouette_temp.mean() if verbose: print(f"{isolated_label}: {score}") From 1527bc73410ce71435bf7bcca468502aa77305be Mon Sep 17 00:00:00 2001 From: Daniel Strobl <50872326+danielStrobl@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:18:54 +0100 Subject: [PATCH 2/5] Update test_isolated_label.py --- tests/metrics/test_isolated_label.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/metrics/test_isolated_label.py b/tests/metrics/test_isolated_label.py index 319fb3b6..378083cb 100644 --- a/tests/metrics/test_isolated_label.py +++ b/tests/metrics/test_isolated_label.py @@ -43,7 +43,7 @@ def test_isolated_labels_ASW(adata_pca): verbose=True, ) LOGGER.info(f"score: {score}") - assert_near_exact(score, 0.6101431176066399, diff=1e-3) + assert_near_exact(score, 0.1938440054655075, diff=1e-3) def test_isolated_labels_perfect(adata_pca): From 6f39eda95c0a115f43c1d234767dc88288db6654 Mon Sep 17 00:00:00 2001 From: Daniel Strobl <50872326+danielStrobl@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:21:11 +0100 Subject: [PATCH 3/5] Update isolated_labels.py --- scib/metrics/isolated_labels.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scib/metrics/isolated_labels.py b/scib/metrics/isolated_labels.py index 19fe10d1..797f57b3 100644 --- a/scib/metrics/isolated_labels.py +++ b/scib/metrics/isolated_labels.py @@ -1,9 +1,7 @@ import pandas as pd -from sklearn.metrics import f1_score -from sklearn.metrics import silhouette_samples +from sklearn.metrics import f1_score, silhouette_samples from .clustering import cluster_optimal_resolution -from .silhouette import silhouette def isolated_labels_f1( @@ -228,7 +226,9 @@ def max_f1(adata, label_key, cluster_key, label, argmax=False): else: # AWS score between isolated label vs rest adata.obs[iso_label_key] = adata.obs[label_key] == isolated_label - adata.obs['silhouette_temp'] = silhouette_samples(adata.obsm[embed], adata.obs[iso_label_key]) + adata.obs['silhouette_temp'] = silhouette_samples( + adata.obsm[embed], adata.obs[iso_label_key] + ) score = adata.obs[adata.obs[iso_label_key]].silhouette_temp.mean() if verbose: From 0bcb445b53ed4e59454ba2a1e4be81d06e29955c Mon Sep 17 00:00:00 2001 From: Daniel Strobl <50872326+danielStrobl@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:22:55 +0100 Subject: [PATCH 4/5] Update isolated_labels.py --- scib/metrics/isolated_labels.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scib/metrics/isolated_labels.py b/scib/metrics/isolated_labels.py index 797f57b3..c488d333 100644 --- a/scib/metrics/isolated_labels.py +++ b/scib/metrics/isolated_labels.py @@ -226,7 +226,7 @@ def max_f1(adata, label_key, cluster_key, label, argmax=False): else: # AWS score between isolated label vs rest adata.obs[iso_label_key] = adata.obs[label_key] == isolated_label - adata.obs['silhouette_temp'] = silhouette_samples( + adata.obs["silhouette_temp"] = silhouette_samples( adata.obsm[embed], adata.obs[iso_label_key] ) score = adata.obs[adata.obs[iso_label_key]].silhouette_temp.mean() From 3aa8303a49cfb51a7560c60be399d5c4081ff528 Mon Sep 17 00:00:00 2001 From: Daniel Strobl <50872326+danielStrobl@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:36:42 +0100 Subject: [PATCH 5/5] Update test_silhouette_metrics.py --- tests/metrics/test_silhouette_metrics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/metrics/test_silhouette_metrics.py b/tests/metrics/test_silhouette_metrics.py index 6267560c..3225bd91 100644 --- a/tests/metrics/test_silhouette_metrics.py +++ b/tests/metrics/test_silhouette_metrics.py @@ -53,4 +53,4 @@ def test_isolated_labels_silhouette(adata_pca): verbose=True, ) LOGGER.info(f"score: {score}") - assert_near_exact(score, 0.6101431176066399, diff=1e-3) + assert_near_exact(score, 0.1938440054655075, diff=1e-3)