From 63928e2627c553187d96e53199fa313e5ea576bf Mon Sep 17 00:00:00 2001 From: d33bs Date: Fri, 25 Oct 2024 15:38:22 -0600 Subject: [PATCH 1/4] count unique values --- 0.download_data/2.download_images.ipynb | 36 ++++++++++++++++++++++++- 0.download_data/2.download_images.py | 9 +++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/0.download_data/2.download_images.ipynb b/0.download_data/2.download_images.ipynb index 50da74f..7935c85 100644 --- a/0.download_data/2.download_images.ipynb +++ b/0.download_data/2.download_images.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 8, "id": "e141e8a5-8efb-44cd-a730-5155b8ef7984", "metadata": {}, "outputs": [], @@ -28,6 +28,32 @@ "from cloudpathlib import S3Client" ] }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3ca9b76c-89cb-42e2-a656-96327bb95abd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Image_FileName_OrigAGP 3455\n", + "dtype: int64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_parquet(\n", + " \"../0.download_data/data/plates/BR00117006/BR00117006.parquet\",\n", + " columns=[\"Image_FileName_OrigAGP\"],\n", + ")\n", + "df[[\"Image_FileName_OrigAGP\"]].nunique()" + ] + }, { "cell_type": "code", "execution_count": 2, @@ -163,6 +189,14 @@ " return \"data/images\"" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa70898c-ed4b-4f99-99ce-630151156254", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 3, diff --git a/0.download_data/2.download_images.py b/0.download_data/2.download_images.py index b42fab6..cc03425 100644 --- a/0.download_data/2.download_images.py +++ b/0.download_data/2.download_images.py @@ -26,6 +26,13 @@ import pyarrow as pa import pyarrow.parquet as pq from cloudpathlib import S3Client +# - + +df = pd.read_parquet( + "../0.download_data/data/plates/BR00117006/BR00117006.parquet", + columns=["Image_FileName_OrigAGP"], +) +df[["Image_FileName_OrigAGP"]].nunique() # + @@ -155,6 +162,8 @@ def download_jump_cpg000_images_from_s3( image_cloudpath.download_to(candidate_path) return "data/images" +# - + # + From aee6fb6c76c4108aca97146ae53bc756d05dcac8 Mon Sep 17 00:00:00 2001 From: d33bs Date: Fri, 25 Oct 2024 17:05:54 -0600 Subject: [PATCH 2/4] download dataset --- 0.download_data/2.download_images.ipynb | 836 +++++++++++++++++++++++- 0.download_data/2.download_images.py | 27 +- 2 files changed, 826 insertions(+), 37 deletions(-) diff --git a/0.download_data/2.download_images.ipynb b/0.download_data/2.download_images.ipynb index 7935c85..bf3a5f8 100644 --- a/0.download_data/2.download_images.ipynb +++ b/0.download_data/2.download_images.ipynb @@ -28,32 +28,6 @@ "from cloudpathlib import S3Client" ] }, - { - "cell_type": "code", - "execution_count": 12, - "id": "3ca9b76c-89cb-42e2-a656-96327bb95abd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Image_FileName_OrigAGP 3455\n", - "dtype: int64" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.read_parquet(\n", - " \"../0.download_data/data/plates/BR00117006/BR00117006.parquet\",\n", - " columns=[\"Image_FileName_OrigAGP\"],\n", - ")\n", - "df[[\"Image_FileName_OrigAGP\"]].nunique()" - ] - }, { "cell_type": "code", "execution_count": 2, @@ -199,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 13, "id": "fe735499-3ed9-4214-9149-24f617001b71", "metadata": {}, "outputs": [ @@ -247,7 +221,7 @@ "source": [ "# reference the file without reading it entirely\n", "target_file = pq.ParquetFile(\n", - " \"../0.download_data/data/plates/BR00117006/BR00117006.parquet\"\n", + " (parquet_path := \"../0.download_data/data/plates/BR00117006/BR00117006.parquet\")\n", ")\n", "\n", "# target image names\n", @@ -434,6 +408,812 @@ " ),\n", ")" ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "18db7c02-8f43-4348-a1e0-e0d30209eb84", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Image_PathName_CellOutlinesImage_FileName_CellOutlinesImage_PathName_NucleiOutlinesImage_FileName_NucleiOutlinesImage_PathName_OrigAGPImage_FileName_OrigAGPImage_PathName_OrigDNAImage_FileName_OrigDNAImage_PathName_OrigRNAImage_FileName_OrigRNA
0/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch3sk1fk1fl1.tiff
1/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch3sk1fk1fl1.tiff
2/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch3sk1fk1fl1.tiff
3/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch3sk1fk1fl1.tiff
4/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch3sk1fk1fl1.tiff
.................................
491833/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiff
491834/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiff
491835/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiff
491836/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiff
491837/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiff
\n", + "

491838 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " Image_PathName_CellOutlines \\\n", + "0 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "1 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "2 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "3 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "4 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "... ... \n", + "491833 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491834 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491835 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491836 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491837 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "\n", + " Image_FileName_CellOutlines \\\n", + "0 A01_s1--cell_outlines.png \n", + "1 A01_s1--cell_outlines.png \n", + "2 A01_s1--cell_outlines.png \n", + "3 A01_s2--cell_outlines.png \n", + "4 A01_s2--cell_outlines.png \n", + "... ... \n", + "491833 B09_s2--cell_outlines.png \n", + "491834 B09_s2--cell_outlines.png \n", + "491835 B09_s2--cell_outlines.png \n", + "491836 B09_s2--cell_outlines.png \n", + "491837 B09_s2--cell_outlines.png \n", + "\n", + " Image_PathName_NucleiOutlines \\\n", + "0 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "1 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "2 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "3 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "4 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "... ... \n", + "491833 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491834 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491835 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491836 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491837 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "\n", + " Image_FileName_NucleiOutlines \\\n", + "0 A01_s1--nuclei_outlines.png \n", + "1 A01_s1--nuclei_outlines.png \n", + "2 A01_s1--nuclei_outlines.png \n", + "3 A01_s2--nuclei_outlines.png \n", + "4 A01_s2--nuclei_outlines.png \n", + "... ... \n", + "491833 B09_s2--nuclei_outlines.png \n", + "491834 B09_s2--nuclei_outlines.png \n", + "491835 B09_s2--nuclei_outlines.png \n", + "491836 B09_s2--nuclei_outlines.png \n", + "491837 B09_s2--nuclei_outlines.png \n", + "\n", + " Image_PathName_OrigAGP \\\n", + "0 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "1 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "2 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "3 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "4 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "... ... \n", + "491833 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491834 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491835 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491836 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491837 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "\n", + " Image_FileName_OrigAGP \\\n", + "0 r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "\n", + " Image_PathName_OrigDNA \\\n", + "0 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "1 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "2 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "3 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "4 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "... ... \n", + "491833 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491834 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491835 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491836 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491837 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "\n", + " Image_FileName_OrigDNA \\\n", + "0 r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch5sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch5sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "\n", + " Image_PathName_OrigRNA \\\n", + "0 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "1 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "2 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "3 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "4 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "... ... \n", + "491833 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491834 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491835 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491836 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491837 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "\n", + " Image_FileName_OrigRNA \n", + "0 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "\n", + "[491838 rows x 10 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# read the full data\n", + "df_full = pd.read_parquet(parquet_path, columns=target_flattened_columns)\n", + "df_full" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "8276ad8e-1041-46a6-8255-acea88abb1b0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Image_PathName_CellOutlinesImage_FileName_CellOutlinesImage_PathName_NucleiOutlinesImage_FileName_NucleiOutlinesImage_PathName_OrigAGPImage_FileName_OrigAGPImage_PathName_OrigDNAImage_FileName_OrigDNAImage_PathName_OrigRNAImage_FileName_OrigRNAImage_S3Path_CellOutlinesImage_S3Path_NucleiOutlinesImage_S3Path_OrigAGPImage_S3Path_OrigDNAImage_S3Path_OrigRNA
0/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
1/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
2/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s1--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f01p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
3/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
4/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...A01_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r01c01f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
................................................
491833/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
491834/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
491835/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
491836/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
491837/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--cell_outlines.png/home/ubuntu/local_output/BR00117006/analysis/...B09_s2--nuclei_outlines.png/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch2sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch5sk1fk1fl1.tiff/home/ubuntu/local_input/projects/2019_07_11_J...r02c09f02p01-ch3sk1fk1fl1.tiffs3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...s3://cellpainting-gallery/cpg0000-jump-pilot/s...
\n", + "

491838 rows × 15 columns

\n", + "
" + ], + "text/plain": [ + " Image_PathName_CellOutlines \\\n", + "0 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "1 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "2 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "3 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "4 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "... ... \n", + "491833 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491834 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491835 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491836 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491837 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "\n", + " Image_FileName_CellOutlines \\\n", + "0 A01_s1--cell_outlines.png \n", + "1 A01_s1--cell_outlines.png \n", + "2 A01_s1--cell_outlines.png \n", + "3 A01_s2--cell_outlines.png \n", + "4 A01_s2--cell_outlines.png \n", + "... ... \n", + "491833 B09_s2--cell_outlines.png \n", + "491834 B09_s2--cell_outlines.png \n", + "491835 B09_s2--cell_outlines.png \n", + "491836 B09_s2--cell_outlines.png \n", + "491837 B09_s2--cell_outlines.png \n", + "\n", + " Image_PathName_NucleiOutlines \\\n", + "0 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "1 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "2 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "3 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "4 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "... ... \n", + "491833 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491834 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491835 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491836 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "491837 /home/ubuntu/local_output/BR00117006/analysis/... \n", + "\n", + " Image_FileName_NucleiOutlines \\\n", + "0 A01_s1--nuclei_outlines.png \n", + "1 A01_s1--nuclei_outlines.png \n", + "2 A01_s1--nuclei_outlines.png \n", + "3 A01_s2--nuclei_outlines.png \n", + "4 A01_s2--nuclei_outlines.png \n", + "... ... \n", + "491833 B09_s2--nuclei_outlines.png \n", + "491834 B09_s2--nuclei_outlines.png \n", + "491835 B09_s2--nuclei_outlines.png \n", + "491836 B09_s2--nuclei_outlines.png \n", + "491837 B09_s2--nuclei_outlines.png \n", + "\n", + " Image_PathName_OrigAGP \\\n", + "0 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "1 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "2 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "3 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "4 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "... ... \n", + "491833 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491834 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491835 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491836 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491837 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "\n", + " Image_FileName_OrigAGP \\\n", + "0 r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "\n", + " Image_PathName_OrigDNA \\\n", + "0 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "1 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "2 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "3 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "4 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "... ... \n", + "491833 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491834 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491835 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491836 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491837 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "\n", + " Image_FileName_OrigDNA \\\n", + "0 r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch5sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch5sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "\n", + " Image_PathName_OrigRNA \\\n", + "0 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "1 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "2 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "3 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "4 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "... ... \n", + "491833 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491834 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491835 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491836 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "491837 /home/ubuntu/local_input/projects/2019_07_11_J... \n", + "\n", + " Image_FileName_OrigRNA \\\n", + "0 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "\n", + " Image_S3Path_CellOutlines \\\n", + "0 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "1 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "2 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "3 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "4 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "... ... \n", + "491833 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491834 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491835 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491836 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491837 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "\n", + " Image_S3Path_NucleiOutlines \\\n", + "0 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "1 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "2 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "3 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "4 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "... ... \n", + "491833 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491834 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491835 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491836 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491837 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "\n", + " Image_S3Path_OrigAGP \\\n", + "0 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "1 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "2 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "3 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "4 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "... ... \n", + "491833 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491834 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491835 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491836 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491837 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "\n", + " Image_S3Path_OrigDNA \\\n", + "0 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "1 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "2 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "3 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "4 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "... ... \n", + "491833 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491834 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491835 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491836 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491837 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "\n", + " Image_S3Path_OrigRNA \n", + "0 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "1 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "2 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "3 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "4 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "... ... \n", + "491833 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491834 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491835 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491836 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "491837 s3://cellpainting-gallery/cpg0000-jump-pilot/s... \n", + "\n", + "[491838 rows x 15 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find the s3 paths for the full dataset\n", + "df_full, s3_columns = add_jump_cpg0000_s3_paths(\n", + " df=df_full, image_column_groups=target_image_column_groups\n", + ")\n", + "df_full" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f73ed70a-ddbf-4337-853e-d30c0b8dd000", + "metadata": {}, + "outputs": [], + "source": [ + "# download the images for the dataset\n", + "image_path = download_jump_cpg000_images_from_s3(\n", + " df=df_full, s3_columns=s3_columns, data_path=\"data/images\"\n", + ")" + ] } ], "metadata": { diff --git a/0.download_data/2.download_images.py b/0.download_data/2.download_images.py index cc03425..e78ec19 100644 --- a/0.download_data/2.download_images.py +++ b/0.download_data/2.download_images.py @@ -26,13 +26,6 @@ import pyarrow as pa import pyarrow.parquet as pq from cloudpathlib import S3Client -# - - -df = pd.read_parquet( - "../0.download_data/data/plates/BR00117006/BR00117006.parquet", - columns=["Image_FileName_OrigAGP"], -) -df[["Image_FileName_OrigAGP"]].nunique() # + @@ -162,14 +155,15 @@ def download_jump_cpg000_images_from_s3( image_cloudpath.download_to(candidate_path) return "data/images" -# - +# - + # + # reference the file without reading it entirely target_file = pq.ParquetFile( - "../0.download_data/data/plates/BR00117006/BR00117006.parquet" + (parquet_path := "../0.download_data/data/plates/BR00117006/BR00117006.parquet") ) # target image names @@ -252,3 +246,18 @@ def download_jump_cpg000_images_from_s3( indent=4, ), ) + +# read the full data +df_full = pd.read_parquet(parquet_path, columns=target_flattened_columns) +df_full + +# find the s3 paths for the full dataset +df_full, s3_columns = add_jump_cpg0000_s3_paths( + df=df_full, image_column_groups=target_image_column_groups +) +df_full + +# download the images for the dataset +image_path = download_jump_cpg000_images_from_s3( + df=df_full, s3_columns=s3_columns, data_path="data/images" +) From 4cd8ca9452a03f7a4bc02519785b4c619a4c0727 Mon Sep 17 00:00:00 2001 From: d33bs Date: Thu, 31 Oct 2024 09:39:38 -0600 Subject: [PATCH 3/4] add cosmicqc dependencies --- environment.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index 3c4924d..d015592 100644 --- a/environment.yml +++ b/environment.yml @@ -18,6 +18,16 @@ dependencies: - conda-forge::requests - conda-forge::seaborn - conda-forge::scikit-posthocs + # used for cosmicqc quality control visualizations + - conda-forge::hvplot + - conda-forge::plotly + - conda-forge::umap-learn + - conda-forge::ipywidgets + - conda-forge::fsspec + - conda-forge::s3fs + - conda-forge::datashader + - conda-forge::selenium + - conda-forge::dask # used for managing jupyter environments - conda-forge::notebook - conda-forge::jupyterlab @@ -34,7 +44,8 @@ dependencies: # used for formatting code within .ipynb files - conda-forge::jupyterlab_code_formatter - pip: - - git+https://github.com/cytomining/pycytominer.git@8e3c28d3b81efd2c241d4c792edfefaa46698115 + - pycytominer - lmoments3 - cytotable==0.0.10 - cloudpathlib + - cosmicqc From ee6c0ad9e7b545074f5584bcdee2ca944c38c38d Mon Sep 17 00:00:00 2001 From: d33bs Date: Thu, 31 Oct 2024 10:23:35 -0600 Subject: [PATCH 4/4] add cosmicqc umap analysis --- .../0.jump_umap_analysis_with_cosmicqc.ipynb | 4378 +++++++++++++++++ .../0.jump_umap_analysis_with_cosmicqc.py | 662 +++ ..._without_erroneous_outliers_BR00117006.png | Bin 0 -> 83624 bytes .../umap_erroneous_outliers_BR00117006.png | Bin 0 -> 61546 bytes .../umap_with_all_outliers_BR00117006.png | Bin 0 -> 52127 bytes .../umap_without_outliers_BR00117006.png | Bin 0 -> 54267 bytes 0.5.quality_control/run.sh | 10 + justfile | 7 + 8 files changed, 5057 insertions(+) create mode 100644 0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.ipynb create mode 100644 0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.py create mode 100644 0.5.quality_control/images/umap_comparison_with_and_without_erroneous_outliers_BR00117006.png create mode 100644 0.5.quality_control/images/umap_erroneous_outliers_BR00117006.png create mode 100644 0.5.quality_control/images/umap_with_all_outliers_BR00117006.png create mode 100644 0.5.quality_control/images/umap_without_outliers_BR00117006.png create mode 100644 0.5.quality_control/run.sh diff --git a/0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.ipynb b/0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.ipynb new file mode 100644 index 0000000..daf7a03 --- /dev/null +++ b/0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.ipynb @@ -0,0 +1,4378 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "de21d523-849f-439f-bf04-12ca746c94c4", + "metadata": {}, + "source": [ + "# UMAP outlier analysis with coSMicQC\n", + "\n", + "This notebook analyzes [JUMP](https://jump-cellpainting.broadinstitute.org/) data (`cpg0000-jump-pilot`) by leveraging [UMAP](https://arxiv.org/abs/1802.03426) and [coSMicQC](https://github.com/WayScience/coSMicQC).\n", + "\n", + "## Outline\n", + "\n", + "We focus on a single file from the JUMP dataset: [`BR00117006.sqlite`](https://open.quiltdata.com/b/cellpainting-gallery/tree/cpg0000-jump-pilot/source_4/workspace/backend/2020_11_04_CPJUMP1/BR00117006/BR00117006.sqlite).\n", + "This file is downloaded and prepared by [CytoTable](https://github.com/cytomining/CytoTable) to form a single-cell [Parquet](https://parquet.apache.org/) file which includes all compartment feature data at the single-cell level (performed in step 0, outside of this notebook).\n", + "We use coSMicQC to find and remove erroneous outlier data in order to prepare for UMAP analysis.\n", + "Afterwards, we use UMAP to demonstrate patterns within the data." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "bc8482c5-b7f4-48c8-aa5e-718aae9ee8be", + "metadata": { + "editable": true, + "lines_to_end_of_cell_marker": 2, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "(function(root) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + " var py_version = '3.4.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", + " var reloading = false;\n", + " var Bokeh = root.Bokeh;\n", + "\n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n", + " root._bokeh_timeout = Date.now() + 5000;\n", + " root._bokeh_failed_load = false;\n", + " }\n", + "\n", + " function run_callbacks() {\n", + " try {\n", + " root._bokeh_onload_callbacks.forEach(function(callback) {\n", + " if (callback != null)\n", + " callback();\n", + " });\n", + " } finally {\n", + " delete root._bokeh_onload_callbacks;\n", + " }\n", + " console.debug(\"Bokeh: all callbacks have finished\");\n", + " }\n", + "\n", + " function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n", + " if (css_urls == null) css_urls = [];\n", + " if (js_urls == null) js_urls = [];\n", + " if (js_modules == null) js_modules = [];\n", + " if (js_exports == null) js_exports = {};\n", + "\n", + " root._bokeh_onload_callbacks.push(callback);\n", + "\n", + " if (root._bokeh_is_loading > 0) {\n", + " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", + " return null;\n", + " }\n", + " if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n", + " run_callbacks();\n", + " return null;\n", + " }\n", + " if (!reloading) {\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " }\n", + "\n", + " function on_load() {\n", + " root._bokeh_is_loading--;\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", + " run_callbacks()\n", + " }\n", + " }\n", + " window._bokeh_on_load = on_load\n", + "\n", + " function on_error() {\n", + " console.error(\"failed to load \" + url);\n", + " }\n", + "\n", + " var skip = [];\n", + " if (window.requirejs) {\n", + " window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n", + " root._bokeh_is_loading = css_urls.length + 0;\n", + " } else {\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n", + " }\n", + "\n", + " var existing_stylesheets = []\n", + " var links = document.getElementsByTagName('link')\n", + " for (var i = 0; i < links.length; i++) {\n", + " var link = links[i]\n", + " if (link.href != null) {\n", + "\texisting_stylesheets.push(link.href)\n", + " }\n", + " }\n", + " for (var i = 0; i < css_urls.length; i++) {\n", + " var url = css_urls[i];\n", + " if (existing_stylesheets.indexOf(url) !== -1) {\n", + "\ton_load()\n", + "\tcontinue;\n", + " }\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " } var existing_scripts = []\n", + " var scripts = document.getElementsByTagName('script')\n", + " for (var i = 0; i < scripts.length; i++) {\n", + " var script = scripts[i]\n", + " if (script.src != null) {\n", + "\texisting_scripts.push(script.src)\n", + " }\n", + " }\n", + " for (var i = 0; i < js_urls.length; i++) {\n", + " var url = js_urls[i];\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.src = url;\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " for (var i = 0; i < js_modules.length; i++) {\n", + " var url = js_modules[i];\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.src = url;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " for (const name in js_exports) {\n", + " var url = js_exports[name];\n", + " if (skip.indexOf(url) >= 0 || root[name] != null) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " element.textContent = `\n", + " import ${name} from \"${url}\"\n", + " window.${name} = ${name}\n", + " window._bokeh_on_load()\n", + " `\n", + " document.head.appendChild(element);\n", + " }\n", + " if (!js_urls.length && !js_modules.length) {\n", + " on_load()\n", + " }\n", + " };\n", + "\n", + " function inject_raw_css(css) {\n", + " const element = document.createElement(\"style\");\n", + " element.appendChild(document.createTextNode(css));\n", + " document.body.appendChild(element);\n", + " }\n", + "\n", + " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.4.2.min.js\", \"https://cdn.holoviz.org/panel/1.4.5/dist/panel.min.js\"];\n", + " var js_modules = [];\n", + " var js_exports = {};\n", + " var css_urls = [];\n", + " var inline_js = [ function(Bokeh) {\n", + " Bokeh.set_log_level(\"info\");\n", + " },\n", + "function(Bokeh) {} // ensure no trailing comma for IE\n", + " ];\n", + "\n", + " function run_inline_js() {\n", + " if ((root.Bokeh !== undefined) || (force === true)) {\n", + " for (var i = 0; i < inline_js.length; i++) {\n", + "\ttry {\n", + " inline_js[i].call(root, root.Bokeh);\n", + "\t} catch(e) {\n", + "\t if (!reloading) {\n", + "\t throw e;\n", + "\t }\n", + "\t}\n", + " }\n", + " // Cache old bokeh versions\n", + " if (Bokeh != undefined && !reloading) {\n", + "\tvar NewBokeh = root.Bokeh;\n", + "\tif (Bokeh.versions === undefined) {\n", + "\t Bokeh.versions = new Map();\n", + "\t}\n", + "\tif (NewBokeh.version !== Bokeh.version) {\n", + "\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n", + "\t}\n", + "\troot.Bokeh = Bokeh;\n", + " }} else if (Date.now() < root._bokeh_timeout) {\n", + " setTimeout(run_inline_js, 100);\n", + " } else if (!root._bokeh_failed_load) {\n", + " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", + " root._bokeh_failed_load = true;\n", + " }\n", + " root._bokeh_is_initializing = false\n", + " }\n", + "\n", + " function load_or_wait() {\n", + " // Implement a backoff loop that tries to ensure we do not load multiple\n", + " // versions of Bokeh and its dependencies at the same time.\n", + " // In recent versions we use the root._bokeh_is_initializing flag\n", + " // to determine whether there is an ongoing attempt to initialize\n", + " // bokeh, however for backward compatibility we also try to ensure\n", + " // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n", + " // before older versions are fully initialized.\n", + " if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n", + " root._bokeh_is_initializing = false;\n", + " root._bokeh_onload_callbacks = undefined;\n", + " console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n", + " load_or_wait();\n", + " } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n", + " setTimeout(load_or_wait, 100);\n", + " } else {\n", + " root._bokeh_is_initializing = true\n", + " root._bokeh_onload_callbacks = []\n", + " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", + " if (!reloading && !bokeh_loaded) {\n", + "\troot.Bokeh = undefined;\n", + " }\n", + " load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n", + "\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + "\trun_inline_js();\n", + " });\n", + " }\n", + " }\n", + " // Give older versions of the autoload script a head-start to ensure\n", + " // they initialize before we start loading newer version.\n", + " setTimeout(load_or_wait, 100)\n", + "}(window));" + ], + "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.4.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n root._bokeh_is_loading = css_urls.length + 0;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.4.2.min.js\", \"https://cdn.holoviz.org/panel/1.4.5/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n", + " window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n", + "}\n", + "\n", + "\n", + " function JupyterCommManager() {\n", + " }\n", + "\n", + " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", + " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " comm_manager.register_target(comm_id, function(comm) {\n", + " comm.on_msg(msg_handler);\n", + " });\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", + " comm.onMsg = msg_handler;\n", + " });\n", + " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", + " google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n", + " var messages = comm.messages[Symbol.asyncIterator]();\n", + " function processIteratorResult(result) {\n", + " var message = result.value;\n", + " console.log(message)\n", + " var content = {data: message.data, comm_id};\n", + " var buffers = []\n", + " for (var buffer of message.buffers || []) {\n", + " buffers.push(new DataView(buffer))\n", + " }\n", + " var metadata = message.metadata || {};\n", + " var msg = {content, buffers, metadata}\n", + " msg_handler(msg);\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " return messages.next().then(processIteratorResult);\n", + " })\n", + " }\n", + " }\n", + "\n", + " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", + " if (comm_id in window.PyViz.comms) {\n", + " return window.PyViz.comms[comm_id];\n", + " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", + " if (msg_handler) {\n", + " comm.on_msg(msg_handler);\n", + " }\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", + " comm.open();\n", + " if (msg_handler) {\n", + " comm.onMsg = msg_handler;\n", + " }\n", + " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", + " var comm_promise = google.colab.kernel.comms.open(comm_id)\n", + " comm_promise.then((comm) => {\n", + " window.PyViz.comms[comm_id] = comm;\n", + " if (msg_handler) {\n", + " var messages = comm.messages[Symbol.asyncIterator]();\n", + " function processIteratorResult(result) {\n", + " var message = result.value;\n", + " var content = {data: message.data};\n", + " var metadata = message.metadata || {comm_id};\n", + " var msg = {content, metadata}\n", + " msg_handler(msg);\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " }) \n", + " var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n", + " return comm_promise.then((comm) => {\n", + " comm.send(data, metadata, buffers, disposeOnDone);\n", + " });\n", + " };\n", + " var comm = {\n", + " send: sendClosure\n", + " };\n", + " }\n", + " window.PyViz.comms[comm_id] = comm;\n", + " return comm;\n", + " }\n", + " window.PyViz.comm_manager = new JupyterCommManager();\n", + " \n", + "\n", + "\n", + "var JS_MIME_TYPE = 'application/javascript';\n", + "var HTML_MIME_TYPE = 'text/html';\n", + "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", + "var CLASS_NAME = 'output';\n", + "\n", + "/**\n", + " * Render data to the DOM node\n", + " */\n", + "function render(props, node) {\n", + " var div = document.createElement(\"div\");\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(div);\n", + " node.appendChild(script);\n", + "}\n", + "\n", + "/**\n", + " * Handle when a new output is added\n", + " */\n", + "function handle_add_output(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + " if (id !== undefined) {\n", + " var nchildren = toinsert.length;\n", + " var html_node = toinsert[nchildren-1].children[0];\n", + " html_node.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var scripts = [];\n", + " var nodelist = html_node.querySelectorAll(\"script\");\n", + " for (var i in nodelist) {\n", + " if (nodelist.hasOwnProperty(i)) {\n", + " scripts.push(nodelist[i])\n", + " }\n", + " }\n", + "\n", + " scripts.forEach( function (oldScript) {\n", + " var newScript = document.createElement(\"script\");\n", + " var attrs = [];\n", + " var nodemap = oldScript.attributes;\n", + " for (var j in nodemap) {\n", + " if (nodemap.hasOwnProperty(j)) {\n", + " attrs.push(nodemap[j])\n", + " }\n", + " }\n", + " attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n", + " newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n", + " oldScript.parentNode.replaceChild(newScript, oldScript);\n", + " });\n", + " if (JS_MIME_TYPE in output.data) {\n", + " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", + " }\n", + " output_area._hv_plot_id = id;\n", + " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", + " window.PyViz.plot_index[id] = Bokeh.index[id];\n", + " } else {\n", + " window.PyViz.plot_index[id] = null;\n", + " }\n", + " } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", + " var bk_div = document.createElement(\"div\");\n", + " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var script_attrs = bk_div.children[0].attributes;\n", + " for (var i = 0; i < script_attrs.length; i++) {\n", + " toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n", + " }\n", + " // store reference to server id on output_area\n", + " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + "function handle_clear_output(event, handle) {\n", + " var id = handle.cell.output_area._hv_plot_id;\n", + " var server_id = handle.cell.output_area._bokeh_server_id;\n", + " if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n", + " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", + " if (server_id !== null) {\n", + " comm.send({event_type: 'server_delete', 'id': server_id});\n", + " return;\n", + " } else if (comm !== null) {\n", + " comm.send({event_type: 'delete', 'id': id});\n", + " }\n", + " delete PyViz.plot_index[id];\n", + " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", + " var doc = window.Bokeh.index[id].model.document\n", + " doc.clear();\n", + " const i = window.Bokeh.documents.indexOf(doc);\n", + " if (i > -1) {\n", + " window.Bokeh.documents.splice(i, 1);\n", + " }\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle kernel restart event\n", + " */\n", + "function handle_kernel_cleanup(event, handle) {\n", + " delete PyViz.comms[\"hv-extension-comm\"];\n", + " window.PyViz.plot_index = {}\n", + "}\n", + "\n", + "/**\n", + " * Handle update_display_data messages\n", + " */\n", + "function handle_update_output(event, handle) {\n", + " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", + " handle_add_output(event, handle)\n", + "}\n", + "\n", + "function register_renderer(events, OutputArea) {\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[0]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " events.on('output_added.OutputArea', handle_add_output);\n", + " events.on('output_updated.OutputArea', handle_update_output);\n", + " events.on('clear_output.CodeCell', handle_clear_output);\n", + " events.on('delete.Cell', handle_clear_output);\n", + " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", + "\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " safe: true,\n", + " index: 0\n", + " });\n", + "}\n", + "\n", + "if (window.Jupyter !== undefined) {\n", + " try {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " } catch(err) {\n", + " }\n", + "}\n" + ], + "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
\n", + "
\n", + "
\n", + "" + ] + }, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "p1002" + } + }, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "(function(root) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + " var py_version = '3.4.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", + " var reloading = true;\n", + " var Bokeh = root.Bokeh;\n", + "\n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n", + " root._bokeh_timeout = Date.now() + 5000;\n", + " root._bokeh_failed_load = false;\n", + " }\n", + "\n", + " function run_callbacks() {\n", + " try {\n", + " root._bokeh_onload_callbacks.forEach(function(callback) {\n", + " if (callback != null)\n", + " callback();\n", + " });\n", + " } finally {\n", + " delete root._bokeh_onload_callbacks;\n", + " }\n", + " console.debug(\"Bokeh: all callbacks have finished\");\n", + " }\n", + "\n", + " function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n", + " if (css_urls == null) css_urls = [];\n", + " if (js_urls == null) js_urls = [];\n", + " if (js_modules == null) js_modules = [];\n", + " if (js_exports == null) js_exports = {};\n", + "\n", + " root._bokeh_onload_callbacks.push(callback);\n", + "\n", + " if (root._bokeh_is_loading > 0) {\n", + " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", + " return null;\n", + " }\n", + " if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n", + " run_callbacks();\n", + " return null;\n", + " }\n", + " if (!reloading) {\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " }\n", + "\n", + " function on_load() {\n", + " root._bokeh_is_loading--;\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", + " run_callbacks()\n", + " }\n", + " }\n", + " window._bokeh_on_load = on_load\n", + "\n", + " function on_error() {\n", + " console.error(\"failed to load \" + url);\n", + " }\n", + "\n", + " var skip = [];\n", + " if (window.requirejs) {\n", + " window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n", + " root._bokeh_is_loading = css_urls.length + 0;\n", + " } else {\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n", + " }\n", + "\n", + " var existing_stylesheets = []\n", + " var links = document.getElementsByTagName('link')\n", + " for (var i = 0; i < links.length; i++) {\n", + " var link = links[i]\n", + " if (link.href != null) {\n", + "\texisting_stylesheets.push(link.href)\n", + " }\n", + " }\n", + " for (var i = 0; i < css_urls.length; i++) {\n", + " var url = css_urls[i];\n", + " if (existing_stylesheets.indexOf(url) !== -1) {\n", + "\ton_load()\n", + "\tcontinue;\n", + " }\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " } var existing_scripts = []\n", + " var scripts = document.getElementsByTagName('script')\n", + " for (var i = 0; i < scripts.length; i++) {\n", + " var script = scripts[i]\n", + " if (script.src != null) {\n", + "\texisting_scripts.push(script.src)\n", + " }\n", + " }\n", + " for (var i = 0; i < js_urls.length; i++) {\n", + " var url = js_urls[i];\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.src = url;\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " for (var i = 0; i < js_modules.length; i++) {\n", + " var url = js_modules[i];\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.src = url;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " for (const name in js_exports) {\n", + " var url = js_exports[name];\n", + " if (skip.indexOf(url) >= 0 || root[name] != null) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " element.textContent = `\n", + " import ${name} from \"${url}\"\n", + " window.${name} = ${name}\n", + " window._bokeh_on_load()\n", + " `\n", + " document.head.appendChild(element);\n", + " }\n", + " if (!js_urls.length && !js_modules.length) {\n", + " on_load()\n", + " }\n", + " };\n", + "\n", + " function inject_raw_css(css) {\n", + " const element = document.createElement(\"style\");\n", + " element.appendChild(document.createTextNode(css));\n", + " document.body.appendChild(element);\n", + " }\n", + "\n", + " var js_urls = [];\n", + " var js_modules = [];\n", + " var js_exports = {};\n", + " var css_urls = [];\n", + " var inline_js = [ function(Bokeh) {\n", + " Bokeh.set_log_level(\"info\");\n", + " },\n", + "function(Bokeh) {} // ensure no trailing comma for IE\n", + " ];\n", + "\n", + " function run_inline_js() {\n", + " if ((root.Bokeh !== undefined) || (force === true)) {\n", + " for (var i = 0; i < inline_js.length; i++) {\n", + "\ttry {\n", + " inline_js[i].call(root, root.Bokeh);\n", + "\t} catch(e) {\n", + "\t if (!reloading) {\n", + "\t throw e;\n", + "\t }\n", + "\t}\n", + " }\n", + " // Cache old bokeh versions\n", + " if (Bokeh != undefined && !reloading) {\n", + "\tvar NewBokeh = root.Bokeh;\n", + "\tif (Bokeh.versions === undefined) {\n", + "\t Bokeh.versions = new Map();\n", + "\t}\n", + "\tif (NewBokeh.version !== Bokeh.version) {\n", + "\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n", + "\t}\n", + "\troot.Bokeh = Bokeh;\n", + " }} else if (Date.now() < root._bokeh_timeout) {\n", + " setTimeout(run_inline_js, 100);\n", + " } else if (!root._bokeh_failed_load) {\n", + " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", + " root._bokeh_failed_load = true;\n", + " }\n", + " root._bokeh_is_initializing = false\n", + " }\n", + "\n", + " function load_or_wait() {\n", + " // Implement a backoff loop that tries to ensure we do not load multiple\n", + " // versions of Bokeh and its dependencies at the same time.\n", + " // In recent versions we use the root._bokeh_is_initializing flag\n", + " // to determine whether there is an ongoing attempt to initialize\n", + " // bokeh, however for backward compatibility we also try to ensure\n", + " // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n", + " // before older versions are fully initialized.\n", + " if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n", + " root._bokeh_is_initializing = false;\n", + " root._bokeh_onload_callbacks = undefined;\n", + " console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n", + " load_or_wait();\n", + " } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n", + " setTimeout(load_or_wait, 100);\n", + " } else {\n", + " root._bokeh_is_initializing = true\n", + " root._bokeh_onload_callbacks = []\n", + " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", + " if (!reloading && !bokeh_loaded) {\n", + "\troot.Bokeh = undefined;\n", + " }\n", + " load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n", + "\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + "\trun_inline_js();\n", + " });\n", + " }\n", + " }\n", + " // Give older versions of the autoload script a head-start to ensure\n", + " // they initialize before we start loading newer version.\n", + " setTimeout(load_or_wait, 100)\n", + "}(window));" + ], + "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.4.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = true;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n root._bokeh_is_loading = css_urls.length + 0;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n", + " window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n", + "}\n", + "\n", + "\n", + " function JupyterCommManager() {\n", + " }\n", + "\n", + " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", + " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " comm_manager.register_target(comm_id, function(comm) {\n", + " comm.on_msg(msg_handler);\n", + " });\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", + " comm.onMsg = msg_handler;\n", + " });\n", + " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", + " google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n", + " var messages = comm.messages[Symbol.asyncIterator]();\n", + " function processIteratorResult(result) {\n", + " var message = result.value;\n", + " console.log(message)\n", + " var content = {data: message.data, comm_id};\n", + " var buffers = []\n", + " for (var buffer of message.buffers || []) {\n", + " buffers.push(new DataView(buffer))\n", + " }\n", + " var metadata = message.metadata || {};\n", + " var msg = {content, buffers, metadata}\n", + " msg_handler(msg);\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " return messages.next().then(processIteratorResult);\n", + " })\n", + " }\n", + " }\n", + "\n", + " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", + " if (comm_id in window.PyViz.comms) {\n", + " return window.PyViz.comms[comm_id];\n", + " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", + " if (msg_handler) {\n", + " comm.on_msg(msg_handler);\n", + " }\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", + " comm.open();\n", + " if (msg_handler) {\n", + " comm.onMsg = msg_handler;\n", + " }\n", + " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", + " var comm_promise = google.colab.kernel.comms.open(comm_id)\n", + " comm_promise.then((comm) => {\n", + " window.PyViz.comms[comm_id] = comm;\n", + " if (msg_handler) {\n", + " var messages = comm.messages[Symbol.asyncIterator]();\n", + " function processIteratorResult(result) {\n", + " var message = result.value;\n", + " var content = {data: message.data};\n", + " var metadata = message.metadata || {comm_id};\n", + " var msg = {content, metadata}\n", + " msg_handler(msg);\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " }) \n", + " var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n", + " return comm_promise.then((comm) => {\n", + " comm.send(data, metadata, buffers, disposeOnDone);\n", + " });\n", + " };\n", + " var comm = {\n", + " send: sendClosure\n", + " };\n", + " }\n", + " window.PyViz.comms[comm_id] = comm;\n", + " return comm;\n", + " }\n", + " window.PyViz.comm_manager = new JupyterCommManager();\n", + " \n", + "\n", + "\n", + "var JS_MIME_TYPE = 'application/javascript';\n", + "var HTML_MIME_TYPE = 'text/html';\n", + "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", + "var CLASS_NAME = 'output';\n", + "\n", + "/**\n", + " * Render data to the DOM node\n", + " */\n", + "function render(props, node) {\n", + " var div = document.createElement(\"div\");\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(div);\n", + " node.appendChild(script);\n", + "}\n", + "\n", + "/**\n", + " * Handle when a new output is added\n", + " */\n", + "function handle_add_output(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + " if (id !== undefined) {\n", + " var nchildren = toinsert.length;\n", + " var html_node = toinsert[nchildren-1].children[0];\n", + " html_node.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var scripts = [];\n", + " var nodelist = html_node.querySelectorAll(\"script\");\n", + " for (var i in nodelist) {\n", + " if (nodelist.hasOwnProperty(i)) {\n", + " scripts.push(nodelist[i])\n", + " }\n", + " }\n", + "\n", + " scripts.forEach( function (oldScript) {\n", + " var newScript = document.createElement(\"script\");\n", + " var attrs = [];\n", + " var nodemap = oldScript.attributes;\n", + " for (var j in nodemap) {\n", + " if (nodemap.hasOwnProperty(j)) {\n", + " attrs.push(nodemap[j])\n", + " }\n", + " }\n", + " attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n", + " newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n", + " oldScript.parentNode.replaceChild(newScript, oldScript);\n", + " });\n", + " if (JS_MIME_TYPE in output.data) {\n", + " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", + " }\n", + " output_area._hv_plot_id = id;\n", + " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", + " window.PyViz.plot_index[id] = Bokeh.index[id];\n", + " } else {\n", + " window.PyViz.plot_index[id] = null;\n", + " }\n", + " } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", + " var bk_div = document.createElement(\"div\");\n", + " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var script_attrs = bk_div.children[0].attributes;\n", + " for (var i = 0; i < script_attrs.length; i++) {\n", + " toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n", + " }\n", + " // store reference to server id on output_area\n", + " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + "function handle_clear_output(event, handle) {\n", + " var id = handle.cell.output_area._hv_plot_id;\n", + " var server_id = handle.cell.output_area._bokeh_server_id;\n", + " if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n", + " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", + " if (server_id !== null) {\n", + " comm.send({event_type: 'server_delete', 'id': server_id});\n", + " return;\n", + " } else if (comm !== null) {\n", + " comm.send({event_type: 'delete', 'id': id});\n", + " }\n", + " delete PyViz.plot_index[id];\n", + " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", + " var doc = window.Bokeh.index[id].model.document\n", + " doc.clear();\n", + " const i = window.Bokeh.documents.indexOf(doc);\n", + " if (i > -1) {\n", + " window.Bokeh.documents.splice(i, 1);\n", + " }\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle kernel restart event\n", + " */\n", + "function handle_kernel_cleanup(event, handle) {\n", + " delete PyViz.comms[\"hv-extension-comm\"];\n", + " window.PyViz.plot_index = {}\n", + "}\n", + "\n", + "/**\n", + " * Handle update_display_data messages\n", + " */\n", + "function handle_update_output(event, handle) {\n", + " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", + " handle_add_output(event, handle)\n", + "}\n", + "\n", + "function register_renderer(events, OutputArea) {\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[0]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " events.on('output_added.OutputArea', handle_add_output);\n", + " events.on('output_updated.OutputArea', handle_update_output);\n", + " events.on('clear_output.CodeCell', handle_clear_output);\n", + " events.on('delete.Cell', handle_clear_output);\n", + " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", + "\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " safe: true,\n", + " index: 0\n", + " });\n", + "}\n", + "\n", + "if (window.Jupyter !== undefined) {\n", + " try {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " } catch(err) {\n", + " }\n", + "}\n" + ], + "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import logging\n", + "import pathlib\n", + "from typing import List, Optional\n", + "\n", + "import cosmicqc\n", + "import duckdb\n", + "import holoviews\n", + "import hvplot.pandas\n", + "import numpy as np\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "import pycytominer\n", + "import umap\n", + "from IPython.display import HTML, Image\n", + "from pyarrow import parquet\n", + "\n", + "# set bokeh for visualizations with hvplot\n", + "hvplot.extension(\"bokeh\")\n", + "\n", + "# avoid displaying plot export warnings\n", + "logging.getLogger(\"bokeh.io.export\").setLevel(logging.ERROR)\n", + "\n", + "# set the plate name for use throughout the notebook\n", + "example_plate = \"BR00117006\"" + ] + }, + { + "cell_type": "markdown", + "id": "cab14cb7-a2d5-45bb-a6f9-8952e5ba5114", + "metadata": { + "lines_to_next_cell": 2 + }, + "source": [ + "## Define utility functions for use within this notebook" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f8d31435-17c2-46b4-bc50-7f818a30ceaf", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_umap_embeddings(\n", + " df_input: pd.DataFrame,\n", + " cols_metadata_to_exclude: List[str],\n", + " umap_n_components: int = 2,\n", + " random_state: Optional[int] = None,\n", + ") -> np.ndarray:\n", + " \"\"\"\n", + " Generates UMAP (Uniform Manifold Approximation and Projection)\n", + " embeddings for a given input dataframe,\n", + " excluding specified metadata columns.\n", + "\n", + " Args:\n", + " df_input (pd.DataFrame]):\n", + " A dataframe which is expected to contain\n", + " numeric columns to be used for UMAP fitting.\n", + " cols_metadata_to_exclude (List[str]):\n", + " A list of column names representing\n", + " metadata columns that should be excluded\n", + " from the UMAP transformation.\n", + " umap_n_components: (int):\n", + " Number of components to use for UMAP.\n", + " Default = 2.\n", + " random_state (int):\n", + " Number to use for random state and\n", + " optional determinism.\n", + " Default = None (random each time)\n", + " Note: values besides None will turn\n", + " off parallelism for umap-learn, likely\n", + " meaning increased processing time.\n", + "\n", + " Returns:\n", + " np.ndarray:\n", + " A dataframe containing the UMAP embeddings\n", + " with 2 components for each row in the input.\n", + " \"\"\"\n", + "\n", + " # Make sure to reinitialize UMAP instance per plate\n", + " umap_fit = umap.UMAP(\n", + " n_components=umap_n_components,\n", + " random_state=random_state,\n", + " # set the default value if we didn't set a random_state\n", + " # otherwise set to 1 (umap-learn will override anyways).\n", + " # this is set to avoid warnings from umap-learn during\n", + " # processing.\n", + " n_jobs=-1 if random_state is None else 1,\n", + " )\n", + "\n", + " # Fit UMAP and convert to pandas DataFrame\n", + " embeddings = umap_fit.fit_transform(\n", + " X=df_input[\n", + " [\n", + " col\n", + " for col in df_input.columns.tolist()\n", + " if col not in cols_metadata_to_exclude and \"cqc.\" not in col\n", + " ]\n", + " # select only numeric types from the dataframe\n", + " ].select_dtypes(include=[np.number])\n", + " )\n", + "\n", + " return embeddings" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1d4a960b-47ed-4948-8c0f-8d5dd1aedb87", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_hvplot_scatter(\n", + " embeddings: np.ndarray,\n", + " title: str,\n", + " filename: str,\n", + " color_dataframe: Optional[pd.DataFrame] = None,\n", + " color_column: Optional[str] = None,\n", + " bgcolor: str = \"black\",\n", + " cmap: str = \"plasma\",\n", + " clabel: Optional[str] = None,\n", + ") -> holoviews.core.spaces.DynamicMap:\n", + " \"\"\"\n", + " Creates an outlier-focused scatter hvplot for viewing\n", + " UMAP embedding data with cosmicqc outliers coloration.\n", + "\n", + " Args:\n", + " embeddings (np.ndarray]):\n", + " A numpy ndarray which includes\n", + " embedding data to display.\n", + " title (str):\n", + " Title for the UMAP scatter plot.\n", + " filename (str):\n", + " Filename which indicates where to export the\n", + " plot.\n", + " color_dataframe (pd.DataFrame):\n", + " A dataframe which includes data used for\n", + " color mapping within the plot. For example,\n", + " coSMicQC .is_outlier columns.\n", + " color_column (str):\n", + " Column name from color_dataframe to use\n", + " for coloring the scatter plot.\n", + " bgcolor (str):\n", + " Sets the background color of the plot.\n", + " cmap (str):\n", + " Sets the colormap used for the plot.\n", + " See here for more:\n", + " https://holoviews.org/user_guide/Colormaps.html\n", + " clabel (str):\n", + " Sets a label on the color map key displayed\n", + " horizontally. Defaults to None (no label).\n", + "\n", + " Returns:\n", + " holoviews.core.spaces.DynamicMap:\n", + " A dynamic holoviews scatter plot which may be\n", + " displayed in a Jupyter notebook.\n", + " \"\"\"\n", + "\n", + " # build a scatter plot through hvplot\n", + " plot = pd.DataFrame(embeddings).hvplot.scatter(\n", + " title=title,\n", + " x=\"0\",\n", + " y=\"1\",\n", + " alpha=0.1,\n", + " rasterize=True,\n", + " c=(\n", + " color_dataframe[color_column].astype(int).values\n", + " if color_dataframe is not None\n", + " else None\n", + " ),\n", + " cnorm=\"linear\",\n", + " cmap=cmap,\n", + " bgcolor=bgcolor,\n", + " height=700,\n", + " width=800,\n", + " clabel=clabel,\n", + " )\n", + "\n", + " # export the plot\n", + " hvplot.save(obj=plot, filename=filename, center=False)\n", + "\n", + " return plot" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "26f49501-2154-4600-a718-e0d66559f4e2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + " created_by: parquet-cpp-arrow version 17.0.0\n", + " num_columns: 7390\n", + " num_rows: 491838\n", + " num_row_groups: 53\n", + " format_version: 2.6\n", + " serialized_size: 58923224" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# form a path to the parquet file with single-cell profiles\n", + "merged_single_cells = (\n", + " f\"../0.download_data/data/plates/{example_plate}/{example_plate}.parquet\"\n", + ")\n", + "\n", + "# read only the metadata from parquet file\n", + "parquet.ParquetFile(merged_single_cells).metadata" + ] + }, + { + "cell_type": "markdown", + "id": "6958a5b1-b566-45d8-a5b6-0ebd8537eb7c", + "metadata": {}, + "source": [ + "## Process merged single-cell data using coSMicQC" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "64e7830f-7b75-45e5-aa60-213e341beac1", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['Metadata_ImageNumber',\n", + " 'Image_Metadata_AbsPositionZ',\n", + " 'Image_Metadata_AbsTime',\n", + " 'Image_Metadata_BinningX',\n", + " 'Image_Metadata_BinningY',\n", + " 'Image_Metadata_ChannelID',\n", + " 'Image_Metadata_ChannelName',\n", + " 'Image_Metadata_Col',\n", + " 'Image_Metadata_ExposureTime',\n", + " 'Image_Metadata_FieldID',\n", + " 'Image_Metadata_ImageResolutionX',\n", + " 'Image_Metadata_ImageResolutionY']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# show the first few columns for metadata column names\n", + "schema_names = parquet.read_schema(merged_single_cells).names\n", + "schema_names[:12]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ba8f2255-e7e4-4118-a700-9727b23e4c2d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Metadata_ImageNumberImage_Metadata_RowImage_Metadata_SiteMetadata_ObjectNumberMetadata_PlateMetadata_WellImage_TableNumberImage_FileName_CellOutlinesImage_FileName_NucleiOutlinesImage_FileName_OrigAGPImage_FileName_OrigDNAImage_FileName_OrigRNACytoplasm_AreaShape_BoundingBoxMaximum_XCytoplasm_AreaShape_BoundingBoxMaximum_YCytoplasm_AreaShape_BoundingBoxMinimum_XCytoplasm_AreaShape_BoundingBoxMinimum_YNuclei_AreaShape_AreaNuclei_AreaShape_FormFactorNuclei_AreaShape_Eccentricity
01111BR00117006A01100953712601233197982859519342258171194A01_s1--cell_outlines.pngA01_s1--nuclei_outlines.pngr01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff2597217506370.9204640.412099
11112BR00117006A01100953712601233197982859519342258171194A01_s1--cell_outlines.pngA01_s1--nuclei_outlines.pngr01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff9366785205830.9196340.564031
21113BR00117006A01100953712601233197982859519342258171194A01_s1--cell_outlines.pngA01_s1--nuclei_outlines.pngr01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff7217362406560.8777310.757343
32121BR00117006A0110948179779460722453965434149548305036A01_s2--cell_outlines.pngA01_s2--nuclei_outlines.pngr01c01f02p01-ch2sk1fk1fl1.tiffr01c01f02p01-ch5sk1fk1fl1.tiffr01c01f02p01-ch3sk1fk1fl1.tiff8245006370.9390790.614207
42122BR00117006A0110948179779460722453965434149548305036A01_s2--cell_outlines.pngA01_s2--nuclei_outlines.pngr01c01f02p01-ch2sk1fk1fl1.tiffr01c01f02p01-ch5sk1fk1fl1.tiffr01c01f02p01-ch3sk1fk1fl1.tiff1994612105860.9417670.579510
\n", + "
" + ], + "text/plain": [ + " Metadata_ImageNumber Image_Metadata_Row Image_Metadata_Site \\\n", + "0 1 1 1 \n", + "1 1 1 1 \n", + "2 1 1 1 \n", + "3 2 1 2 \n", + "4 2 1 2 \n", + "\n", + " Metadata_ObjectNumber Metadata_Plate Metadata_Well \\\n", + "0 1 BR00117006 A01 \n", + "1 2 BR00117006 A01 \n", + "2 3 BR00117006 A01 \n", + "3 1 BR00117006 A01 \n", + "4 2 BR00117006 A01 \n", + "\n", + " Image_TableNumber Image_FileName_CellOutlines \\\n", + "0 100953712601233197982859519342258171194 A01_s1--cell_outlines.png \n", + "1 100953712601233197982859519342258171194 A01_s1--cell_outlines.png \n", + "2 100953712601233197982859519342258171194 A01_s1--cell_outlines.png \n", + "3 10948179779460722453965434149548305036 A01_s2--cell_outlines.png \n", + "4 10948179779460722453965434149548305036 A01_s2--cell_outlines.png \n", + "\n", + " Image_FileName_NucleiOutlines Image_FileName_OrigAGP \\\n", + "0 A01_s1--nuclei_outlines.png r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "1 A01_s1--nuclei_outlines.png r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "2 A01_s1--nuclei_outlines.png r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "3 A01_s2--nuclei_outlines.png r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "4 A01_s2--nuclei_outlines.png r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "\n", + " Image_FileName_OrigDNA Image_FileName_OrigRNA \\\n", + "0 r01c01f01p01-ch5sk1fk1fl1.tiff r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch5sk1fk1fl1.tiff r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch5sk1fk1fl1.tiff r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch5sk1fk1fl1.tiff r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch5sk1fk1fl1.tiff r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMaximum_X \\\n", + "0 259 \n", + "1 936 \n", + "2 721 \n", + "3 82 \n", + "4 199 \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMaximum_Y \\\n", + "0 72 \n", + "1 67 \n", + "2 73 \n", + "3 45 \n", + "4 46 \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMinimum_X \\\n", + "0 175 \n", + "1 852 \n", + "2 624 \n", + "3 0 \n", + "4 121 \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMinimum_Y Nuclei_AreaShape_Area \\\n", + "0 0 637 \n", + "1 0 583 \n", + "2 0 656 \n", + "3 0 637 \n", + "4 0 586 \n", + "\n", + " Nuclei_AreaShape_FormFactor Nuclei_AreaShape_Eccentricity \n", + "0 0.920464 0.412099 \n", + "1 0.919634 0.564031 \n", + "2 0.877731 0.757343 \n", + "3 0.939079 0.614207 \n", + "4 0.941767 0.579510 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# set a list of metadata columns for use throughout\n", + "metadata_cols = [\n", + " \"Metadata_ImageNumber\",\n", + " \"Image_Metadata_Row\",\n", + " \"Image_Metadata_Site\",\n", + " \"Metadata_ObjectNumber\",\n", + " \"Metadata_Plate\",\n", + " \"Metadata_Well\",\n", + " \"Image_TableNumber\",\n", + " \"Image_FileName_CellOutlines\",\n", + " \"Image_FileName_NucleiOutlines\",\n", + " \"Image_FileName_OrigAGP\",\n", + " \"Image_FileName_OrigDNA\",\n", + " \"Image_FileName_OrigRNA\",\n", + " \"Cytoplasm_AreaShape_BoundingBoxMaximum_X\",\n", + " \"Cytoplasm_AreaShape_BoundingBoxMaximum_Y\",\n", + " \"Cytoplasm_AreaShape_BoundingBoxMinimum_X\",\n", + " \"Cytoplasm_AreaShape_BoundingBoxMinimum_Y\",\n", + "]\n", + "\n", + "# read only metadata columns with feature columns used for outlier detection\n", + "df_merged_single_cells = pd.read_parquet(\n", + " path=merged_single_cells,\n", + " columns=[\n", + " *metadata_cols,\n", + " \"Nuclei_AreaShape_Area\",\n", + " \"Nuclei_AreaShape_FormFactor\",\n", + " \"Nuclei_AreaShape_Eccentricity\",\n", + " ],\n", + ")\n", + "df_merged_single_cells.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1a6b9b7f-db69-4f3a-94a7-7081f5d359d6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Metadata_ImageNumberImage_Metadata_RowImage_Metadata_SiteMetadata_ObjectNumberMetadata_PlateMetadata_WellImage_TableNumberImage_FileName_CellOutlinesImage_FileName_NucleiOutlinesImage_FileName_OrigAGPImage_FileName_OrigDNAImage_FileName_OrigRNACytoplasm_AreaShape_BoundingBoxMaximum_XCytoplasm_AreaShape_BoundingBoxMaximum_YCytoplasm_AreaShape_BoundingBoxMinimum_XCytoplasm_AreaShape_BoundingBoxMinimum_YNuclei_AreaShape_AreaNuclei_AreaShape_FormFactorNuclei_AreaShape_Eccentricity
01111BR00117006A01100953712601233197982859519342258171194A01_s1--cell_outlines.pngA01_s1--nuclei_outlines.pngr01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff2597217506370.9204640.412099
11112BR00117006A01100953712601233197982859519342258171194A01_s1--cell_outlines.pngA01_s1--nuclei_outlines.pngr01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff9366785205830.9196340.564031
21113BR00117006A01100953712601233197982859519342258171194A01_s1--cell_outlines.pngA01_s1--nuclei_outlines.pngr01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff7217362406560.8777310.757343
32121BR00117006A0110948179779460722453965434149548305036A01_s2--cell_outlines.pngA01_s2--nuclei_outlines.pngr01c01f02p01-ch2sk1fk1fl1.tiffr01c01f02p01-ch5sk1fk1fl1.tiffr01c01f02p01-ch3sk1fk1fl1.tiff8245006370.9390790.614207
42122BR00117006A0110948179779460722453965434149548305036A01_s2--cell_outlines.pngA01_s2--nuclei_outlines.pngr01c01f02p01-ch2sk1fk1fl1.tiffr01c01f02p01-ch5sk1fk1fl1.tiffr01c01f02p01-ch3sk1fk1fl1.tiff1994612105860.9417670.579510
............................................................
49183329022311BR00117006B09229738698368600480636971006296591261947B09_s2--cell_outlines.pngB09_s2--nuclei_outlines.pngr02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff10801064100910056450.7741020.841505
49183429022313BR00117006B09229738698368600480636971006296591261947B09_s2--cell_outlines.pngB09_s2--nuclei_outlines.pngr02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff864108073110079500.8340330.817577
49183529022304BR00117006B09229738698368600480636971006296591261947B09_s2--cell_outlines.pngB09_s2--nuclei_outlines.pngr02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff59410774909667720.8814130.726392
49183629022316BR00117006B09229738698368600480636971006296591261947B09_s2--cell_outlines.pngB09_s2--nuclei_outlines.pngr02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff922108085610368700.9078170.649587
49183729022302BR00117006B09229738698368600480636971006296591261947B09_s2--cell_outlines.pngB09_s2--nuclei_outlines.pngr02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff103510449739625590.9404350.552803
\n", + "

491838 rows × 19 columns

" + ], + "text/plain": [ + " Metadata_ImageNumber Image_Metadata_Row Image_Metadata_Site \\\n", + "0 1 1 1 \n", + "1 1 1 1 \n", + "2 1 1 1 \n", + "3 2 1 2 \n", + "4 2 1 2 \n", + "... ... ... ... \n", + "491833 290 2 2 \n", + "491834 290 2 2 \n", + "491835 290 2 2 \n", + "491836 290 2 2 \n", + "491837 290 2 2 \n", + "\n", + " Metadata_ObjectNumber Metadata_Plate Metadata_Well \\\n", + "0 1 BR00117006 A01 \n", + "1 2 BR00117006 A01 \n", + "2 3 BR00117006 A01 \n", + "3 1 BR00117006 A01 \n", + "4 2 BR00117006 A01 \n", + "... ... ... ... \n", + "491833 311 BR00117006 B09 \n", + "491834 313 BR00117006 B09 \n", + "491835 304 BR00117006 B09 \n", + "491836 316 BR00117006 B09 \n", + "491837 302 BR00117006 B09 \n", + "\n", + " Image_TableNumber Image_FileName_CellOutlines \\\n", + "0 100953712601233197982859519342258171194 A01_s1--cell_outlines.png \n", + "1 100953712601233197982859519342258171194 A01_s1--cell_outlines.png \n", + "2 100953712601233197982859519342258171194 A01_s1--cell_outlines.png \n", + "3 10948179779460722453965434149548305036 A01_s2--cell_outlines.png \n", + "4 10948179779460722453965434149548305036 A01_s2--cell_outlines.png \n", + "... ... ... \n", + "491833 229738698368600480636971006296591261947 B09_s2--cell_outlines.png \n", + "491834 229738698368600480636971006296591261947 B09_s2--cell_outlines.png \n", + "491835 229738698368600480636971006296591261947 B09_s2--cell_outlines.png \n", + "491836 229738698368600480636971006296591261947 B09_s2--cell_outlines.png \n", + "491837 229738698368600480636971006296591261947 B09_s2--cell_outlines.png \n", + "\n", + " Image_FileName_NucleiOutlines Image_FileName_OrigAGP \\\n", + "0 A01_s1--nuclei_outlines.png r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "1 A01_s1--nuclei_outlines.png r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "2 A01_s1--nuclei_outlines.png r01c01f01p01-ch2sk1fk1fl1.tiff \n", + "3 A01_s2--nuclei_outlines.png r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "4 A01_s2--nuclei_outlines.png r01c01f02p01-ch2sk1fk1fl1.tiff \n", + "... ... ... \n", + "491833 B09_s2--nuclei_outlines.png r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491834 B09_s2--nuclei_outlines.png r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491835 B09_s2--nuclei_outlines.png r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491836 B09_s2--nuclei_outlines.png r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "491837 B09_s2--nuclei_outlines.png r02c09f02p01-ch2sk1fk1fl1.tiff \n", + "\n", + " Image_FileName_OrigDNA Image_FileName_OrigRNA \\\n", + "0 r01c01f01p01-ch5sk1fk1fl1.tiff r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch5sk1fk1fl1.tiff r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch5sk1fk1fl1.tiff r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch5sk1fk1fl1.tiff r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch5sk1fk1fl1.tiff r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "... ... ... \n", + "491833 r02c09f02p01-ch5sk1fk1fl1.tiff r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch5sk1fk1fl1.tiff r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch5sk1fk1fl1.tiff r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch5sk1fk1fl1.tiff r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch5sk1fk1fl1.tiff r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMaximum_X \\\n", + "0 259 \n", + "1 936 \n", + "2 721 \n", + "3 82 \n", + "4 199 \n", + "... ... \n", + "491833 1080 \n", + "491834 864 \n", + "491835 594 \n", + "491836 922 \n", + "491837 1035 \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMaximum_Y \\\n", + "0 72 \n", + "1 67 \n", + "2 73 \n", + "3 45 \n", + "4 46 \n", + "... ... \n", + "491833 1064 \n", + "491834 1080 \n", + "491835 1077 \n", + "491836 1080 \n", + "491837 1044 \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMinimum_X \\\n", + "0 175 \n", + "1 852 \n", + "2 624 \n", + "3 0 \n", + "4 121 \n", + "... ... \n", + "491833 1009 \n", + "491834 731 \n", + "491835 490 \n", + "491836 856 \n", + "491837 973 \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMinimum_Y Nuclei_AreaShape_Area \\\n", + "0 0 637 \n", + "1 0 583 \n", + "2 0 656 \n", + "3 0 637 \n", + "4 0 586 \n", + "... ... ... \n", + "491833 1005 645 \n", + "491834 1007 950 \n", + "491835 966 772 \n", + "491836 1036 870 \n", + "491837 962 559 \n", + "\n", + " Nuclei_AreaShape_FormFactor Nuclei_AreaShape_Eccentricity \n", + "0 0.920464 0.412099 \n", + "1 0.919634 0.564031 \n", + "2 0.877731 0.757343 \n", + "3 0.939079 0.614207 \n", + "4 0.941767 0.579510 \n", + "... ... ... \n", + "491833 0.774102 0.841505 \n", + "491834 0.834033 0.817577 \n", + "491835 0.881413 0.726392 \n", + "491836 0.907817 0.649587 \n", + "491837 0.940435 0.552803 \n", + "\n", + "[491838 rows x 19 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# convert dataframe into a cytodataframe\n", + "df_merged_single_cells = cosmicqc.CytoDataFrame(\n", + " data=df_merged_single_cells,\n", + " data_context_dir=\"../0.download_data/data/images/orig\",\n", + " data_mask_context_dir=\"../0.download_data/data/images/outlines\",\n", + ")\n", + "df_merged_single_cells" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "87ac8cf2-798a-4275-bb63-bead487a5ef0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Large nuclei outliers:\n", + "Number of outliers: 2699 (0.55%)\n", + "Outliers Range:\n", + "Nuclei_AreaShape_Area Min: 1026\n", + "Nuclei_AreaShape_Area Max: 4319\n", + "Nuclei_AreaShape_FormFactor Min: 0.3642334535149482\n", + "Nuclei_AreaShape_FormFactor Max: 0.7792743532535591\n" + ] + } + ], + "source": [ + "# label outliers within the dataset\n", + "print(\"Large nuclei outliers:\")\n", + "df_labeled_outliers = cosmicqc.analyze.find_outliers(\n", + " df=df_merged_single_cells,\n", + " metadata_columns=metadata_cols,\n", + " feature_thresholds=\"large_nuclei\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "66f4f702-587d-49e4-9aef-6164c1044583", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Elongated nuclei outliers:\n", + "Number of outliers: 560 (0.11%)\n", + "Outliers Range:\n", + "Nuclei_AreaShape_Eccentricity Min: 0.9010267846069533\n", + "Nuclei_AreaShape_Eccentricity Max: 0.9966410042879617\n" + ] + } + ], + "source": [ + "# label outliers within the dataset\n", + "print(\"Elongated nuclei outliers:\")\n", + "df_labeled_outliers = cosmicqc.analyze.find_outliers(\n", + " df=df_merged_single_cells,\n", + " metadata_columns=metadata_cols,\n", + " feature_thresholds=\"elongated_nuclei\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9316b38a-9a1e-412b-a256-18d61fafafc1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Small and low formfactor nuclei outliers:\n", + "Number of outliers: 12325 (2.51%)\n", + "Outliers Range:\n", + "Nuclei_AreaShape_Area Min: 79\n", + "Nuclei_AreaShape_Area Max: 483\n", + "Nuclei_AreaShape_FormFactor Min: 0.23113739750863993\n", + "Nuclei_AreaShape_FormFactor Max: 0.8324542109843635\n" + ] + } + ], + "source": [ + "# label outliers within the dataset\n", + "print(\"Small and low formfactor nuclei outliers:\")\n", + "df_labeled_outliers = cosmicqc.analyze.find_outliers(\n", + " df=df_merged_single_cells,\n", + " metadata_columns=metadata_cols,\n", + " feature_thresholds=\"small_and_low_formfactor_nuclei\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3a8cd288-5899-4931-a8b2-e8096c26a4ce", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_Areacqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_FormFactorcqc.small_and_low_formfactor_nuclei.is_outliercqc.elongated_nuclei.Z_Score.Nuclei_AreaShape_Eccentricitycqc.elongated_nuclei.is_outliercqc.large_nuclei.Z_Score.Nuclei_AreaShape_Areacqc.large_nuclei.Z_Score.Nuclei_AreaShape_FormFactorcqc.large_nuclei.is_outlier
0-0.1491780.654414False-1.919829False-0.1491780.654414False
1-0.4482560.638814False-0.701700False-0.4482560.638814False
2-0.043947-0.148995False0.848206False-0.043947-0.148995False
3-0.1491781.004402False-0.299408False-0.1491781.004402False
4-0.4316411.054939False-0.577595False-0.4316411.054939False
\n", + "
" + ], + "text/plain": [ + " cqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_Area \\\n", + "0 -0.149178 \n", + "1 -0.448256 \n", + "2 -0.043947 \n", + "3 -0.149178 \n", + "4 -0.431641 \n", + "\n", + " cqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_FormFactor \\\n", + "0 0.654414 \n", + "1 0.638814 \n", + "2 -0.148995 \n", + "3 1.004402 \n", + "4 1.054939 \n", + "\n", + " cqc.small_and_low_formfactor_nuclei.is_outlier \\\n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False \n", + "\n", + " cqc.elongated_nuclei.Z_Score.Nuclei_AreaShape_Eccentricity \\\n", + "0 -1.919829 \n", + "1 -0.701700 \n", + "2 0.848206 \n", + "3 -0.299408 \n", + "4 -0.577595 \n", + "\n", + " cqc.elongated_nuclei.is_outlier \\\n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False \n", + "\n", + " cqc.large_nuclei.Z_Score.Nuclei_AreaShape_Area \\\n", + "0 -0.149178 \n", + "1 -0.448256 \n", + "2 -0.043947 \n", + "3 -0.149178 \n", + "4 -0.431641 \n", + "\n", + " cqc.large_nuclei.Z_Score.Nuclei_AreaShape_FormFactor \\\n", + "0 0.654414 \n", + "1 0.638814 \n", + "2 -0.148995 \n", + "3 1.004402 \n", + "4 1.054939 \n", + "\n", + " cqc.large_nuclei.is_outlier \n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# label outliers within the dataset\n", + "df_labeled_outliers = cosmicqc.analyze.label_outliers(\n", + " df=df_merged_single_cells,\n", + " include_threshold_scores=True,\n", + ")\n", + "# show added columns\n", + "df_labeled_outliers[\n", + " [col for col in df_labeled_outliers.columns.tolist() if \"cqc.\" in col]\n", + "].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "68069afc-da19-4bae-bc71-fbd26e6911c7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n", + "Unable to process image from {candidate_path}\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cqc.small_and_low_formfactor_nuclei.is_outlierImage_FileName_OrigAGPImage_FileName_OrigDNAImage_FileName_OrigRNA
0Falser01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff
1Falser01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff
2Falser01c01f01p01-ch2sk1fk1fl1.tiffr01c01f01p01-ch5sk1fk1fl1.tiffr01c01f01p01-ch3sk1fk1fl1.tiff
3Falser01c01f02p01-ch2sk1fk1fl1.tiffr01c01f02p01-ch5sk1fk1fl1.tiffr01c01f02p01-ch3sk1fk1fl1.tiff
4Falser01c01f02p01-ch2sk1fk1fl1.tiffr01c01f02p01-ch5sk1fk1fl1.tiffr01c01f02p01-ch3sk1fk1fl1.tiff
...............
491833Falser02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff
491834Falser02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff
491835Falser02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff
491836Falser02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff
491837Falser02c09f02p01-ch2sk1fk1fl1.tiffr02c09f02p01-ch5sk1fk1fl1.tiffr02c09f02p01-ch3sk1fk1fl1.tiff
\n", + "

491838 rows × 4 columns

" + ], + "text/plain": [ + " cqc.small_and_low_formfactor_nuclei.is_outlier \\\n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False \n", + "... ... \n", + "491833 False \n", + "491834 False \n", + "491835 False \n", + "491836 False \n", + "491837 False \n", + "\n", + " Image_FileName_OrigAGP Image_FileName_OrigDNA \\\n", + "0 r01c01f01p01-ch2sk1fk1fl1.tiff r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch2sk1fk1fl1.tiff r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch2sk1fk1fl1.tiff r01c01f01p01-ch5sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch2sk1fk1fl1.tiff r01c01f02p01-ch5sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch2sk1fk1fl1.tiff r01c01f02p01-ch5sk1fk1fl1.tiff \n", + "... ... ... \n", + "491833 r02c09f02p01-ch2sk1fk1fl1.tiff r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch2sk1fk1fl1.tiff r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch2sk1fk1fl1.tiff r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch2sk1fk1fl1.tiff r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch2sk1fk1fl1.tiff r02c09f02p01-ch5sk1fk1fl1.tiff \n", + "\n", + " Image_FileName_OrigRNA \n", + "0 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "1 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "2 r01c01f01p01-ch3sk1fk1fl1.tiff \n", + "3 r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "4 r01c01f02p01-ch3sk1fk1fl1.tiff \n", + "... ... \n", + "491833 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491834 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491835 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491836 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "491837 r02c09f02p01-ch3sk1fk1fl1.tiff \n", + "\n", + "[491838 rows x 4 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# show small and low formfactor nuclei outliers\n", + "df_labeled_outliers[\n", + " [\n", + " \"cqc.small_and_low_formfactor_nuclei.is_outlier\",\n", + " \"Image_FileName_OrigAGP\",\n", + " \"Image_FileName_OrigDNA\",\n", + " \"Image_FileName_OrigRNA\",\n", + " ]\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5c083891-5eb8-480b-9040-b177a9972108", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "analysis.included_at_least_one_outlier\n", + "False 476425\n", + "True 15413\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# create a column which indicates whether an erroneous outlier was detected\n", + "# from all cosmicqc outlier threshold sets. For ex. True for is_outlier in\n", + "# one threshold set out of three would show True for this column. False for\n", + "# is_outlier in all threshold sets would show False for this column.\n", + "df_labeled_outliers[\"analysis.included_at_least_one_outlier\"] = df_labeled_outliers[\n", + " [col for col in df_labeled_outliers.columns.tolist() if \".is_outlier\" in col]\n", + "].any(axis=1)\n", + "\n", + "# show value counts for all outliers\n", + "outliers_counts = df_labeled_outliers[\n", + " \"analysis.included_at_least_one_outlier\"\n", + "].value_counts()\n", + "outliers_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1f5b040f-b229-4ef2-a08a-de31b4154265", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.2351366951776246 % of 476425 include erroneous outliers of some kind.\n" + ] + } + ], + "source": [ + "# show the percentage of total dataset\n", + "print(\n", + " (outliers_counts.iloc[1] / outliers_counts.iloc[0]) * 100,\n", + " \"%\",\n", + " \"of\",\n", + " outliers_counts.iloc[0],\n", + " \"include erroneous outliers of some kind.\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6bb31625-e0a7-46e2-807c-b715bb59169d", + "metadata": {}, + "source": [ + "## Prepare data for analysis with pycytominer" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "3fa421ce-a2eb-4616-8e88-c44b666ff2e3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Metadata_ImageNumberImage_Metadata_AbsPositionZImage_Metadata_AbsTimeImage_Metadata_BinningXImage_Metadata_BinningYImage_Metadata_ChannelIDImage_Metadata_ChannelNameImage_Metadata_ColImage_Metadata_ExposureTimeImage_Metadata_FieldID...Cytoplasm_AreaShape_BoundingBoxMinimum_Y_1cqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_Areacqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_FormFactorcqc.small_and_low_formfactor_nuclei.is_outliercqc.elongated_nuclei.Z_Score.Nuclei_AreaShape_Eccentricitycqc.elongated_nuclei.is_outliercqc.large_nuclei.Z_Score.Nuclei_AreaShape_Areacqc.large_nuclei.Z_Score.Nuclei_AreaShape_FormFactorcqc.large_nuclei.is_outlieranalysis.included_at_least_one_outlier
011190.1345802020-11-03 01:12:09.290225HOECHST 3334250.013...9051.290828-0.070137False-0.372369False1.290828-0.070137FalseFalse
111250.1345752020-11-03 01:12:18.387225HOECHST 3334250.019...222-0.4094870.846412False-0.525098False-0.4094870.846412FalseFalse
211200.1345772020-11-03 01:12:10.803225HOECHST 3334250.014...620-0.5867180.998264False-0.008710False-0.5867180.998264FalseFalse
311240.1345772020-11-03 01:12:16.857225HOECHST 3334250.018...424-0.3153320.662099False0.474716False-0.3153320.662099FalseFalse
411250.1345752020-11-03 01:12:18.387225HOECHST 3334250.019...165-0.4648710.456702False-0.855927False-0.4648710.456702FalseFalse
..................................................................
3915231740.1344312020-11-03 01:55:02.947225HOECHST 33342170.016...260-0.913489-0.111243False0.640714False-0.913489-0.111243FalseFalse
3915331700.1344272020-11-03 01:54:56.770225HOECHST 33342170.012...6480.111131-2.197884False1.129841False0.111131-2.197884FalseFalse
3915431720.1344252020-11-03 01:54:59.857225HOECHST 33342170.014...1660.183131-0.211255False0.595712False0.183131-0.211255FalseFalse
3915531700.1344272020-11-03 01:54:56.770225HOECHST 33342170.012...6310.1166690.754395False0.439359False0.1166690.754395FalseFalse
3915631770.1344282020-11-03 01:55:07.597225HOECHST 33342170.019...4060.199747-1.313713False1.581096False0.199747-1.313713FalseFalse
\n", + "

39157 rows × 7417 columns

\n", + "
" + ], + "text/plain": [ + " Metadata_ImageNumber Image_Metadata_AbsPositionZ \\\n", + "0 1119 0.134580 \n", + "1 1125 0.134575 \n", + "2 1120 0.134577 \n", + "3 1124 0.134577 \n", + "4 1125 0.134575 \n", + "... ... ... \n", + "39152 3174 0.134431 \n", + "39153 3170 0.134427 \n", + "39154 3172 0.134425 \n", + "39155 3170 0.134427 \n", + "39156 3177 0.134428 \n", + "\n", + " Image_Metadata_AbsTime Image_Metadata_BinningX \\\n", + "0 2020-11-03 01:12:09.290 2 \n", + "1 2020-11-03 01:12:18.387 2 \n", + "2 2020-11-03 01:12:10.803 2 \n", + "3 2020-11-03 01:12:16.857 2 \n", + "4 2020-11-03 01:12:18.387 2 \n", + "... ... ... \n", + "39152 2020-11-03 01:55:02.947 2 \n", + "39153 2020-11-03 01:54:56.770 2 \n", + "39154 2020-11-03 01:54:59.857 2 \n", + "39155 2020-11-03 01:54:56.770 2 \n", + "39156 2020-11-03 01:55:07.597 2 \n", + "\n", + " Image_Metadata_BinningY Image_Metadata_ChannelID \\\n", + "0 2 5 \n", + "1 2 5 \n", + "2 2 5 \n", + "3 2 5 \n", + "4 2 5 \n", + "... ... ... \n", + "39152 2 5 \n", + "39153 2 5 \n", + "39154 2 5 \n", + "39155 2 5 \n", + "39156 2 5 \n", + "\n", + " Image_Metadata_ChannelName Image_Metadata_Col \\\n", + "0 HOECHST 33342 5 \n", + "1 HOECHST 33342 5 \n", + "2 HOECHST 33342 5 \n", + "3 HOECHST 33342 5 \n", + "4 HOECHST 33342 5 \n", + "... ... ... \n", + "39152 HOECHST 33342 17 \n", + "39153 HOECHST 33342 17 \n", + "39154 HOECHST 33342 17 \n", + "39155 HOECHST 33342 17 \n", + "39156 HOECHST 33342 17 \n", + "\n", + " Image_Metadata_ExposureTime Image_Metadata_FieldID ... \\\n", + "0 0.01 3 ... \n", + "1 0.01 9 ... \n", + "2 0.01 4 ... \n", + "3 0.01 8 ... \n", + "4 0.01 9 ... \n", + "... ... ... ... \n", + "39152 0.01 6 ... \n", + "39153 0.01 2 ... \n", + "39154 0.01 4 ... \n", + "39155 0.01 2 ... \n", + "39156 0.01 9 ... \n", + "\n", + " Cytoplasm_AreaShape_BoundingBoxMinimum_Y_1 \\\n", + "0 905 \n", + "1 222 \n", + "2 620 \n", + "3 424 \n", + "4 165 \n", + "... ... \n", + "39152 260 \n", + "39153 648 \n", + "39154 166 \n", + "39155 631 \n", + "39156 406 \n", + "\n", + " cqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_Area \\\n", + "0 1.290828 \n", + "1 -0.409487 \n", + "2 -0.586718 \n", + "3 -0.315332 \n", + "4 -0.464871 \n", + "... ... \n", + "39152 -0.913489 \n", + "39153 0.111131 \n", + "39154 0.183131 \n", + "39155 0.116669 \n", + "39156 0.199747 \n", + "\n", + " cqc.small_and_low_formfactor_nuclei.Z_Score.Nuclei_AreaShape_FormFactor \\\n", + "0 -0.070137 \n", + "1 0.846412 \n", + "2 0.998264 \n", + "3 0.662099 \n", + "4 0.456702 \n", + "... ... \n", + "39152 -0.111243 \n", + "39153 -2.197884 \n", + "39154 -0.211255 \n", + "39155 0.754395 \n", + "39156 -1.313713 \n", + "\n", + " cqc.small_and_low_formfactor_nuclei.is_outlier \\\n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False \n", + "... ... \n", + "39152 False \n", + "39153 False \n", + "39154 False \n", + "39155 False \n", + "39156 False \n", + "\n", + " cqc.elongated_nuclei.Z_Score.Nuclei_AreaShape_Eccentricity \\\n", + "0 -0.372369 \n", + "1 -0.525098 \n", + "2 -0.008710 \n", + "3 0.474716 \n", + "4 -0.855927 \n", + "... ... \n", + "39152 0.640714 \n", + "39153 1.129841 \n", + "39154 0.595712 \n", + "39155 0.439359 \n", + "39156 1.581096 \n", + "\n", + " cqc.elongated_nuclei.is_outlier \\\n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False \n", + "... ... \n", + "39152 False \n", + "39153 False \n", + "39154 False \n", + "39155 False \n", + "39156 False \n", + "\n", + " cqc.large_nuclei.Z_Score.Nuclei_AreaShape_Area \\\n", + "0 1.290828 \n", + "1 -0.409487 \n", + "2 -0.586718 \n", + "3 -0.315332 \n", + "4 -0.464871 \n", + "... ... \n", + "39152 -0.913489 \n", + "39153 0.111131 \n", + "39154 0.183131 \n", + "39155 0.116669 \n", + "39156 0.199747 \n", + "\n", + " cqc.large_nuclei.Z_Score.Nuclei_AreaShape_FormFactor \\\n", + "0 -0.070137 \n", + "1 0.846412 \n", + "2 0.998264 \n", + "3 0.662099 \n", + "4 0.456702 \n", + "... ... \n", + "39152 -0.111243 \n", + "39153 -2.197884 \n", + "39154 -0.211255 \n", + "39155 0.754395 \n", + "39156 -1.313713 \n", + "\n", + " cqc.large_nuclei.is_outlier analysis.included_at_least_one_outlier \n", + "0 False False \n", + "1 False False \n", + "2 False False \n", + "3 False False \n", + "4 False False \n", + "... ... ... \n", + "39152 False False \n", + "39153 False False \n", + "39154 False False \n", + "39155 False False \n", + "39156 False False \n", + "\n", + "[39157 rows x 7417 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parquet_sampled_with_outliers = f\"./{example_plate}_sampled_with_outliers.parquet\"\n", + "\n", + "# check if we already have normalized data\n", + "if not pathlib.Path(parquet_sampled_with_outliers).is_file():\n", + " # set a fraction for sampling to limit the amount\n", + " # of data processed based on system memory constraints.\n", + " # note: data was processed on system with 16 CPU, 64 GB ram\n", + " sample_fraction = 0.08\n", + "\n", + " # select metadata columns plus those which don't exist in\n", + " # df_features (cosmicqc or analysis-specific columns)\n", + " df_labeled_outliers_unique_cols = df_labeled_outliers[\n", + " [\n", + " *metadata_cols,\n", + " *[\n", + " col\n", + " for col in df_labeled_outliers.columns\n", + " if col not in df_features.columns\n", + " ],\n", + " ]\n", + " ]\n", + "\n", + " # Connect to DuckDB and read the parquet file directly\n", + " with duckdb.connect() as ddb:\n", + "\n", + " # execute a query to extract sample of data from the file without reading it in full\n", + " df_features_with_cqc_outlier_data = ddb.execute(\n", + " f\"\"\"\n", + " WITH sampled_data AS (\n", + " SELECT *,\n", + " ROW_NUMBER() OVER (PARTITION BY Metadata_Well ORDER BY RANDOM()) AS rn,\n", + " COUNT(*) OVER (PARTITION BY Metadata_Well) AS group_count\n", + " FROM read_parquet('{merged_single_cells}')\n", + " )\n", + " SELECT * FROM sampled_data\n", + " INNER JOIN df_labeled_outliers_unique_cols AS joined_data ON\n", + " joined_data.Metadata_ImageNumber = sampled_data.Metadata_ImageNumber \n", + " AND joined_data.Image_Metadata_Row = sampled_data.Image_Metadata_Row\n", + " AND joined_data.Image_Metadata_Site = sampled_data.Image_Metadata_Site\n", + " AND joined_data.Metadata_ObjectNumber = sampled_data.Metadata_ObjectNumber\n", + " AND joined_data.Metadata_Plate = sampled_data.Metadata_Plate\n", + " AND joined_data.Metadata_Well = sampled_data.Metadata_Well\n", + " AND joined_data.Image_TableNumber = sampled_data.Image_TableNumber\n", + " WHERE rn <= group_count * {sample_fraction}\n", + " \"\"\"\n", + " ).df()\n", + "\n", + " df_features_with_cqc_outlier_data.to_parquet(parquet_sampled_with_outliers)\n", + "\n", + "else:\n", + " df_features_with_cqc_outlier_data = pd.read_parquet(parquet_sampled_with_outliers)\n", + "\n", + "df_features_with_cqc_outlier_data" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ad1b282a-9b55-42a2-a987-7429e9262f56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "analysis.included_at_least_one_outlier\n", + "False 37948\n", + "True 1209\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# show our data value counts regarding outliers vs inliers\n", + "df_features_with_cqc_outlier_data[\n", + " \"analysis.included_at_least_one_outlier\"\n", + "].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "9627a1f6-8ac0-440e-a44b-941e80d4a87b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7390" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# prepare data for normalization and feature selection\n", + "# by removing cosmicqc and analaysis focused columns.\n", + "df_for_normalize_and_feature_select = df_features_with_cqc_outlier_data[\n", + " # read feature names from cytotable output, which excludes\n", + " # cosmicqc-added columns.\n", + " parquet.read_schema(merged_single_cells).names\n", + "]\n", + "# show the modified column count\n", + "len(df_for_normalize_and_feature_select.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d03a9261-a02c-476f-bf9f-3ad94225a437", + "metadata": {}, + "outputs": [], + "source": [ + "# join JUMP metadata with platemap data to prepare for annotation\n", + "df_platemap_and_metadata = pd.read_csv(\n", + " filepath_or_buffer=(\n", + " \"s3://cellpainting-gallery/cpg0000-jump-pilot/source_4\"\n", + " \"/workspace/metadata/platemaps/2020_11_04_CPJUMP1/\"\n", + " \"platemap/JUMP-Target-1_compound_platemap.txt\"\n", + " ),\n", + " sep=\"\\t\",\n", + ").merge(\n", + " right=pd.read_csv(\n", + " filepath_or_buffer=(\n", + " \"s3://cellpainting-gallery/cpg0000-jump-pilot/source_4\"\n", + " \"/workspace/metadata/external_metadata/\"\n", + " \"JUMP-Target-1_compound_metadata.tsv\"\n", + " ),\n", + " sep=\"\\t\",\n", + " ),\n", + " left_on=\"broad_sample\",\n", + " right_on=\"broad_sample\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "422ba39f-8e2d-4efa-bea1-f6fd2fd2cf0e", + "metadata": {}, + "outputs": [], + "source": [ + "parquet_pycytominer_annotated = f\"./{example_plate}_annotated.parquet\"\n", + "\n", + "# check if we already have annotated data\n", + "if not pathlib.Path(parquet_pycytominer_annotated).is_file():\n", + " # annotate the data using pycytominer\n", + " pycytominer.annotate(\n", + " profiles=df_for_normalize_and_feature_select,\n", + " # read the platemap directly from AWS S3 related location\n", + " platemap=df_platemap_and_metadata,\n", + " join_on=[\"Metadata_well_position\", \"Metadata_Well\"],\n", + " output_file=parquet_pycytominer_annotated,\n", + " output_type=\"parquet\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "63716bff-ed90-4d85-abf9-53682d46061a", + "metadata": {}, + "outputs": [], + "source": [ + "parquet_pycytominer_normalized = f\"./{example_plate}_normalized.parquet\"\n", + "\n", + "# check if we already have normalized data\n", + "if not pathlib.Path(parquet_pycytominer_normalized).is_file():\n", + " # normalize the data using pcytominer\n", + " df_pycytominer_normalized = pycytominer.normalize(\n", + " profiles=parquet_pycytominer_annotated,\n", + " features=\"infer\",\n", + " image_features=False,\n", + " meta_features=\"infer\",\n", + " method=\"standardize\",\n", + " samples=\"Metadata_control_type == 'negcon'\",\n", + " output_file=parquet_pycytominer_normalized,\n", + " output_type=\"parquet\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "49443650-e9b4-4968-bd4a-f3ca00990f26", + "metadata": {}, + "outputs": [], + "source": [ + "parquet_pycytominer_feature_selected = f\"./{example_plate}_feature_select.parquet\"\n", + "\n", + "# check if we already have feature selected data\n", + "if not pathlib.Path(parquet_pycytominer_feature_selected).is_file():\n", + " # feature select normalized data using pycytominer\n", + " df_pycytominer_feature_selected = pycytominer.feature_select(\n", + " profiles=parquet_pycytominer_normalized,\n", + " operation=[\n", + " \"variance_threshold\",\n", + " \"correlation_threshold\",\n", + " \"blocklist\",\n", + " \"drop_na_columns\",\n", + " ],\n", + " na_cutoff=0,\n", + " output_file=parquet_pycytominer_feature_selected,\n", + " output_type=\"parquet\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "c7a1b96a-306c-4530-8906-db3e8f1772b9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Metadata_broad_sample',\n", + " 'Metadata_solvent',\n", + " 'Metadata_InChIKey',\n", + " 'Metadata_pert_iname',\n", + " 'Metadata_pubchem_cid',\n", + " 'Metadata_gene',\n", + " 'Metadata_pert_type',\n", + " 'Metadata_control_type',\n", + " 'Metadata_smiles',\n", + " 'Metadata_ImageNumber',\n", + " 'Metadata_ObjectNumber',\n", + " 'Metadata_ObjectNumber_1',\n", + " 'Metadata_ObjectNumber_2',\n", + " 'Metadata_Plate',\n", + " 'Metadata_Well']" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# regather metadata columns to account for new additions\n", + "all_metadata_cols = [\n", + " col\n", + " for col in parquet.read_schema(parquet_pycytominer_feature_selected).names\n", + " if col.startswith(\"Metadata_\")\n", + "]\n", + "all_metadata_cols" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "9df221a5-474b-4404-bcb4-1988146e5450", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(39157, 2)\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[ 1.808196 , 2.0026262 ],\n", + " [-5.093544 , 0.60261256],\n", + " [ 1.676535 , 2.7588325 ]], dtype=float32)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# calculate UMAP embeddings from the data\n", + "# which was prepared by pycytominer.\n", + "embeddings_with_outliers = generate_umap_embeddings(\n", + " df_input=pd.read_parquet(parquet_pycytominer_feature_selected),\n", + " cols_metadata_to_exclude=all_metadata_cols,\n", + " random_state=0,\n", + ")\n", + "# show the shape and top values from the embeddings array\n", + "print(embeddings_with_outliers.shape)\n", + "embeddings_with_outliers[:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "66dcf7ab-41a2-446d-8485-bbf6cfeec462", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAALGCAYAAACTX9TRAADLZklEQVR4nOydeZhcRdX/T08mO4QAIQHCGgIohk3ZCYjI8mpQdlEW2UEJEMQQAugbBhARlCWAQEBQX5RVBUFEQQUFBBSJrIIJESSyKCSEkLAkc39/5Hfbmppzqur2dE8v8/k8zzzTfW8tp+renjnfOqdul7IsywQAAAAAAKAJaau3AQAAAAAAAJWCoAEAAAAAgKYFQQMAAAAAAE0LggYAAAAAAJoWBA0AAAAAADQtCBoAAAAAAGhaEDQAAAAAANC0IGgAAAAAAKBpQdAAAAAAAEDTgqABAAAAAICmBUEDAAAAAABNC4IGAAAAAACaFgQNAAAAAAA0LQgaAAAAAABoWlpW0EydOlVKpZKMHz++27mHH35YSqWSlEol+c9//iMiIiNGjCgfu+OOO7qUX7JkiQwfPrx8/t577+3W5v33318+/9GPflS1ye0j/xk8eLB87GMfkx/84AdVGLXInDlzZMcdd5QhQ4bIyiuvLK+++qpZdubMmd3sue2220Skd+bvsssu69Z/v379ZLXVVpNDDz1U5s6dW5U5Kco//vGPsj3z58+vevt33323lEolWXXVVYPl8mvw+c9/vlfs6gkXXHCBrLbaajJo0CCZPHlyvc3pwn777dftPhs4cKCMGTNGjjzySJkzZ0657FNPPdWtbP45/chHPiLTpk2TRYsWdWn/7rvvli233FKGDBkiq622mpx66qnywQcfFC4zd+5c2WWXXaRUKsnw4cO7jSN0/rbbblPtzn/+/Oc/l8teeOGFMnbsWBk0aJBsuOGG8v3vf79LWwsXLpQvfelLstpqq8mQIUNku+22k0ceeaRLmc7OTrngggtkzJgxMnjwYPnwhz/crR2NmTNnSnt7u6y00krlvx1FSP0MfP/735dSqSSbbbZZ4T6geTjssMOkVCrJSSedJCK9/zfy4osvllKpJDvuuGPN+wKAMC0raHrCL37xiy7vH3roIXnrrbeCdW6++eby68cff1xmz55tlh05cqSst956MmbMGCmVSvKXv/xFDjvsMJk+fXrPDBeRc845R/7whz/IaqutJgcddJAMGjTILDtgwABZe+21Ze211+5xvy5F56+9vV3WW289WW+99WTUqFHy6quvyg9/+EPZfvvtZcGCBVW1rZkZMmSITJgwQSZMmCD9+/evtzllXnrpJZkyZYq8+uqrss8++5iCvt6MGDFCtt56a9l6663lQx/6kLz88sty7bXXyjbbbCNvvvlmt/Jrr712+b5cbrnl5JlnnpGzzjpLdt99d8myTERE/vKXv8hnP/tZ+fOf/yxrrrmmLFiwQM4//3yZOnVquZ2UMj/96U9lk002kd/85jeq7bHzQ4YMKX+W3Z9+/fqJiJR/X3bZZfLVr35VXnrpJVl33XVl1qxZcvjhh3dZhDjssMPkqquukkWLFsmqq64qf/zjH2W33XaTl19+uVxm2rRpMmXKFHnxxRdltdVWk7/97W9y+OGHyy9/+cvgNTj++ONl6dKlctZZZ8mIESOCZa1xap+BsWPHyl577VW4PWge/vnPf0pbW5tcfPHFZpne/ht5/PHHy7hx4+QPf/iD/PjHP655fwAQIGtRTj311ExEsu23377buT/+8Y+ZiGQikv373//OsizLVl555UxEspEjR2ZrrLFGl/JTp07NRCRbZZVVMhHJ7rnnni7nly5dmq266qqZiGQbb7xxJiLZN7/5zW795n1cd9115WOLFy/O9t1333LfnZ2dPRr3LrvskolI9q1vfatQvX79+mUikv3sZz/Lsqx35u/SSy/NRCRbe+21u5R/8MEHs/79+2cikl1++eWFxlEN5syZUx7fvHnzqt7+L3/5y0xEslGjRgXL5dfggAMOqLoN1eSBBx7IRCQbPHhwsNySJUt6yaKu5J+vQw89tMvxmTNnZm1tbZmIZD/4wQ+yLMuyJ598snzt58yZ06X8NddcUz533333ZVmWZQceeGAmItlJJ52UZVmWPf7445mIZIMGDcoWLFiQXGbUqFHZ+uuvn5199tmZiGQrrLBCl75j5zUeeOCBrFQqZZtvvnm2dOnSLMuybPTo0ZmIZLfddluWZVl28cUXd/mcP/fcc5mIZEOGDMn+9a9/ZVmWZXvttVcmItkZZ5yRZVmWvfbaa9nAgQOzfv36ZQ888ECWZVn29a9/PVt//fWzb3zjG6Y9f/jDHzIRyVZeeeVs8eLFUftT+dOf/pSJSLbnnnuWj1133XWZiGSbbrpp1foJ8cEHHxQ6DsW54IILMhHJLrroovKxQw89NBORbNKkSVXtq7Ozs/yZiZHfa5tttllVbQCAYhCh8dhqq63k5ZdflieeeKJ87Je//KUMHz5c1l9/fbXO73//e3n11Vdl9dVXlzPOOENEukZsQgwaNEiOP/54ERF5/fXX5fXXXzfL/t///Z987GMfk8GDB8vyyy8vH//4x+VXv/pVl7bydK5TTz1VSqVSl1XV3qCS+fPZbrvtZLvtthMRkSeffNIs98QTT8iECRNkhRVWkKFDh8r//M//yPPPP18+f/nll0upVJK9995b7rzzThk7dqwMHTpU9tprL1m4cKFce+21suaaa8pKK60kJ554oixdurRbHy+99JLsuuuuMmTIEFlzzTXlmmuuKWRDlmVy5plnyqhRo2S55ZaT/fbbT+bNm9etn/nz58uBBx4oyy23nKyyyipy+umnl6MAOVo6xf777y+lUkkuueQSueKKK2SttdaSFVZYQfbdd98uKT3z58+XL3zhC7LccsvJiBEjZOrUqeV0iX322adc7s9//rNMmDBBRo4cKUOGDJFx48bJZZddZl6D8847r5yWuHjxYimVSnLUUUeV0wn32WcfmTFjhqy44oryzW9+U0RE3nvvPfn6178uY8eOlQEDBsiIESNk//33l+eee66q1y7GpptuWo4S+GlkGkceeaQsv/zyIiLy7LPPisiyz76IyL777isiIptttpmss8468u6778pDDz2UXObLX/6yzJw5U7bZZhu179h5n6VLl8pxxx0nWZbJhRdeKG1tbTJ79myZO3euDBw4UCZMmCAiUo5qPPzww7Jo0SL5wx/+ICIi2267ray22mpdyuTRobvvvlvee+892XHHHWX77bcXEZGzzjpLnn/+eTn99NNNm6699loRETn44INl0KBBsu+++0qpVJL/+7//K5f5yEc+0i2F56qrrpJSqSRHH310t8/A5MmTZcsttxQRkdtvv11KpZLceeed5brt7e3y2GOPyVZbbSVDhw6VrbfeWh5//PHg3L3xxhty9NFHy6qrrioDBw6UzTbbTO66667y+TwtcaWVVpI//elPsu6668qnPvUpEflv6u1vf/tb2WGHHWTo0KHleg8//LD8z//8j6ywwgoyaNAgGTdunEyfPr3L53yVVVaRUqkkjz76qBx//PGy4ooryqqrripTp07tco/HbBRZlqJ42GGHyaqrrlqOxk+aNKlL1PvMM8+UUqnUJbr17rvvluf4b3/7m4gsSxs+++yzZcMNN5QhQ4bIqFGjZP/995dZs2YF5zLFhp122klKpVKXyIuflrvFFlvIKaecIiIiX/nKV6RUKsnChQu79WelnP30pz+VLbbYQgYPHiwjRoyQY445Rt5+++3y+Twt9ZJLLpGjjjpKhgwZUv5s3nTTTbLVVlvJCiusIMOHD5cdd9xR7rnnnnLdAw44QJZffnmZOXOmzJw5MzgfAFA7EDQeuXOWp03961//kr/+9a/y8Y9/XDo7O9U6uXjZe++9ZcKECTJo0KBo2pnLkiVLyq+tFLHzzz9fvvjFL5Yd6PHjx8vvf/97+dSnPiW33367iIiccMIJsuaaa4qIyA477CCTJk0qO2C9RSXzp5HPiTUfc+bMkR122EHuuusumTBhghxxxBFy7733ys4771z+Zzl48GAREXnuuedk8uTJsvXWW8u7774rt99+u3zxi1+Uc889V8aPHy/z58+XSy+9VG688cZu/Rx88MEydOhQGTdunLz88styzDHHyGOPPZZsw7XXXisdHR3y+uuvy2677SYLFiwo/2N2OeGEE+SGG26QtrY2+fSnPy133HGH/OhHP4rOUz7Gm266SS666CLZeeedZenSpfLTn/60y16W448/Xm688UbJskx22203uf322+XSSy8VkWWphyIi//73v2XXXXeVe+65RyZMmCDHHHOMLFq0SE444QS5/PLL1f633HJL2X///UVEpH///jJp0iTZddddy9fthRdekMmTJ8uYMWPK4mGfffaRc845R9566y054IADZI011pBbb71Vtt12W3nxxRerdu1iPPHEE/Kf//xHSqWS7LDDDtHyH3zwgbz//vsiIjJ8+HB57733ygsGa6yxRrncWmutJSIis2bNSiojsiyFa8iQIWbfsfM+M2bMkCeeeEI+9alPyU477dSlr1VXXVXa29vLNpVKJVm6dKnMmTOnXCZka77IsMkmm8gtt9wiBx98sEyaNEkefvjhoE333XefiIh84hOfEBEpi5Z8f8+///1vefbZZ2XAgAHyyCOPyLvvvisiIo8++qiIiHz84x/v1uaOO+4o2267rYiIjBkzRiZNmiRjxowpn3/vvfdkr732kra2Nmlra5NHH31U9t9//y5/c10++OAD2XXXXeWaa66RMWPGyCmnnCJz586VPffcs7yPKL+33377bfnyl78sQ4YMkXXWWafLudNPP13mzJkjG2+8sYiIPPDAA+UFqM0220z23ntveeGFF2TSpEldPqf5fT9p0iR58sknZeedd5bXXntNvvWtb5WFX4qN//nPf2TbbbeVH/zgB7LiiivKF77wBVm6dKlMnz5ddt11V3P8FtOmTZP//d//lUGDBsmXvvQl+fjHPy633nqr7LTTTvLee++pdappw4EHHlj+37bjjjvKpEmTyn+3Ytx6662y7777ylNPPSUTJ06U7bbbTq6++mo56KCDymXy63bDDTfILbfcIuPGjZPBgwfLr3/9a/n85z8vL730khxyyCFywAEHyMyZM2XChAll8TJ48ODyQkN+jwNAHahrfKiGVJoy9cgjj2SlUinbbrvtsiz7b5rJFVdckW299dbdUs6WLl2ajRo1KhOR7Le//W2WZVn22c9+Vk0701LOFi1alE2YMCETkezDH/6wOpZ58+ZlQ4YMyUQku/rqq8vHJ06cmIlI9pGPfKR87JOf/GQmItkFF1xQaL6qlXJWZP6slLPf/va3ZXtuuukm1d4TTjghE5Fsl112KR87/vjju6Qk5KkAIpL99a9/zbIsyw477LBMRLK2trZs1qxZWZZl2ec///lMRLIvfvGLWZZ1TTk7++yzsyxbli71sY99LBOR7Kijjkq2YdNNN81EJJs4cWK5zD777NMl5ez111/P2tvbMxHJbrnllizLsuydd97J1lhjjS4pZ1oqXJ5yMWLEiGz+/PlZlmXZd7/73fIxv/3rr78+y7Ise/vtt7PVV1+9S/t33nlnJiLZTjvtVLb173//e/b1r389u+OOO9TrkGX/TSUaOnRo+Zg79z/5yU/Kx3/961+X5/9vf/tblmVZ9v7772ebbbZZl3mq9Npp5ClnI0aMyLbeeuts6623zjbddNNswIAB2UorrZRdeeWV5bJWytn8+fOzk08+ORORbODAgdmrr76avf766+Wyr776arns7rvvnolI9o1vfCOpjMs999wTTCmLnc+yLFu4cGE2cuTITETKKWFZlmU333xzJiLZhz70oS7lBw4cmIlI9uCDD2bHHXdcJiLZl770pfL5/PPev3//LMv+e8+ttdZa5bGJSNbe3m7eJ/Pnzy+Xe+mll7Isy7K//OUvmYiU/1bk9h1wwAGZiGS/+93vsizLsnHjxpXraZ+BPA1PSzkTkezWW2/Nsuy/96mIZE899ZRq509+8pPy/C5cuDDLsiy79dZbu7Tv2nDCCSd0qb/22mtnIpJtscUW2bvvvls+vt1222Uikh100EHlY7fcckt53l555ZUu9Xfddddy+vHnPve5TESy/fbbL9nG008/PRORbOzYsdmiRYuyLMuyl19+uXyt878z06ZN6zZ3ixcvLo/v2WefzbIsy7bYYosuqZZZtuzvzLe//e3stddeU+cy1YaPf/zj3VLJtLTc/H9bKOVMuz/yNPBzzjmnXC8/9vjjj3dpZ+jQodmLL75YLjd58uRMRLIzzzyzfOzuu+/OvvGNb5TrZlmWnXbaaZmIZIcccog6FwBQe4jQeIwcOVK23HJLefjhh+WNN94ob3LNUzR87r//fnnttddklVVWKa847rfffiJip52deuqpMnbsWBk7dqysvPLK8otf/EJKpZJ84xvfUMvn6SAiIl/4whfKxz/3uc+JiMjTTz+tbmquB0XnT2RZWkI+H6NHjy5HGbbYYgvZe++91Tp5OsDGG28sL7/8srz88ssybtw4ERH57W9/26XsWmutJZtssomILEszEhFZf/31Zb311utyTHsiXD7f/fr1k09/+tMiIvLMM88k2ZBlWblsXlfkv/dHznPPPVderczLDRkypEudGHkqi4jI1ltvLSLLVkg/+OCDLu3vueeeIiKy3HLLdbsm+SrzfffdJ+PHj5ezzjpLXnnlFZk2bZrsscceyba4rLzyyl2uYZ629LGPfUw23HBDEVkW2cnL5ClPOT25dj7/+c9/5JFHHpFHHnlE/vrXv8r7778vpVJJ/vjHP8q///3vbuXXXXfdcvrK8OHD5cILLyynpYwaNapLxLFUKqmvU8pUm+9973vy+uuvy/jx48spYa4tft+avSFb83vp3//+t/z+97+XefPmlaMeecqtj5v+uMoqq4jIsmu3wgoryMyZM2Xp0qXyu9/9TkSknIJ7//33yzvvvCPPPvusrLvuuuUV+iKMHDmynOo3fvz4cpTrX//6l1o+/0x/+MMflnnz5snLL79cTpX1/66IiBx99NFqO1/84hdl4MCBIrIsnTGPXh144IHlMvvss4+0t7fLkiVL5I9//GOX+gcccEB53vPPc25zio3552zvvfcuR31Gjx5dTuX1P2cx1l13XRFZljZ5xBFHyA9/+EPZc8895atf/aqMHDlSrVNtGyrh7bffLkcUN9hgg/Lf6fzBJf413X333csRSZH/jvvcc8+VvfbaS6ZPny5rrLGGnH766V2eoJdHnyt5ch8AVIeWFTT5U30WL17c7Zybe6uFrffYYw/p7OyU3/zmN/Kb3/xGNt10U/OfaS5aFi9eLB/72Mdks802KwsTK+3s9ddfl9mzZ8vs2bOlVCrJNttsIz//+c9N5/2NN94QkWWhbTcn231KkLYvoyf01vyJLHOQ8vl45ZVXZPXVV5fjjjtO7r33XvNJNXl+9EUXXSRrrrmmrLnmmvKlL31JRKSctpSz4oorll/nqQXuY2/zY9o+DPefdd5Ofj1iNsyfP7/8aF7XhpVXXrlLH7kzPWDAgC5pRX65EG5Zt42lS5d2aX+55ZYrn/OfMvWRj3xErr76ahkxYoQ8+OCDMm3aNNlxxx1lnXXWie47sFhttdW6OMT53Pl95+99Yd6Ta+dz6KGHSpZlkmWZLF26VGbNmiVbbbWV/OAHPyg/Gtslf8qZ+xTAX/7yl3LssceKiJQFpIjIO++80+31iiuumFSm2lx55ZUiIl1SakT+O2+uHUuXLi2nDK244opqGd/WPI111113lR122EGGDx8up556qogsW1zxH0ctIuX9Cv369Stfs7a2Nhk/frwsWrRInn32Wbnvvvtko402kvHjx8vIkSPl/vvvlz//+c+ydOlSNd0sBf/R6Lnt1v2Sf6Yffvjh8mc6F81vv/12t7+zq6++utqOe3zevHlloeje921tbeU59e977fOc25xiY9HPWYzp06fL7rvvLm+++aZcd911cuihh8oaa6whEydO7LbXL6faNlSC+3TNz33uc+X5yr8mwf9f4V/PY445Ro4//ngplUpy++23y6RJk2TcuHGyww47dLkXhg0bJiLSZV8OAPQu7fU2oFbk/8hmz54t7777bpe9GH/5y19EZJlDkv8hcpkwYYL87//+r0yfPl3mz58vxx13nNpHvldBZJmT/9e//rVbmVtuuaXL41lFRK677jo57LDDksey0koricgycbFo0aLyPzh3VTnV+c3/IT3zzDPyrW99S0aMGCHvv/9++R9u7tD0xvzlrL322vKPf/wjyf6c3BE45JBDypGqHNdp7ylvvPFG2QnK/0HnIidmwworrFBegXX/+fkPfsj/wb///vtdrm/oARFFyO8Nv30tKnHUUUfJ4YcfLo899pj88Y9/lB/96Efypz/9ST7/+c932bSfSi6Mc/J72V/JzG2p5FG+ldDW1ibrrbeenHDCCfLLX/5S7rvvvvKejZz77rtP1llnHcmyTMaPHy8PPfSQXHzxxbL77ruLyDIxteaaa8o///nP8mOQRaR8L2+44YZJZarJ008/Lc8++6yUSiX57Gc/2+Vcvor/6quvygcffCD9+/eXF198UbIsk/79+8uYMWPKZV566aVyPd/W/Le72JFHI6zIkysk3L8nO+64o/ziF7+Qu+++W5599tny34r8+IMPPigi+v6ZFIpGwvLP9GabbSZnn312t/NDhgzp4iT797d2fPjw4dLW1iadnZ1d7nv370KR+z7FxtTPmbZwpUUZVl11Vbn77rvltddekwcffFB+97vfyfe+9z357ne/K+PHj++SOZBTbRsqwV38OP/88+XDH/5wl/P+Vxb417O9vV0uvfRSOe+88+SPf/yjPPjgg3LNNdfIAw88IFOnTpWrrrpKRKS8Z7K396wCwH9p2QjNrrvuKqVSSd566y05+eSTy6uQDz30kFxwwQUiIub3Fnz0ox+V0aNHl/+ZWuk2999/v7z++usycOBAWbBgQXn1N8syOe+880Qk/WlnIbbddtsum79z8ufef+xjH1O/iE9j8ODB8vWvf12uvfba8kruz372M8myTEqlUvkPfm/MX0/INwK/9dZbsscee8gee+whq622mrzzzjtVXfX+2c9+JiLLUnHy9Lk8rSxmQ1tbW9n5c7+bx78nNthgg/I/0rzcwoULu32fT6W47ecPkHj77be7tf/73/9eTj/9dHnwwQdlq622kkmTJpWfnOQ6uD3hk5/8pIgsE8X5JvP3339ffvKTn3Q53xtkWSa//vWvRWSZOLGigaVSSa688kppb2+Xu+++u8tTuXbddVcRkbL9Dz/8sPzzn/+U5Zdfvpxak1KmWuRpWx/5yEe6rTaPGTNGxowZI++//375e2fyvyc77bSTDBw4UD75yU9KqVSShx9+WObOnStZlsktt9wiIsvSGt3f999/f/lpb/lDGdZff311Hl2H3RXSeZrujBkzROS/wmXHHXeUxYsXl1fSQ4ImFy3aU6+Kkn+mX3nlFdlll11kjz32kI9+9KMyf/58GTx4cFm4FSF/uppI17/ft9xyiyxZskQGDhzYJTWwGjbmn6Pbb7+9/Lf7xRdfLKer5efzhauZM2eWH3jhP2Bj0aJFcuGFF8oZZ5who0aNkn322UcuvfRSOeKII0TE/ttQ1Ib84Q+aDSKVXefllluu/GCG9vb28t/ptrY2ef/996P/K66//nr5yle+Iu+8847ssssuMm3aNLnoootEpOu4e3tBBgAU6rN1p3c48cQTyxsE+/fvn6244orl92uuuWY2d+7cctl8U3u+Efjoo4/ORJZ9d0r+PHp/U/uxxx6biUj22c9+tlvfs2fPLveVb2DWHgqQyrnnnlvekHzggQdmu+66a3lD6W9+85tyuZSHApx00kll21ZeeeWsVCpl4mx27635sx4KkMLs2bOz5ZZbLhOR7NOf/nR21FFHZSussELW1taW3XXXXVmW6d9FccUVV2Qikm299dblYxdddFEmItknP/nJctv5OMeOHZt94QtfKG/qbWtry5588slkGy655JJyW/vuu2/2yU9+MhszZkwmsuw7e3L23nvvTESyYcOGZYceemi20UYblct97nOfy7Is/FAA93sYnn322XK5/Ps+8o3xQ4cOzT73uc9lG2ywQbbOOuuUN2FnWZb94he/KN8Txx13XDZlypRs2223LdtuEXoogP89IJ2dneUN8auttlp2+OGHlzforrbaauWN85VeOw3toQBbbbVV+aEIIpKdcsopWZaFv4fmlFNOKc9PvhH6mWeeyQYNGpSJSLbBBhtkgwcPzsTb7J9S5rOf/Ww2YcKE8mekvb09mzBhQjZhwoTspz/9afR8Tv43Kd9A7pPPa//+/bMPfehDWalUyvr165fdf//95TL5PbXCCiuU75FRo0Zlb7zxRrcygwcPzjbccMPynOUPndBYd911M5H/fgdOli37npahQ4eW6+fX/69//WuXvzU52mcgH1N7e3t28MEHZ7/97W/N+y9/gMsvf/lL1cb333+//CCPTTfdNDvuuOOy9dZbLxORbOrUqaYNOfmm/vzhKjn3339/+bu1dt999+wLX/hCeXP8WWedFazv3/cpNr7++uvl7xzaZJNNssMPP7z8XWm77LJL+YEDc+bMKdu19dZbZwcffHC2+eabl+/XZ555JsuyLNtqq63KdadMmZIdc8wx2XLLLZe1t7d32RzvkmrD9ddf3+Vv5C677JJtueWW3f5G5vfcKquskh1xxBHZK6+8kvRQgJtuuikTkWzAgAHZYYcdlu2///5ZqVTKVlxxxfJ3LVnfZzNlypRMZNkDe04++eTspJNOKn8mLr300nK5/PvfLrzwQnUuAKD2tLSgybJlT9naaqutsqFDh2YDBgzIxowZk02aNCl7/fXXu5TzHfLbb789E+n69CTXIV+yZEn5SUI//OEP1b4333zzTESyc889t0sflQiaLMuya6+9Nttss82ygQMHZssvv3y2yy67ZH/4wx+6lEkRNO+99142bdq0bOzYsdnAgQOz1VZbLTvppJPKT6JxqdX8ZVnPBE2WLXtK0m677ZYtt9xy2XLLLZdtu+222Z133lk+X6lT/Mwzz2QikvXr1y976qmnsu233z4bOHBgtt5662U33nhjIRuWLFmSnXTSSdkKK6yQDRs2LDvooIPKT/pafvnly+VeffXVbI899sgGDRqUrbrqqllHR0d23nnnZSKSfeYzn8myrGeC5rXXXss+85nPlNufNm1a+Z/1wQcfXK570003Zdtss002fPjwbPDgwdkGG2yQfe1rXys/TUmjiKDJsmVPUTrttNOyddZZJ+vfv3+2yiqrZAcffHCXpwvVQtD4PyuvvHK27bbbZj/4wQ/KzlVI0LzzzjtlhzMXmVmWZb/5zW+yj33sY9nAgQOzNdZYIzv77LO7fUFurEz+VD/t54ILLoie98d69NFHm/Nx6aWXZuuuu242YMCAbNy4cV0EUZYte/Li8ccfn6288srZ4MGDs5133rnbU8Hee++97LTTTstGjx6d9e/fP9tggw2yK664wuwzy7Ls8MMPV53G3Bl0n77W2dmZrbTSSt3uT+0zsHDhwmzXXXfNBg4cmI0cOTK74447KhY0WbbMET/ssMOyVVZZJRs4cGC24YYbZt/+9re7iICigibLln3R6S677JItt9xy2cCBA7PNNtssu/baa6P1tfs+ZmOWZdlLL72UHXzwwdkqq6yS9e/fP1t33XWz0047rduXmt54443Z2LFjs8GDB2ef+MQnstmzZ5f/t/3lL3/JsizL/v3vf2dHHXVUtuaaa2YDBgzIVllllWz33XfvIoQ1UmxYunRpdtppp2WjRo3Khg0blh1xxBHZn//850xk2QJPzpNPPplttNFG2YABA7J11103mzt3bpKgybJlf9c233zz8pMN99xzz7JYyzJb0CxZsiQ766yzsg996EPZkCFDsmHDhmVbbLFF9r3vfa9cZtGiRdnyyy+fiUj22GOPBecDAGpHKcuMHX0A0DI8+eST8q9//Us22mij8gMaPvWp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tbZir63IiGaLPwfW+K128t8pEYPQfGvz4tfR2g7NmX+tY3Og2ZFyf8fsdseqjTfWV0iAptoeE73WZ0obW6gdAADou5RKJdlwww1l0aJFcs8998j3v/99GTx4sBx33HFdBA10pa3eBmistNJK0ta2zLQbbrhB9thjjzpbVF1iUYpqtJ07yH77fllLdGjOo+uUWW1qDptWXuvXOqYJAGsl3xc5WkRJs8Mtb4kIdxyWg+q3GSqnzZPbhjVvmhCxjvvtuddX68d13q17UROSVhnttda2dTxmfyxK45fP62ifOUuAau81UW/ZFRsbAABATpZl8t5778n9998vm2++uQwfPlwGDhzYJd0MutOQgkZEpLOzUy666CLp7OyUz33uc2qZjo4OKZVK3X5Elincjo6O3jQ5mZBz29MVW835Djlqfhkr2uE6ZL5zFnIILUdOi0poDnyq42k5ydp4fOGiCRC/vhXd0LDG4AsAbT6t875NWj++fe5vLaISEpqWmNXs8Y9p730sUewLKktwacLNas+vb9Ur8tkLRXV8fBEeW2gAAIC+y/bbby9HH320XHXVVbLffvuJiMgbb7whS5YsqbNljU1D7qHp7OyUs88+W0aPHi1HHXVU4fqtvocmldCKteVc+w6+f87qx28z5NBqfWuv/XGEVsOtMrExa+O1CNnsj017bdkT6lsTD9q8aGVCdf0xaO8tO1xS59q3N3Q+ZGesTErkJmaXP94U4RG6FggYAIDWphp7aObPny/Dhw+XLMvk8ccflxEjRshaa60lIiJnnHGGbLHFFrL33nuXy7OHpisNKWh+/OMfy7x582TixIkV1W9WQRNyKCttKzU1xz3nlg85kzEHMCRuQs68JbSsNlPHYo3BsickkqzzKQLEep0yH6E50cbujy1UrxKbtH6KXI/Y+ZhQLSJCQ3WKCOmUPnJS6gMAQHNTDUGz6667ysiRI2WDDTaQDTfcUDbccENZf/31ZbnllpN33nlHhg4d2qU8gqYrDSlo9tlnH1l++eWlf//+5WPTp0+XIUOGJNVvVkFTLWLOXyyKobWXkyI+rHL+8VCEpWj0IBbtCEWjUhxxK/Lio82Fdi5VoFljq+R6xvr150SbA8suv27otzbOUF+h/i1Szvs2xIRJKkUXEYD5AYDmphqCZsGCBfL888/Lc889J88//7w8//zz8p///EdGjx5d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bb+fdhwAmofFixfL7NmzZdy4cbLeeuvJ7rvvLiLSNMKiXvSplDNoXlL2r1jlQv/s3Ta0BxAUSduwxFfscaqhVLf8tZsW524EBoC+i5aKaj3ABACag+985zvywAMPiIjI008/LQceeKAcdthh8ve//73OljU2CBpoWopsxA9FVWICRBM6IZESesqa9dQ2TXD57brtAACk/D1KKQcAjcPzzz8vxxxzjIiIXHzxxXLQQQfJ4YcfLjNmzKizZY0NggaaltQnfWl1rH/wWkqZtele6yv0+GWtv/y8G33RCNkLAH0bK9XM/buh7asBgMZj0KBB0tbWJrNnz5b3339fJkyYIB//+Mfl7bffrrdpDU1DCpr58+fL6aefLscee6xMnDhRXnzxxXqbBC2KFvFwVzVDDwKIRUu076ex+nJt0erFhA4AgPb3ougj5QGgvgwdOlTuuusu+d73vie77bZb+fi7775bR6san4YUNDNmzJDttttOrrrqKjnssMPk8ssvr7dJ0EAUXWFMja7khNLCrGP+8fy9FnWJPejA3ytDPjwAaIQe2e6/J0oD0BxMnDhRfv3rX8uwYcNkv/32ExGRm2++WVZdddU6W9bYNORjm/fbbz+5/vrrZdCgQer7GDy2GUSq+xSw2JPSrCekac5DTCRZ/fv1WXkFAJ+URznzNwOgulT7sc0+d955p2y11VYycuTI8jEe29yVhovQLFmyRJYuXdpFvAwfPlzeeOONOloFzUjRjbCh/SmxvTHacf97aLQUtVDKm/s69lABAABLrKQ+eREA6s/s2bNl+vTpMmPGDPn1r38tL7zwgnzqU5/qImagOw0naES6P2s7yzJpa+tuakdHh5RKpW4/IsuUa0dHR6/YC41Npf/IU6Immnhx00BcEWLlt6c8MY09NACQgh+51R4MQNoZQONy9tlny3vvvScLFiyQn//853LCCSfIZz7zGTnuuOPqbVpD03CCpr29XQYMGCCLFy8WEZHOzk6ZN2+erLTSSt3KTps2TbIs6/YjskwETZs2rVdth94n9Qlkfh2NmPDxBUnoyzFD7afuiyEaAwBFsf5u+MIGABqTlVdeWU455RSZPHmyXHbZZXLHHXfId7/7Xdlnn33qbVpD015vAzS22WYbuffee+Uzn/mMPPTQQ7LRRhvJwIED620WNCBFoihaeS0Vw0/tCokbv92U/PTY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", + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_hvplot_scatter(\n", + " embeddings=embeddings_with_outliers,\n", + " title=f\"UMAP of JUMP embeddings from {example_plate} (with erroneous outliers)\",\n", + " filename=(\n", + " image_with_all_outliers := f\"./images/umap_with_all_outliers_{example_plate}.png\"\n", + " ),\n", + " bgcolor=\"white\",\n", + " cmap=px.colors.sequential.Greens[4:],\n", + " clabel=\"density of single cells\",\n", + ")\n", + "# conserve filespace by displaying export instead of dynamic plot\n", + "Image(image_with_all_outliers)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "b7741b0e-ab6a-43f0-a9bf-954e1913944b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAALGCAYAAACTX9TRAADwMUlEQVR4nOydeZxXVf3/XxcGhmVgQFBQRAQRUlvQxK1UNBUTMvdSK1FBScolF4g0GiMMyw0llzG0+pqmaJrmkhZoLgmVe24sKaKgIQyizAAz5/fH/O71fM68z3I/8/nM53NnXk8fn8fM596zvM+5d/D9uu/3OTdSSikQQgghhBBCSAbpVGoDCCGEEEIIISRfKGgIIYQQQgghmYWChhBCCCGEEJJZKGgIIYQQQgghmYWChhBCCCGEEJJZKGgIIYQQQgghmYWChhBCCCGEEJJZKGgIIYQQQgghmYWChhBCCCGEEJJZKGgIIYQQQgghmYWChhBCCCGEEJJZKGgIIYQQQgghmYWChhBCCCGEEJJZKGgIIYQQQgghmaXdCppp06YhiiJ8+ctfbnHuH//4B6IoQhRF+N///gcA6N+/f3Ls/vvvzym/ZcsW9OnTJzn/2GOPtWjz8ccfT87vscceok16H/Gne/fu+OIXv4jf/OY3BRg1sHz5chxwwAHo0aMH+vXrh1WrVlnLPv/88y3suffeewG0zfxdd911Lfrv3Lkztt12W5xyyilYuXJlq+bi1ltvRRRFGDVqFADgv//9b9LPunXrWtV2KG+99RZOP/10DBkyBF27dkX37t3xmc98BtOmTUN9fX1SLp/5M8eXhjVr1uCHP/whdtttN/To0QNVVVUYNWoUZs6ciQ0bNoh17rjjDnzlK1/BVltthW7dumGnnXbCaaedhldffTV1/6Q8kf5GJkyYgCiKcO6555bUtjSE/m2Ejm3HHXfM+fcxX15++eUW/+ZFUYT+/ftj7733xq233gqlVFL+uOOOE8tvu+22OPzww/HMM8+06OPKK6/E8OHD0a1bN4wcORK33nprzvkNGzZg8uTJ2HbbbdGjRw/st99+ePbZZ1u088wzz2DYsGGIoghHHXVUqvOjRo0S7Y6iCOPHj0/KvfHGGxg/fjz69u2L6upqHH/88S3+nxVS5rXXXsNXv/pV9OrVC/3798fxxx+Pd99913YZCCHtkIpSG1CO/PnPf8bXvva15PvTTz+Nuro6Z50777wz+f25557D0qVLsdNOO4llt9lmG/Tq1QtKKbz33nv497//jQkTJqCurg5nn312q2yfOXMm/v73v2PYsGEYN24cunXrZi3btWtXDBkyBECz410o0s5fRUVFYscnn3yC9957D7/97W/x+OOP48UXX0Tv3r0LZltb8r///Q977703Vq9ejX79+mH//fdHXV0d/vWvf2H27NlYtmxZzn0TEzp/gwcPxrhx4zBs2LBUdi1ZsgQHH3wwVqxYAQCorq5GU1MTXnjhBbzwwgu444478Le//Q3bbLNNUueMM85AbW0tAKBLly7o3bs3li1blozhz3/+Mw488MBUdpDSc/rpp+Puu+92CvxRo0bhf//7H3bbbbe2M6yVSH8bK1aswJAhQ3DllVemFmdf+cpXsHr1agwcOLBgNo4aNQqVlZVQSmHFihVYtGgRFi1ahHfeeQcXX3xxTtlevXolf4+NjY1YuXIlHnnkETz66KN46KGHcNhhhwFofkh0/vnno0uXLthpp53wxhtv4NRTT0W/fv2Sf1MmTJiAu+++G71798bAgQPxzDPP4LDDDsMrr7yC7bffHo2NjZg5cyZ++tOforGxsYXdvvMAsN1227W4pzZs2IA1a9agc+fOAJr/rT/kkEOwYsUKDBo0CJs2bcL8+fPx3//+F4sWLUIURUFl3nvvPRx44IF4//330b9/f2zevBnz58/HihUr8I9//KNV14gQkiFUO2Xq1KkKgPrSl77U4twzzzyjACgA6oMPPlBKKdWvXz8FQG2zzTZq++23zyk/bdo0BUBtvfXWCoB69NFHc843NjaqgQMHKgDqc5/7nAKgLrvsshb9xn3ccsstybGNGzeqY489Num7qampVeM+5JBDFAA1e/bsVPU6d+6sAKg//vGPSqm2mb9rr71WAVBDhgzJKf/UU0+pLl26KABq7ty5qcahc8sttygA6gtf+IJSSqnly5cndq9duzbvdkOZO3euAqB22GEH9dFHHyXHb7vtNgVAde7cWa1cuVIp1br7Ly2jR49WANTgwYPVk08+qZRSqqmpST344IOqb9++CoD62te+lpS/8847k3m75JJL1Mcff6yUUuqdd95R48ePVwDUsGHD1ObNm1tll46traamJtXY2FiwfjoymzZtUn379lXV1dXJsWL+jWzZsqWg7aXlF7/4hQKgrrrqquTYKaecogCoc845p01seOmll5L5Xb58eXK8sbFRHX/88QqAGjp0aHI8/n/DKaecktPOBx98oEaNGqUAqDFjxiTHBw0apACoe++9Vyml1NVXX53z7/jrr7+uAKgePXqod999Vyml1FFHHaUAqB/96EdKKaVeffVVBUCNHTtWnXrqqQqA+vrXv5704Ttv49BDD835f8xNN92kAKjRo0erzZs3qw0bNiT2x//GhZQ599xzFQA1btw4tWXLFrV69Wo1dOhQte+++6p33nnHf1EIIe2Cdptyli977bUX3nnnHbz44ovJsYceegh9+vTBzjvvLNZ54oknsGrVKmy33Xb40Y9+BADik3eJbt264Xvf+x4A4P3338f7779vLfu73/0OX/ziF9G9e3f06tULBx54IB555JGctuJ0pKlTpyKKIrzzzjtBdhSKfObPZL/99sN+++0HAHjppZes5R577DEccMAB6NOnD/r374/x48fj9ddfb90AAKxfvx7f//73MWjQIHTv3h277bYbbrjhhpwyDQ0NuOSSSzB8+HB07do1SXPQ+4+fUHbv3h09evRIjp944ol45ZVX8PHHH2O77bbLaTfN/ElpNT7bn3rqKSxevBgAcMMNN+BLX/oSACCKInz1q1/F7NmzAQD3338/XnvtNQDA3LlzAQD7778/Lr300mQsgwYNwp133oljjjkGZ599dk4Knck999yDPffcE927d0f//v1xxhln4KOPPkrOxyl3f/vb37D//vujZ8+eAD5NubnmmmswceJE9OjRA08//TQAYOXKlZgwYQIGDhyYRBvPOeccrF+/Pmn3+OOPT+pff/312GGHHVBdXY1jjz02SZcEmp86z5o1C8OHD0dlZSV23HFH/OIXv2gxDt/f4MKFCxFFEfr06ZNTb5999kEURTnX4g9/+AP22msvVFdXo0+fPjjggAPw6KOPWuewkDY88MAD6Nq1K9auXYu6ujpEUYQLLrhA7E9Ky1qzZg0mTZqEgQMHorKyEqNGjcKDDz6YnI/TSY855hjcdNNN6Nu3Ly677DIAwD//+U+MGzcO22yzDXr06IHPfvazuO6668S+lVLYeuutEUVRElH84IMP0KlTJ0RRhB//+MdJ2RNPPBFRFOG2225r8bex55574sILLwQAnHfeeYiiKCe1sqKiArfddhuGDh0q3h9mytncuXMRRRGOPvpoPPHEExg1ahR69uyJvffeG88995w4FhedOnXCQQcdBKA5cuGjf//++Pa3vw0AScrn0qVLsXLlSlRWVmLcuHEAkKSC/eMf/8Ann3yCv//97wCAfffdF9tuu21Omb/+9a8Amv8/8qtf/QoPP/xwi3+fQs5L3HXXXXj00Udx4IEHJv098cQTAIAjjzwSFRUV6NmzJw499NAcW0LK3HfffQCAiy66CJ07d8Y222yDZcuW4emnn8agQYOC7COEZB8KGoN4zcif//xnAMC7776LF154AQceeCCamprEOrF4Ofroo5M0rzjtLIQtW7Ykv9tSxC6//HJ85zvfwYsvvohx48bhy1/+Mp544gl89atfTf5B//73v4/BgwcDaHY+zznnHPTq1SvIhkKRz/xJxHNim49///vfGDduHJ555hmccsop2HPPPfHnP/8ZRxxxhNOx9tHU1IRx48bhuuuuQ2VlJb7xjW9g9erV+O53v5s4ZABwzDHHYObMmairq8M3vvENbL/99pg/fz723XffJH1v9913BwC8/vrrGDNmDH7zm9/grbfeQhRF2HXXXVFZWdmi/9bMX4jtsYOwzTbb4IgjjmjRximnnJKkhDzxxBNoampK8utPPvnkFuW7d++Ou+++G+eccw6qqqpEu+bPn49jjz0WL7/8MqZMmYL99tsPtbW1Oe3F13n69OlYvnw5Pve5z+Ucv/3223HXXXfhs5/9LLp3747//e9/2HffffGb3/wGffv2xYknnojGxkbMmTMHhx56aHL/dO/eHUCzeLjqqqtw8MEHo7GxEffcc0+OA3/uuefiRz/6ETZt2oSLLroI1dXVuOiii3DllVcmZUL+BkP5y1/+gm9+85t4++238e1vfxvf+MY38Pzzz2PcuHF4/vnnrfUKZcOwYcNw/PHHA2hOPT3nnHNwwAEHBNXdvHkzDj30UNx8880YNmwYLrzwQqxcuRJf//rXk3slvm7Lli3DBRdcgGHDhqF///744IMPcOihh+LRRx/FuHHjcMYZZ+CTTz7B97///UQ46+jr+P75z38CaBZsSil07doVjz/+eFJ20aJFACCmPp500knJv40HHHAAzjnnHHTt2jU5/9xzz+H73/8+BgwYgA0bNuCee+7B+eefb52D+L564403cMopp2DUqFHYeuutsWjRIhx//PE5/6aH0NTUhIULF1rtl/j4448BIBGuS5YsAQAMHDgQFRXN2eTbb789oihCY2Mjli9fnpTZfvvtk3Z22GGHnPo77rgjvvvd71r79Z03qa+vT/7WLr/88uR4iC2+Mh9//DGWL18OoFnkTZ06Fd/61rdwxRVXtOr/A4SQDFLqEFGxyDdl6tlnn1VRFKn99ttPKaXUzTffrACo66+/Xu29994tUn4aGxvVgAEDFAD1t7/9TSml1JFHHimmnUkpZ5988okaN26cAqB22WUXcSxr165VPXr0UABUbW1tcnzKlCkKgNptt92SY1/5ylcUAPWLX/wi1XwVKuUszfzZUs7+9re/Jfb84Q9/EO39v//7P3Xssceqn/70p0qp5nns1q2bAqCefvpppVR+KWcPPPCAAqC6du2q3nvvPaWUUn/9619VZWWlGjhwoNq0aZP6y1/+ogCoTp06qddee00p1Zy+E6eATJkyJWlv4sSJSZ/xZ9iwYWr69OlqzZo1Sbl85s8cX4jtZ599tgKg9tlnH3H8Sik1ZMgQBUDNmDFDrV27NrH7oYcestZxEadhzpw5s8Wx5557LqfPPffcU9XX1yfl4pSgnj17qrfeeis5Pn36dAVADR8+XH3yySdKqeYUuMrKSgVA3XXXXTn1+/fvr9atW6eUUupXv/pVckwppVavXq0qKioUgCQF77333lNdunRR/fr1U5s3bw7+G1ywYIECkJPGpZRKrt3111+vlFLqggsuUADUT37yk6TMww8/rH72s58lc2JSaBv+/ve/tygn/Y2YaVl33313Um/Dhg1KKaXmz5+fk3oU35sA1N133520H9+jeprUm2++qS655BJ1//33i+O+8sorFQA1ffp0pZRSZ511lurUqZM67rjjVGVlpdq4caP63//+l/xt6f3HfxtKffpvo5RyVlVVpf773/8qpZT66U9/mnN/KPXp/Rn/+6iPL75n/vOf/yTHXn75ZXEsesrZqFGj1N5776323ntvtd122ykA6qCDDlKrVq1KykspZ42NjWrRokVJnXPPPVcp9Wlq6Gc+85mcPuO/iaeeekqdddZZCoCaPHlycj7+97xLly4t7P3Rj37kTCnznVdKqcsvv1wBUIccckjO8V133VUBUHfccUdy7LLLLlMA1KGHHhpURr9fd9hhh5x/Z/fdd1+mpxLSgWCExmCbbbbB6NGj8Y9//ANr1qzBQw89BABJCN/k8ccfx+rVq7H11lsnTziPO+44APa0s6lTp2L48OEYPnw4+vXrhz//+c+Iogg/+9nPxPJxugDQnFYRc8IJJwAAXnnlFXz44Yd5jLbwpJ0/oDl1KJ6PQYMGJU/R99xzTxx99NFinZNPPhnz58/HxRdfjE2bNiU7BQFo1e42cQTji1/8YrIA+OCDD0Z9fT3ee+89dOnSJUl1+OIXv4iRI0cCaF4oH9sap3UAQG1tLRYvXowLL7wQe+65Jzp37oxly5Zh1qxZ2G+//bBx48ac/vOZvzS2d+rU/Cdv9qsTP9ns3LkzoihKjqd96gwAH330UZI2OGLECLzzzjt45513kp0A//a3v+WU/853viNGrsaOHZs8mQU+TTc5+uijk6flgwYNSlIV9WsAAIcffjiqq6sBAHvvvTeA5k0bNm/ejEWLFmHLli3o1KkTtt9+e7zzzjvYsmULhg4dijVr1uDFF18s+N/g0KFDAQCzZs3CUUcdhTlz5mD77bfH9OnTrTtzlcu/A3HK3y677IK1a9finXfeSdIhzevZr1+/nL/hHXfcEUBzlOXLX/4yLr30Urz33nuYMWNGzu5XOvG/q3GEZsGCBdh1111xyCGHoKGhAc8++6wzOhPCEUcckWxMMnbsWACf3h8utt9++yRtc5dddkki4iH/Bj3//PN49tln8eyzz+Ldd99FFEWoq6vDggULWpT9zW9+k7MT5F577YV3330Xn/vc55INBOIIrv43a36XypjlC8mmTZtwxRVXAGjeOVMnxBZfGf3fpP322w/r1q3DwoULUVlZiWeeeSZ15JQQkl3araCJ02Ykx03PndbTDmLGjx+PpqYm/PWvf8Vf//pXfOELX0jSFUxi0bJx40Z88YtfxKhRoxJhYks7e//997F06VIsXboUURRhn332wZ/+9Cer875mzRoAzWkO8doCAIkDDwBr164V6+ZLW80f0Pw/pXg+3nvvPWy33XY466yz8Nhjj6FLly5inbfffhvHHnss+vbti8rKSnTv3j1ZL6S0bU/TEs913759vWX0+de/m07lnnvuicsvvxyLFy/GmjVrcNlll6Fz5854/fXX8Yc//KFF+2nnL43tsSO9bNkybNq0qcX59evXJ+u4hg0bht69eydOWpzaYeJy+vTd2U444QQMHjwYgwcPTrYpN3fXs+Xkm8fTXoN+/folv+vrmRobG5O1Tk1NTdhxxx0TG994443ExkL/DZ5xxhn43ve+hyiKcN999+Gcc87BZz/7Wey///7Wdkrx74BEPF//+Mc/krn6whe+AKBZwOo2bLvttjkO6G67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2NioRo4cmdzXEydOVDvssIPabbfdFAD1q1/9Siml1EUXXaSA5o1AfvCDH6hzzz1X7bjjjgqAuvbaa61zWUgbli1blszD2LFj1fXXXx+0KcCmTZvUF77wheTeO+uss9ROO+2kAKhp06YppeRF+Uop9ec//zn5d+ess85SF110kdp3330VAHXsscdax/3UU08ldumbp1xzzTXJ8W9/+9vJcan/eBxbb721Ou2009R7770XfH/YNgUwxxf/vdk20LBtCvD5z39ede3aVQFQW221lVqxYoVSyv4emnfffVdVV1crAOriiy9uMe4uXbqoz3zmMyqKItW5c+ecv894zNXV1ck9N2DAgGSTkldeeUWNGzdOjRs3Tg0fPjw5Hx976KGHnOfffPNNpVTzxhrxWKVNEhoaGtSIESMUADVo0CDVv39/BW1DgNAyr7zySrJZxtChQ5N52WWXXQr6bixCSHnTrgWNUs27RO21116qZ8+eqmvXrmrYsGHqnHPOUe+//35OOdOhvO+++xQA9Z3vfCcpozuUW7ZsUdtss40CoH7729+Kfe++++4KgJo1a1ZOH/kIGqWUmjdvnho1apSqrKxUvXr1Uocccoj6+9//nlMmRNA0NDSoGTNmqOHDh6vKykq17bbbqnPPPTfZLUqnWPOnVOsEzT//+U+15557qm7duqnPfOYzav78+eqll15SO+ywg+rWrZu64YYb8n6x5ocffqjOPPNMNWDAANWlSxc1YsQI9ctf/jJnx5yNGzeqH/7wh2rHHXdUXbp0UVtvvbX61re+lbMTl1JKvfjii2rChAlq2LBhqlu3bom9F154objLWZr5k5yqENuVahY/t956qzr22GOTXZBGjx6t7rvvPuu8PPzww2rcuHGqf//+qmvXrmrIkCHqtNNOS3Z6c/GHP/xB7b777qpr165qq622Ul//+tfVf/7zn+R8WkGjlFJvv/22+ta3vqW23npr1aVLFzV06FD1wx/+MHFCbfUlh3XLli2qpqZGDR06VHXp0kUNGjRInXXWWaquri6nz5C/weeff17tvffeqnv37mq33XZTDz/8sDrhhBMUAHXllVcm/V166aXqM5/5jOrRo4fq3bu32nPPPdWvf/1r71wWygallDr//PNVVVWV6tWrl7rkkkuCBI1SzYJywoQJauutt1aVlZVq5MiR6pe//GUi/mwOv1LN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", + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# show a UMAP for all outliers within the data\n", + "plot_hvplot_scatter(\n", + " embeddings=embeddings_with_outliers,\n", + " title=f\"UMAP of JUMP all coSMicQC erroneous outliers within {example_plate}\",\n", + " filename=(\n", + " image_with_outliers := f\"./images/umap_erroneous_outliers_{example_plate}.png\"\n", + " ),\n", + " color_dataframe=df_features_with_cqc_outlier_data,\n", + " color_column=\"analysis.included_at_least_one_outlier\",\n", + " clabel=\"density of single cells classified as outliers\",\n", + ")\n", + "\n", + "# conserve filespace by displaying export instead of dynamic plot\n", + "Image(image_with_outliers)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "060fe0e2-acab-41dd-9990-7db763496843", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Metadata_ImageNumberImage_Metadata_AbsPositionZImage_Metadata_AbsTimeImage_Metadata_BinningXImage_Metadata_BinningYImage_Metadata_ChannelIDImage_Metadata_ChannelNameImage_Metadata_ColImage_Metadata_ExposureTimeImage_Metadata_FieldID...Nuclei_Texture_Variance_RNA_10_02_256Nuclei_Texture_Variance_RNA_10_03_256Nuclei_Texture_Variance_RNA_3_00_256Nuclei_Texture_Variance_RNA_3_01_256Nuclei_Texture_Variance_RNA_3_02_256Nuclei_Texture_Variance_RNA_3_03_256Nuclei_Texture_Variance_RNA_5_00_256Nuclei_Texture_Variance_RNA_5_01_256Nuclei_Texture_Variance_RNA_5_02_256Nuclei_Texture_Variance_RNA_5_03_256
011190.1345802020-11-03 01:12:09.290225HOECHST 3334250.013...188.136270223.444366196.348149201.692217193.447304191.112130194.338794205.641407190.236222198.995454
111250.1345752020-11-03 01:12:18.387225HOECHST 3334250.019...307.138707352.777180280.160417293.907281270.642670257.492850268.785849277.387503266.571322284.912086
211200.1345772020-11-03 01:12:10.803225HOECHST 3334250.014...67.57264352.25385467.19821565.97355467.09920969.76472967.14921564.46717664.35277467.241595
311240.1345772020-11-03 01:12:16.857225HOECHST 3334250.018...182.255135186.273646171.056953150.516700147.429986148.456139170.693650164.615620157.828872162.132785
411250.1345752020-11-03 01:12:18.387225HOECHST 3334250.019...39.57747621.28361035.89749836.09709736.17565238.25240037.73282333.67774038.38849140.384347
..................................................................
3915231740.1344312020-11-03 01:55:02.947225HOECHST 33342170.016...159.058337115.258242130.619023115.966416118.448773124.769018126.691320127.193235119.042217117.850916
3915331700.1344272020-11-03 01:54:56.770225HOECHST 33342170.012...62.76478853.63238657.50465158.94741957.76538363.62011259.97592259.81413158.78826166.756129
3915431720.1344252020-11-03 01:54:59.857225HOECHST 33342170.014...40.87466044.17790337.17860738.00440638.77263638.69482938.58779238.77802639.21222240.056736
3915531700.1344272020-11-03 01:54:56.770225HOECHST 33342170.012...164.419348183.455783166.211734138.889418133.995824134.760379165.046365139.673023135.101638138.366898
3915631770.1344282020-11-03 01:55:07.597225HOECHST 33342170.019...80.44899291.61820373.40033071.56438488.31374675.58582675.98500473.96388986.17202777.052401
\n", + "

37948 rows × 7390 columns

\n", + "
" + ], + "text/plain": [ + " Metadata_ImageNumber Image_Metadata_AbsPositionZ \\\n", + "0 1119 0.134580 \n", + "1 1125 0.134575 \n", + "2 1120 0.134577 \n", + "3 1124 0.134577 \n", + "4 1125 0.134575 \n", + "... ... ... \n", + "39152 3174 0.134431 \n", + "39153 3170 0.134427 \n", + "39154 3172 0.134425 \n", + "39155 3170 0.134427 \n", + "39156 3177 0.134428 \n", + "\n", + " Image_Metadata_AbsTime Image_Metadata_BinningX \\\n", + "0 2020-11-03 01:12:09.290 2 \n", + "1 2020-11-03 01:12:18.387 2 \n", + "2 2020-11-03 01:12:10.803 2 \n", + "3 2020-11-03 01:12:16.857 2 \n", + "4 2020-11-03 01:12:18.387 2 \n", + "... ... ... \n", + "39152 2020-11-03 01:55:02.947 2 \n", + "39153 2020-11-03 01:54:56.770 2 \n", + "39154 2020-11-03 01:54:59.857 2 \n", + "39155 2020-11-03 01:54:56.770 2 \n", + "39156 2020-11-03 01:55:07.597 2 \n", + "\n", + " Image_Metadata_BinningY Image_Metadata_ChannelID \\\n", + "0 2 5 \n", + "1 2 5 \n", + "2 2 5 \n", + "3 2 5 \n", + "4 2 5 \n", + "... ... ... \n", + "39152 2 5 \n", + "39153 2 5 \n", + "39154 2 5 \n", + "39155 2 5 \n", + "39156 2 5 \n", + "\n", + " Image_Metadata_ChannelName Image_Metadata_Col \\\n", + "0 HOECHST 33342 5 \n", + "1 HOECHST 33342 5 \n", + "2 HOECHST 33342 5 \n", + "3 HOECHST 33342 5 \n", + "4 HOECHST 33342 5 \n", + "... ... ... \n", + "39152 HOECHST 33342 17 \n", + "39153 HOECHST 33342 17 \n", + "39154 HOECHST 33342 17 \n", + "39155 HOECHST 33342 17 \n", + "39156 HOECHST 33342 17 \n", + "\n", + " Image_Metadata_ExposureTime Image_Metadata_FieldID ... \\\n", + "0 0.01 3 ... \n", + "1 0.01 9 ... \n", + "2 0.01 4 ... \n", + "3 0.01 8 ... \n", + "4 0.01 9 ... \n", + "... ... ... ... \n", + "39152 0.01 6 ... \n", + "39153 0.01 2 ... \n", + "39154 0.01 4 ... \n", + "39155 0.01 2 ... \n", + "39156 0.01 9 ... \n", + "\n", + " Nuclei_Texture_Variance_RNA_10_02_256 \\\n", + "0 188.136270 \n", + "1 307.138707 \n", + "2 67.572643 \n", + "3 182.255135 \n", + "4 39.577476 \n", + "... ... \n", + "39152 159.058337 \n", + "39153 62.764788 \n", + "39154 40.874660 \n", + "39155 164.419348 \n", + "39156 80.448992 \n", + "\n", + " Nuclei_Texture_Variance_RNA_10_03_256 \\\n", + "0 223.444366 \n", + "1 352.777180 \n", + "2 52.253854 \n", + "3 186.273646 \n", + "4 21.283610 \n", + "... ... \n", + "39152 115.258242 \n", + "39153 53.632386 \n", + "39154 44.177903 \n", + "39155 183.455783 \n", + "39156 91.618203 \n", + "\n", + " Nuclei_Texture_Variance_RNA_3_00_256 \\\n", + "0 196.348149 \n", + "1 280.160417 \n", + "2 67.198215 \n", + "3 171.056953 \n", + "4 35.897498 \n", + "... ... \n", + "39152 130.619023 \n", + "39153 57.504651 \n", + "39154 37.178607 \n", + "39155 166.211734 \n", + "39156 73.400330 \n", + "\n", + " Nuclei_Texture_Variance_RNA_3_01_256 \\\n", + "0 201.692217 \n", + "1 293.907281 \n", + "2 65.973554 \n", + "3 150.516700 \n", + "4 36.097097 \n", + "... ... \n", + "39152 115.966416 \n", + "39153 58.947419 \n", + "39154 38.004406 \n", + "39155 138.889418 \n", + "39156 71.564384 \n", + "\n", + " Nuclei_Texture_Variance_RNA_3_02_256 \\\n", + "0 193.447304 \n", + "1 270.642670 \n", + "2 67.099209 \n", + "3 147.429986 \n", + "4 36.175652 \n", + "... ... \n", + "39152 118.448773 \n", + "39153 57.765383 \n", + "39154 38.772636 \n", + "39155 133.995824 \n", + "39156 88.313746 \n", + "\n", + " Nuclei_Texture_Variance_RNA_3_03_256 \\\n", + "0 191.112130 \n", + "1 257.492850 \n", + "2 69.764729 \n", + "3 148.456139 \n", + "4 38.252400 \n", + "... ... \n", + "39152 124.769018 \n", + "39153 63.620112 \n", + "39154 38.694829 \n", + "39155 134.760379 \n", + "39156 75.585826 \n", + "\n", + " Nuclei_Texture_Variance_RNA_5_00_256 \\\n", + "0 194.338794 \n", + "1 268.785849 \n", + "2 67.149215 \n", + "3 170.693650 \n", + "4 37.732823 \n", + "... ... \n", + "39152 126.691320 \n", + "39153 59.975922 \n", + "39154 38.587792 \n", + "39155 165.046365 \n", + "39156 75.985004 \n", + "\n", + " Nuclei_Texture_Variance_RNA_5_01_256 \\\n", + "0 205.641407 \n", + "1 277.387503 \n", + "2 64.467176 \n", + "3 164.615620 \n", + "4 33.677740 \n", + "... ... \n", + "39152 127.193235 \n", + "39153 59.814131 \n", + "39154 38.778026 \n", + "39155 139.673023 \n", + "39156 73.963889 \n", + "\n", + " Nuclei_Texture_Variance_RNA_5_02_256 \\\n", + "0 190.236222 \n", + "1 266.571322 \n", + "2 64.352774 \n", + "3 157.828872 \n", + "4 38.388491 \n", + "... ... \n", + "39152 119.042217 \n", + "39153 58.788261 \n", + "39154 39.212222 \n", + "39155 135.101638 \n", + "39156 86.172027 \n", + "\n", + " Nuclei_Texture_Variance_RNA_5_03_256 \n", + "0 198.995454 \n", + "1 284.912086 \n", + "2 67.241595 \n", + "3 162.132785 \n", + "4 40.384347 \n", + "... ... \n", + "39152 117.850916 \n", + "39153 66.756129 \n", + "39154 40.056736 \n", + "39155 138.366898 \n", + "39156 77.052401 \n", + "\n", + "[37948 rows x 7390 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# prepare data for normalization and feature selection\n", + "# by removing cosmicqc and analaysis focused columns.\n", + "df_for_normalize_and_feature_select_without_outliers = df_features_with_cqc_outlier_data[\n", + " # seek values which are false (not considered an outlier)\n", + " ~df_features_with_cqc_outlier_data[\"analysis.included_at_least_one_outlier\"]\n", + "][\n", + " # read feature names from cytotable output, which excludes\n", + " # cosmicqc-added columns.\n", + " parquet.read_schema(merged_single_cells).names\n", + "]\n", + "# show the modified column count\n", + "len(df_for_normalize_and_feature_select_without_outliers.columns)\n", + "\n", + "df_for_normalize_and_feature_select_without_outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "777d6867-092e-49fa-9d9f-d8adc529a326", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Length of dataset with outliers: 39157\n", + "Length of dataset without outliers: 37948\n" + ] + } + ], + "source": [ + "print(\"Length of dataset with outliers: \", len(df_for_normalize_and_feature_select))\n", + "print(\n", + " \"Length of dataset without outliers: \",\n", + " len(df_for_normalize_and_feature_select_without_outliers),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "38c6d104-c18d-4a56-89e1-955cff414a08", + "metadata": {}, + "outputs": [], + "source": [ + "parquet_pycytominer_annotated_wo_outliers = (\n", + " f\"./{example_plate}_annotated_wo_outliers.parquet\"\n", + ")\n", + "\n", + "# check if we already have annotated data\n", + "if not pathlib.Path(parquet_pycytominer_annotated_wo_outliers).is_file():\n", + " # annotate the data using pycytominer\n", + " pycytominer.annotate(\n", + " profiles=df_for_normalize_and_feature_select_without_outliers,\n", + " # read the platemap directly from AWS S3 related location\n", + " platemap=df_platemap_and_metadata,\n", + " join_on=[\"Metadata_well_position\", \"Metadata_Well\"],\n", + " output_file=parquet_pycytominer_annotated_wo_outliers,\n", + " output_type=\"parquet\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "0ae2b201-6396-44fd-9059-d15dc9f93d7f", + "metadata": {}, + "outputs": [], + "source": [ + "parquet_pycytominer_normalized_wo_outliers = (\n", + " f\"./{example_plate}_normalized_wo_outliers.parquet\"\n", + ")\n", + "\n", + "# check if we already have normalized data\n", + "if not pathlib.Path(parquet_pycytominer_normalized_wo_outliers).is_file():\n", + " # normalize the data using pcytominer\n", + " df_pycytominer_normalized = pycytominer.normalize(\n", + " profiles=parquet_pycytominer_annotated_wo_outliers,\n", + " features=\"infer\",\n", + " image_features=False,\n", + " meta_features=\"infer\",\n", + " method=\"standardize\",\n", + " samples=\"Metadata_control_type == 'negcon'\",\n", + " output_file=parquet_pycytominer_normalized_wo_outliers,\n", + " output_type=\"parquet\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "a090b427-5550-46cd-85fd-7a6753a9e851", + "metadata": {}, + "outputs": [], + "source": [ + "parquet_pycytominer_feature_selected_wo_outliers = (\n", + " f\"./{example_plate}_feature_select_wo_outliers.parquet\"\n", + ")\n", + "\n", + "# check if we already have feature selected data\n", + "if not pathlib.Path(parquet_pycytominer_feature_selected_wo_outliers).is_file():\n", + " # feature select normalized data using pycytominer\n", + " df_pycytominer_feature_selected = pycytominer.feature_select(\n", + " profiles=parquet_pycytominer_normalized_wo_outliers,\n", + " operation=[\n", + " \"variance_threshold\",\n", + " \"correlation_threshold\",\n", + " \"blocklist\",\n", + " \"drop_na_columns\",\n", + " ],\n", + " na_cutoff=0,\n", + " output_file=parquet_pycytominer_feature_selected_wo_outliers,\n", + " output_type=\"parquet\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "78d9b892-5b9e-4765-9381-a5dcf8ead08b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(37948, 2)\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[-1.4753685, 2.328971 ],\n", + " [-4.9449954, -3.5651774],\n", + " [-0.7737871, 2.0379725]], dtype=float32)" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# calculate UMAP embeddings from data without coSMicQC-detected outliers\n", + "embeddings_without_outliers = generate_umap_embeddings(\n", + " df_input=pd.read_parquet(parquet_pycytominer_feature_selected_wo_outliers),\n", + " cols_metadata_to_exclude=all_metadata_cols,\n", + " random_state=0,\n", + ")\n", + "# show the shape and top values from the embeddings array\n", + "print(embeddings_without_outliers.shape)\n", + "embeddings_without_outliers[:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "c704ace2-c2eb-4caf-9955-8196d8f5c91f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAALGCAYAAACTX9TRAADTwklEQVR4nOy9ebxVVf3//z54mRFxxBuOiJhDaqE5QKamVmI5gZYKoqKYaGoKOHzrctUs5eMAZg45pFlqoGWZWhoOgalF4pADgThAGKYiIohy7/r9wW+f1ln3/X6vtfY55+59znk9H4/7uOfsvdZ7vdfa+9y7Xvv9XusUjDGGAAAAAAAAAKAG6ZK1AwAAAAAAAACQFggaAAAAAAAAQM0CQQMAAAAAAACoWSBoAAAAAAAAADULBA0AAAAAAACgZoGgAQAAAAAAANQsEDQAAAAAAACAmgWCBgAAAAAAAFCzQNAAAAAAAAAAahYIGgAAAAAAAEDNAkEDAAAAAAAAqFkgaAAAAAAAAAA1CwQNAAAAAAAAoGaBoAEAAAAAAADULHUtaM477zwqFAo0bNiwDueeeuopKhQKVCgU6L///S8REW200UbFY7///e9Lyq9Zs4b69etXPP/II490sPn4448Xz3/hC19gfbLbSH569uxJQ4YModtuu60CvSZauHAh7bPPPtSrVy/acMMN6e233xbLzp07t4M/v/3tb4moc8bvJz/5SYf211lnHWpubqbjjz+eFi9eXJExieX1118v+rNs2bKK23/ooYeoUCjQpptuqpZLrsG3vvWtTvGrHKZMmULNzc3Uo0cPOvfcc7N2p4QRI0Z0uM+6d+9OAwcOpJNOOokWLlxYLPviiy92KJt8TnfccUdqaWmhlStXlth/6KGHaPfdd6devXpRc3MzTZo0iT799NPoMosXL6YDDjiACoUC9evXr0M/tPO//e1vWb+Tn7///e/FsldeeSUNGjSIevToQdtttx39/Oc/L7G1YsUKOvXUU6m5uZl69epFe++9Nz399NMlZdrb22nKlCk0cOBA6tmzJ22//fYd7HDMnTuXmpqaaIMNNij+7Ygh9DPw85//nAqFAu26667RbQBgM2bMGCoUCnTWWWcRUef/Hb766qupUCjQPvvsU/W2AKhV6lrQlMMf/vCHkvdPPvkkffDBB2qdX//618XXzz77LC1YsEAsu8kmm9A222xDAwcOpEKhQP/4xz9ozJgxNG3atPIcJ6JLLrmE/vKXv1BzczMde+yx1KNHD7Fst27daMstt6Qtt9yy7HZtYsevqamJttlmG9pmm22of//+9Pbbb9Ptt99OQ4cOpeXLl1fUt1qmV69eNHz4cBo+fDh17do1a3eKvPnmmzRx4kR6++236YgjjhAFfdZstNFGtMcee9Aee+xBn/3sZ2nRokV0yy230J577knvvfdeh/Jbbrll8b7s06cPvfTSS3TRRRfRV7/6VTLGEBHRP/7xD/rmN79Jf//732nzzTen5cuX0+WXX07nnXde0U5ImXvvvZd23nln+vOf/8z67jvfq1ev4mfZ/llnnXWIiIq/f/KTn9A555xDb775Jm299dY0f/58OuGEE0oeQowZM4ZuuOEGWrlyJW266ab017/+lQ466CBatGhRsUxLSwtNnDiR3njjDWpubqZXXnmFTjjhBHrwwQfVa3D66adTW1sbXXTRRbTRRhupZaV+cp+BQYMG0WGHHRZtr9K89dZb1KVLF7r66quzdgWkIOT6dfbf4dNPP5122mkn+stf/kK/+tWvqt4eALUIBA3DJpts0mFCnvyT3njjjdk67e3tdO+99xIR0ec+9zkiIpo+fbrYxmWXXUbz58+nBQsW0HvvvUdHHnkkERH98Ic/LE6U0vLmm28SEdG4ceNo2rRp7JPehB122IFef/11ev3114sTnnJJM34DBgyg+fPn0/z58+nf//43zZ49m7p27UpvvPEG3XHHHRXxqx7YZJNN6P7776f777+fevfunbU7Rd566y0iIurZsyf96le/omOOOYYt19bW1pludWD48OH01FNP0VNPPUXPPfcc/e1vf6MuXbrQ0qVL6f777+9Q/rHHHivel++88w7ddNNNREQ0a9YseuKJJ4iI6IorrqBPP/2UzjrrLHr11Vdp9uzZRET005/+lD788MPgMqeddhptuOGGdPHFF7O++84fdNBBxc9y8vPLX/6S2tvb6fOf/zztsssuRET04x//mIjW/n16+eWX6corrySitX+TiIjmzZtH99xzD/Xq1YteeeUVeu211+iwww6j5cuX0/XXX09EREuXLqUpU6bQOuusQ0888QS99tpr9P3vf5+23XZbevbZZ8XxnzVrFs2ePZs23HBDGjt2rFhOg/sM/P3vf1cfIHUmd999d9l/wyWkz8+aNWuq0l4jEnL9KvV3OPS6NTU10TnnnENEayPhAICOQNAwfPGLX6RFixbR888/Xzz24IMPUr9+/Wjbbbdl6zzxxBP09ttv02c+8xm68MILiag0YqPRo0cPOv3004lo7URh6dKlYtlf/OIXNGTIEOrZsyetu+669OUvf5n++Mc/lthK0rkmTZpEhUKh5KlqZ5Bm/Fz23ntv2nvvvYmI6IUXXhDLPf/88zR8+HBab731qHfv3vS1r32N5s2bVzx/7bXXUqFQoMMPP5zuv/9+GjRoEPXu3ZsOO+wwWrFiBd1yyy20+eab0wYbbEDf/e532QnDm2++SQceeCD16tWLNt988+KkNtQHYwxNnjyZ+vfvT3369KERI0bQ+++/36GdZcuW0THHHEN9+vShjTfemC644IIO/1i5VIeRI0dSoVCgqVOn0nXXXUdbbLEFrbfeenTkkUeWpPQsW7aMvv3tb1OfPn1oo402ovPOO6+YynDEEUcUy/3973+n4cOH0yabbEK9evWinXbaiX7yk5+I1+DHP/5xMS1x1apVVCgUaOzYscV0wiOOOIJuvPFGWn/99elHP/oRERGtXr2avv/979OgQYOoW7dutNFGG9HIkSPp1Vdfrei187HLLrsUowRuGhnHSSedROuuuy4REb388stEREVhkzyU2HXXXWmrrbaijz/+mJ588sngMt/5zndo7ty5tOeee7Jt+867tLW10WmnnUbGGLryyiupS5cutGDBAlq8eDF1796dhg8fTkRUjGo89dRTtHLlSvrLX/5CRER77bUXNTc3l5RJokMPPfQQrV69mvbZZx8aOnQoERFddNFFNG/ePLrgggtEn2655RYiIjruuOOoR48edOSRR1KhUKBf/OIXxTI77rhjh/SaG264gQqFAp188skdPgPnnnsu7b777kREdN9991GhUCgRp01NTTRnzhz64he/SL1796Y99tijg+h66qmn6Gtf+xqtt9561KNHD9ppp51o2rRpJZ+/fffdlwqFQsmTezd1dLfddqMJEyYQEdHZZ59NhUKBVqxYwY7Fu+++SyeffDJtuumm1L17d9p1113pgQceKJ6XPj9JSuQGG2xAf/vb32jrrbemr3/968V6vv8R//znP6lQKND6669Pixcvpq9//evUu3dvGjRoEN15550lPvr+thGtTYMcM2YMbbrppsWI/5lnnlkSWQ8ZOyKit99+m04++WTaYostqEePHrTlllvS2WefTR999BE7hgmdff2klLN7772XdtttN+rZsydttNFGdMoppxQfWBD9Ly175syZ9KUvfakohtasWUMXX3wxbbfddtSrVy/q378/jRw5kubPn1+se/TRR9O6665Lc+fOpblz56rjAUAjAkHDkEzOkijDv//9b3ruuefoy1/+MrW3t7N1EvFy+OGH0/Dhw6lHjx7etDMb+0mNlCJ2+eWX0+jRo4v/ZIYNG0ZPPPEEff3rX6f77ruPiIjOOOMM2nzzzYmI6Etf+hKdeeaZxQlYZ5Fm/DiSMZHGY+HChfSlL32JHnjgARo+fDideOKJ9Mgjj9D+++9f/Gfas2dPIiJ69dVX6dxzz6U99tiDPv74Y7rvvvto9OjRdOmll9KwYcNo2bJldM0119Bdd93VoZ3jjjuOevfuTTvttBMtWrSITjnlFJozZ06wD7fccgu1trbS0qVL6aCDDqLly5cX/2nanHHGGXTnnXdSly5d6OCDD6bf//739Mtf/tI7Tkkf7777brrqqqto//33p7a2Nrr33ntL1rKcfvrpdNddd5Exhg466CC677776JprriGitamHRETvvPMOHXjggfTwww/T8OHD6ZRTTqGVK1fSGWecQddeey3b/u67704jR44kIqKuXbvSmWeeSQceeGDxur322mt07rnn0sCBA4vi4YgjjqBLLrmEPvjgAzr66KNps802oxkzZtBee+1Fb7zxRsWunY/nn3+e/vvf/1KhUKAvfelL3vKffvopffLJJ0RE1K9fP1q9enXxgcFmm21WLLfFFlsQEdH8+fODyhCtTeHq1auX2LbvvMuNN95Izz//PH3961+nfffdt6StTTfdlJqamoo+FQoFamtro4ULFxbLaL4mDxl23nlnmj59Oh133HF05pln0lNPPaX69NhjjxER0X777UdEVBQtyfqed955h15++WXq1q0bPf300/Txxx8TEdEzzzxDRERf/vKXO9jcZ599aK+99iIiooEDB9KZZ55JAwcOLJ5fvXo1HXbYYdSlSxfq0qULPfPMMzRy5Mji35dZs2YVJ/277rorHX744fTaa6/RmWeeGb0W7Jhjjin+/d1nn33ozDPPLH62bD799FM68MAD6aabbqKBAwfShAkTaPHixXTooYcW1ypJn5/k+Icffkjf+c53qFevXrTVVlsRUdj/iORz9eGHH9KIESOob9++9LnPfY4WLFhAo0aNKl7jkL9t//3vf2mvvfai2267jdZff3369re/TW1tbTRt2jQ68MADoyNHRx55JN100030uc99jsaPH0+bb745XX311TRmzBixThbXj2PGjBl05JFH0osvvkjjx4+nvffem372s5/RscceWyyTXLsLLriAFi5cWMzmaGlpoR/84AfUo0cPOvXUU+nLX/4yzZgxg/bdd19avXo1Ea29bsnDjORzBACwMHXMpEmTDBGZoUOHdjj317/+1RCRISLzzjvvGGOM2XDDDQ0RmaefftoUCgWz9957G2OMuemmmwwRmeuuu87ssccehojMww8/XLTV1tZm+vfvb4jIzJw50xhjzDe/+U1DROZHP/pRSbtJG7feemvx2MqVK83w4cMNEZntt9+e7cv7779vevXqZYjI/OxnPyseHz9+vCEis+OOOxaPfeUrXzFEZKZMmRI1Xuuss44hIvOb3/zGGNM543fNNdcYIjJbbrllif2ZM2cW/bn77rtZf8844wxDROaAAw4oHjv99NMNEZmrrrrKGGPMrbfeWvTzueeeM8YYM2bMGENEpkuXLmb+/PnGGGO+9a1vGSIyo0ePNsYYs3DhwmK9iy++2BhjzJo1a8yQIUMMEZmxY8cG+7DLLrsYIjLjx48vljniiCMMEZn+/fsbY4xZunSpaWpqMkRkpk+fbowx5qOPPjKbbbaZISJz9NFHd/Dr/fffN8YYc/zxxxsiMhtttJFZtmyZMcaYn/70p8Vjrv077rjDGGPMhx9+aD7zmc+U2L///vsNEZl999236Ou//vUv8/3vf9/8/ve/Z6+DMcb85S9/MURkevfuXTxmj/0999xTPP6nP/2pOP6vvPKKMcaYTz75xOy6664l45T22nEceeSRxfHYY489zB577GF22WUX061bN7PBBhuY66+/vlj2hRdeKLa7cOHC4vFly5aZ733ve4aITPfu3c3bb79tli5dWiz79ttvF8t+9atfNURkfvjDHwaVsXn44YcNEZn11luP7YvvvDHGrFixwmyyySaGiMysWbOKx3/9618bIjKf/exnS8p3797dEJGZPXu2Oe200wwRmVNPPbV4Pvm8d+3a1Rjzv3tuiy22KPaNiExTU5N4nyxbtqxY7s033zTGGPOPf/zDEFHxb0Xi39FHH22IyDz66KPGGGN22mmnYj3uM3DxxRcbIjKHHnposT37/pkxY4Yx5n/3KRGZF1980RhjzN57722IyBx77LHFutOnTy/2Z8mSJcYYY7785S+XfK6NMebBBx8s+Rwb87+/v3Y5l3vuuad4DVesWGGMMWbGjBklfZA+P3b/zzjjjOLx0P8Rdv1LLrnEGGPMp59+agYMGGCIyPzkJz8xxoT9bbvgggsMEZlBgwaZlStXGmOMWbRoUfF+Sv6WhYzdhx9+aIjIdOvWzaxevbro14UXXmh++tOfimPZGdcvud/PPPPMDmOY3IOf+9znSsbUPvbss88aY4zZcsstDRGZ3XbbzXz88cfFcrvttpshIvPYY48Vj/30pz81//d//2f+85//FI+df/75hojMqFGjxPEAoFFBhIZhk002od13352eeuopevfdd4vrP5IUDZfHH3+c/vOf/9DGG29cfOI4YsQIIpLTziZNmkSDBg2iQYMG0YYbbkh/+MMfqFAo0A9/+EO2fJIOQkT07W9/u3j8qKOOIqK1aQTcouYsiB0/orVpC8l4DBgwoBhl2G233ejwww9n6ySpOp/73Odo0aJFtGjRItppp52IiGjmzJklZbfYYgvaeeediYiKawm23XZb2mabbUqOcTvCJeO9zjrr0MEHH0xERC+99FKQD8aYYtmkLtH/7o+EV199tfg0MynXq1evkjo+kpQLIqI99tiDiNY+Qf30009L7B966KFERNSnT58O1yR50vvYY4/RsGHD6KKLLqIlS5ZQS0sLHXLIIcG+2Gy44YYl1zBJWxoyZAhtt912RLQ2spOUSVKeEsq5di7//e9/6emnn6ann36annvuOfrkk0+oUCjQX//6V3rnnXc6lN96662LqSX9+vWjK6+8spje179//5KIY6FQYF+HlKk0N998My1dupSGDRtWTAmzfXHb5vzVfE3upXfeeYeeeOIJev/994tRjyTl1sVOf0zW0u2yyy603nrr0dy5c6mtrY0effRRIqJiCu7jjz9OH330Eb388su09dZbF5+ex7DJJpsUU/2GDRtWjHL9+9//ppUrVxajSva6ryOOOIKamppozZo19Ne//jW6TR/J343tt9+e3n//fVq0aFExHdf92+V+fmxOPvnk4us0/yOS3RObmpqKG3n8+9//LvFR+/uafJYPP/zwYuRnwIABxXRh97Os0atXL9p0003pk08+oZ122om+973v0QMPPEDnnXcefec732HrZHX9XD788MNi1HLw4MHF8UrG1L2mo0ePpu7duxffb7311kS0NkJ14okn0u23306HHnoonXPOObTJJpsUyyUR7jS7AwJQ79S1oEkWua9atarDOTsvlgspH3LIIdTe3k5//vOf6c9//jPtsssu4j/TRLSsWrWKhgwZQrvuumtRmEhpZ0uXLqUFCxbQggULqFAo0J577km/+93vxH9c7777LhGtDTvbixDtXYK4dRnl0FnjR7R2gpSMx5IlS+gzn/kMnXbaafTII4+Iu8gkuctXXXUVbb755rT55pvTqaeeSkRUTFtKWH/99Yuvk7C/vVlCcoxbh2H/Q0nsJNfD58OyZcuKW/PaPmy44YYlbSST6W7dupWkFbnlNOyyto22trYS+3369Cmec3eZ2nHHHelnP/sZbbTRRjR79mxqaWmhffbZh7baait1sbdGc3NzyYQ4GTu37eS9O+kq59q5HH/88WSMIWMMtbW10fz58+mLX/wi3XbbbcXJnU2yy5m9C+CDDz5I48aNIyIqCkgiKsnzT16vv/76QWUqTbJ43053IfrfuNl+tLW1FdNa1l9/fbaM62uSxnrggQfSl770JerXrx9NmjSJiNZOnN3tqImouJZgnXXWKV6zLl260LBhw2jlypX08ssv02OPPUY77LADDRs2jDbZZBN6/PHH6e9//zu1tbWx6WYhuFujJ763tbXR+++/XxRw9v3YpUuXYl+r8aAo+bvx1FNPFf9uJML8ww8/LPlb7n5+bD7zmc8UX6f5H8H9zUg+RyF/X2M/yxpdunShe++9l7bffnv617/+RVdddRUdeuihtOmmm4rbgWd1/VzsHTyPOuqo4nglX8Xg/j+yrxsR0bRp0+irX/0qvffee3TrrbfS8ccfT5ttthmNHz++ZB1Q3759iYhK1uUAANbSlLUD1ST5R7ZgwQL6+OOPS9Zi/OMf/yCitROS5I+EzfDhw+kHP/gBTZs2jZYtW0annXYa20ayVoFo7ST/ueee61Bm+vTpJduzEhHdeuutal6wywYbbEBEa8XFypUri/987KfKoZPf5I/mSy+9RJdddhlttNFG9MknnxT/MSQTms4Yv4Qtt9ySXn/99SD/E5J/WKNGjSo+hUywJ+3l8u677xYnQck/8ETk+HxYb731ik8K7cmEu/FD8s/4k08+Kbm+2gYRMST3hmufi0qMHTuWTjjhBJozZw799a9/pV/+8pf0t7/9jb71rW+VLNoPxd09L7mX3aeMiS9ptvJNQ5cuXWibbbahM844gx588EF67LHHims2Eh577DHaaqutyBhDw4YNoyeffJKuvvpq+upXv0pEa8XU5ptvTm+99VZxG2QiKt7L2223XVCZSvLPf/6TXn75ZSoUCvTNb36z5FwSBXj77bfp008/Le4kaIyhrl270sCBA4tlkt0SOV+T3/bDjuSJszT5toWE/fdkn332oT/84Q/00EMP0csvv1z8W5EcT3aESytotEhYv379qEuXLtTe3l5yP9qf1+R+5B7wpH1Snvzd2HXXXdld6+wHEtruk/a50P8Rod+bEvL3NfSzHDp2e+21F7300ks0b948evLJJ+n++++ne+65h0466SQ64IADStZ1EWV3/VzsByyXX345bb/99iXn3a9FcK/ppptuSg899BD95z//odmzZ9Ojjz5KN998M/30pz+lYcOGFSNuydqlzl4XC0AtUNcRmgMPPJAKhQJ98MEH9L3vfa/4FPLJJ58sbn0ofW/BF77wBRowYEDxn6mUbvP444/T0qVLqXv37rR8+fLi019jTHF71NDdzjT22muvksXfCcme9EOGDFG3Z7bp2bMnff/736dbbrml+CT3N7/5DRljqFAoFP8Yd8b4lUOyEPiDDz6gQw45hA455BBqbm6mjz76qKJPvX/zm98Q0dpUnCR9Lkm98PnQpUuX4uTP3sravScGDx5c/CeXlFuxYkWH7a/TYttPFgd/+OGHHew/8cQTdMEFF9Ds2bPpi1/8Ip155pnFnZfsCW45fOUrXyGitaI4WYD8ySef0D333FNyvjMwxtCf/vQnIlorTqRoYKFQoOuvv56amprooYceKtmV68ADDyQiKvr/1FNP0VtvvUXrrrtuMfUmpEylSNK2dtxxxw5PggcOHEgDBw6kTz75pPi9M8nfk3333Ze6d+9OX/nKV6hQKNBTTz1FixcvJmNMcQv6r33tayW/H3/88eJub8mmDNtuuy07jrZQtSfZSZrujTfeSET/Ey777LMPrVq1qviUWxM0iWiRdhSTSHY9Iyr9uzp9+nRas2YNde/evZiylzzgSTYoICJ2I4oQX5K/G0uWLKEDDjiADjnkEPrCF75Ay5Yto549e5akI4VSyf8Rto/a39fks3rfffcV/z+88cYbxXS15HzI2C1YsIAuueQSuvnmm2nw4ME0ZswYmjFjBu24447U3t7OfslyVtfPpU+fPsUF/k1NTcXx6tKlC33yySfq/6OVK1fSlVdeSRdeeCH179+fjjjiCLrmmmvoxBNPJKLSv7ud/dAHgJoim6U7ncd3v/vd4uK9rl27mvXXX7/4fvPNNzeLFy8ulk0WtScLgU8++WRDRGbjjTc2bW1txhjTYVH7uHHjDBGZb37zmx3aXrBgQbGtZAEztylAKJdeemlxQfIxxxxjDjzwwOLCxz//+c/FciGbApx11llF3zbccENTKBQMWYvdO2v8pE0BQliwYIHp06ePISJz8MEHm7Fjx5r11lvPdOnSxTzwwAPGmP8trN1ll12K9a677jpDRGaPPfYoHrvqqqsMEZmvfOUrRdtJPwcNGmS+/e1vFxefdunSxbzwwgvBPkydOrVo68gjjzRf+cpXzMCBAw0RmU022aTow+GHH26IyPTt29ccf/zxZocddiiWO+qoo4wx+qYAyYJVY4x5+eWXi+VWrVpljPnfwvjevXubo446ygwePNhstdVWxUXYxhjzhz/8oXhPnHbaaWbixIlmr732KvouoW0KYI+9Mca0t7cXF8Q3NzebE044obh4trm5ubhwPu214+A2BfjiF79Y3BSBiMyECROMMfKmAMYYM2HChOL4JIt1X3rpJdOjRw9DRGbw4MGmZ8+ehpzF/iFlvvnNb5rhw4cXPyNNTU1m+PDhZvjw4ebee+/1nk9I/iaNGDGCHYtkXLt27Wo++9nPmkKhYNZZZx3z+OOPF8sk99R6661XvEf69+9v3n333Q5levbsabbbbrvimCWbTnBsvfXWhojMb3/72+KxTz/91PTu3btYP7n+zz33XMnfmgTuM5D0qampyRx33HFm5syZ4v2XbODy4IMPGmOMefzxx03Xrl0NEZmvfvWr5tvf/nZxUftFF11UrHfHHXeUfI4POOAAs/vuu3f4HCfjsvHGG5sTTzyxuCjd5pNPPiluFrLLLruY0047zWyzzTaGiMx5551X0ifXf67/CSH/I6T6yUYMkyZNMsaE/W1bunRpcTOBnXfe2Zxwwglm0003NfT/bybQ3t4ePHZvv/226du3r1lnnXXMcccdZyZNmmRGjBhhiMhsttlmxb9jLp1x/UI2Bbj77rsN0dpNDcaMGWNGjhxpCoWCWX/99c2///1vY8z/NgVINt5J+OIXv1gcs4kTJ5pTTjnF9OnTxzQ1NRU3FDDGmAMOOMAQkbnyyivZsQCgkal7QWPM2l22vvjFL5revXubbt26mYEDB5ozzzzTLF26tKScOyG/7777DFHp7kn2hHzNmjXFnYRuv/12tu3Pf/7zhojMpZdeWtJGGkFjjDG33HKL2XXXXU337t3Nuuuuaw444ADzl7/8paRMiKBZvXq1aWlpMYMGDTLdu3c3zc3N5qyzziruVGNTrfEzpjxBY8zaXZIOOugg06dPH9OnTx+z1157mfvvv794Pu2k+KWXXjJEZNZZZx3z4osvmqFDh5ru3bubbbbZxtx1111RPqxZs8acddZZZr311jN9+/Y1xx57bHGnr3XXXbdY7u233zaHHHKI6dGjh9l0001Na2ur+fGPf2yIyHzjG98wxpQnaP7zn/+Yb3zjG0X7LS0tZuLEiYaIzHHHHVese/fdd5s999zT9OvXz/Ts2dMMHjzY/L//9/+KuzFxxAgaY4xZtWqVOf/8881WW21lunbtajbeeGNz3HHHmTfeeKPsa8eRCBr3Z8MNNzR77bWXue2224qTL03QfPTRR8VJSSIyjTHmz3/+sxkyZIjp3r272WyzzczFF19ctBdaJtnVj/uZMmWK97zb15NPPlkcj2uuucZsvfXWplu3bmannXYqEUTGrN158fTTTzcbbrih6dmzp9l///2Lu4IlrF692px//vlmwIABpmvXrmbw4MHmuuuuE9s0xpgTTjihw71qzP8mavbua+3t7WaDDTbocH9yn4EVK1aYAw880HTv3t1ssskm5ve//32woDHGmFmzZpkDDjjA9OnTx3Tv3t3suuuu5pZbbimp19bWZs4//3zTv39/07dvX3PiiSeav//974Zo7UOIhBdeeMHssMMOplu3bmbrrbcueehjs3TpUjNmzBiz8cYbm+7du5vtttvO/N///V/xnkgjaIzx/48IFTTG+P+2GWPMm2++aY477jiz8cYbm65du5qtt97anH/++SUCJHTs5syZYw455BCz8cYbm27dupnNNtvMjBkzxrz22mvsGCZU+/qFCBpj1v7t/PznP1/cPfHQQw81L730UvG8JGjeeecdM3bsWLP55pubbt26mY033th89atfLXnIsHLlSrPuuusaIjJz5sxRxwOARqRgTJW+0hgAkCteeOEF+ve//0077LBDcYOGr3/96/TQQw/R5MmTqaWlJWMPQb0za9Ys+tKXvkQbbLABLV68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", + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plot UMAP for embeddings without outliers\n", + "plot_hvplot_scatter(\n", + " embeddings=embeddings_without_outliers,\n", + " title=f\"UMAP of JUMP embeddings from {example_plate} (without erroneous outliers)\",\n", + " filename=(\n", + " image_without_all_outliers := f\"./images/umap_without_outliers_{example_plate}.png\"\n", + " ),\n", + " bgcolor=\"white\",\n", + " cmap=px.colors.sequential.Greens[4:],\n", + " clabel=\"density of single cells\",\n", + ")\n", + "# conserve filespace by displaying export instead of dynamic plot\n", + "Image(image_without_all_outliers)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "8daad307-ee1c-47f8-a1f3-8a5e55d5b63f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \"UMAP\n", + " \"UMAP\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# compare the UMAP images with and without outliers side by side\n", + "HTML(\n", + " f\"\"\"\n", + "
\n", + " \"UMAP\n", + " \"UMAP\n", + "
\n", + " \"\"\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "73ac51c1-9e69-47fd-90d8-cb67e117fe8d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAALGCAYAAACTX9TRAAEAAElEQVR4nOydeXxVxfn/PzckEFYBUYKghF3QrytKUCrt17gmKsENdxREEX4aXGoQbUwLQq2WiNhUFJeilVZN0AZXtMWqBMXqV0tdgaCgAcsioARIMr8/wpzMnTsz59yQcJd83q/XfeXec+bMPDPn3Jvnc55n5oSEEAKEEEIIIYQQkoCkxNoAQgghhBBCCGksFDSEEEIIIYSQhIWChhBCCCGEEJKwUNAQQgghhBBCEhYKGkIIIYQQQkjCQkFDCCGEEEIISVgoaAghhBBCCCEJCwUNIYQQQgghJGGhoCGEEEIIIYQkLBQ0hBBCCCGEkISFgoYQQgghhBCSsFDQEEIIIYQQQhIWChpCCCGEEEJIwkJBQwghhBBCCElYklrQFBQUIBQKYcSIERH7KioqEAqFEAqF8N///hcA0K1bN2/b3/72t7DyNTU16Ny5s7d/yZIlEXUuXbrU23/ccccZbVLbkK+2bdvi+OOPx5NPPtkEvU5sKisrvXHZunXrfm27uLg44txIG7KyshAKhXDnnXdGHDdr1iyEQiEceeSRAIB///vf3vFpaWnYsmVLWPn3338/rI2amhoA8XttjB07FqFQCPn5+c1Sv/yejhkzxllOnoM//vGPAIAnnngCoVAIxxxzTLPY1VjWrFmDU045Be3atcOBBx6IqqqqWJvkoV6b6qtbt24YNmwYnnjiCQghvPJz5841lu/cuTNOPPFELFiwIKw8APz+979H//79kZ6ejkGDBuGJJ56IsCNImWXLlqFv374IhUIYNWpUVPvz8/ONdodCIXTo0MEr98UXXyA3NxddunTBAQccgAsvvDDifAUp88MPP+C6667DQQcdhI4dO2LEiBFYtmyZ5Sw0jqDfw8zMTIRCISxatKhJ299X9O9vUxD0N6C5f8NIy0H/fsXr/6GWSFILmn1h8eLFYZ/fffdd/PDDD85j/vrXv3rvP/zwQ6xatcpa9uCDD0a/fv28f8j/+te/MHbsWMyZM2ffDE9w2rVrh5ycHOTk5CAtLW2/tt2pUyf07t0bGRkZTVZnTU0NXn311bBtL7/8svMYXhvBOPTQQ5GTk4NTTjkl1qaEMX36dPzzn/9Ejx49cNlllyE9PT3WJhk55phjMGzYMJx44olo3bo13nvvPVx99dWYMWNGRNnU1FT069fPe9XU1OD999/HlVdeibvuussrN3fuXNxyyy34+uuv0adPH3z11Ve4+uqrw24Q+ZWpra1FUVERfvazn2HNmjURtvjtB4CuXbuid+/eYa+ePXsCAFq1agUA+Omnn5CdnY3Fixejffv2aNOmDZ577jmcc845nkgLUkYIgXPPPRfz5s3Djz/+iE6dOuGdd97BWWed1aRi9phjjkFOTg6OOOIIb9u4cePQuXPnJmsj0TD9BnzzzTdISUlBcXFx7AzbS0s/P4lOkPMXr/+HWiQiibn99tsFAHHyySdH7Fu2bJkAIACI77//XgghxIEHHigAiIMPPlj06tUrrHxBQYEAIA466CABQLz++uth+2tra0VGRoYAIP7nf/5HABAzZ86MaFe28fjjj3vbdu7cKc4//3yv7bq6uibofeKxZ8+eWJsghBDin//8p3dtbNmyRQghxLBhwwQAMW3atIjyM2fOFADEEUccIYQQ4pNPPvHOJQBx+eWXh5XPysoSnTt3FmlpaQKA1+94vTauuuoqAUDcdNNNzVK//J5efPHFznLyHJSUlDSLHU1Fdna2ACB++9vfWsvU1dWJ2tra/WhVPfLaBCDWrFnjba+trRUXXnihACD69OnjbX/wwQcFANG7d++wenbv3i2uvvpqAUCkp6eLnTt3CiGE6NmzpwAgFi1aJIQQori4OOI32K/Mp59+KgCIM844w2vjvPPO8473229jxowZYdfxvHnzBABxwgkniD179ogdO3Z4tsnf9yBlFi1aJACIQw89VGzYsEHU1NSI008/XRx99NHipZde8j8pjWT37t2iS5cu4oADDgjb3rt3bwFAlJWVNVvbjWF/fX9/97vfCQBi9uzZ3rbm/g0zYTs/TYHr96OmpqbJ22uJ7O/vV7z4P4kMIzQGTjzxRKxbtw4ff/yxt+3ll19G586dMWDAAOMxb731FqqqqnDIIYdg2rRpAMIjNi7S09MxefJkAMDGjRuxceNGYzkhBIqLi3H44YcjPT0dmZmZuPXWW7F9+/awcgsWLMDxxx+Ptm3bomPHjhg5cmRYlGDlypUIhULo0qULvvrqKwwfPhxt27bF0KFDsXLlSixfvhxHH300OnTogLPOOgvff/+9d2z37t0RCoVQVlaGiy++GJ06dULnzp1x0003oba21iv31Vdf4cILL0RGRgY6duyIE088MSwyIVNfunbtivfffx99+vTBWWedZUw5u/DCCxEKhfDAAw+gpKQEhx12GA444ACcf/75XrogAGzduhWXXHIJOnTogG7duqGgoMBLIxs9enSgc9GUdO3aFf369cPLL7+Muro6AMCmTZvw3nvv4aSTTsKePXt86wh6bQBAaWkphg4dirZt26Jbt26YMGFC2LVx0EEHIRQK4d1338Wll16K9u3bIzMzE8899xw2btyIs846C+3bt8dRRx2FFStWRNQv73oedthhaNu2LXJycsLuQNfW1uKee+5B//790aZNG2RmZuJ3v/tdWB1bt27FpZdeig4dOuCggw7CHXfcEZGyBNRfHyNGjEB6ejr69++PZ555BqFQKKyMKdQv+/jee+9h8uTJ6NKlCzIyMlBQUBB2fX7yySc4+eSTkZ6ejn79+uHpp5/G+eefj1AoFBYJ+8tf/oITTzwRBxxwADp37oxTTjkFr7/+uvUcpKene+mot99+O0KhENatW4cLLrjAu4bHjx+Pdu3a4d133wUArF+/HmPHjkVGRgZat26N3r1746abbsK2bdu8etXvwD333INu3bqha9euuPPOO1FbW4ubbroJnTt3xqGHHorHHnvMap+NlJQU/OIXvwBQH5XwIy0tzbsuq6urUVlZiVWrVmH9+vVo06YNcnJyAMBLBauoqMBPP/0UqEx6ejr+8Ic/4JVXXsEhhxxiHGPXfhNr167F9OnT0aVLF/zqV78CUP+bDQDnnnsuUlNT0b59e5x22mkAgDfeeCNwmRdeeAEAMH78eBx88MFo1aoVXn31VXz00Uc466yzImz55JNPEAqF0K9fP2/bs88+6/3uvfnmm972Hj16eNeQmjZVXl6O1q1bY8uWLfjhhx8QCoVw6623hrUTCoVw++2348ADDzR+B0w89NBDOPLII9GuXTsceuihmDhxYlhmQtDvV5Dvr4oQwqv7m2++AQB8//33SElJQSgU8s4ZAFxyySUIhUJ4+umnI34Dhg4dittuuw0AMGXKFIRCIezYscM7NjU1FU8//TT69Olj/B8C+P///Mc//uGlXaqoKXVBzo+K32+37fdDpoSOHj0a8+bNQ5cuXTBz5kwAwK5du3DXXXehf//+aN26Nbp164YLL7wQn3/+uVfvQw89hFAohLy8PLz11ls45phj0L59ewwbNgwffvhhVDYC9d/hM888EwcccADS09Nx5JFHYs6cOWG/8fI6/+ijj7xtprTjFStWICcnBwcffDDatWuHI488EnPnzrWOoWR/nz/T/6FNmzbh2muvRUZGBtq0aYNjjjkGL730krff5v8AQFVVFa699locdthhSE9PR+/evTFlyhT8+OOPvn1v8cRWTzUvjY3QzJo1SwAQ99xzjxBCiPXr13t3AbOysowRmokTJwoAYtKkSWL79u0iPT1dABBfffVVWDnTXXghhHj99dc9e7Zu3Wrsz9SpUwUA0alTJ3H55ZeLwYMHe3cqJb/97W8FAJGamirOP/98ceaZZwoAIhQKeXdEV61aJQCIVq1aiZNOOklcfvnlomvXrgKAGD58uBg4cKC48sorRefOnQUAMX78eK/+Qw891IsWXHvttWLatGmiTZs2AoC4//77hRBC/Pjjj1650aNHiwkTJohQKCTS0tLEJ598IoQQ4ssvv/TsPP7448WQIUPE+PHjxZo1ayKiI1dccYVn24ABA8RVV10l2rdvLwCIq666yrPtsssuEwBEu3btxCWXXCIOP/xw0bdv30B3/1WaKkLTp08fMWHCBAFAvPvuu0IIIZ5++mkveifbcEVohAh2bTz77LMCgGjTpo245ZZbxDnnnCMAiHPOOSfi3A0dOlScd9553vXTsWNHcdppp4kLLrhADBw4UAAQAwcO9O4AyrubQ4YMEX379hUXX3yx6NixY0T9kydP9u5U33nnneKoo44Kuy6EEOLyyy/32rzyyivFkUce6d3xludoz549IjMzUwAQmZmZYuzYsaJnz56ie/fuYXd4H3/8cQFAHH300RF9zMrKEqeccooYPXq0N3ZyXPfs2ePdZevVq5e47LLLREZGhjjssMPC6n/11VcFANG9e3cxadIkMWHCBNGxY0eRlpYmPvzwQ+N5uPXWWz0bfvazn4mbbrpJbN261bs2hw0bJjp16iSGDh0qVqxYIb7//nuv/OGHHy6uvPJKbzxOPPFE79qQ34GhQ4eKE044wYsCARDnn3++OOmkk8TPf/5z7ztVWVlptM8VobnooosEAHHRRRd5220RGiGEeOutt7y6vvvuO/HKK69ElK2pqRGhUEgAEP/+978DlVGZNm2aMwLjt18i+6ZGzeRvufp9+9WvfiUAiAsuuCBwmaFDhwoAYuHCheJ3v/uduOSSS8Qdd9wh1q1bZ7Slrq7O+73dtGmTEEKIG264QaSmpopQKCR+9atfCSGE+PrrrwUA0a9fPyFEeJRh5cqVXkStdevW4qabbhIvvPCCEKLhDvKpp54qDjvsMHHEEUd45+mxxx6zjtGcOXMEAJGRkSEKCgrEkCFDBABxySWXeGWCfr+CfH91Ro0aJQCI0tJSIYQQf/3rX73+nXLKKV45+Zv+zTffRPwG3H///Z6Np5xyirjpppvErl27vLH73//9X9GlSxcxbNgwkZKSIgCIK6+80qs7yP/Pv//97wJAxJ17NQLlOj86QX67bb8fjzzyiNf/jh07iuOOO84b37PPPlsAEN26dROXX365OProowUA0aVLF+/3Yf78+d5ve2Zmprjqqqu866dfv37e708QG//5z3+K1q1be2M/ZswY0bZtWwFA3HzzzV45eb2ov6F6lH7jxo1eFsPYsWPFTTfdJPr06SMAiLlz5xrHcX+dPz1Co1+Du3fvFscee6zns0ybNk1069ZNpKamioqKCiGE3f8RQoiTTjpJABBnn322uPnmm8XJJ58c9ntD7FDQIFLQLF++XIRCIXHSSScJIYR49NFHvQtdXvSqoKmtrfV+rN98800hhBDnnnuu57iqmJzWn376SeTk5AgAYvDgwca+bNq0yfuxkD/4W7duFV27dhVt2rQRH3zwgdiyZYto166dACAeeeQR79hJkyaFOdyqaJgzZ44QQognnngi4h/TH//4RwFAHHbYYV5d8susCoSioiIBQPTv318IIcSHH34ozj//fHHppZd6TvEpp5wigAaRqNrw//7f//PqMgka+c+oW7dunkP/hz/8wdsmRP0PYGpqqgAgnnrqKSGEENu3bxeHHHJIhL1+NJWg6d27t/eP4I477hBCNDj0H374odeGS9AEuTaEEF6a4/Tp0yO2yX8c8tyNHj06YqylMPzss8+8batXr44YfzkeMs0mFAqJr7/+WmzYsMEb/7ffflsIIcR3330n0tLSxIEHHij27NkTdo6effZZIUS9+O3Vq1fYOSorKxMARFpamli/fr0QQoj/+7//8+xyCRrZx9NOO81Lz5POrPyHIOtv1aqV94/9gw8+iKj/1ltvFQDE3Xff7dX/yiuviBkzZlgFjRBCnHrqqQKA+N3vfudtk2PYvn17sXbtWm/7HXfc4X13fvrpJyGEEOvWrfNuEshxksf37NlT7Ny5U9TW1nqOXf/+/cWePXtETU2NJ4ZsjqsqaI455hgxbNgwMWzYMO978otf/EJUVVV55W2C5uuvvxa/+MUvvHqEaHBADz/88LCysi/vvPNOoDIqTSFoli9f7jly27Zt87ZLh33hwoXeNvldPu200wKXkdecFMTydeCBB1pFjfz/8Nprr3ntHH/88aJfv35i5MiRQgghnnvuOQFAXHPNNUKIyLQp+TtlS4kZOnSo2Llzp6irq/MEsMspmjp1qjj//PO9/y9vvvmmAOpTCuXveDTfL7/vr87vf//7sN/KG264QaSkpIgLLrhAtGnTRuzcuVP897//FQBE3759hRDm3wD5/TOlnHXo0MH7zv/mN78J+x8S9P9nEIfYdX50gvx2234/ZP8BiOeff97b/tprrwkAIiUlRXz22WdCiHpH+5hjjhFA/Y1X/Xj5u/2f//zH2yZvMASxUTril112mVdG/v9LTU0V3333nRAimKApLy8XAMTPf/5zr8yXX34p7rrrLvG3v/3NOI776/z5CZrnn3/eO27Hjh1CiIbvsvydsvk/27dvF0C9iNq1a5cQov4GwbRp08Qf/vAHY79JA0w5M3DwwQfjhBNOQEVFBTZt2uSlSskUCZ2lS5diw4YNOOigg7yJYRdccAEAe9rZ7bffjv79+6N///448MADsXjxYoRCIeOEXABYvnw5du/eHWbHAQccgE2bNqG6uhrHHXecl7IB1IflJRdddBGA+lSzzZs3h9Wbm5sLADj66KO9bWeeeWbYNtPEVjWVYuTIkQCAVatWYffu3TjmmGPw3HPP4emnn0ZdXR2qq6vRq1cvAMC3334bUde1115r7LOODGUDwLBhwwAA//3vf7Fnzx58/vnn3mph5513HgCgQ4cO1nO2vzj99NORlpaGxYsXQwiBV199Ff369cPhhx9uPSbaa2P79u345JNPAAADBw7EunXrsG7dOm+lPTWFBWg455mZmd54ynM+aNAgtGnTBkDkeT/zzDO9MH1OTg5SUlIghMBnn32G9957DzU1NUhJSUGvXr2wbt061NTUoE+fPti0aRM+/vjjsHN09tlnA6hfBEK+l/z73/8GUD8JWqYUHXXUURg4cKB1zHQuvvhiL8VFXivy2lPr7927NwDguOOOi0gn7dOnDwDgnnvuwahRozBnzhz06tULd9xxR6NXtDnjjDNw2GGHeZ9l2lJeXh7atm0LAOjZsydOOukkAMA///nPsONPPfVUpKenIyUlBf/zP//jbUtNTUWrVq28lfaCTEb/6KOPsHz5cixfvhzffvstQqEQfvjhB/z973+PKLt27dqwlcIOO+ww/P3vf8cBBxyAefPmAYCXVqmnFqmfg5RpambNmgUAmDRpEjp27Oi0RbcjSBl5TXfo0AFr1qzB6tWrcfjhh2PTpk249957jTbJ/xMrVqzAxo0b8Z///AfDhw/3/u/s2rUL7733HoCG39doueaaa5Ceno5QKITTTz8dgPn3V3LPPffgueeeQ15eHnbt2uUtjlJdXR2xUmPQ71c03191TADg73//O4YMGYLs7Gzs2rULy5cv3+cxOfvss73v/BlnnAGg4X9IY/5/7ivR/nbrvx+SAw88EHl5ed5n+bty/PHHY9CgQQDq00RlGf13pVevXjj55JMBAIMHD/a+J99++20gG3/66SdUVFQAAC699FKv3tGjRyM1NRU1NTVRrfqXmZkJoD49bMSIEfj1r3+N7777DoWFhd7/L51YnD8TMpV48ODB2LJlC9atW+f9b9HPJxDu/7Rr1w4ZGRnYvXs3jjzySNx888146aWXUFBQgIkTJza77YlOaqwNaE7kajY7d+6M2Kfm1bZu3Tpif25uLt577z288cYbeOONN3D00Ufj0EMPNbYjRcvOnTtx/PHHA6j/JwA0rHam5ksD4fMh2rVrh6ysLEybNs36Zd20aZNX1mSvWqZt27Zo3769t71bt27e+y1btnjjAgBdunQBgLCVmKTTKreZ8q67du3qve/UqRMAQAiBzZs3o2vXrrj99tuxcOFCbNiwISx/Vn0vCZoHf+CBB3rv27Vr572vra315vm0bt06bFlWte/7QpBryXReOnXqhJ/97Gf4+9//jtdeew3ff/992A++iWivDTXHXf54q6xduzbsszznQP05/uGHH8LyidPT07Fr166I837wwQd771NTU9GhQwds27YNmzZt8py6uro675+RzYbWrVuHnT/1vALwzqVqp6mcC9O1Ivsj69fr69atG7788kvv84QJE/Dpp5/ikUcewQsvvODNlRgxYgRefPHFCPuCoF/r8jurX6fys/4PWD93ACLOHWD+zuqsWbPGO1c7duzASy+9hCuuuAKXXHIJDjnkkLBVe1JTUz1HcPv27di4cSM6d+6MTz/9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", + "text/plain": [ + "" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# concatenate embeddings together\n", + "combined_embeddings = np.vstack((embeddings_with_outliers, embeddings_without_outliers))\n", + "\n", + "# Step 2: Create the labels array\n", + "combined_labels = np.concatenate(\n", + " [np.zeros(len(embeddings_with_outliers)), np.ones(len(embeddings_without_outliers))]\n", + ")\n", + "\n", + "# visualize UMAP embeddings both with and without outliers together for comparison\n", + "plot_hvplot_scatter(\n", + " embeddings=combined_embeddings,\n", + " title=f\"UMAP comparing JUMP embeddings from {example_plate} with and without erroneous outliers\",\n", + " filename=(\n", + " image_compare_umaps := f\"./images/umap_comparison_with_and_without_erroneous_outliers_{example_plate}.png\"\n", + " ),\n", + " color_dataframe=pd.DataFrame(\n", + " combined_labels, columns=[\"combined_embedding_color_label\"]\n", + " ),\n", + " color_column=\"combined_embedding_color_label\",\n", + " bgcolor=\"white\",\n", + " cmap=[\n", + " \"#e76f51\", # Darkest Orange\n", + " \"#f4a261\", # Darker Orange\n", + " \"#ffbb78\", # Light Orange\n", + " \"#aec7e8\", # Light Blue\n", + " \"#6baed6\", # Darker Blue\n", + " \"#1f77b4\", # Darkest Blue\n", + " ],\n", + " clabel=\"density of single cells with (orange) and without outliers (blue)\",\n", + ")\n", + "\n", + "# conserve filespace by displaying export instead of dynamic plot\n", + "Image(image_compare_umaps)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "jump_sc (Python)", + "language": "python", + "name": "jump_sc" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.20" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.py b/0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.py new file mode 100644 index 0000000..c4cb27d --- /dev/null +++ b/0.5.quality_control/0.jump_umap_analysis_with_cosmicqc.py @@ -0,0 +1,662 @@ +# --- +# jupyter: +# jupytext: +# text_representation: +# extension: .py +# format_name: light +# format_version: '1.5' +# jupytext_version: 1.16.4 +# kernelspec: +# display_name: jump_sc (Python) +# language: python +# name: jump_sc +# --- + +# # UMAP outlier analysis with coSMicQC +# +# This notebook analyzes [JUMP](https://jump-cellpainting.broadinstitute.org/) data (`cpg0000-jump-pilot`) by leveraging [UMAP](https://arxiv.org/abs/1802.03426) and [coSMicQC](https://github.com/WayScience/coSMicQC). +# +# ## Outline +# +# We focus on a single file from the JUMP dataset: [`BR00117006.sqlite`](https://open.quiltdata.com/b/cellpainting-gallery/tree/cpg0000-jump-pilot/source_4/workspace/backend/2020_11_04_CPJUMP1/BR00117006/BR00117006.sqlite). +# This file is downloaded and prepared by [CytoTable](https://github.com/cytomining/CytoTable) to form a single-cell [Parquet](https://parquet.apache.org/) file which includes all compartment feature data at the single-cell level (performed in step 0, outside of this notebook). +# We use coSMicQC to find and remove erroneous outlier data in order to prepare for UMAP analysis. +# Afterwards, we use UMAP to demonstrate patterns within the data. + +# + editable=true slideshow={"slide_type": ""} +import logging +import pathlib +from typing import List, Optional + +import cosmicqc +import duckdb +import holoviews +import hvplot.pandas +import numpy as np +import pandas as pd +import plotly.express as px +import pycytominer +import umap +from IPython.display import HTML, Image +from pyarrow import parquet + +# set bokeh for visualizations with hvplot +hvplot.extension("bokeh") + +# avoid displaying plot export warnings +logging.getLogger("bokeh.io.export").setLevel(logging.ERROR) + +# set the plate name for use throughout the notebook +example_plate = "BR00117006" + + +# - + +# ## Define utility functions for use within this notebook + + +def generate_umap_embeddings( + df_input: pd.DataFrame, + cols_metadata_to_exclude: List[str], + umap_n_components: int = 2, + random_state: Optional[int] = None, +) -> np.ndarray: + """ + Generates UMAP (Uniform Manifold Approximation and Projection) + embeddings for a given input dataframe, + excluding specified metadata columns. + + Args: + df_input (pd.DataFrame]): + A dataframe which is expected to contain + numeric columns to be used for UMAP fitting. + cols_metadata_to_exclude (List[str]): + A list of column names representing + metadata columns that should be excluded + from the UMAP transformation. + umap_n_components: (int): + Number of components to use for UMAP. + Default = 2. + random_state (int): + Number to use for random state and + optional determinism. + Default = None (random each time) + Note: values besides None will turn + off parallelism for umap-learn, likely + meaning increased processing time. + + Returns: + np.ndarray: + A dataframe containing the UMAP embeddings + with 2 components for each row in the input. + """ + + # Make sure to reinitialize UMAP instance per plate + umap_fit = umap.UMAP( + n_components=umap_n_components, + random_state=random_state, + # set the default value if we didn't set a random_state + # otherwise set to 1 (umap-learn will override anyways). + # this is set to avoid warnings from umap-learn during + # processing. + n_jobs=-1 if random_state is None else 1, + ) + + # Fit UMAP and convert to pandas DataFrame + embeddings = umap_fit.fit_transform( + X=df_input[ + [ + col + for col in df_input.columns.tolist() + if col not in cols_metadata_to_exclude and "cqc." not in col + ] + # select only numeric types from the dataframe + ].select_dtypes(include=[np.number]) + ) + + return embeddings + + +def plot_hvplot_scatter( + embeddings: np.ndarray, + title: str, + filename: str, + color_dataframe: Optional[pd.DataFrame] = None, + color_column: Optional[str] = None, + bgcolor: str = "black", + cmap: str = "plasma", + clabel: Optional[str] = None, +) -> holoviews.core.spaces.DynamicMap: + """ + Creates an outlier-focused scatter hvplot for viewing + UMAP embedding data with cosmicqc outliers coloration. + + Args: + embeddings (np.ndarray]): + A numpy ndarray which includes + embedding data to display. + title (str): + Title for the UMAP scatter plot. + filename (str): + Filename which indicates where to export the + plot. + color_dataframe (pd.DataFrame): + A dataframe which includes data used for + color mapping within the plot. For example, + coSMicQC .is_outlier columns. + color_column (str): + Column name from color_dataframe to use + for coloring the scatter plot. + bgcolor (str): + Sets the background color of the plot. + cmap (str): + Sets the colormap used for the plot. + See here for more: + https://holoviews.org/user_guide/Colormaps.html + clabel (str): + Sets a label on the color map key displayed + horizontally. Defaults to None (no label). + + Returns: + holoviews.core.spaces.DynamicMap: + A dynamic holoviews scatter plot which may be + displayed in a Jupyter notebook. + """ + + # build a scatter plot through hvplot + plot = pd.DataFrame(embeddings).hvplot.scatter( + title=title, + x="0", + y="1", + alpha=0.1, + rasterize=True, + c=( + color_dataframe[color_column].astype(int).values + if color_dataframe is not None + else None + ), + cnorm="linear", + cmap=cmap, + bgcolor=bgcolor, + height=700, + width=800, + clabel=clabel, + ) + + # export the plot + hvplot.save(obj=plot, filename=filename, center=False) + + return plot + + +# + +# form a path to the parquet file with single-cell profiles +merged_single_cells = ( + f"../0.download_data/data/plates/{example_plate}/{example_plate}.parquet" +) + +# read only the metadata from parquet file +parquet.ParquetFile(merged_single_cells).metadata +# - + +# ## Process merged single-cell data using coSMicQC + +# + editable=true slideshow={"slide_type": ""} +# show the first few columns for metadata column names +schema_names = parquet.read_schema(merged_single_cells).names +schema_names[:12] + +# + +# set a list of metadata columns for use throughout +metadata_cols = [ + "Metadata_ImageNumber", + "Image_Metadata_Row", + "Image_Metadata_Site", + "Metadata_ObjectNumber", + "Metadata_Plate", + "Metadata_Well", + "Image_TableNumber", + "Image_FileName_CellOutlines", + "Image_FileName_NucleiOutlines", + "Image_FileName_OrigAGP", + "Image_FileName_OrigDNA", + "Image_FileName_OrigRNA", + "Cytoplasm_AreaShape_BoundingBoxMaximum_X", + "Cytoplasm_AreaShape_BoundingBoxMaximum_Y", + "Cytoplasm_AreaShape_BoundingBoxMinimum_X", + "Cytoplasm_AreaShape_BoundingBoxMinimum_Y", +] + +# read only metadata columns with feature columns used for outlier detection +df_merged_single_cells = pd.read_parquet( + path=merged_single_cells, + columns=[ + *metadata_cols, + "Nuclei_AreaShape_Area", + "Nuclei_AreaShape_FormFactor", + "Nuclei_AreaShape_Eccentricity", + ], +) +df_merged_single_cells.head() +# - + +# convert dataframe into a cytodataframe +df_merged_single_cells = cosmicqc.CytoDataFrame( + data=df_merged_single_cells, + data_context_dir="../0.download_data/data/images/orig", + data_mask_context_dir="../0.download_data/data/images/outlines", +) +df_merged_single_cells + +# label outliers within the dataset +print("Large nuclei outliers:") +df_labeled_outliers = cosmicqc.analyze.find_outliers( + df=df_merged_single_cells, + metadata_columns=metadata_cols, + feature_thresholds="large_nuclei", +) + +# label outliers within the dataset +print("Elongated nuclei outliers:") +df_labeled_outliers = cosmicqc.analyze.find_outliers( + df=df_merged_single_cells, + metadata_columns=metadata_cols, + feature_thresholds="elongated_nuclei", +) + +# label outliers within the dataset +print("Small and low formfactor nuclei outliers:") +df_labeled_outliers = cosmicqc.analyze.find_outliers( + df=df_merged_single_cells, + metadata_columns=metadata_cols, + feature_thresholds="small_and_low_formfactor_nuclei", +) + +# label outliers within the dataset +df_labeled_outliers = cosmicqc.analyze.label_outliers( + df=df_merged_single_cells, + include_threshold_scores=True, +) +# show added columns +df_labeled_outliers[ + [col for col in df_labeled_outliers.columns.tolist() if "cqc." in col] +].head() + +# show small and low formfactor nuclei outliers +df_labeled_outliers[ + [ + "cqc.small_and_low_formfactor_nuclei.is_outlier", + "Image_FileName_OrigAGP", + "Image_FileName_OrigDNA", + "Image_FileName_OrigRNA", + ] +] + +# + +# create a column which indicates whether an erroneous outlier was detected +# from all cosmicqc outlier threshold sets. For ex. True for is_outlier in +# one threshold set out of three would show True for this column. False for +# is_outlier in all threshold sets would show False for this column. +df_labeled_outliers["analysis.included_at_least_one_outlier"] = df_labeled_outliers[ + [col for col in df_labeled_outliers.columns.tolist() if ".is_outlier" in col] +].any(axis=1) + +# show value counts for all outliers +outliers_counts = df_labeled_outliers[ + "analysis.included_at_least_one_outlier" +].value_counts() +outliers_counts +# - + +# show the percentage of total dataset +print( + (outliers_counts.iloc[1] / outliers_counts.iloc[0]) * 100, + "%", + "of", + outliers_counts.iloc[0], + "include erroneous outliers of some kind.", +) + +# ## Prepare data for analysis with pycytominer + +# + +parquet_sampled_with_outliers = f"./{example_plate}_sampled_with_outliers.parquet" + +# check if we already have normalized data +if not pathlib.Path(parquet_sampled_with_outliers).is_file(): + # set a fraction for sampling to limit the amount + # of data processed based on system memory constraints. + # note: data was processed on system with 16 CPU, 64 GB ram + sample_fraction = 0.08 + + # select metadata columns plus those which don't exist in + # df_features (cosmicqc or analysis-specific columns) + df_labeled_outliers_unique_cols = df_labeled_outliers[ + [ + *metadata_cols, + *[ + col + for col in df_labeled_outliers.columns + if col not in df_features.columns + ], + ] + ] + + # Connect to DuckDB and read the parquet file directly + with duckdb.connect() as ddb: + + # execute a query to extract sample of data from the file without reading it in full + df_features_with_cqc_outlier_data = ddb.execute( + f""" + WITH sampled_data AS ( + SELECT *, + ROW_NUMBER() OVER (PARTITION BY Metadata_Well ORDER BY RANDOM()) AS rn, + COUNT(*) OVER (PARTITION BY Metadata_Well) AS group_count + FROM read_parquet('{merged_single_cells}') + ) + SELECT * FROM sampled_data + INNER JOIN df_labeled_outliers_unique_cols AS joined_data ON + joined_data.Metadata_ImageNumber = sampled_data.Metadata_ImageNumber + AND joined_data.Image_Metadata_Row = sampled_data.Image_Metadata_Row + AND joined_data.Image_Metadata_Site = sampled_data.Image_Metadata_Site + AND joined_data.Metadata_ObjectNumber = sampled_data.Metadata_ObjectNumber + AND joined_data.Metadata_Plate = sampled_data.Metadata_Plate + AND joined_data.Metadata_Well = sampled_data.Metadata_Well + AND joined_data.Image_TableNumber = sampled_data.Image_TableNumber + WHERE rn <= group_count * {sample_fraction} + """ + ).df() + + df_features_with_cqc_outlier_data.to_parquet(parquet_sampled_with_outliers) + +else: + df_features_with_cqc_outlier_data = pd.read_parquet(parquet_sampled_with_outliers) + +df_features_with_cqc_outlier_data +# - + +# show our data value counts regarding outliers vs inliers +df_features_with_cqc_outlier_data[ + "analysis.included_at_least_one_outlier" +].value_counts() + +# prepare data for normalization and feature selection +# by removing cosmicqc and analaysis focused columns. +df_for_normalize_and_feature_select = df_features_with_cqc_outlier_data[ + # read feature names from cytotable output, which excludes + # cosmicqc-added columns. + parquet.read_schema(merged_single_cells).names +] +# show the modified column count +len(df_for_normalize_and_feature_select.columns) + +# join JUMP metadata with platemap data to prepare for annotation +df_platemap_and_metadata = pd.read_csv( + filepath_or_buffer=( + "s3://cellpainting-gallery/cpg0000-jump-pilot/source_4" + "/workspace/metadata/platemaps/2020_11_04_CPJUMP1/" + "platemap/JUMP-Target-1_compound_platemap.txt" + ), + sep="\t", +).merge( + right=pd.read_csv( + filepath_or_buffer=( + "s3://cellpainting-gallery/cpg0000-jump-pilot/source_4" + "/workspace/metadata/external_metadata/" + "JUMP-Target-1_compound_metadata.tsv" + ), + sep="\t", + ), + left_on="broad_sample", + right_on="broad_sample", +) + +# + +parquet_pycytominer_annotated = f"./{example_plate}_annotated.parquet" + +# check if we already have annotated data +if not pathlib.Path(parquet_pycytominer_annotated).is_file(): + # annotate the data using pycytominer + pycytominer.annotate( + profiles=df_for_normalize_and_feature_select, + # read the platemap directly from AWS S3 related location + platemap=df_platemap_and_metadata, + join_on=["Metadata_well_position", "Metadata_Well"], + output_file=parquet_pycytominer_annotated, + output_type="parquet", + ) + +# + +parquet_pycytominer_normalized = f"./{example_plate}_normalized.parquet" + +# check if we already have normalized data +if not pathlib.Path(parquet_pycytominer_normalized).is_file(): + # normalize the data using pcytominer + df_pycytominer_normalized = pycytominer.normalize( + profiles=parquet_pycytominer_annotated, + features="infer", + image_features=False, + meta_features="infer", + method="standardize", + samples="Metadata_control_type == 'negcon'", + output_file=parquet_pycytominer_normalized, + output_type="parquet", + ) + +# + +parquet_pycytominer_feature_selected = f"./{example_plate}_feature_select.parquet" + +# check if we already have feature selected data +if not pathlib.Path(parquet_pycytominer_feature_selected).is_file(): + # feature select normalized data using pycytominer + df_pycytominer_feature_selected = pycytominer.feature_select( + profiles=parquet_pycytominer_normalized, + operation=[ + "variance_threshold", + "correlation_threshold", + "blocklist", + "drop_na_columns", + ], + na_cutoff=0, + output_file=parquet_pycytominer_feature_selected, + output_type="parquet", + ) +# - + +# regather metadata columns to account for new additions +all_metadata_cols = [ + col + for col in parquet.read_schema(parquet_pycytominer_feature_selected).names + if col.startswith("Metadata_") +] +all_metadata_cols + +# calculate UMAP embeddings from the data +# which was prepared by pycytominer. +embeddings_with_outliers = generate_umap_embeddings( + df_input=pd.read_parquet(parquet_pycytominer_feature_selected), + cols_metadata_to_exclude=all_metadata_cols, + random_state=0, +) +# show the shape and top values from the embeddings array +print(embeddings_with_outliers.shape) +embeddings_with_outliers[:3] + +plot_hvplot_scatter( + embeddings=embeddings_with_outliers, + title=f"UMAP of JUMP embeddings from {example_plate} (with erroneous outliers)", + filename=( + image_with_all_outliers := f"./images/umap_with_all_outliers_{example_plate}.png" + ), + bgcolor="white", + cmap=px.colors.sequential.Greens[4:], + clabel="density of single cells", +) +# conserve filespace by displaying export instead of dynamic plot +Image(image_with_all_outliers) + +# + +# show a UMAP for all outliers within the data +plot_hvplot_scatter( + embeddings=embeddings_with_outliers, + title=f"UMAP of JUMP all coSMicQC erroneous outliers within {example_plate}", + filename=( + image_with_outliers := f"./images/umap_erroneous_outliers_{example_plate}.png" + ), + color_dataframe=df_features_with_cqc_outlier_data, + color_column="analysis.included_at_least_one_outlier", + clabel="density of single cells classified as outliers", +) + +# conserve filespace by displaying export instead of dynamic plot +Image(image_with_outliers) + +# + +# prepare data for normalization and feature selection +# by removing cosmicqc and analaysis focused columns. +df_for_normalize_and_feature_select_without_outliers = df_features_with_cqc_outlier_data[ + # seek values which are false (not considered an outlier) + ~df_features_with_cqc_outlier_data["analysis.included_at_least_one_outlier"] +][ + # read feature names from cytotable output, which excludes + # cosmicqc-added columns. + parquet.read_schema(merged_single_cells).names +] +# show the modified column count +len(df_for_normalize_and_feature_select_without_outliers.columns) + +df_for_normalize_and_feature_select_without_outliers +# - + +print("Length of dataset with outliers: ", len(df_for_normalize_and_feature_select)) +print( + "Length of dataset without outliers: ", + len(df_for_normalize_and_feature_select_without_outliers), +) + +# + +parquet_pycytominer_annotated_wo_outliers = ( + f"./{example_plate}_annotated_wo_outliers.parquet" +) + +# check if we already have annotated data +if not pathlib.Path(parquet_pycytominer_annotated_wo_outliers).is_file(): + # annotate the data using pycytominer + pycytominer.annotate( + profiles=df_for_normalize_and_feature_select_without_outliers, + # read the platemap directly from AWS S3 related location + platemap=df_platemap_and_metadata, + join_on=["Metadata_well_position", "Metadata_Well"], + output_file=parquet_pycytominer_annotated_wo_outliers, + output_type="parquet", + ) + +# + +parquet_pycytominer_normalized_wo_outliers = ( + f"./{example_plate}_normalized_wo_outliers.parquet" +) + +# check if we already have normalized data +if not pathlib.Path(parquet_pycytominer_normalized_wo_outliers).is_file(): + # normalize the data using pcytominer + df_pycytominer_normalized = pycytominer.normalize( + profiles=parquet_pycytominer_annotated_wo_outliers, + features="infer", + image_features=False, + meta_features="infer", + method="standardize", + samples="Metadata_control_type == 'negcon'", + output_file=parquet_pycytominer_normalized_wo_outliers, + output_type="parquet", + ) + +# + +parquet_pycytominer_feature_selected_wo_outliers = ( + f"./{example_plate}_feature_select_wo_outliers.parquet" +) + +# check if we already have feature selected data +if not pathlib.Path(parquet_pycytominer_feature_selected_wo_outliers).is_file(): + # feature select normalized data using pycytominer + df_pycytominer_feature_selected = pycytominer.feature_select( + profiles=parquet_pycytominer_normalized_wo_outliers, + operation=[ + "variance_threshold", + "correlation_threshold", + "blocklist", + "drop_na_columns", + ], + na_cutoff=0, + output_file=parquet_pycytominer_feature_selected_wo_outliers, + output_type="parquet", + ) +# - + +# calculate UMAP embeddings from data without coSMicQC-detected outliers +embeddings_without_outliers = generate_umap_embeddings( + df_input=pd.read_parquet(parquet_pycytominer_feature_selected_wo_outliers), + cols_metadata_to_exclude=all_metadata_cols, + random_state=0, +) +# show the shape and top values from the embeddings array +print(embeddings_without_outliers.shape) +embeddings_without_outliers[:3] + +# plot UMAP for embeddings without outliers +plot_hvplot_scatter( + embeddings=embeddings_without_outliers, + title=f"UMAP of JUMP embeddings from {example_plate} (without erroneous outliers)", + filename=( + image_without_all_outliers := f"./images/umap_without_outliers_{example_plate}.png" + ), + bgcolor="white", + cmap=px.colors.sequential.Greens[4:], + clabel="density of single cells", +) +# conserve filespace by displaying export instead of dynamic plot +Image(image_without_all_outliers) + +# compare the UMAP images with and without outliers side by side +HTML( + f""" +
+ UMAP which includes erroneous outliers + UMAP which includes no erroneous outliers +
+ """ +) + +# + +# concatenate embeddings together +combined_embeddings = np.vstack((embeddings_with_outliers, embeddings_without_outliers)) + +# Step 2: Create the labels array +combined_labels = np.concatenate( + [np.zeros(len(embeddings_with_outliers)), np.ones(len(embeddings_without_outliers))] +) + +# visualize UMAP embeddings both with and without outliers together for comparison +plot_hvplot_scatter( + embeddings=combined_embeddings, + title=f"UMAP comparing JUMP embeddings from {example_plate} with and without erroneous outliers", + filename=( + image_compare_umaps := f"./images/umap_comparison_with_and_without_erroneous_outliers_{example_plate}.png" + ), + color_dataframe=pd.DataFrame( + combined_labels, columns=["combined_embedding_color_label"] + ), + color_column="combined_embedding_color_label", + bgcolor="white", + cmap=[ + "#e76f51", # Darkest Orange + "#f4a261", # Darker Orange + "#ffbb78", # Light Orange + "#aec7e8", # Light Blue + "#6baed6", # Darker Blue + "#1f77b4", # Darkest Blue + ], + clabel="density of single cells with (orange) and without outliers (blue)", +) + +# conserve filespace by displaying export instead of dynamic plot +Image(image_compare_umaps) diff --git a/0.5.quality_control/images/umap_comparison_with_and_without_erroneous_outliers_BR00117006.png b/0.5.quality_control/images/umap_comparison_with_and_without_erroneous_outliers_BR00117006.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a4b67051185b71e63140da2712be41cc80b040 GIT binary patch literal 83624 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 literal 0 HcmV?d00001 diff --git a/0.5.quality_control/images/umap_erroneous_outliers_BR00117006.png b/0.5.quality_control/images/umap_erroneous_outliers_BR00117006.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca4fac06c44bbe20d7ecbb5e578225489402738 GIT binary patch literal 61546 zcmc$`WmJ`G*EYORQ3OG0C1isjEG47`6cnUO7AVq6Hv$sUDoBTb($Xy;wI~IHknToM zIt8Trn-^}M?fs5@f6o~2pZCWeW4pN4d7UxmF^_r7c`o1E3X+8QRQMdjwWCl=oYJ>$syN2Z$32c!y|Z_qLwWqU!TlSzZ{IpbjL~ST&QakZ zC*|6}Tvoa%-M~cY!$Wo9R3jl%1ZUB9beeJWWGIC(`^lHimaOQc1o~4+O(^cEjk?_* zYc4JCT5UvDwwk7FjkFc%;_I5Gh6~@dmN_i#l`n1x@MC1qXGHPnJ5=f55aRr`PNVd_`>Xp_z~dOrr2twtS7>mPInnIfcNSaGRR)a|t23R<0tbD1!NtZa%XM^$EsObe=ab}}=$6x+H-2o6Qdaql z>`wCIp5=Y(vSmZ_@B_|td-93xwK?xQ*>}|%g%5UD*yhVNhMjSWns>DvzS^;EFAkM) zW53#K#M(5V@0HmYWKWLvXjqApiJ#>)B}09yI@q)7Xf3y!Q}4ECv3kEop&+vN=+rr` zV_FsV;u}A{E=RSx9Pdn%7jt!W#jwY3ao0sW=QZp3<}I>IZ$D_kzdGH1^v<0-$Y6#o zvA%@Vd_HzRO2>#?CNArIysKg1W%;%IL3*71CzJHJ=c+ocymkjE*Iw*PT$GFSVDWqS zqipI`7na9!-@-G{g5qFOT*-5PZ%1$O{YGt0$uNGZ3TD4_EQqwx zs$v0qb$99WauauJ(ezlu<-F>p@1NUqH24E(1V~DToy=OcU>^5>j@S3W6x)*}PtTW( zxH+!(8)+1+z?bg#y?x-5geOUBr;@djED=bu5R`;BRu`<;@P4_L`mBiCwe9r<|Jhkn z8u#60w*7c=%w%z|_Gi_q?K`Wp-2{6(8+C9v!44y?z4qtu=odo#Fx0n$cDGvHYkMo# zi^q356-5He%LR?%gcjd%Z|#*$z5d*hDx2S_AmnRM(r-wOj3R@62j{f8QFRb_lJsIi zZZ45gysLe-dAxw_#r^$_Dm|FwS$<0zI2uE?!D2I2BAEm$pYjs=g^Q0m-T9DYw=sG;!_&h@nO;(PwPdD?+)d)p5V_BJH7v}pI&^4uS+ z&-dTMnyaT&~=Ga}NiVk((=_tW2uy_#OA% z(kBAgd!eP0sy)I%^Fn#dQ~-C&4GRl4RDx^-`}Efe{#R@ouL8cey69a9)DLUS>n6dSZEdcVco64h#$gduBTS zc%1m!_H?r2bfWjez6aho#%@xN_P3^zVP1V;bW63=R^Pgm6~(LE_Cnp25xc8ctfYSL zyixn%$x+0HzP5ST2RpkIU?gBVsCY8@J~_k;KlG+eA?YwSq7h`^rv70_r7T`?7VoL#_`(|N7(xI zDtCAD;dkd&rdsR#$S*GiyYD97>Ge4iO0ObhFx!=h@3GwxQQ0**#NB!=8O4H{eRf*- zwhX#EPe%mzhDBjBpXts*Nh?~!Vt@z!{eGDE4Yyhin?z>hlAs`Lpzbuk+1RWM*dG854#Xlc9K>*XLE%1RZ|7L1l>SF9*wH zVxy|e^4{OYxh?kmR6Y6tHY<}|tDFU8`eUdpvo_JTk*x%#M4+?z6eE*4(HOyOpQly9 zw`eaGCFGEMB*DJ#!HKnYNjj!F@Jv438+Jd2)N(Y-FzD{`9S*i+$>6)Fu5TZob%!Ym zXNF_4GBc&GZ+?50Wi?U>%O2>hd=*}`(jpZ0xMDn1wyTcL{Y^M#HqK#K2|Q92)%Etl z=dQ`-7!8Anpq!kvw2R$+efQqF339=fV_bLE?{s%}*XQf*2b%X6q$Vt+PEb~DdL2o~ zEuYOA??b1@CZRHHTLjYO%^hb_BSN>dDqSAiyvxs5q6OE+_n;DdWNdS7-~BT@8QR$b zrk@}YNR^7p;MA*StUEzSm4eCuFH%LPc6F=j#H}oD&gE6*qB723cgg_wM?P1Qq=o0{ z_NFCe(5c$4Yj<#O1kwuKjdPksPIbGt>h+sDFLF_jxBg*X`AhEkcW|J ynctdrUotQGYQNbY>~;(_8s^{&0Q}u~Wam8U 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 mcm7lM-?PHM|NQ^>_3Xkv|yS#<5BYS;-!U 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 v8-Dj&IS_}w5&GYCniE7;@7Dj