diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c9a6185 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.gz filter=lfs diff=lfs merge=lfs -text diff --git a/comparison/0.get-cytominer-tool-differences.ipynb b/comparison/0.get-cytominer-tool-differences.ipynb new file mode 100644 index 0000000..6b3298f --- /dev/null +++ b/comparison/0.get-cytominer-tool-differences.ipynb @@ -0,0 +1,1279 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Comparing Pycytominer and Cytominer Processing\n", + "\n", + "We have previously processed all of the Drug Repurposing Hub Cell Painting Data using [cytominer](https://github.com/cytomining/cytominer).\n", + "Cytominer is an R based image-based profiling tool.\n", + "In this repo, we reprocess the data with [pycytominer](https://github.com/cytomining/pycytominer).\n", + "As the name connotes, pycytominer is a python based image-based profiling tool.\n", + "\n", + "We include all processing scripts and present the pycytominer profiles in this open source repository.\n", + "The repository represents a unified bioinformatics pipeline applied to all Cell Painting Drug Repurposing Profiles. In this notebook, we compare the resulting output data between the processing pipelines for the two tools: Cytominer and pycytominer.\n", + "We output several metrics comparing the two approaches\n", + "\n", + "## Metrics\n", + "\n", + "In all cases, we calculate the element-wise absolute value difference between pycytominer and cytominer profiles.\n", + "\n", + "1. Mean, median, and sum of element-wise differencs\n", + "2. Per feature mean, median, and sum of element-wise differences\n", + "3. Feature selection procedure differences per feature (level 4b only)\n", + "\n", + "In addition, we confirm alignment of the following metadata columns:\n", + "\n", + "* Well\n", + "* Broad Sample Name\n", + "* Plate\n", + "\n", + "Other metadata columns are not expected to be aligned.\n", + "For example, we have [updated MOA and Target information](https://github.com/broadinstitute/lincs-cell-painting/issues/11) in the pycytominer version.\n", + "\n", + "## Data Levels\n", + "\n", + "Image-based profiling results in the following output data levels.\n", + "We do not compare all data levels in this notebook.\n", + "\n", + "| Data | Level | Comparison |\n", + "| :---- | :---- | :-------- |\n", + "| Images | Level 1 | NA |\n", + "| SQLite File (single cell profiles ) | Level 2 | NA |\n", + "| Aggregated Profiles with Well Information (metadata) | Level 3 | Yes |\n", + "| Normalized Aggregated Profiles with Metadata | Level 4a | Yes | \n", + "| Normalized and Feature Selected Aggregated Profiles with Metadata | Level 4b | Yes |\n", + "| Perturbation Profiles created Summarizing Replicates | Level 5 | No |" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 1;\n", + " var nbb_unformatted_code = \"%load_ext nb_black\";\n", + " var nbb_formatted_code = \"%load_ext nb_black\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%load_ext nb_black" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 2;\n", + " var nbb_unformatted_code = \"import os\\nimport pathlib\\nimport numpy as np\\nimport pandas as pd\\n\\nfrom util import build_file_dictionary, load_data, build_filenames\";\n", + " var nbb_formatted_code = \"import os\\nimport pathlib\\nimport numpy as np\\nimport pandas as pd\\n\\nfrom util import build_file_dictionary, load_data, build_filenames\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import os\n", + "import pathlib\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from util import build_file_dictionary, load_data, build_filenames" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 3;\n", + " var nbb_unformatted_code = \"def get_metrics(pycyto_df, cyto_df, features):\\n # Align features\\n pycyto_df = pycyto_df.reindex(features, axis=\\\"columns\\\")\\n cyto_df = cyto_df.reindex(features, axis=\\\"columns\\\")\\n\\n # Assess difference\\n abs_diff = pycyto_df.subtract(cyto_df).abs()\\n mean_diff = abs_diff.mean()\\n median_diff = abs_diff.median()\\n sum_diff = abs_diff.sum()\\n\\n complete_mean_diff = mean_diff.replace([np.inf, -np.inf], np.nan).dropna().mean()\\n complete_median_diff = (\\n median_diff.replace([np.inf, -np.inf], np.nan).dropna().mean()\\n )\\n complete_sum_diff = sum_diff.replace([np.inf, -np.inf], np.nan).dropna().sum()\\n\\n return (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n )\\n\\n\\ndef find_feature_diff(pycyto_df, cyto_df, plate, all_features):\\n all_features_df = pd.DataFrame(\\n [\\\"missing\\\"] * len(all_features), index=all_features, columns=[plate]\\n )\\n pycyto_features = set(pycyto_df.columns.tolist())\\n cyto_features = set(cyto_df.columns.tolist())\\n present_both = pycyto_features.intersection(cyto_features)\\n\\n all_features_df.loc[\\n all_features_df.index.isin(pycyto_features), plate\\n ] = \\\"only_pycytominer\\\"\\n all_features_df.loc[\\n all_features_df.index.isin(cyto_features), plate\\n ] = \\\"only_cytominer\\\"\\n all_features_df.loc[\\n all_features_df.index.isin(present_both), plate\\n ] = \\\"present_both\\\"\\n\\n return all_features_df\";\n", + " var nbb_formatted_code = \"def get_metrics(pycyto_df, cyto_df, features):\\n # Align features\\n pycyto_df = pycyto_df.reindex(features, axis=\\\"columns\\\")\\n cyto_df = cyto_df.reindex(features, axis=\\\"columns\\\")\\n\\n # Assess difference\\n abs_diff = pycyto_df.subtract(cyto_df).abs()\\n mean_diff = abs_diff.mean()\\n median_diff = abs_diff.median()\\n sum_diff = abs_diff.sum()\\n\\n complete_mean_diff = mean_diff.replace([np.inf, -np.inf], np.nan).dropna().mean()\\n complete_median_diff = (\\n median_diff.replace([np.inf, -np.inf], np.nan).dropna().mean()\\n )\\n complete_sum_diff = sum_diff.replace([np.inf, -np.inf], np.nan).dropna().sum()\\n\\n return (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n )\\n\\n\\ndef find_feature_diff(pycyto_df, cyto_df, plate, all_features):\\n all_features_df = pd.DataFrame(\\n [\\\"missing\\\"] * len(all_features), index=all_features, columns=[plate]\\n )\\n pycyto_features = set(pycyto_df.columns.tolist())\\n cyto_features = set(cyto_df.columns.tolist())\\n present_both = pycyto_features.intersection(cyto_features)\\n\\n all_features_df.loc[\\n all_features_df.index.isin(pycyto_features), plate\\n ] = \\\"only_pycytominer\\\"\\n all_features_df.loc[\\n all_features_df.index.isin(cyto_features), plate\\n ] = \\\"only_cytominer\\\"\\n all_features_df.loc[\\n all_features_df.index.isin(present_both), plate\\n ] = \\\"present_both\\\"\\n\\n return all_features_df\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_metrics(pycyto_df, cyto_df, features):\n", + " # Align features\n", + " pycyto_df = pycyto_df.reindex(features, axis=\"columns\")\n", + " cyto_df = cyto_df.reindex(features, axis=\"columns\")\n", + "\n", + " # Assess difference\n", + " abs_diff = pycyto_df.subtract(cyto_df).abs()\n", + " mean_diff = abs_diff.mean()\n", + " median_diff = abs_diff.median()\n", + " sum_diff = abs_diff.sum()\n", + "\n", + " complete_mean_diff = mean_diff.replace([np.inf, -np.inf], np.nan).dropna().mean()\n", + " complete_median_diff = (\n", + " median_diff.replace([np.inf, -np.inf], np.nan).dropna().mean()\n", + " )\n", + " complete_sum_diff = sum_diff.replace([np.inf, -np.inf], np.nan).dropna().sum()\n", + "\n", + " return (\n", + " mean_diff,\n", + " complete_mean_diff,\n", + " median_diff,\n", + " complete_median_diff,\n", + " sum_diff,\n", + " complete_sum_diff,\n", + " )\n", + "\n", + "\n", + "def find_feature_diff(pycyto_df, cyto_df, plate, all_features):\n", + " all_features_df = pd.DataFrame(\n", + " [\"missing\"] * len(all_features), index=all_features, columns=[plate]\n", + " )\n", + " pycyto_features = set(pycyto_df.columns.tolist())\n", + " cyto_features = set(cyto_df.columns.tolist())\n", + " present_both = pycyto_features.intersection(cyto_features)\n", + "\n", + " all_features_df.loc[\n", + " all_features_df.index.isin(pycyto_features), plate\n", + " ] = \"only_pycytominer\"\n", + " all_features_df.loc[\n", + " all_features_df.index.isin(cyto_features), plate\n", + " ] = \"only_cytominer\"\n", + " all_features_df.loc[\n", + " all_features_df.index.isin(present_both), plate\n", + " ] = \"present_both\"\n", + "\n", + " return all_features_df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 4;\n", + " var nbb_unformatted_code = \"# Set batch name\\nproject = \\\"2015_10_05_DrugRepurposing_AravindSubramanian_GolubLab_Broad\\\"\\nbatch = \\\"2016_04_01_a549_48hr_batch1\\\"\\n\\n# Pycytominer plates are saved with 5 floating point decimals\\nround_decimals = 5\\n\\n# Create the output directory\\noutput_dir = pathlib.Path(\\\"results\\\", batch)\\noutput_dir.mkdir(parents=True, exist_ok=True)\";\n", + " var nbb_formatted_code = \"# Set batch name\\nproject = \\\"2015_10_05_DrugRepurposing_AravindSubramanian_GolubLab_Broad\\\"\\nbatch = \\\"2016_04_01_a549_48hr_batch1\\\"\\n\\n# Pycytominer plates are saved with 5 floating point decimals\\nround_decimals = 5\\n\\n# Create the output directory\\noutput_dir = pathlib.Path(\\\"results\\\", batch)\\noutput_dir.mkdir(parents=True, exist_ok=True)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set batch name\n", + "project = \"2015_10_05_DrugRepurposing_AravindSubramanian_GolubLab_Broad\"\n", + "batch = \"2016_04_01_a549_48hr_batch1\"\n", + "\n", + "# Pycytominer plates are saved with 5 floating point decimals\n", + "round_decimals = 5\n", + "\n", + "# Create the output directory\n", + "output_dir = pathlib.Path(\"results\", batch)\n", + "output_dir.mkdir(parents=True, exist_ok=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 5;\n", + " var nbb_unformatted_code = \"# Set input directories\\n# Note, pycytominer profiles are processed and exist in this repository\\npycytominer_dir = pathlib.Path(\\\"../profiles/backend/\\\", batch)\\n\\n# Note, cytominer profiles were processed separately and exist in many different locations.\\n# This location represents the exact files that were previously profiled using cytominer.\\n# The files were deposited on the Imaging Platform AWS S3 Bucket and downloaded locally.\\n# To reproduce the analysis, update the appropriate cytominer path.\\nhome_dir = pycytominer_dir.home()\\ncytominer_dir = pathlib.Path(\\n f\\\"{home_dir}/work/projects/{project}/workspace/backend/{batch}/\\\"\\n)\";\n", + " var nbb_formatted_code = \"# Set input directories\\n# Note, pycytominer profiles are processed and exist in this repository\\npycytominer_dir = pathlib.Path(\\\"../profiles/backend/\\\", batch)\\n\\n# Note, cytominer profiles were processed separately and exist in many different locations.\\n# This location represents the exact files that were previously profiled using cytominer.\\n# The files were deposited on the Imaging Platform AWS S3 Bucket and downloaded locally.\\n# To reproduce the analysis, update the appropriate cytominer path.\\nhome_dir = pycytominer_dir.home()\\ncytominer_dir = pathlib.Path(\\n f\\\"{home_dir}/work/projects/{project}/workspace/backend/{batch}/\\\"\\n)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set input directories\n", + "# Note, pycytominer profiles are processed and exist in this repository\n", + "pycytominer_dir = pathlib.Path(\"../profiles/backend/\", batch)\n", + "\n", + "# Note, cytominer profiles were processed separately and exist in many different locations.\n", + "# This location represents the exact files that were previously profiled using cytominer.\n", + "# The files were deposited on the Imaging Platform AWS S3 Bucket and downloaded locally.\n", + "# To reproduce the analysis, update the appropriate cytominer path.\n", + "home_dir = pycytominer_dir.home()\n", + "cytominer_dir = pathlib.Path(\n", + " f\"{home_dir}/work/projects/{project}/workspace/backend/{batch}/\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 6;\n", + " var nbb_unformatted_code = \"pycytominer_plate_files = build_file_dictionary(pycytominer_dir, tool=\\\"pycytominer\\\")\\ncytominer_plate_files = build_file_dictionary(cytominer_dir, tool=\\\"cytominer\\\")\";\n", + " var nbb_formatted_code = \"pycytominer_plate_files = build_file_dictionary(pycytominer_dir, tool=\\\"pycytominer\\\")\\ncytominer_plate_files = build_file_dictionary(cytominer_dir, tool=\\\"cytominer\\\")\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pycytominer_plate_files = build_file_dictionary(pycytominer_dir, tool=\"pycytominer\")\n", + "cytominer_plate_files = build_file_dictionary(cytominer_dir, tool=\"cytominer\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "136\n" + ] + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 7;\n", + " var nbb_unformatted_code = \"pycytominer_plates = set(sorted(pycytominer_plate_files.keys()))\\ncytominer_plates = set(sorted(cytominer_plate_files.keys()))\\n\\nassert (\\n cytominer_plates == pycytominer_plates\\n), \\\"Stop, not every plate is measured using both tools\\\"\\n\\nprint(len(pycytominer_plates))\";\n", + " var nbb_formatted_code = \"pycytominer_plates = set(sorted(pycytominer_plate_files.keys()))\\ncytominer_plates = set(sorted(cytominer_plate_files.keys()))\\n\\nassert (\\n cytominer_plates == pycytominer_plates\\n), \\\"Stop, not every plate is measured using both tools\\\"\\n\\nprint(len(pycytominer_plates))\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pycytominer_plates = set(sorted(pycytominer_plate_files.keys()))\n", + "cytominer_plates = set(sorted(cytominer_plate_files.keys()))\n", + "\n", + "assert (\n", + " cytominer_plates == pycytominer_plates\n", + "), \"Stop, not every plate is measured using both tools\"\n", + "\n", + "print(len(pycytominer_plates))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/numpy/lib/nanfunctions.py:1116: RuntimeWarning: All-NaN slice encountered\n", + " overwrite_input=overwrite_input)\n" + ] + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 8;\n", + " var nbb_unformatted_code = \"level_3_mean_diff = []\\nlevel_3_completemean_diff = {}\\nlevel_3_median_diff = []\\nlevel_3_completemedian_diff = {}\\nlevel_3_sum_diff = []\\nlevel_3_completesum_diff = {}\\n\\nlevel_4a_mean_diff = []\\nlevel_4a_completemean_diff = {}\\nlevel_4a_median_diff = []\\nlevel_4a_completemedian_diff = {}\\nlevel_4a_sum_diff = []\\nlevel_4a_completesum_diff = {}\\n\\nlevel_4b_mean_diff = []\\nlevel_4b_completemean_diff = {}\\nlevel_4b_sum_diff = []\\nlevel_4b_median_diff = []\\nlevel_4b_completemedian_diff = {}\\nlevel_4b_completesum_diff = {}\\nlevel_4b_feature_select = []\\n\\ntest_pycytominer_select_mean_diff = []\\ntest_pycytominer_select_completemean_diff = {}\\ntest_pycytominer_select_sum_diff = []\\ntest_pycytominer_select_median_diff = []\\ntest_pycytominer_select_completemedian_diff = {}\\ntest_pycytominer_select_completesum_diff = {}\\ntest_pycytominer_select_feature_select = []\\n\\n# Calculate metrics per plate\\nfor plate in list(cytominer_plates):\\n # Calculate level 3 metrics\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"level_3\\\",\\n round_decimals=round_decimals,\\n )\\n # Define features (note that the features were checked and aligned in load_data)\\n features = pycyto_df.columns.tolist()\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features)\\n # Store results\\n level_3_mean_diff.append(mean_diff)\\n level_3_completemean_diff[plate] = complete_mean_diff\\n level_3_median_diff.append(median_diff)\\n level_3_completemedian_diff[plate] = complete_median_diff\\n level_3_sum_diff.append(sum_diff)\\n level_3_completesum_diff[plate] = complete_sum_diff\\n\\n # Calculate level 4a metrics\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"level_4a\\\",\\n round_decimals=round_decimals,\\n )\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features)\\n # Store results\\n level_4a_mean_diff.append(mean_diff)\\n level_4a_completemean_diff[plate] = complete_mean_diff\\n level_4a_median_diff.append(median_diff)\\n level_4a_completemedian_diff[plate] = complete_median_diff\\n level_4a_sum_diff.append(sum_diff)\\n level_4a_completesum_diff[plate] = complete_sum_diff\\n\\n # Calculate level 4b metrics\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"level_4b\\\",\\n round_decimals=round_decimals,\\n )\\n # Determine feature selection differences\\n feature_select_df = find_feature_diff(pycyto_df, cyto_df, plate, features)\\n features_present_in_both = feature_select_df.loc[\\n feature_select_df.loc[:, plate] == \\\"present_both\\\", plate\\n ].index.tolist()\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features_present_in_both)\\n # Store results\\n level_4b_mean_diff.append(mean_diff)\\n level_4b_completemean_diff[plate] = complete_mean_diff\\n level_4b_median_diff.append(median_diff)\\n level_4b_completemedian_diff[plate] = complete_median_diff\\n level_4b_sum_diff.append(sum_diff)\\n level_4b_completesum_diff[plate] = complete_sum_diff\\n level_4b_feature_select.append(feature_select_df)\\n\\n # Test pycytominer feature selection\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"pycytominer_select\\\",\\n round_decimals=round_decimals,\\n )\\n # Define features (note that the features were checked and aligned in load_data)\\n features = pycyto_df.columns.tolist()\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features)\\n # Store results\\n test_pycytominer_select_mean_diff.append(mean_diff)\\n test_pycytominer_select_completemean_diff[plate] = complete_mean_diff\\n test_pycytominer_select_median_diff.append(median_diff)\\n test_pycytominer_select_completemedian_diff[plate] = complete_median_diff\\n test_pycytominer_select_sum_diff.append(sum_diff)\\n test_pycytominer_select_completesum_diff[plate] = complete_sum_diff\";\n", + " var nbb_formatted_code = \"level_3_mean_diff = []\\nlevel_3_completemean_diff = {}\\nlevel_3_median_diff = []\\nlevel_3_completemedian_diff = {}\\nlevel_3_sum_diff = []\\nlevel_3_completesum_diff = {}\\n\\nlevel_4a_mean_diff = []\\nlevel_4a_completemean_diff = {}\\nlevel_4a_median_diff = []\\nlevel_4a_completemedian_diff = {}\\nlevel_4a_sum_diff = []\\nlevel_4a_completesum_diff = {}\\n\\nlevel_4b_mean_diff = []\\nlevel_4b_completemean_diff = {}\\nlevel_4b_sum_diff = []\\nlevel_4b_median_diff = []\\nlevel_4b_completemedian_diff = {}\\nlevel_4b_completesum_diff = {}\\nlevel_4b_feature_select = []\\n\\ntest_pycytominer_select_mean_diff = []\\ntest_pycytominer_select_completemean_diff = {}\\ntest_pycytominer_select_sum_diff = []\\ntest_pycytominer_select_median_diff = []\\ntest_pycytominer_select_completemedian_diff = {}\\ntest_pycytominer_select_completesum_diff = {}\\ntest_pycytominer_select_feature_select = []\\n\\n# Calculate metrics per plate\\nfor plate in list(cytominer_plates):\\n # Calculate level 3 metrics\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"level_3\\\",\\n round_decimals=round_decimals,\\n )\\n # Define features (note that the features were checked and aligned in load_data)\\n features = pycyto_df.columns.tolist()\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features)\\n # Store results\\n level_3_mean_diff.append(mean_diff)\\n level_3_completemean_diff[plate] = complete_mean_diff\\n level_3_median_diff.append(median_diff)\\n level_3_completemedian_diff[plate] = complete_median_diff\\n level_3_sum_diff.append(sum_diff)\\n level_3_completesum_diff[plate] = complete_sum_diff\\n\\n # Calculate level 4a metrics\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"level_4a\\\",\\n round_decimals=round_decimals,\\n )\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features)\\n # Store results\\n level_4a_mean_diff.append(mean_diff)\\n level_4a_completemean_diff[plate] = complete_mean_diff\\n level_4a_median_diff.append(median_diff)\\n level_4a_completemedian_diff[plate] = complete_median_diff\\n level_4a_sum_diff.append(sum_diff)\\n level_4a_completesum_diff[plate] = complete_sum_diff\\n\\n # Calculate level 4b metrics\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"level_4b\\\",\\n round_decimals=round_decimals,\\n )\\n # Determine feature selection differences\\n feature_select_df = find_feature_diff(pycyto_df, cyto_df, plate, features)\\n features_present_in_both = feature_select_df.loc[\\n feature_select_df.loc[:, plate] == \\\"present_both\\\", plate\\n ].index.tolist()\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features_present_in_both)\\n # Store results\\n level_4b_mean_diff.append(mean_diff)\\n level_4b_completemean_diff[plate] = complete_mean_diff\\n level_4b_median_diff.append(median_diff)\\n level_4b_completemedian_diff[plate] = complete_median_diff\\n level_4b_sum_diff.append(sum_diff)\\n level_4b_completesum_diff[plate] = complete_sum_diff\\n level_4b_feature_select.append(feature_select_df)\\n\\n # Test pycytominer feature selection\\n pycyto_df, cyto_df = load_data(\\n plate,\\n pycytominer_plate_files,\\n cytominer_plate_files,\\n level=\\\"pycytominer_select\\\",\\n round_decimals=round_decimals,\\n )\\n # Define features (note that the features were checked and aligned in load_data)\\n features = pycyto_df.columns.tolist()\\n # Get differences\\n (\\n mean_diff,\\n complete_mean_diff,\\n median_diff,\\n complete_median_diff,\\n sum_diff,\\n complete_sum_diff,\\n ) = get_metrics(pycyto_df, cyto_df, features)\\n # Store results\\n test_pycytominer_select_mean_diff.append(mean_diff)\\n test_pycytominer_select_completemean_diff[plate] = complete_mean_diff\\n test_pycytominer_select_median_diff.append(median_diff)\\n test_pycytominer_select_completemedian_diff[plate] = complete_median_diff\\n test_pycytominer_select_sum_diff.append(sum_diff)\\n test_pycytominer_select_completesum_diff[plate] = complete_sum_diff\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level_3_mean_diff = []\n", + "level_3_completemean_diff = {}\n", + "level_3_median_diff = []\n", + "level_3_completemedian_diff = {}\n", + "level_3_sum_diff = []\n", + "level_3_completesum_diff = {}\n", + "\n", + "level_4a_mean_diff = []\n", + "level_4a_completemean_diff = {}\n", + "level_4a_median_diff = []\n", + "level_4a_completemedian_diff = {}\n", + "level_4a_sum_diff = []\n", + "level_4a_completesum_diff = {}\n", + "\n", + "level_4b_mean_diff = []\n", + "level_4b_completemean_diff = {}\n", + "level_4b_sum_diff = []\n", + "level_4b_median_diff = []\n", + "level_4b_completemedian_diff = {}\n", + "level_4b_completesum_diff = {}\n", + "level_4b_feature_select = []\n", + "\n", + "test_pycytominer_select_mean_diff = []\n", + "test_pycytominer_select_completemean_diff = {}\n", + "test_pycytominer_select_sum_diff = []\n", + "test_pycytominer_select_median_diff = []\n", + "test_pycytominer_select_completemedian_diff = {}\n", + "test_pycytominer_select_completesum_diff = {}\n", + "test_pycytominer_select_feature_select = []\n", + "\n", + "# Calculate metrics per plate\n", + "for plate in list(cytominer_plates):\n", + " # Calculate level 3 metrics\n", + " pycyto_df, cyto_df = load_data(\n", + " plate,\n", + " pycytominer_plate_files,\n", + " cytominer_plate_files,\n", + " level=\"level_3\",\n", + " round_decimals=round_decimals,\n", + " )\n", + " # Define features (note that the features were checked and aligned in load_data)\n", + " features = pycyto_df.columns.tolist()\n", + " # Get differences\n", + " (\n", + " mean_diff,\n", + " complete_mean_diff,\n", + " median_diff,\n", + " complete_median_diff,\n", + " sum_diff,\n", + " complete_sum_diff,\n", + " ) = get_metrics(pycyto_df, cyto_df, features)\n", + " # Store results\n", + " level_3_mean_diff.append(mean_diff)\n", + " level_3_completemean_diff[plate] = complete_mean_diff\n", + " level_3_median_diff.append(median_diff)\n", + " level_3_completemedian_diff[plate] = complete_median_diff\n", + " level_3_sum_diff.append(sum_diff)\n", + " level_3_completesum_diff[plate] = complete_sum_diff\n", + "\n", + " # Calculate level 4a metrics\n", + " pycyto_df, cyto_df = load_data(\n", + " plate,\n", + " pycytominer_plate_files,\n", + " cytominer_plate_files,\n", + " level=\"level_4a\",\n", + " round_decimals=round_decimals,\n", + " )\n", + " # Get differences\n", + " (\n", + " mean_diff,\n", + " complete_mean_diff,\n", + " median_diff,\n", + " complete_median_diff,\n", + " sum_diff,\n", + " complete_sum_diff,\n", + " ) = get_metrics(pycyto_df, cyto_df, features)\n", + " # Store results\n", + " level_4a_mean_diff.append(mean_diff)\n", + " level_4a_completemean_diff[plate] = complete_mean_diff\n", + " level_4a_median_diff.append(median_diff)\n", + " level_4a_completemedian_diff[plate] = complete_median_diff\n", + " level_4a_sum_diff.append(sum_diff)\n", + " level_4a_completesum_diff[plate] = complete_sum_diff\n", + "\n", + " # Calculate level 4b metrics\n", + " pycyto_df, cyto_df = load_data(\n", + " plate,\n", + " pycytominer_plate_files,\n", + " cytominer_plate_files,\n", + " level=\"level_4b\",\n", + " round_decimals=round_decimals,\n", + " )\n", + " # Determine feature selection differences\n", + " feature_select_df = find_feature_diff(pycyto_df, cyto_df, plate, features)\n", + " features_present_in_both = feature_select_df.loc[\n", + " feature_select_df.loc[:, plate] == \"present_both\", plate\n", + " ].index.tolist()\n", + " # Get differences\n", + " (\n", + " mean_diff,\n", + " complete_mean_diff,\n", + " median_diff,\n", + " complete_median_diff,\n", + " sum_diff,\n", + " complete_sum_diff,\n", + " ) = get_metrics(pycyto_df, cyto_df, features_present_in_both)\n", + " # Store results\n", + " level_4b_mean_diff.append(mean_diff)\n", + " level_4b_completemean_diff[plate] = complete_mean_diff\n", + " level_4b_median_diff.append(median_diff)\n", + " level_4b_completemedian_diff[plate] = complete_median_diff\n", + " level_4b_sum_diff.append(sum_diff)\n", + " level_4b_completesum_diff[plate] = complete_sum_diff\n", + " level_4b_feature_select.append(feature_select_df)\n", + "\n", + " # Test pycytominer feature selection\n", + " pycyto_df, cyto_df = load_data(\n", + " plate,\n", + " pycytominer_plate_files,\n", + " cytominer_plate_files,\n", + " level=\"pycytominer_select\",\n", + " round_decimals=round_decimals,\n", + " )\n", + " # Define features (note that the features were checked and aligned in load_data)\n", + " features = pycyto_df.columns.tolist()\n", + " # Get differences\n", + " (\n", + " mean_diff,\n", + " complete_mean_diff,\n", + " median_diff,\n", + " complete_median_diff,\n", + " sum_diff,\n", + " complete_sum_diff,\n", + " ) = get_metrics(pycyto_df, cyto_df, features)\n", + " # Store results\n", + " test_pycytominer_select_mean_diff.append(mean_diff)\n", + " test_pycytominer_select_completemean_diff[plate] = complete_mean_diff\n", + " test_pycytominer_select_median_diff.append(median_diff)\n", + " test_pycytominer_select_completemedian_diff[plate] = complete_median_diff\n", + " test_pycytominer_select_sum_diff.append(sum_diff)\n", + " test_pycytominer_select_completesum_diff[plate] = complete_sum_diff" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compile Results" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 9;\n", + " var nbb_unformatted_code = \"level_3_mean_diff_df = pd.concat(level_3_mean_diff, axis=\\\"columns\\\", sort=True)\\nlevel_3_mean_diff_df.columns = list(cytominer_plates)\\nlevel_3_completemean_diff_df = pd.DataFrame(\\n level_3_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\nlevel_3_median_diff_df = pd.concat(level_3_median_diff, axis=\\\"columns\\\", sort=True)\\nlevel_3_median_diff_df.columns = list(cytominer_plates)\\nlevel_3_completemedian_diff_df = pd.DataFrame(\\n level_3_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\nlevel_3_sum_diff_df = pd.concat(level_3_sum_diff, axis=\\\"columns\\\", sort=True)\\nlevel_3_sum_diff_df.columns = list(cytominer_plates)\\nlevel_3_completesum_diff_df = pd.DataFrame(\\n level_3_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\";\n", + " var nbb_formatted_code = \"level_3_mean_diff_df = pd.concat(level_3_mean_diff, axis=\\\"columns\\\", sort=True)\\nlevel_3_mean_diff_df.columns = list(cytominer_plates)\\nlevel_3_completemean_diff_df = pd.DataFrame(\\n level_3_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\nlevel_3_median_diff_df = pd.concat(level_3_median_diff, axis=\\\"columns\\\", sort=True)\\nlevel_3_median_diff_df.columns = list(cytominer_plates)\\nlevel_3_completemedian_diff_df = pd.DataFrame(\\n level_3_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\nlevel_3_sum_diff_df = pd.concat(level_3_sum_diff, axis=\\\"columns\\\", sort=True)\\nlevel_3_sum_diff_df.columns = list(cytominer_plates)\\nlevel_3_completesum_diff_df = pd.DataFrame(\\n level_3_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level_3_mean_diff_df = pd.concat(level_3_mean_diff, axis=\"columns\", sort=True)\n", + "level_3_mean_diff_df.columns = list(cytominer_plates)\n", + "level_3_completemean_diff_df = pd.DataFrame(\n", + " level_3_completemean_diff, index=[\"complete_mean_diff\"]\n", + ").transpose()\n", + "\n", + "level_3_median_diff_df = pd.concat(level_3_median_diff, axis=\"columns\", sort=True)\n", + "level_3_median_diff_df.columns = list(cytominer_plates)\n", + "level_3_completemedian_diff_df = pd.DataFrame(\n", + " level_3_completemedian_diff, index=[\"complete_median_diff\"]\n", + ").transpose()\n", + "\n", + "level_3_sum_diff_df = pd.concat(level_3_sum_diff, axis=\"columns\", sort=True)\n", + "level_3_sum_diff_df.columns = list(cytominer_plates)\n", + "level_3_completesum_diff_df = pd.DataFrame(\n", + " level_3_completesum_diff, index=[\"complete_sum_diff\"]\n", + ").transpose()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 10;\n", + " var nbb_unformatted_code = \"level_4a_mean_diff_df = pd.concat(level_4a_mean_diff, axis=\\\"columns\\\")\\nlevel_4a_mean_diff_df.columns = list(cytominer_plates)\\nlevel_4a_completemean_diff_df = pd.DataFrame(\\n level_4a_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\nlevel_4a_median_diff_df = pd.concat(level_4a_median_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4a_median_diff_df.columns = list(cytominer_plates)\\nlevel_4a_completemedian_diff_df = pd.DataFrame(\\n level_4a_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\nlevel_4a_sum_diff_df = pd.concat(level_4a_sum_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4a_sum_diff_df.columns = list(cytominer_plates)\\nlevel_4a_completesum_diff_df = pd.DataFrame(\\n level_4a_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\";\n", + " var nbb_formatted_code = \"level_4a_mean_diff_df = pd.concat(level_4a_mean_diff, axis=\\\"columns\\\")\\nlevel_4a_mean_diff_df.columns = list(cytominer_plates)\\nlevel_4a_completemean_diff_df = pd.DataFrame(\\n level_4a_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\nlevel_4a_median_diff_df = pd.concat(level_4a_median_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4a_median_diff_df.columns = list(cytominer_plates)\\nlevel_4a_completemedian_diff_df = pd.DataFrame(\\n level_4a_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\nlevel_4a_sum_diff_df = pd.concat(level_4a_sum_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4a_sum_diff_df.columns = list(cytominer_plates)\\nlevel_4a_completesum_diff_df = pd.DataFrame(\\n level_4a_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level_4a_mean_diff_df = pd.concat(level_4a_mean_diff, axis=\"columns\")\n", + "level_4a_mean_diff_df.columns = list(cytominer_plates)\n", + "level_4a_completemean_diff_df = pd.DataFrame(\n", + " level_4a_completemean_diff, index=[\"complete_mean_diff\"]\n", + ").transpose()\n", + "\n", + "level_4a_median_diff_df = pd.concat(level_4a_median_diff, axis=\"columns\", sort=True)\n", + "level_4a_median_diff_df.columns = list(cytominer_plates)\n", + "level_4a_completemedian_diff_df = pd.DataFrame(\n", + " level_4a_completemedian_diff, index=[\"complete_median_diff\"]\n", + ").transpose()\n", + "\n", + "level_4a_sum_diff_df = pd.concat(level_4a_sum_diff, axis=\"columns\", sort=True)\n", + "level_4a_sum_diff_df.columns = list(cytominer_plates)\n", + "level_4a_completesum_diff_df = pd.DataFrame(\n", + " level_4a_completesum_diff, index=[\"complete_sum_diff\"]\n", + ").transpose()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 11;\n", + " var nbb_unformatted_code = \"level_4b_mean_diff_df = pd.concat(level_4b_mean_diff, axis=\\\"columns\\\")\\nlevel_4b_mean_diff_df.columns = list(cytominer_plates)\\nlevel_4b_completemean_diff_df = pd.DataFrame(\\n level_4b_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\nlevel_4b_median_diff_df = pd.concat(level_4b_median_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4b_median_diff_df.columns = list(cytominer_plates)\\nlevel_4b_completemedian_diff_df = pd.DataFrame(\\n level_4b_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\nlevel_4b_sum_diff_df = pd.concat(level_4b_sum_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4b_sum_diff_df.columns = list(cytominer_plates)\\nlevel_4b_completesum_diff_df = pd.DataFrame(\\n level_4b_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\\n\\nlevel_4b_feature_select_df = pd.concat(level_4b_feature_select, axis=\\\"columns\\\")\";\n", + " var nbb_formatted_code = \"level_4b_mean_diff_df = pd.concat(level_4b_mean_diff, axis=\\\"columns\\\")\\nlevel_4b_mean_diff_df.columns = list(cytominer_plates)\\nlevel_4b_completemean_diff_df = pd.DataFrame(\\n level_4b_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\nlevel_4b_median_diff_df = pd.concat(level_4b_median_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4b_median_diff_df.columns = list(cytominer_plates)\\nlevel_4b_completemedian_diff_df = pd.DataFrame(\\n level_4b_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\nlevel_4b_sum_diff_df = pd.concat(level_4b_sum_diff, axis=\\\"columns\\\", sort=True)\\nlevel_4b_sum_diff_df.columns = list(cytominer_plates)\\nlevel_4b_completesum_diff_df = pd.DataFrame(\\n level_4b_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\\n\\nlevel_4b_feature_select_df = pd.concat(level_4b_feature_select, axis=\\\"columns\\\")\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level_4b_mean_diff_df = pd.concat(level_4b_mean_diff, axis=\"columns\")\n", + "level_4b_mean_diff_df.columns = list(cytominer_plates)\n", + "level_4b_completemean_diff_df = pd.DataFrame(\n", + " level_4b_completemean_diff, index=[\"complete_mean_diff\"]\n", + ").transpose()\n", + "\n", + "level_4b_median_diff_df = pd.concat(level_4b_median_diff, axis=\"columns\", sort=True)\n", + "level_4b_median_diff_df.columns = list(cytominer_plates)\n", + "level_4b_completemedian_diff_df = pd.DataFrame(\n", + " level_4b_completemedian_diff, index=[\"complete_median_diff\"]\n", + ").transpose()\n", + "\n", + "level_4b_sum_diff_df = pd.concat(level_4b_sum_diff, axis=\"columns\", sort=True)\n", + "level_4b_sum_diff_df.columns = list(cytominer_plates)\n", + "level_4b_completesum_diff_df = pd.DataFrame(\n", + " level_4b_completesum_diff, index=[\"complete_sum_diff\"]\n", + ").transpose()\n", + "\n", + "level_4b_feature_select_df = pd.concat(level_4b_feature_select, axis=\"columns\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 12;\n", + " var nbb_unformatted_code = \"test_pycytominer_select_mean_diff_df = pd.concat(\\n test_pycytominer_select_mean_diff, axis=\\\"columns\\\", sort=True\\n)\\ntest_pycytominer_select_mean_diff_df.columns = list(cytominer_plates)\\ntest_pycytominer_select_completemean_diff_df = pd.DataFrame(\\n test_pycytominer_select_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\ntest_pycytominer_select_median_diff_df = pd.concat(\\n test_pycytominer_select_median_diff, axis=\\\"columns\\\", sort=True\\n)\\ntest_pycytominer_select_median_diff_df.columns = list(cytominer_plates)\\ntest_pycytominer_select_completemedian_diff_df = pd.DataFrame(\\n test_pycytominer_select_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\ntest_pycytominer_select_sum_diff_df = pd.concat(\\n test_pycytominer_select_sum_diff, axis=\\\"columns\\\", sort=True\\n)\\ntest_pycytominer_select_sum_diff_df.columns = list(cytominer_plates)\\ntest_pycytominer_select_completesum_diff_df = pd.DataFrame(\\n test_pycytominer_select_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\";\n", + " var nbb_formatted_code = \"test_pycytominer_select_mean_diff_df = pd.concat(\\n test_pycytominer_select_mean_diff, axis=\\\"columns\\\", sort=True\\n)\\ntest_pycytominer_select_mean_diff_df.columns = list(cytominer_plates)\\ntest_pycytominer_select_completemean_diff_df = pd.DataFrame(\\n test_pycytominer_select_completemean_diff, index=[\\\"complete_mean_diff\\\"]\\n).transpose()\\n\\ntest_pycytominer_select_median_diff_df = pd.concat(\\n test_pycytominer_select_median_diff, axis=\\\"columns\\\", sort=True\\n)\\ntest_pycytominer_select_median_diff_df.columns = list(cytominer_plates)\\ntest_pycytominer_select_completemedian_diff_df = pd.DataFrame(\\n test_pycytominer_select_completemedian_diff, index=[\\\"complete_median_diff\\\"]\\n).transpose()\\n\\ntest_pycytominer_select_sum_diff_df = pd.concat(\\n test_pycytominer_select_sum_diff, axis=\\\"columns\\\", sort=True\\n)\\ntest_pycytominer_select_sum_diff_df.columns = list(cytominer_plates)\\ntest_pycytominer_select_completesum_diff_df = pd.DataFrame(\\n test_pycytominer_select_completesum_diff, index=[\\\"complete_sum_diff\\\"]\\n).transpose()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "test_pycytominer_select_mean_diff_df = pd.concat(\n", + " test_pycytominer_select_mean_diff, axis=\"columns\", sort=True\n", + ")\n", + "test_pycytominer_select_mean_diff_df.columns = list(cytominer_plates)\n", + "test_pycytominer_select_completemean_diff_df = pd.DataFrame(\n", + " test_pycytominer_select_completemean_diff, index=[\"complete_mean_diff\"]\n", + ").transpose()\n", + "\n", + "test_pycytominer_select_median_diff_df = pd.concat(\n", + " test_pycytominer_select_median_diff, axis=\"columns\", sort=True\n", + ")\n", + "test_pycytominer_select_median_diff_df.columns = list(cytominer_plates)\n", + "test_pycytominer_select_completemedian_diff_df = pd.DataFrame(\n", + " test_pycytominer_select_completemedian_diff, index=[\"complete_median_diff\"]\n", + ").transpose()\n", + "\n", + "test_pycytominer_select_sum_diff_df = pd.concat(\n", + " test_pycytominer_select_sum_diff, axis=\"columns\", sort=True\n", + ")\n", + "test_pycytominer_select_sum_diff_df.columns = list(cytominer_plates)\n", + "test_pycytominer_select_completesum_diff_df = pd.DataFrame(\n", + " test_pycytominer_select_completesum_diff, index=[\"complete_sum_diff\"]\n", + ").transpose()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Output Results" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 13;\n", + " var nbb_unformatted_code = \"level = \\\"level_3\\\"\\nlevel_3_files = build_filenames(output_dir, level)\\n\\n# Output mean\\nlevel_3_mean_diff_df.to_csv(\\n level_3_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\nlevel_3_median_diff_df.to_csv(\\n level_3_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\nlevel_3_sum_diff_df.to_csv(\\n level_3_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\";\n", + " var nbb_formatted_code = \"level = \\\"level_3\\\"\\nlevel_3_files = build_filenames(output_dir, level)\\n\\n# Output mean\\nlevel_3_mean_diff_df.to_csv(\\n level_3_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\nlevel_3_median_diff_df.to_csv(\\n level_3_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\nlevel_3_sum_diff_df.to_csv(\\n level_3_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level = \"level_3\"\n", + "level_3_files = build_filenames(output_dir, level)\n", + "\n", + "# Output mean\n", + "level_3_mean_diff_df.to_csv(\n", + " level_3_files[\"mean\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output median\n", + "level_3_median_diff_df.to_csv(\n", + " level_3_files[\"median\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output sum\n", + "level_3_sum_diff_df.to_csv(\n", + " level_3_files[\"sum\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 14;\n", + " var nbb_unformatted_code = \"level = \\\"level_4a\\\"\\nlevel_4a_files = build_filenames(output_dir, level)\\n\\n# Output mean\\nlevel_4a_mean_diff_df.to_csv(\\n level_4a_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\nlevel_4a_median_diff_df.to_csv(\\n level_4a_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\nlevel_4a_sum_diff_df.to_csv(\\n level_4a_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\";\n", + " var nbb_formatted_code = \"level = \\\"level_4a\\\"\\nlevel_4a_files = build_filenames(output_dir, level)\\n\\n# Output mean\\nlevel_4a_mean_diff_df.to_csv(\\n level_4a_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\nlevel_4a_median_diff_df.to_csv(\\n level_4a_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\nlevel_4a_sum_diff_df.to_csv(\\n level_4a_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level = \"level_4a\"\n", + "level_4a_files = build_filenames(output_dir, level)\n", + "\n", + "# Output mean\n", + "level_4a_mean_diff_df.to_csv(\n", + " level_4a_files[\"mean\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output median\n", + "level_4a_median_diff_df.to_csv(\n", + " level_4a_files[\"median\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output sum\n", + "level_4a_sum_diff_df.to_csv(\n", + " level_4a_files[\"sum\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 15;\n", + " var nbb_unformatted_code = \"level = \\\"level_4b\\\"\\nlevel_4b_files = build_filenames(output_dir, level)\\n\\n# Output mean\\nlevel_4b_mean_diff_df.to_csv(\\n level_4b_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\nlevel_4b_median_diff_df.to_csv(\\n level_4b_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\nlevel_4b_sum_diff_df.to_csv(\\n level_4b_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output feature select summary file\\noutput_file = f\\\"{output_dir}/comparison_result_4b_feature_select.tsv.gz\\\"\\nlevel_4b_feature_select_df.to_csv(output_file, sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\")\";\n", + " var nbb_formatted_code = \"level = \\\"level_4b\\\"\\nlevel_4b_files = build_filenames(output_dir, level)\\n\\n# Output mean\\nlevel_4b_mean_diff_df.to_csv(\\n level_4b_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\nlevel_4b_median_diff_df.to_csv(\\n level_4b_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\nlevel_4b_sum_diff_df.to_csv(\\n level_4b_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output feature select summary file\\noutput_file = f\\\"{output_dir}/comparison_result_4b_feature_select.tsv.gz\\\"\\nlevel_4b_feature_select_df.to_csv(output_file, sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\")\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level = \"level_4b\"\n", + "level_4b_files = build_filenames(output_dir, level)\n", + "\n", + "# Output mean\n", + "level_4b_mean_diff_df.to_csv(\n", + " level_4b_files[\"mean\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output median\n", + "level_4b_median_diff_df.to_csv(\n", + " level_4b_files[\"median\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output sum\n", + "level_4b_sum_diff_df.to_csv(\n", + " level_4b_files[\"sum\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output feature select summary file\n", + "output_file = f\"{output_dir}/comparison_result_4b_feature_select.tsv.gz\"\n", + "level_4b_feature_select_df.to_csv(output_file, sep=\"\\t\", index=True, compression=\"gzip\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 16;\n", + " var nbb_unformatted_code = \"level = \\\"pycytominer_select\\\"\\npycytominer_select_files = build_filenames(output_dir, level)\\n\\n# Output mean\\ntest_pycytominer_select_mean_diff_df.to_csv(\\n pycytominer_select_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\ntest_pycytominer_select_median_diff_df.to_csv(\\n pycytominer_select_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\ntest_pycytominer_select_sum_diff_df.to_csv(\\n pycytominer_select_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\";\n", + " var nbb_formatted_code = \"level = \\\"pycytominer_select\\\"\\npycytominer_select_files = build_filenames(output_dir, level)\\n\\n# Output mean\\ntest_pycytominer_select_mean_diff_df.to_csv(\\n pycytominer_select_files[\\\"mean\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output median\\ntest_pycytominer_select_median_diff_df.to_csv(\\n pycytominer_select_files[\\\"median\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\\n\\n# Output sum\\ntest_pycytominer_select_sum_diff_df.to_csv(\\n pycytominer_select_files[\\\"sum\\\"], sep=\\\"\\\\t\\\", index=True, compression=\\\"gzip\\\"\\n)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "level = \"pycytominer_select\"\n", + "pycytominer_select_files = build_filenames(output_dir, level)\n", + "\n", + "# Output mean\n", + "test_pycytominer_select_mean_diff_df.to_csv(\n", + " pycytominer_select_files[\"mean\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output median\n", + "test_pycytominer_select_median_diff_df.to_csv(\n", + " pycytominer_select_files[\"median\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")\n", + "\n", + "# Output sum\n", + "test_pycytominer_select_sum_diff_df.to_csv(\n", + " pycytominer_select_files[\"sum\"], sep=\"\\t\", index=True, compression=\"gzip\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(136, 9)\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", + "
level_3_complete_mean_difflevel_3_complete_median_difflevel_3_complete_sum_difflevel_4a_complete_mean_difflevel_4a_complete_median_difflevel_4a_complete_sum_difflevel_4b_complete_mean_difflevel_4b_complete_median_difflevel_4b_complete_sum_diff
SQ000151960.0012720.000513870.578250.0047360.0009903036.907060.0020640.001253270.23095
SQ000148200.0015460.0005141058.237070.0215970.00139613882.975190.0030800.001687404.54706
SQ000150580.0010690.000491732.001860.0062760.0010594034.428440.0018240.001007234.65259
SQ000150460.0018780.0005001285.960160.0154580.0015099912.960520.0022830.001328311.25483
SQ000152100.0021960.0005301503.626340.0037690.0014192413.939250.0031810.001719414.09969
\n", + "
" + ], + "text/plain": [ + " level_3_complete_mean_diff level_3_complete_median_diff \\\n", + "SQ00015196 0.001272 0.000513 \n", + "SQ00014820 0.001546 0.000514 \n", + "SQ00015058 0.001069 0.000491 \n", + "SQ00015046 0.001878 0.000500 \n", + "SQ00015210 0.002196 0.000530 \n", + "\n", + " level_3_complete_sum_diff level_4a_complete_mean_diff \\\n", + "SQ00015196 870.57825 0.004736 \n", + "SQ00014820 1058.23707 0.021597 \n", + "SQ00015058 732.00186 0.006276 \n", + "SQ00015046 1285.96016 0.015458 \n", + "SQ00015210 1503.62634 0.003769 \n", + "\n", + " level_4a_complete_median_diff level_4a_complete_sum_diff \\\n", + "SQ00015196 0.000990 3036.90706 \n", + "SQ00014820 0.001396 13882.97519 \n", + "SQ00015058 0.001059 4034.42844 \n", + "SQ00015046 0.001509 9912.96052 \n", + "SQ00015210 0.001419 2413.93925 \n", + "\n", + " level_4b_complete_mean_diff level_4b_complete_median_diff \\\n", + "SQ00015196 0.002064 0.001253 \n", + "SQ00014820 0.003080 0.001687 \n", + "SQ00015058 0.001824 0.001007 \n", + "SQ00015046 0.002283 0.001328 \n", + "SQ00015210 0.003181 0.001719 \n", + "\n", + " level_4b_complete_sum_diff \n", + "SQ00015196 270.23095 \n", + "SQ00014820 404.54706 \n", + "SQ00015058 234.65259 \n", + "SQ00015046 311.25483 \n", + "SQ00015210 414.09969 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 17;\n", + " var nbb_unformatted_code = \"# Concatenate level 3 results\\nlevel_3_complete_df = pd.concat(\\n [\\n level_3_completemean_diff_df,\\n level_3_completemedian_diff_df,\\n level_3_completesum_diff_df,\\n ],\\n axis=\\\"columns\\\",\\n)\\n\\nlevel_3_complete_df.columns = [f\\\"level_3_{x}\\\" for x in level_3_complete_df.columns]\\n\\n# Concatenate level 4a results\\nlevel_4a_complete_df = pd.concat(\\n [\\n level_4a_completemean_diff_df,\\n level_4a_completemedian_diff_df,\\n level_4a_completesum_diff_df,\\n ],\\n axis=\\\"columns\\\",\\n)\\n\\nlevel_4a_complete_df.columns = [f\\\"level_4a_{x}\\\" for x in level_4a_complete_df.columns]\\n\\n# Concatenate level 4b results\\nlevel_4b_complete_df = pd.concat(\\n [\\n level_4b_completemean_diff_df,\\n level_4b_completemedian_diff_df,\\n level_4b_completesum_diff_df,\\n ],\\n axis=\\\"columns\\\",\\n)\\n\\nlevel_4b_complete_df.columns = [f\\\"level_4b_{x}\\\" for x in level_4b_complete_df.columns]\\n\\n# Combine all results\\ncomplete_df = pd.concat(\\n [level_3_complete_df, level_4a_complete_df, level_4b_complete_df,], axis=\\\"columns\\\",\\n)\\n\\n# Output file\\noutput_file = f\\\"{output_dir}/comparison_result_metric_summary.tsv\\\"\\ncomplete_df.to_csv(output_file, sep=\\\"\\\\t\\\", index=True)\\n\\nprint(complete_df.shape)\\ncomplete_df.head()\";\n", + " var nbb_formatted_code = \"# Concatenate level 3 results\\nlevel_3_complete_df = pd.concat(\\n [\\n level_3_completemean_diff_df,\\n level_3_completemedian_diff_df,\\n level_3_completesum_diff_df,\\n ],\\n axis=\\\"columns\\\",\\n)\\n\\nlevel_3_complete_df.columns = [f\\\"level_3_{x}\\\" for x in level_3_complete_df.columns]\\n\\n# Concatenate level 4a results\\nlevel_4a_complete_df = pd.concat(\\n [\\n level_4a_completemean_diff_df,\\n level_4a_completemedian_diff_df,\\n level_4a_completesum_diff_df,\\n ],\\n axis=\\\"columns\\\",\\n)\\n\\nlevel_4a_complete_df.columns = [f\\\"level_4a_{x}\\\" for x in level_4a_complete_df.columns]\\n\\n# Concatenate level 4b results\\nlevel_4b_complete_df = pd.concat(\\n [\\n level_4b_completemean_diff_df,\\n level_4b_completemedian_diff_df,\\n level_4b_completesum_diff_df,\\n ],\\n axis=\\\"columns\\\",\\n)\\n\\nlevel_4b_complete_df.columns = [f\\\"level_4b_{x}\\\" for x in level_4b_complete_df.columns]\\n\\n# Combine all results\\ncomplete_df = pd.concat(\\n [level_3_complete_df, level_4a_complete_df, level_4b_complete_df,], axis=\\\"columns\\\",\\n)\\n\\n# Output file\\noutput_file = f\\\"{output_dir}/comparison_result_metric_summary.tsv\\\"\\ncomplete_df.to_csv(output_file, sep=\\\"\\\\t\\\", index=True)\\n\\nprint(complete_df.shape)\\ncomplete_df.head()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Concatenate level 3 results\n", + "level_3_complete_df = pd.concat(\n", + " [\n", + " level_3_completemean_diff_df,\n", + " level_3_completemedian_diff_df,\n", + " level_3_completesum_diff_df,\n", + " ],\n", + " axis=\"columns\",\n", + ")\n", + "\n", + "level_3_complete_df.columns = [f\"level_3_{x}\" for x in level_3_complete_df.columns]\n", + "\n", + "# Concatenate level 4a results\n", + "level_4a_complete_df = pd.concat(\n", + " [\n", + " level_4a_completemean_diff_df,\n", + " level_4a_completemedian_diff_df,\n", + " level_4a_completesum_diff_df,\n", + " ],\n", + " axis=\"columns\",\n", + ")\n", + "\n", + "level_4a_complete_df.columns = [f\"level_4a_{x}\" for x in level_4a_complete_df.columns]\n", + "\n", + "# Concatenate level 4b results\n", + "level_4b_complete_df = pd.concat(\n", + " [\n", + " level_4b_completemean_diff_df,\n", + " level_4b_completemedian_diff_df,\n", + " level_4b_completesum_diff_df,\n", + " ],\n", + " axis=\"columns\",\n", + ")\n", + "\n", + "level_4b_complete_df.columns = [f\"level_4b_{x}\" for x in level_4b_complete_df.columns]\n", + "\n", + "# Combine all results\n", + "complete_df = pd.concat(\n", + " [level_3_complete_df, level_4a_complete_df, level_4b_complete_df,], axis=\"columns\",\n", + ")\n", + "\n", + "# Output file\n", + "output_file = f\"{output_dir}/comparison_result_metric_summary.tsv\"\n", + "complete_df.to_csv(output_file, sep=\"\\t\", index=True)\n", + "\n", + "print(complete_df.shape)\n", + "complete_df.head()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/comparison/1.summarize-cytominer-tool-differences.ipynb b/comparison/1.summarize-cytominer-tool-differences.ipynb new file mode 100644 index 0000000..b47b4c7 --- /dev/null +++ b/comparison/1.summarize-cytominer-tool-differences.ipynb @@ -0,0 +1,1823 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Summarize Tool Differences\n", + "\n", + "In the following notebook, we summarize the differences we calculated in `0.get-cytominer-tool-differences`.\n", + "We summarize the results in a series of visualizations and descriptive statistics." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 1;\n", + " var nbb_unformatted_code = \"%load_ext nb_black\";\n", + " var nbb_formatted_code = \"%load_ext nb_black\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%load_ext nb_black" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 2;\n", + " var nbb_unformatted_code = \"import os\\nimport pathlib\\nimport numpy as np\\nimport pandas as pd\\nimport plotnine as gg\\n\\nfrom util import build_filenames\";\n", + " var nbb_formatted_code = \"import os\\nimport pathlib\\nimport numpy as np\\nimport pandas as pd\\nimport plotnine as gg\\n\\nfrom util import build_filenames\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import os\n", + "import pathlib\n", + "import numpy as np\n", + "import pandas as pd\n", + "import plotnine as gg\n", + "\n", + "from util import build_filenames" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 3;\n", + " var nbb_unformatted_code = \"# Set constants\\nbatch = \\\"2016_04_01_a549_48hr_batch1\\\"\\ninput_dir = pathlib.Path(\\\"results\\\", batch)\\nlevels = [\\\"level_3\\\", \\\"level_4a\\\", \\\"level_4b\\\", \\\"pycytominer_select\\\"]\\nmetrics = [\\\"mean\\\", \\\"median\\\", \\\"sum\\\"]\\n\\n# Set output directory\\noutput_fig_dir = pathlib.Path(\\\"figures\\\", batch)\\noutput_fig_dir.mkdir(parents=True, exist_ok=True)\\n\\n# Set plotting defaults\\ndpi = 500\\nheight = 3.5\\nwidth = 6\\n\\n# Set common plotnine theme\\ntheme_summary = gg.theme_bw() + gg.theme(\\n axis_text_x=gg.element_blank(),\\n axis_text_y=gg.element_text(size=6),\\n axis_title=gg.element_text(size=8),\\n strip_background=gg.element_rect(colour=\\\"black\\\", fill=\\\"#fdfff4\\\"),\\n)\";\n", + " var nbb_formatted_code = \"# Set constants\\nbatch = \\\"2016_04_01_a549_48hr_batch1\\\"\\ninput_dir = pathlib.Path(\\\"results\\\", batch)\\nlevels = [\\\"level_3\\\", \\\"level_4a\\\", \\\"level_4b\\\", \\\"pycytominer_select\\\"]\\nmetrics = [\\\"mean\\\", \\\"median\\\", \\\"sum\\\"]\\n\\n# Set output directory\\noutput_fig_dir = pathlib.Path(\\\"figures\\\", batch)\\noutput_fig_dir.mkdir(parents=True, exist_ok=True)\\n\\n# Set plotting defaults\\ndpi = 500\\nheight = 3.5\\nwidth = 6\\n\\n# Set common plotnine theme\\ntheme_summary = gg.theme_bw() + gg.theme(\\n axis_text_x=gg.element_blank(),\\n axis_text_y=gg.element_text(size=6),\\n axis_title=gg.element_text(size=8),\\n strip_background=gg.element_rect(colour=\\\"black\\\", fill=\\\"#fdfff4\\\"),\\n)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set constants\n", + "batch = \"2016_04_01_a549_48hr_batch1\"\n", + "input_dir = pathlib.Path(\"results\", batch)\n", + "levels = [\"level_3\", \"level_4a\", \"level_4b\", \"pycytominer_select\"]\n", + "metrics = [\"mean\", \"median\", \"sum\"]\n", + "\n", + "# Set output directory\n", + "output_fig_dir = pathlib.Path(\"figures\", batch)\n", + "output_fig_dir.mkdir(parents=True, exist_ok=True)\n", + "\n", + "# Set plotting defaults\n", + "dpi = 500\n", + "height = 3.5\n", + "width = 6\n", + "\n", + "# Set common plotnine theme\n", + "theme_summary = gg.theme_bw() + gg.theme(\n", + " axis_text_x=gg.element_blank(),\n", + " axis_text_y=gg.element_text(size=6),\n", + " axis_title=gg.element_text(size=8),\n", + " strip_background=gg.element_rect(colour=\"black\", fill=\"#fdfff4\"),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(136, 10)\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", + "
platelevel_3_complete_mean_difflevel_3_complete_median_difflevel_3_complete_sum_difflevel_4a_complete_mean_difflevel_4a_complete_median_difflevel_4a_complete_sum_difflevel_4b_complete_mean_difflevel_4b_complete_median_difflevel_4b_complete_sum_diff
0SQ000148120.0015590.0004861067.435260.0043790.0014402813.181780.0030900.001475412.86661
1SQ000148130.0015140.0004821036.847890.0115230.0019317394.132580.0040580.002029545.46055
2SQ000148140.0012750.000498872.863660.0770550.00174549502.696560.0035970.001914500.01469
3SQ000148150.0014220.000488973.762010.0091930.0024505895.278010.0026900.001521362.53361
4SQ000148160.0017370.0005001188.996320.0089440.0015215725.567060.0026750.001683338.91369
\n", + "
" + ], + "text/plain": [ + " plate level_3_complete_mean_diff level_3_complete_median_diff \\\n", + "0 SQ00014812 0.001559 0.000486 \n", + "1 SQ00014813 0.001514 0.000482 \n", + "2 SQ00014814 0.001275 0.000498 \n", + "3 SQ00014815 0.001422 0.000488 \n", + "4 SQ00014816 0.001737 0.000500 \n", + "\n", + " level_3_complete_sum_diff level_4a_complete_mean_diff \\\n", + "0 1067.43526 0.004379 \n", + "1 1036.84789 0.011523 \n", + "2 872.86366 0.077055 \n", + "3 973.76201 0.009193 \n", + "4 1188.99632 0.008944 \n", + "\n", + " level_4a_complete_median_diff level_4a_complete_sum_diff \\\n", + "0 0.001440 2813.18178 \n", + "1 0.001931 7394.13258 \n", + "2 0.001745 49502.69656 \n", + "3 0.002450 5895.27801 \n", + "4 0.001521 5725.56706 \n", + "\n", + " level_4b_complete_mean_diff level_4b_complete_median_diff \\\n", + "0 0.003090 0.001475 \n", + "1 0.004058 0.002029 \n", + "2 0.003597 0.001914 \n", + "3 0.002690 0.001521 \n", + "4 0.002675 0.001683 \n", + "\n", + " level_4b_complete_sum_diff \n", + "0 412.86661 \n", + "1 545.46055 \n", + "2 500.01469 \n", + "3 362.53361 \n", + "4 338.91369 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 4;\n", + " var nbb_unformatted_code = \"# Load Data\\nresults_files = {}\\nfor level in levels:\\n file_names = build_filenames(input_dir, level=level)\\n metric_df = {}\\n for metric in file_names:\\n df = pd.read_csv(file_names[metric], sep=\\\"\\\\t\\\", index_col=0)\\n metric_df[metric] = df\\n\\n results_files[level] = metric_df\\n\\nsummary_file = pathlib.Path(f\\\"{input_dir}/comparison_result_metric_summary.tsv\\\")\\nsummary_df = (\\n pd.read_csv(summary_file, sep=\\\"\\\\t\\\", index_col=0)\\n .sort_index()\\n .reset_index()\\n .rename({\\\"index\\\": \\\"plate\\\"}, axis=\\\"columns\\\")\\n)\\n\\nprint(summary_df.shape)\\nsummary_df.head()\";\n", + " var nbb_formatted_code = \"# Load Data\\nresults_files = {}\\nfor level in levels:\\n file_names = build_filenames(input_dir, level=level)\\n metric_df = {}\\n for metric in file_names:\\n df = pd.read_csv(file_names[metric], sep=\\\"\\\\t\\\", index_col=0)\\n metric_df[metric] = df\\n\\n results_files[level] = metric_df\\n\\nsummary_file = pathlib.Path(f\\\"{input_dir}/comparison_result_metric_summary.tsv\\\")\\nsummary_df = (\\n pd.read_csv(summary_file, sep=\\\"\\\\t\\\", index_col=0)\\n .sort_index()\\n .reset_index()\\n .rename({\\\"index\\\": \\\"plate\\\"}, axis=\\\"columns\\\")\\n)\\n\\nprint(summary_df.shape)\\nsummary_df.head()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load Data\n", + "results_files = {}\n", + "for level in levels:\n", + " file_names = build_filenames(input_dir, level=level)\n", + " metric_df = {}\n", + " for metric in file_names:\n", + " df = pd.read_csv(file_names[metric], sep=\"\\t\", index_col=0)\n", + " metric_df[metric] = df\n", + "\n", + " results_files[level] = metric_df\n", + "\n", + "summary_file = pathlib.Path(f\"{input_dir}/comparison_result_metric_summary.tsv\")\n", + "summary_df = (\n", + " pd.read_csv(summary_file, sep=\"\\t\", index_col=0)\n", + " .sort_index()\n", + " .reset_index()\n", + " .rename({\"index\": \"plate\"}, axis=\"columns\")\n", + ")\n", + "\n", + "print(summary_df.shape)\n", + "summary_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['SQ00015116',\n", + " 'SQ00015117',\n", + " 'SQ00015118',\n", + " 'SQ00015119',\n", + " 'SQ00015120',\n", + " 'SQ00015121',\n", + " 'SQ00015122',\n", + " 'SQ00015123',\n", + " 'SQ00015125',\n", + " 'SQ00015126']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 5;\n", + " var nbb_unformatted_code = \"# Isolate the outlier plates that were processed by Cytominer in a different way\\n# See https://github.com/broadinstitute/lincs-cell-painting/issues/3#issuecomment-591994451\\nnonuniform_plates = summary_df.query(\\\"level_3_complete_median_diff > 1\\\").plate.tolist()\\nnonuniform_plates\";\n", + " var nbb_formatted_code = \"# Isolate the outlier plates that were processed by Cytominer in a different way\\n# See https://github.com/broadinstitute/lincs-cell-painting/issues/3#issuecomment-591994451\\nnonuniform_plates = summary_df.query(\\\"level_3_complete_median_diff > 1\\\").plate.tolist()\\nnonuniform_plates\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Isolate the outlier plates that were processed by Cytominer in a different way\n", + "# See https://github.com/broadinstitute/lincs-cell-painting/issues/3#issuecomment-591994451\n", + "nonuniform_plates = summary_df.query(\"level_3_complete_median_diff > 1\").plate.tolist()\n", + "nonuniform_plates" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 6;\n", + " var nbb_unformatted_code = \"# Since we know that these were processed differently, remove from the comparison\\nsummary_df = summary_df.query(\\\"plate not in @nonuniform_plates\\\").reset_index(drop=True)\";\n", + " var nbb_formatted_code = \"# Since we know that these were processed differently, remove from the comparison\\nsummary_df = summary_df.query(\\\"plate not in @nonuniform_plates\\\").reset_index(drop=True)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Since we know that these were processed differently, remove from the comparison\n", + "summary_df = summary_df.query(\"plate not in @nonuniform_plates\").reset_index(drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 7;\n", + " var nbb_unformatted_code = \"# Ensure the plates are in order in each plot\\nplate_order = summary_df.plate.tolist()\\nsummary_df.plate = pd.Categorical(\\n summary_df.plate, categories=plate_order, ordered=True\\n)\";\n", + " var nbb_formatted_code = \"# Ensure the plates are in order in each plot\\nplate_order = summary_df.plate.tolist()\\nsummary_df.plate = pd.Categorical(\\n summary_df.plate, categories=plate_order, ordered=True\\n)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Ensure the plates are in order in each plot\n", + "plate_order = summary_df.plate.tolist()\n", + "summary_df.plate = pd.Categorical(\n", + " summary_df.plate, categories=plate_order, ordered=True\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1134, 5)\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", + "
platemetric_valuemetricleveluniform
0SQ000148120.001559meanlevel_3True
1SQ000148130.001514meanlevel_3True
2SQ000148140.001275meanlevel_3True
3SQ000148150.001422meanlevel_3True
4SQ000148160.001737meanlevel_3True
\n", + "
" + ], + "text/plain": [ + " plate metric_value metric level uniform\n", + "0 SQ00014812 0.001559 mean level_3 True\n", + "1 SQ00014813 0.001514 mean level_3 True\n", + "2 SQ00014814 0.001275 mean level_3 True\n", + "3 SQ00014815 0.001422 mean level_3 True\n", + "4 SQ00014816 0.001737 mean level_3 True" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 8;\n", + " var nbb_unformatted_code = \"# Process summary dataframe\\nsummary_melted_df = []\\nfor level in levels:\\n # Summary for pycytominer select not shown to reduce comparison size\\n if level == \\\"pycytominer_select\\\":\\n continue\\n for metric in metrics:\\n col_name = f\\\"{level}_complete_{metric}_diff\\\"\\n subset_df = (\\n summary_df.loc[:, [\\\"plate\\\", col_name]]\\n .assign(metric=metric, level=level)\\n .rename({col_name: \\\"metric_value\\\"}, axis=\\\"columns\\\")\\n )\\n summary_melted_df.append(subset_df)\\n\\nsummary_melted_df = pd.concat(summary_melted_df).reset_index(drop=True)\\nsummary_melted_df = summary_melted_df.assign(uniform=True)\\nsummary_melted_df.loc[\\n summary_melted_df.plate.isin(nonuniform_plates), \\\"uniform\\\"\\n] = False\\n\\nprint(summary_melted_df.shape)\\nsummary_melted_df.head()\";\n", + " var nbb_formatted_code = \"# Process summary dataframe\\nsummary_melted_df = []\\nfor level in levels:\\n # Summary for pycytominer select not shown to reduce comparison size\\n if level == \\\"pycytominer_select\\\":\\n continue\\n for metric in metrics:\\n col_name = f\\\"{level}_complete_{metric}_diff\\\"\\n subset_df = (\\n summary_df.loc[:, [\\\"plate\\\", col_name]]\\n .assign(metric=metric, level=level)\\n .rename({col_name: \\\"metric_value\\\"}, axis=\\\"columns\\\")\\n )\\n summary_melted_df.append(subset_df)\\n\\nsummary_melted_df = pd.concat(summary_melted_df).reset_index(drop=True)\\nsummary_melted_df = summary_melted_df.assign(uniform=True)\\nsummary_melted_df.loc[\\n summary_melted_df.plate.isin(nonuniform_plates), \\\"uniform\\\"\\n] = False\\n\\nprint(summary_melted_df.shape)\\nsummary_melted_df.head()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Process summary dataframe\n", + "summary_melted_df = []\n", + "for level in levels:\n", + " # Summary for pycytominer select not shown to reduce comparison size\n", + " if level == \"pycytominer_select\":\n", + " continue\n", + " for metric in metrics:\n", + " col_name = f\"{level}_complete_{metric}_diff\"\n", + " subset_df = (\n", + " summary_df.loc[:, [\"plate\", col_name]]\n", + " .assign(metric=metric, level=level)\n", + " .rename({col_name: \"metric_value\"}, axis=\"columns\")\n", + " )\n", + " summary_melted_df.append(subset_df)\n", + "\n", + "summary_melted_df = pd.concat(summary_melted_df).reset_index(drop=True)\n", + "summary_melted_df = summary_melted_df.assign(uniform=True)\n", + "summary_melted_df.loc[\n", + " summary_melted_df.plate.isin(nonuniform_plates), \"uniform\"\n", + "] = False\n", + "\n", + "print(summary_melted_df.shape)\n", + "summary_melted_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 4 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/summary_metrics_full.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n" + ] + }, + { + "data": { + "image/png": "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r76KBx980BuLJyIiIqLL8NrxVaHgE1673pz5iSeewHvvvYeKigp8/vnnmDt3LtLT0721eCIiIiJqgVeKvmuuuQbPPfcc5syZA4lEgo0bN6Jfv35N5rvnnntwzz33eGORRERERNQKXjmn7/XXX0dRURGGDRuGoUOHoqCgAK+//jqAS0+WeO2117B161bYbDY89dRTGDp0KKZNm4bTp097Y/FEREREdBle2dPXo0cPbN261e17Dz/8MCorK2G1WvHmm28iLi4O//znP/HVV19h9uzZ+OSTT7yRAhERERG1wCtF34YNG3D33XcjIiICjz76KL7//nusWbMGaWlpyM3NxeHDh1FbW4uePXti165dkEqluPXWWzFkyBBvLJ6IiIiILsMrh3fXr1+PiIgIfPfddzAYDFi2bJn4jFnhqRIhISHo06eP092pg4KCvLF4IiIiIroMr+zpE26y/NVXX2HGjBm45ZZb8Le//Q0AcPHiRRw5cgR2u93pNQDU1tZ6Y/FEREREdBleKfqkUim2bt2Kbdu24dNPPwUA1NXVAQCqq6sxadIkcV7H1663dSHPlJWVwWAwIDg4WCy47Xa70xNOXKc9bWMc41rb5srd+PTX/BkXGHGOhPEZExOD6OjoVi/TF/l35Th/zKmj42QyGXxFYnd8TEYb/fDDD3jhhRdw0003Yd68eTh69CjWrVuHdevWeSNHcrFkyRJkZmZi4cKFWLRoka/ToQC2bNkyzJo1CzExMWIbxyf5C45P8kd5eXkYOXIkDur3ITk5sd395ebmIzVlDPR6PZKTk1uc1yt7+kaOHIns7GxxesCAASz4OlBGRgZGjRoFg8EAk8kEANBoNOJrd9OetjGOca1tc+VufPpr/owLjDhHwviMiYlp85jvLOvdGeL8MaeOjquqqoKveKXoO3XqFDIyMrB3714AwLhx4/Dqq68iNjbWG92TC51OB7vdjpycHDQ0NAC4dKhceO1u2tM2xjGutW2u3I1Pf82fcYER50gYnwDaPOY7y3p3hjh/zKmj4xobG+ErXrl697777sONN94Io9GI06dPY+zYsZgxY4Y3uiYiIiIiL/BK0VdRUYGnnnoKERER6NatG5588klUVFR4o2siIiIi8gKvFH39+vXDsWPHxOljx45h8ODB3uiaiIiIiLygXef03XnnnZBIJKiqqsK1116LMWPGAAC+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/summary_metrics_zoom.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 9;\n", + " var nbb_unformatted_code = \"summary_metric_full_gg = (\\n gg.ggplot(summary_melted_df, gg.aes(x=\\\"plate\\\", y=\\\"metric_value\\\"))\\n + gg.geom_point(size=0.5)\\n + gg.facet_grid(\\\"metric~level\\\", scales=\\\"free\\\")\\n + gg.xlab(\\\"Plate\\\")\\n + gg.ylab(\\\"Absolute Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(\\\"Per Plate Summary (Full)\\\")\\n + theme_summary\\n)\\n\\noutput_file = pathlib.Path(f\\\"{output_fig_dir}/summary_metrics_full.png\\\")\\nsummary_metric_full_gg.save(output_file, dpi=500, height=4, width=6)\\n\\nprint(summary_metric_full_gg)\\n\\nsummary_metric_zoom_gg = (\\n gg.ggplot(\\n summary_melted_df.query(\\\"metric_value < 10\\\"),\\n gg.aes(x=\\\"plate\\\", y=\\\"metric_value\\\"),\\n )\\n + gg.geom_point(size=0.5)\\n + gg.facet_grid(\\\"metric~level\\\", scales=\\\"free\\\")\\n + gg.xlab(\\\"Plate\\\")\\n + gg.ylab(\\\"Absolute Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(\\\"Per Plate Summary (Zoom)\\\")\\n + theme_summary\\n)\\n\\noutput_file = pathlib.Path(f\\\"{output_fig_dir}/summary_metrics_zoom.png\\\")\\nsummary_metric_zoom_gg.save(output_file, dpi=500, height=3.5, width=6)\\n\\nprint(summary_metric_zoom_gg)\";\n", + " var nbb_formatted_code = \"summary_metric_full_gg = (\\n gg.ggplot(summary_melted_df, gg.aes(x=\\\"plate\\\", y=\\\"metric_value\\\"))\\n + gg.geom_point(size=0.5)\\n + gg.facet_grid(\\\"metric~level\\\", scales=\\\"free\\\")\\n + gg.xlab(\\\"Plate\\\")\\n + gg.ylab(\\\"Absolute Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(\\\"Per Plate Summary (Full)\\\")\\n + theme_summary\\n)\\n\\noutput_file = pathlib.Path(f\\\"{output_fig_dir}/summary_metrics_full.png\\\")\\nsummary_metric_full_gg.save(output_file, dpi=500, height=4, width=6)\\n\\nprint(summary_metric_full_gg)\\n\\nsummary_metric_zoom_gg = (\\n gg.ggplot(\\n summary_melted_df.query(\\\"metric_value < 10\\\"),\\n gg.aes(x=\\\"plate\\\", y=\\\"metric_value\\\"),\\n )\\n + gg.geom_point(size=0.5)\\n + gg.facet_grid(\\\"metric~level\\\", scales=\\\"free\\\")\\n + gg.xlab(\\\"Plate\\\")\\n + gg.ylab(\\\"Absolute Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(\\\"Per Plate Summary (Zoom)\\\")\\n + theme_summary\\n)\\n\\noutput_file = pathlib.Path(f\\\"{output_fig_dir}/summary_metrics_zoom.png\\\")\\nsummary_metric_zoom_gg.save(output_file, dpi=500, height=3.5, width=6)\\n\\nprint(summary_metric_zoom_gg)\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "summary_metric_full_gg = (\n", + " gg.ggplot(summary_melted_df, gg.aes(x=\"plate\", y=\"metric_value\"))\n", + " + gg.geom_point(size=0.5)\n", + " + gg.facet_grid(\"metric~level\", scales=\"free\")\n", + " + gg.xlab(\"Plate\")\n", + " + gg.ylab(\"Absolute Difference\\nBetween Tools\")\n", + " + gg.ggtitle(\"Per Plate Summary (Full)\")\n", + " + theme_summary\n", + ")\n", + "\n", + "output_file = pathlib.Path(f\"{output_fig_dir}/summary_metrics_full.png\")\n", + "summary_metric_full_gg.save(output_file, dpi=500, height=4, width=6)\n", + "\n", + "print(summary_metric_full_gg)\n", + "\n", + "summary_metric_zoom_gg = (\n", + " gg.ggplot(\n", + " summary_melted_df.query(\"metric_value < 10\"),\n", + " gg.aes(x=\"plate\", y=\"metric_value\"),\n", + " )\n", + " + gg.geom_point(size=0.5)\n", + " + gg.facet_grid(\"metric~level\", scales=\"free\")\n", + " + gg.xlab(\"Plate\")\n", + " + gg.ylab(\"Absolute Difference\\nBetween Tools\")\n", + " + gg.ggtitle(\"Per Plate Summary (Zoom)\")\n", + " + theme_summary\n", + ")\n", + "\n", + "output_file = pathlib.Path(f\"{output_fig_dir}/summary_metrics_zoom.png\")\n", + "summary_metric_zoom_gg.save(output_file, dpi=500, height=3.5, width=6)\n", + "\n", + "print(summary_metric_zoom_gg)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(2022678, 6)\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", + "
featureplatemetric_valuemetricleveluniform
0Cells_AreaShape_AreaSQ000151960.132812meanlevel_3True
1Cells_AreaShape_Center_XSQ000151960.000000meanlevel_3True
2Cells_AreaShape_Center_YSQ000151960.000000meanlevel_3True
3Cells_AreaShape_CompactnessSQ000151960.000032meanlevel_3True
4Cells_AreaShape_EccentricitySQ000151960.000016meanlevel_3True
\n", + "
" + ], + "text/plain": [ + " feature plate metric_value metric level \\\n", + "0 Cells_AreaShape_Area SQ00015196 0.132812 mean level_3 \n", + "1 Cells_AreaShape_Center_X SQ00015196 0.000000 mean level_3 \n", + "2 Cells_AreaShape_Center_Y SQ00015196 0.000000 mean level_3 \n", + "3 Cells_AreaShape_Compactness SQ00015196 0.000032 mean level_3 \n", + "4 Cells_AreaShape_Eccentricity SQ00015196 0.000016 mean level_3 \n", + "\n", + " uniform \n", + "0 True \n", + "1 True \n", + "2 True \n", + "3 True \n", + "4 True " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 10;\n", + " var nbb_unformatted_code = \"# Wrangle output metric data to be plot ready\\nall_feature_results_df = []\\nfor level in levels:\\n for metric in metrics:\\n plot_ready_df = (\\n results_files[level][metric]\\n .reset_index()\\n .rename({\\\"index\\\": \\\"feature\\\"}, axis=\\\"columns\\\")\\n .melt(id_vars=\\\"feature\\\", var_name=\\\"plate\\\", value_name=\\\"metric_value\\\")\\n .assign(metric=metric, level=level)\\n )\\n all_feature_results_df.append(plot_ready_df)\\n\\nall_feature_results_df = pd.concat(all_feature_results_df).reset_index(drop=True)\\n\\n# Predetermine feature order\\nfeature_order = sorted(list(set(all_feature_results_df.feature)))\\n\\nall_feature_results_df = all_feature_results_df.assign(uniform=True)\\nall_feature_results_df.loc[\\n all_feature_results_df.plate.isin(nonuniform_plates), \\\"uniform\\\"\\n] = False\\n\\nall_feature_results_df.plate = pd.Categorical(\\n all_feature_results_df.plate, categories=plate_order, ordered=True\\n)\\nall_feature_results_df.feature = pd.Categorical(\\n all_feature_results_df.feature, categories=feature_order, ordered=True\\n)\\n\\n# Select only the uniform plates\\nall_feature_results_df = all_feature_results_df.query(\\\"uniform\\\")\\n\\nprint(all_feature_results_df.shape)\\nall_feature_results_df.head()\";\n", + " var nbb_formatted_code = \"# Wrangle output metric data to be plot ready\\nall_feature_results_df = []\\nfor level in levels:\\n for metric in metrics:\\n plot_ready_df = (\\n results_files[level][metric]\\n .reset_index()\\n .rename({\\\"index\\\": \\\"feature\\\"}, axis=\\\"columns\\\")\\n .melt(id_vars=\\\"feature\\\", var_name=\\\"plate\\\", value_name=\\\"metric_value\\\")\\n .assign(metric=metric, level=level)\\n )\\n all_feature_results_df.append(plot_ready_df)\\n\\nall_feature_results_df = pd.concat(all_feature_results_df).reset_index(drop=True)\\n\\n# Predetermine feature order\\nfeature_order = sorted(list(set(all_feature_results_df.feature)))\\n\\nall_feature_results_df = all_feature_results_df.assign(uniform=True)\\nall_feature_results_df.loc[\\n all_feature_results_df.plate.isin(nonuniform_plates), \\\"uniform\\\"\\n] = False\\n\\nall_feature_results_df.plate = pd.Categorical(\\n all_feature_results_df.plate, categories=plate_order, ordered=True\\n)\\nall_feature_results_df.feature = pd.Categorical(\\n all_feature_results_df.feature, categories=feature_order, ordered=True\\n)\\n\\n# Select only the uniform plates\\nall_feature_results_df = all_feature_results_df.query(\\\"uniform\\\")\\n\\nprint(all_feature_results_df.shape)\\nall_feature_results_df.head()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Wrangle output metric data to be plot ready\n", + "all_feature_results_df = []\n", + "for level in levels:\n", + " for metric in metrics:\n", + " plot_ready_df = (\n", + " results_files[level][metric]\n", + " .reset_index()\n", + " .rename({\"index\": \"feature\"}, axis=\"columns\")\n", + " .melt(id_vars=\"feature\", var_name=\"plate\", value_name=\"metric_value\")\n", + " .assign(metric=metric, level=level)\n", + " )\n", + " all_feature_results_df.append(plot_ready_df)\n", + "\n", + "all_feature_results_df = pd.concat(all_feature_results_df).reset_index(drop=True)\n", + "\n", + "# Predetermine feature order\n", + "feature_order = sorted(list(set(all_feature_results_df.feature)))\n", + "\n", + "all_feature_results_df = all_feature_results_df.assign(uniform=True)\n", + "all_feature_results_df.loc[\n", + " all_feature_results_df.plate.isin(nonuniform_plates), \"uniform\"\n", + "] = False\n", + "\n", + "all_feature_results_df.plate = pd.Categorical(\n", + " all_feature_results_df.plate, categories=plate_order, ordered=True\n", + ")\n", + "all_feature_results_df.feature = pd.Categorical(\n", + " all_feature_results_df.feature, categories=feature_order, ordered=True\n", + ")\n", + "\n", + "# Select only the uniform plates\n", + "all_feature_results_df = all_feature_results_df.query(\"uniform\")\n", + "\n", + "print(all_feature_results_df.shape)\n", + "all_feature_results_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## All Feature and Plate Summary" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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", + "
countmeanstdmin25%50%75%max
metriclevel
meanlevel_3224658.00.0018270.0236330.000000e+002.604167e-080.0000030.0000263.163252
level_4a218212.0infNaN3.385417e-072.500260e-040.0006930.002196inf
level_4b41224.00.0029790.0155659.765625e-062.751237e-040.0006880.0019551.816642
pycytominer_select58905.0infNaN4.270833e-062.859635e-040.0007210.002122inf
medianlevel_3224658.00.0005060.0032140.000000e+000.000000e+000.0000000.0000200.040315
level_4a218212.0infNaN0.000000e+001.600000e-040.0003900.001075inf
level_4b41224.00.0016240.0086550.000000e+001.900000e-040.0004400.0011401.191310
pycytominer_select58905.0infNaN0.000000e+002.000000e-040.0004500.001205inf
sumlevel_3224658.00.7014389.0750990.000000e+001.000000e-050.0012100.0098101214.688770
level_4a224658.0infNaN0.000000e+008.670500e-020.2509100.807738inf
level_4b41224.01.1438225.9770113.750000e-031.056375e-010.2641850.750597697.590400
pycytominer_select58905.0infNaN1.640000e-031.097900e-010.2767400.814890inf
\n", + "
" + ], + "text/plain": [ + " count mean std min \\\n", + "metric level \n", + "mean level_3 224658.0 0.001827 0.023633 0.000000e+00 \n", + " level_4a 218212.0 inf NaN 3.385417e-07 \n", + " level_4b 41224.0 0.002979 0.015565 9.765625e-06 \n", + " pycytominer_select 58905.0 inf NaN 4.270833e-06 \n", + "median level_3 224658.0 0.000506 0.003214 0.000000e+00 \n", + " level_4a 218212.0 inf NaN 0.000000e+00 \n", + " level_4b 41224.0 0.001624 0.008655 0.000000e+00 \n", + " pycytominer_select 58905.0 inf NaN 0.000000e+00 \n", + "sum level_3 224658.0 0.701438 9.075099 0.000000e+00 \n", + " level_4a 224658.0 inf NaN 0.000000e+00 \n", + " level_4b 41224.0 1.143822 5.977011 3.750000e-03 \n", + " pycytominer_select 58905.0 inf NaN 1.640000e-03 \n", + "\n", + " 25% 50% 75% max \n", + "metric level \n", + "mean level_3 2.604167e-08 0.000003 0.000026 3.163252 \n", + " level_4a 2.500260e-04 0.000693 0.002196 inf \n", + " level_4b 2.751237e-04 0.000688 0.001955 1.816642 \n", + " pycytominer_select 2.859635e-04 0.000721 0.002122 inf \n", + "median level_3 0.000000e+00 0.000000 0.000020 0.040315 \n", + " level_4a 1.600000e-04 0.000390 0.001075 inf \n", + " level_4b 1.900000e-04 0.000440 0.001140 1.191310 \n", + " pycytominer_select 2.000000e-04 0.000450 0.001205 inf \n", + "sum level_3 1.000000e-05 0.001210 0.009810 1214.688770 \n", + " level_4a 8.670500e-02 0.250910 0.807738 inf \n", + " level_4b 1.056375e-01 0.264185 0.750597 697.590400 \n", + " pycytominer_select 1.097900e-01 0.276740 0.814890 inf " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 11;\n", + " var nbb_unformatted_code = \"all_feature_results_df.groupby([\\\"metric\\\", \\\"level\\\"])[\\\"metric_value\\\"].describe()\";\n", + " var nbb_formatted_code = \"all_feature_results_df.groupby([\\\"metric\\\", \\\"level\\\"])[\\\"metric_value\\\"].describe()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "all_feature_results_df.groupby([\"metric\", \"level\"])[\"metric_value\"].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Two Figures Per Data Level\n", + "\n", + "Split into different cells to prevent kernel death." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_plate.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_plate.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 12892 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 12892 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n" + ] + }, + { + "data": { + "image/png": "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+Mixhw4dwpo1axAYGAgXFxdp+S+//GJWQkRERERkHvOPpgOQnp6OkydPAig7Fi4wMLDCmGXLllknMyIiIiJ6KLMaueLiYrz66qvYs2cPGjVqBCEEzp49i969e+OLL76As7OzNDYsLAylpaW4cuUKAgICKitvIiIiomrPrGPkFi5cCAcHB/zxxx9IS0vDr7/+ij/++AMKhQILFiwwGXvw4EHUr18f3bt3BwAcOXIEw4YNs37mRERERNWcWY3ctm3bsHr1atSoUUNa5uXlhVWrVmHbtm0mY6dOnYoDBw7A29sbANCuXTvpGDsiIiIish6zLz9ytzErT6vVori42GSZwWBAw4YNTZY5OTk9RopEREREdD9mNXKurq4PXKdWq01iFxcXFBQUQKEou+PDyZMnTc5eJSIiIiLrMOtkh/Pnz+OVV16psFwIgQsXLpgsmzFjBp599llkZWVh5MiRSE5OxqZNm6yTLRERERFJzGrkHnZJkeeff94k7t27Nxo3bozk5GQIITB9+nQ0atTo8bIkIiIiogrMauRGjBhh0aRubm4ICgpCt27dYDAYcOfOHR4nR0RERGRlZh0jZ4mtW7eiffv2GD58OICyY+T69etn7bchIiIiqvas3sjNnTsXqamp0qVKWrdujUuXLln7bYiIiIiqPYtu0WUOpVJZ4VIl3K369127dg2TJk1CvXr1AABxcXE4fvw4vv76azg5OWHChAnQarVVnCURERFVBYsbubS0NJw6dQqDBw+GTqdDcXExfH19pfXu7u64du2adPmRffv2wcvLy3oZV0NBQUGYNm0agLLr9O3YsQPz5s3DmTNnsGXLFrz99ttVnCERERFVBYsauU8++QQrV65EQUEBBg8ejD///BNjxozB3r17pTELFizAc889hwsXLiA8PBxnzpzBN998Y/XEq5P09HRMmzYNzZs3R3h4OPz9/eHo6IjmzZtj/fr1FcZnZ2cjOzsbAHDjxg2TizYbjUab/FMOObA21sra7P9POeTA2libJRRCCGHu4JCQEBw6dAidO3fGsWPHAJRtLfrtt99Mxt26dQuHDh2CEAKdO3c2ubUXWaakpASlpaVwdnbGihUrULt2bdy6dQtjxowBAEyaNAlLliwxeU1iYiKSkpKk+J133sGkSZOeaN5ERET0eD799FNER0fDz8/vwYOEBdq3by+EECI4OFha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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_plate.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 92922 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 92922 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_plate.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 281421 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 281421 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 12;\n", + " var nbb_unformatted_code = \"for level in levels:\\n all_feature_results_subset_df = all_feature_results_df.query(\\n \\\"level == @level\\\"\\n ).reset_index(drop=True)\\n\\n output_dir = pathlib.Path(f\\\"{output_fig_dir}/{level}\\\")\\n output_dir.mkdir(exist_ok=True)\\n\\n # Figure 1 - Per plate feature differences\\n per_plate_feature_gg = (\\n gg.ggplot(all_feature_results_subset_df, gg.aes(x=\\\"plate\\\", y=\\\"metric_value\\\"))\\n + gg.geom_point(size=0.1, alpha=0.5)\\n + gg.facet_wrap(\\\"~metric\\\", scales=\\\"free\\\", nrow=len(metrics))\\n + gg.xlab(\\\"Plate\\\")\\n + gg.ylab(\\\"Feature Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(f\\\"Plate Summary\\\\n{level}\\\")\\n + theme_summary\\n )\\n\\n output_file = pathlib.Path(f\\\"{output_dir}/{level}_metrics_per_plate.png\\\")\\n per_plate_feature_gg.save(output_file, dpi=dpi, height=height, width=width)\\n\\n print(per_plate_feature_gg)\\n del per_plate_feature_gg\";\n", + " var nbb_formatted_code = \"for level in levels:\\n all_feature_results_subset_df = all_feature_results_df.query(\\n \\\"level == @level\\\"\\n ).reset_index(drop=True)\\n\\n output_dir = pathlib.Path(f\\\"{output_fig_dir}/{level}\\\")\\n output_dir.mkdir(exist_ok=True)\\n\\n # Figure 1 - Per plate feature differences\\n per_plate_feature_gg = (\\n gg.ggplot(all_feature_results_subset_df, gg.aes(x=\\\"plate\\\", y=\\\"metric_value\\\"))\\n + gg.geom_point(size=0.1, alpha=0.5)\\n + gg.facet_wrap(\\\"~metric\\\", scales=\\\"free\\\", nrow=len(metrics))\\n + gg.xlab(\\\"Plate\\\")\\n + gg.ylab(\\\"Feature Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(f\\\"Plate Summary\\\\n{level}\\\")\\n + theme_summary\\n )\\n\\n output_file = pathlib.Path(f\\\"{output_dir}/{level}_metrics_per_plate.png\\\")\\n per_plate_feature_gg.save(output_file, dpi=dpi, height=height, width=width)\\n\\n print(per_plate_feature_gg)\\n del per_plate_feature_gg\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for level in levels:\n", + " all_feature_results_subset_df = all_feature_results_df.query(\n", + " \"level == @level\"\n", + " ).reset_index(drop=True)\n", + "\n", + " output_dir = pathlib.Path(f\"{output_fig_dir}/{level}\")\n", + " output_dir.mkdir(exist_ok=True)\n", + "\n", + " # Figure 1 - Per plate feature differences\n", + " per_plate_feature_gg = (\n", + " gg.ggplot(all_feature_results_subset_df, gg.aes(x=\"plate\", y=\"metric_value\"))\n", + " + gg.geom_point(size=0.1, alpha=0.5)\n", + " + gg.facet_wrap(\"~metric\", scales=\"free\", nrow=len(metrics))\n", + " + gg.xlab(\"Plate\")\n", + " + gg.ylab(\"Feature Difference\\nBetween Tools\")\n", + " + gg.ggtitle(f\"Plate Summary\\n{level}\")\n", + " + theme_summary\n", + " )\n", + "\n", + " output_file = pathlib.Path(f\"{output_dir}/{level}_metrics_per_plate.png\")\n", + " per_plate_feature_gg.save(output_file, dpi=dpi, height=height, width=width)\n", + "\n", + " print(per_plate_feature_gg)\n", + " del per_plate_feature_gg" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_feature.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_feature.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 12892 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 12892 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_feature.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 92922 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 92922 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n" + ] + }, + { + "data": { + "image/png": "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mEhwcDAAkZGRHD16FIDbbrvNUc7X15cBAwYwcODARk9gRERE5MLgVBLj4+NzSv+Wmo6zJy9HICIiItLQnLqdFBYWxp49exyzhy5btoyIiAgAiouL+eabb86YzNxwww3nGaqIiIjI/+NUEvP6668zefJkMjIy6Nq1KwEBAXz11VcAHD16lJdffvm0SYzBYDhjEvP++++zZ88ewsLCmDFjBt7e3gBs2bLFsRr2kSNHuPnmmxk7diy33XYbkZGRAEybNo2uXbs6cwkiIiLSTNQpifn+++/505/+RNu2bUlMTCQjIwO73U5UVBSenp4AdO/enZ9++smpyrOzsyksLGTBggWsXLmShIQERo4cCcCQIUMYMmQIAP/3f//neN6xY0deeOEFp+oRERGR5qdOfWLmzJkDwJVXXomHhwc9e/akV69ejgTmXGVkZDhmIo2OjiY9Pf2UMsXFxVRWVtKuXTvgxER2c+bMYdGiRVgslvOqX0RERJquOrXEVFVV8corr5CXl8eiRYtO2f/ggw8yduxYpysvLS2ldevWAAQEBFBaWnpKmYSEhFqzlsbHxxMcHMxnn33G2rVrueWWWxz7TCYTJpMJgLy8vEafKVhEREQaT51aYt555x2ys7Mxm81s27at1iMpKQmAuLg4pysPDAx0rL1UVlZGYGDgKWUSEhIYPny443XN8O7LLruMffv21SobHx9PTEwMMTExjB49WkmMiIhIM1anlpji4mIWLVpEly5deOKJJ+qt8qioKFatWsWoUaNISUmhZ8+ep9RbXl5O+/btAaioqMDb2xtPT09+++23WjMFw4mZemtahPLy8ti0aVO9xSoiIiLuxak+MStWrKjXyiMjIwkJCWHOnDkcOnSI4cOH8/bbbzv2//rrr7VuJRmNRmbPns2cOXNISkripptuqnW+8PBwoqOjiY6Opm/fvo2+ZpOIiIg0Hqf6xOTn55+xT8y5uvfee2u9fuihhxzPr7vuulr7LrroIl5//fVzrktERESajzolMe+88w4fffQRZWVlbNu2rda+monvamzfvp2nnnqKvXv31lq3aO/evfUQroiIiMgJdUpiauZsqUufmLvvvpuHH36YYcOGnfcQbBEREZEzqVMSU1lZia+vL3/9618do4lOFhAQ4Hju6elJbGxs/UUoIiIichp16tg7bNgw4MSQ6KCgIAIDAx2PoKCgWmUvu+wyUlJS6j9SERERkZPUqSVm+/btANhstrOWTUhI4N133yUqKgo/Pz/H9q1bt55jiCIiIiKncmoByPT0dH777TcA+vbtS1RU1Cll3GH0kMlkIi0tDV9fX7y8nLpEERERaSLq9A1fUVHBbbfdxo8//kj37t2x2+1kZWVx7bXX8tlnn+Hr6+soO3LkSKxWK4cOHXLZCtPx8fHExcUxd+5cQkJCXBKDiIiINKw6JTEvvfQSnp6eHD58mFatWgFQWFjI1KlTWbhwIX//+98dZTdt2sSkSZPw8PDg4MGDbNu2jX/+858sW7asYa7gNGJjYxk2bBhpaWkUFhY2Wr0iIiLSeOqUxPz3v//lhx9+cCQwACEhIcTHx3PttdfWSmIef/xxNm7cyIQJEwAYNGiQo09NYwkPD8dut5OUlFRrrhoRERFpPuo0OqmyspI2bdqcsj0sLIyKiopa26qrq4mMjKy1zcfH5zxCFBERETlVnZKYP1qD6OQ5YgD8/PwoLS11zOT722+/1RqlJCIiIlIf6nQ7ae/evfzlL385Zbvdbmffvn21tv3f//0f1113HUajkXvuuYd169bx8ccf10+0IiIiIv+/OiUxfzRsesyYMbVeX3vttfTo0YN169Zht9uZO3cu3bt3P+Px77//Pnv27CEsLIwZM2bg7e0NQFpaGq+99hrt27fHw8OD+fPnA7B69Wp++eUXAgMDmT17Ni1atKjLJYiIiEgzU6ck5u6773bqpC1atKBPnz5cccUVVFdXY7FYTtsvJjs7m8LCQhYsWMDKlStJSEhg5MiRjv2XX355rVWujx8/ztatW1m4cCEbN27k66+/Pm0LkYiIiDR/deoT44wvvviCwYMHc9dddwEn+sTccsstpy2bkZHBwIEDAYiOjiY9Pb3W/oSEBObMmcOXX34JQGZmJn379sVgMBAdHc3vv/9e3+GLiIhIE1Hv09m+8MILJCcnc8011wDQv39/Dhw4cNqypaWltG7dGjjRQbi0tNSxr3v37ixevBiA559/nl69elFWVuboZNyiRYta5eHETL0mkwmAvLw8ysvL6/fiRERExG3Ue0uMh4fHKcOxzzTEOjAw0LEqdllZGYGBgY59/v7+eHt74+3tzeDBg9m3bx+BgYGOxOR/y8OJmXpjYmKIiYlh9OjRSmJERESaMaeTmNTUVD799FPgxKy9NS0fNYKCgjhy5IhjiPX69evPOPV/VFSUY8XrlJQUevbs6dhXk9wA7N69m/DwcLp3705aWhpwYlHKk8vDiZl6k5OTSU5OZt26dX84NFxERESaNqduJy1ZsoTFixdTWlrK5MmTOXbsGPfffz8//fSTo8zChQu54YYb2LdvH1deeSWZmZl89dVXpz1fZGQkISEhzJkzh7CwMMaNG8fbb7/NQw89xObNm/n222/x9PSkZ8+e9OnTB4DBgwfz+OOPO0YnnSw8PJzw8HAAjEYjSUlJTv1jiIiISNNhsNvt9roWHjhwIAkJCQwfPtzRgtKnTx927dpVq9zx48dJSEjAbrczfPjwWssVNBaj0cgHH3zAlClTGr1uEREROXdLly5l2rRpdOjQ4Q/LOdUS4+Pjc8otGi+v2qf45JNPuOaaa7j++uudObWIiIiIU5zqExMWFsaePXsc/V2WLVtGRERErTLffvstMTEx9O3bl0cffZSvv/6asrKy+otYREREBCdbYl5//XUmT55MRkYGXbt2JSAg4JT+Lv/617+AE51xv/vuOx5++GGMRiOVlZX1F7WIiIhc8OqcxNjtdlq0aEFiYiIZGRnY7XaioqLw9PSsVS47O5sff/yR77//np07dzJo0CD+9Kc/1XvgIiIicmFzqiXm+uuvJzU19ZShzSfr0aMHw4cPZ/78+YwcOdJx60lERESkPtU5iTEYDERGRlJQUHDKZHYnW7VqFT/99BOPPvoogYGBXH311fzpT3/isssuq5eA68JkMpGWloavr+8pHY9FRESkeXDqG75FixYMHDiQMWPG1Jot96WXXnI8Hzt2LGPHjqWiooKVK1cyb948nnvuOaxWa/1FfRbx8fHExcUxd+7cM060JyIiIk2bU0lMZGQkkZGRf1hmwYIF/PDDD6SkpHDppZfywAMPNHqfmNjYWIYNG0ZaWhqFhYWNWreIiIg0DqeSmHnz5p21THFxMU899RSXX375GddMamjh4eHY7XaSkpKorq52SQwiIiLSsJxKYp599tnTbv/73//ueB4QEMCoUaNq7Z8/fz5z5849h/BERERETs+pye5KSkocj7y8PD766CMyMjJqlfniiy9OOe5020RERETOh1MtMS+//HKt18888wz3338/AN9//z3fffcdRqORxx9/3FHm+PHj9RCmiIiISG3nNf64TZs2ZGdnAyfWVQoMDMRgMNCiRQtHmfDwcJ588skznuP9999nz549hIWFMWPGDLy9vQFISkpi5cqVGAwGunXrxvTp0wG47bbbHJ2Lp02bRteuXc/nEkRERKSJciqJWbRokeO51Wply5YthIaGAjBy5EhGjhzJLbfcQv/+/et0vuzsbAoLC1mwYAErV64kISGBkSNHAtClSxdefPFFPD09+cc//kFmZiY9evSgY8eOvPDCC86ELSIiIs2QU31itm3b5njs3LmTPn368J///KdWmdDQUG655RZiYmIASE1N5fXXXz/t+TIyMhg4cCAA0dHRpKenO/aFhYU5ljTw9PTEw+NEqCaTiTlz5rBo0SIsFosz4YuIiEgz4nSfmJqWlxr5+fm1XsfGxjJx4kRH/5k+ffpw5513MnPmzFPOV1paSuvWrYETo5pKS0tPKZOVlUVJSYnjFlJ8fDzBwcF89tlnrF27lltuucVR1mQyYTKZAMjLy6O8vNyZyxMREZEmxKmWmGuvvfas23Jzc7njjjscLSdeXl5nnPo/MDAQs9kMQFlZWa1ZgOFEgvTOO+/wyCOPOLYFBwcDcNlll7Fv375a5ePj44mJiSEmJobRo0criRFpBnJzc8nOzsZut7s6FBFxM3VKYqqrqzGbzdhsNsrLyzGbzZjNZkwmkyMJqeHl5VXrw6awsBCbzXba80ZFRZGSkgJASkpKrYUly8vL+cc//sGDDz5Iy5YtAaioqHAsX/Dbb78RHh5e63yxsbEkJyeTnJzMunXr8Pf3r8vliYibKioq4o033uCNN97g999/d3U4IuJm6nQ76fnnnycuLu6UkUfBwcHMnj27Vtlbb72V6dOnU1JSwocffsiiRYuYOnXqac8bGRlJSEgIc+bMISwsjHHjxvH222/z0EMPsWbNGnJzc4mPjwdg8uTJBAQE8M9//hM/Pz8CAwN59NFHa50vPDzckdgYjUaSkpLq/i8hIm7Hw8MDLy8vPD09HX3kRERqGOxOtNE+8MADLF68+Kzlli9fzqpVq7Db7YwdO5Y77rjjvII8F0ajkQ8++IApU6Y0et0iUn+OHTtGeXk5HTt2dHUoItJIli5dyrRp0+jQocMflnOqY29NAlNdXV1rZFBAQECtcpMmTWLSpEnOnFpE5LRqOv+LiPwvp4dY9+3bFz8/P4KCghwPONGHZfHixXz22WfYbDb+9re/0bdvXyZMmEBOTk6DBC8iIiIXLqdaYv7617/y7rvvMn36dH7++Wf++c9/OjrP3n///Rw/fpyysjLeffddunbtyksvvcRPP/3E9OnT+eqrrxrkAkREROTC5FQSU1VVxZAhQ6iuriYoKIinn36aK6+8klmzZrF9+3Z2795NRUUF7du357vvvsPDw4Prr7+ePn36NFT8zZ7dbicpKQmbzcagQYMcQ9ddwWazkZOTQ1hYGH5+fi6LQy4c+fn55OXlcfHFF6tjr4icwqkkpma+lzZt2pCamkqnTp04cOAAAL6+vgD4+fnRrVu3Wl+2Pj4+9RXvBWf//v18+OGH2Gw2WrduTY8ePVwWy4YNG/j888/p27evYy0rkYZSVVXF4sWLOXz4MPfccw/Dhg1zdUgi4macSmImTpxIQUEBTz31FCNGjKC6uppnn30WgMrKStLT07Hb7bWew4n5XRqTyWQiLS0NDw8Ptm3bRufOnV0+smHt2rWkpaVx2223ObVoZdu2benUqRM2m4127dqdceLAxmCxWKisrKSiosKlcUjj2LdvH5mZmQwaNIiQkBCXxODn54evry9+fn56z4nIKZwaYn2yqqoqKioqHB17u3btisFgOH0lBgN79+499yid9MwzzxAXF8d1111Heno6F198MV9++aXLPgStViszZswgIyODhx56iHHjxjl1fFFREatXr6ZNmzbccMMNLrulVFlZye7du+nSpYtGjDRD5eXlrF69mhYtWnDjjTfy9NNPs337du655x6XjTYsLi7m2LFjdOnS5YyfLyLS/Dz//PP1P8TaarXy1ltvkZmZyVtvvcXBgwfZtm0bo0aNYv/+/ecTb72KjY1l2LBhvPrqqxQXF3PkyBEKCwtdlsTY7XYsFgsFBQVUV1dTWFjo1PFJSUmsXLmS4OBgIiMjad++fQNFenY1rUg111BRUUFiYiKtW7emX79+LotLzl9qaiqffPIJLVq0oFu3bnTt2pWjR48SFhbm9Hu2PrVs2ZKioiKX1e8KVqsVDw8PJW4iZ+H06KSqqio2b94MnOgbM3HiRLZt29YgwZ2r8PBw7HY7LVu2pEOHDvTo0YOKiopG64y6bds2jh07xjXXXIOnp6fj3yw3N5f169dz5ZVXOnW+zp07Ex0dTUhICC1btqS6urphAq8Di8WCyWSiQ4cOeHt7k5yczJIlS2jbti3z5s1zLBEhTU/Hjh0ZOHAgQUFBhISEEB0dTWBgIF26dHHpew5OJMubN2+mVatWxMTENOsv9/T0dD7++GP69u3Lbbfd1qyvVeR8OZXEJCQkkJqaysCBAwFo1apVrUnv3E3r1q3p27cvFouFmTNnctdddzF8+PAGrXPfvn089thjVFRUUFVVxZgxYzAYDPj4+GAwGE5Z5LIuQkJCGD16NC1atMBms2G32132wbZq1SrWr1/PqFGjuPXWW7FarZhMJqxWq/os1DObzebUrcOCggIyMjLo2bPnGfuw2Gw2kpOTAbj00ktrvY9CQkL461//6nj98ccfs2PHDkpLS/nzn//s2F5WVkZAQECDvActFgspKSmEhobi6+tLVlYWAwYMYNeuXbz22mu0bt2av//971x00UXNdrTS/v37ycrKAk4s49Jcr1OkPjj1rfO/LRlWq/WMizu6g/LycgICAvjtt98wmUwEBwc3eBLj5+eHj48PFouFPXv2sGPHDvr27YvJZKK0tBSTyeT0OdPT01m8eDFlZWUEBQUxcuTIWl8qjamystLRuddut1NWVkZ5eTkmk4mVK1cyevToUxbmFOdt3LiRdevWMWbMGC677LI6HfPvf/+bzZs3M2rUKG677bZa65zV2Lt3Lx988AEGg4HQ0FC6det22nPZbDby8/M5ePAgaWlpjBkzBh8fHzZu3MiXX37JFVdcwS233HJe13g6ycnJLF26FC8vL0wmEwUFBfj6+mIwGDh8+DD+/v7Mnj2bMWPGMG3atHqv3x20b9+ewMBAOnXqpARG5Cyc6iHar18/PvnkE+x2O/v37+fBBx9kxIgRDRXbeVu+fDnLly+nurqazp0706tXrwavs1WrVgwZMoSWLVuyZMkSpkyZws6dOx339P/73/+e9Rx2u52SkhLH6K6aVpzS0lL27NnDrl27GvQa/oi3t7ej5SUuLo7XXnuN3NxcsrKymDt3LhMnTqS4uNhl8TUHVquVTZs28fvvv5OWllbn48LCwvDx8eHHH3/kmWeecfyaP1nr1q0JDw+nTZs27Ny5k4yMDOBE8rBmzRoqKyvZtm0bTz/9NFu3bsVoNPLJJ5/wxBNPkJqaSnp6OkajscH6wLVq1QoPDw82bNhASkoKhw8fJjMzkz179mA2mykuLiY1NZWPP/64Qep3B4mJifzyyy+sWbMGq9Xq9PH5+fns3r27UW8BWq1WsrOzKSkpabQ6RcDJlphXX32V2bNnYzKZGDJkCGPHjuWll15qqNjO6P3332fPnj2EhYUxY8YMvL29T1uuqqqKqqoq8vLyWL58OZGRkWc9d11u1WRlZZGdnU2LFi346KOP6NKlCxMmTOD48eMkJydz4MABjh49itlspqqqisOHDzuOtVgsPPfcc7Rp04apU6c6EpQaubm5vPTSS+Tm5jJ27FgSEhJISkrCz88Po9FISUkJ+fn5FBcXk5WVxfz58xttMkGbzcaLL75Ifn4+v/32G8HBwZSXl1NZWVnr32bGjBl8+OGHjRJTU7d9+3YSExO58sor+fnnn/n555+xWq2kpKQQERHBTTfdVOdz/frrr/z4449YrVZCQ0M5duwYvXv35t5776Vly5YYDAZat27NHXfcQUJCAu+//z49evRg1qxZPPHEExQWFrJjxw6+++47cnNzKS0tBU7cPvrvf//L+vXr6d+/P1FRUVx88cVUV1fX6y3E3NxcXnzxRRITEzGbzQCntPRWVVUBcOTIkXqr192sXr2akpIS0tLSsFgsjlnR66Jmbp1Dhw5x991317kV73wlJCTw6aef0r17d2bNmqV+PI3g7bffJjk5mdmzZ9O5c2c+++wz+vbty9ChQ10d2jn53xHPdXXOQ6xdJTs7m1WrVjF79mxWrlxJu3btGDly5CnljEZjrblhPDw8GDJkCL1798bHx4cnn3zS0d/AZrNRXV1NVlYW7733Hj169OD+++93NOXa7XZ27NjB5s2b6d+/P7GxsRw/ftxxboPBQIcOHWjVqhVms5l9+/bV2hcZGVnrV3HNH3hNn6IpU6YQFRVFeHg4jz/+uFPD0fv27cu6dev+sIzFYsHb2/u8PlhsNhs33ngjO3furFP5c10vq7S0lC1bttCxY0cuueSSWvuOHDlCUFDQKQuOukJWVhYmk4lLL70Uf39/1qxZwyuvvMK4ceOYMWNGrbI1LWtBQUGn/B/ce++9rF+/Hm9vb8rKyk6pZ9q0aTzxxBNs27YNX19fBg0aRFFREUuWLCElJYW2bdsycuRIbr755jPeGvLx8aG6upq7776bli1b8vrrrzv2XXTRRSxdupTx48fXek+fTbt27Rz9zOrL6tWrmT17NuXl5XUq76o12aqqqvDy8nL8X1ZUVODp6XnGH1POOvlza9euXYSEhDhaZWvqPPnHVlVVFQaDAS8vL6xWK3PmzCEjI4PHH3+cyy+/vF5iqmE2m/Hx8WH9+vVs2rSJW2+9lZ49e/L+++/z0UcfMXToUF5++WWXzix+vs5lZNihQ4dYvHgx0dHR9OrVi08++YTAwEBiY2MpKCggJCSE0NBQR/mCggLHjwpwvv/b8ePHa91Z8PDwcCT8w4cP5/HHH6dPnz74+/tTUVGBt7e34/vMarXy2WefsXv3bq6++mquuuqqek067XY7a9eu5dChQ4wfP57Q0FDsdjtHjhyhbdu2tW6RFhcXs3PnTjp16sRTTz2F0Whk/vz5XH755XVexRp7HTzwwAOO56tWrarLIQ3m66+/tv/44492u91uz8zMtC9evPi05XJycuyAHnro0UAPHx8fl8eghx56NM/HvHnz7Dk5OWfNCerUFpyYmOh4HhcXx80331yXwxpEaWmpI3sNCAhwNHnDiZl6azrO5uXluSQ+kQuFO49MFJELQ52SGPtJd5zsLr77FBgY6LhfXlZWVmvIcnx8PHFxca4KTURERBpRnW7C1ayFtHv37lrPax6NKSoqipSUFABSUlLo2bOnY19sbCzJyckkJyezbt1wJf/AAAAgAElEQVQ6JkyY0KixnauJEydy0003OebfqQtX3HOOjo5m8uTJpwz79PLy4uWXX2bFihUNWv9FF110Qa6eHR8fXy/nWbx4MaNHjz7v8/j5+TFu3Djmz5/v2BYREXHe5z2dwYMHO97rTz/9NC+88EK919FYfayc6QR9LvNJiXvo0KEDvXv35oorrqj1/dQY3nzzzbP3ITlJzcLN7sTZ/jl16tjrTusiQd1GJxmNRj744AOmTJnSqLGJiIjI+alrx946/TRwp3WR4MSIDhEREbmwNd1xcCIiInJBa7aL3QQEBFBSUsL48eMpKysjLy+PsLCwWreeaibC+9/tf7TP1cdc6PUrZvc9xtX1N8WYXV2/YnbfY1xdv6tj9vf3Z+LEiWe9ndTkJrtzxsaNG51eMVpERERcLzk5mejo6D8s06xvJzk7fbGIiIg0Hc06iREREZHmq9n2iQEIDw9n1qxZHD16lN27d9OrV69ac0KYzebTbv+jfa4+5kKvXzG77zGurr8pxuzq+hWz+x7j6vpdHXNgYCDh4eGcTbPuEyMiIiLNV7NuiTl48CD5+fmuDkNEREScEBoaSufOnc9artkmMQcPHqRnz56OdZZERESkaQgICCA9Pf2siUyzTWLy8/Mxm8386+P36NkzytXhiIiISB2kp2dw1x1Tyc/Pv3CTmBo9e0YRHT3A1WGIiIhIPdMQaxEREWmSlMSIiIhIk6QkRkRERJokJTEiIiLSJCmJERG3sejtpQyKuYKeUQO54rI/sf6njTw68wlefOFlR5msrGwiOl7seH3rhDtYuOBVJoy/nYu79+fPt0wkLy+fBS++Qr8+gxkyaCQ//rDeFZcjIg1MSYyIuIXsrL18+MHHfPX1f0jPSGH5ig/p2rVLnY79cvUaFi58jp27tuLn58e4WybSqVNHtqcm8Oish3n8b3Ox2WwNfAUi0tiUxIiIW/Dw9MRisbBnTxZVVVV06tSRbhd1rdOxE24dR2T3i/Dz8+W60X/CZrVxx50T8fLy4uZbxnD0aB5Hco827AWISKNTEiMibqFbty7Mi3ua1197i4H9hzF92gyMOaY6HRsaGup47u/vT2hom1qvAcrMZfUbsIi4nJIYEXEb48bdxBf/Xc6vWzbg4+vDs3Ev0qJFAOXlFY4yeUe1HpqInKAkRkTcQnbWXn7Z/CuVlRZ8fX3w8/PFw9ODPn168dNPGykoOEZhYRGLFi11dagi4iaa/bIDItI0WCwWFix4hcw92Xh5eRIdM4AFC56jTWgbfvklkSsuu4Z27dpy/7QpbFi/ydXhiogbMNjtdrurg2gI27dvJyYmhm3Jm7V2koiISBOxfXsqg2IuJzk5mejo6D8sq9tJIiIi0iQpiREREZEmSUmMiIiINElKYkRERKRJavajk9LTM1wdgoiIiNSRM9/bzTaJ8fb2xtfXh7vumOrqUERERMQJPj4+eHt7n7Vcs01i2rRpw1//OoNrrrnG1aGIiIiIE9atW0ebNm3OWq7ZJjEArVq1om/fvq4OQ0RERJzw66+/1qlcs0xiTCYTaWlp+Pr64uXVLC9RLgA2m43ly5dz4MAB7rrrLjp16uTqkERE3Eqz/IaPj48nLi6OuXPnEhIS4upwRM5JSUkJO3fuJCcnhyNHjqhVUUTkfzTLJCY2NpZhw4aRlpZGYWGhq8MROWe33HILOTk5dO/eXe9lEZH/0SyTmPDwcOx2O0lJSVRXV7s6HJFzNmjQIAYNGgSg97KIyP/QZHciIiLSJCmJERERkSZJSYyIiIg0SUpiREREpElSEiMiIiJNkpIYERERaZKUxIiIiEiT5DbzxKSlpbFixQqsVis333wzVVVVfPnll/j4+DBz5kzCwsI4ePAgb7/9Njabjdtvv50BAwa4OmwRERFxEbdIYiwWC6tWrWLevHl4e3tTXV3NnDlzePHFF8nMzGTFihU8/PDDLFu2jEceeYRWrVrxzDPPKIkRERG5gLlFEpOeno6Pjw/z58/H19eXcePGERERgbe3N7169eKDDz4AoLCwkA4dOgAQFBREcXExwcHBrgxdREREXMQtkpiioiKOHDnCwoUL2blzJ8uXLyciIsKx32azAWC32x3bAgICKCkpqZXEmEwmTCYTAHl5eZSXlzfSFYiIiEhjc4uOvYGBgfTq1Qtvb2/69evH3r17MZvNjv0eHifCNBgMjm1lZWUEBQXVOk98fDwxMTHExMQwevRoJTHS5FVVVVFSUuLqMERE3JJbJDE9evTg0KFDAGRnZzNw4EAOHTpEVVUVu3fvpmvXrgCEhIRgNBoxm82UlpaecispNjaW5ORkkpOTWbduHf7+/o19KSL1prq6mkWLFvHss8/y+++/uzocERG34xa3k4KDgxk8eDBz5szBw8ODGTNmsGfPHp566inH6CSAO++8kzfeeAObzcbkyZNPOU94eDjh4eEAGI1GkpKSGvU6ROpTVVUVJpOJ/Px8CgoKXB2OiIjbMdhP7mjSjBiNRj744AOmTJni6lBEzll2djb5+fkMHDgQHx8fV4cjItIoli5dyrRp0xyDec7ELVpiROT0IiMjiYyMdHUYIiJuyS36xIiIiIg4S0mMiIiINElKYkRERKRJUhIjIiIiTZKSGBEREWmSlMSIiIhIk6QkRkRERJqkZjlPjMlkIi0tDV9fX7y8muUlioiIXPCa5Td8fHw8cXFxzJ07l5CQEFeHIyIiIg2gWSYxsbGxDBs2jLS0NAoLC10djoiIiDSAZpnEhIeHY7fbSUpKorq62tXhiIiISANQx14RERFpkpTEiIiISJOkJEZERESaJCUxIiIi0iQpiREREZEmSUmMiIiINElKYkRERKRJcqskZuPGjdxxxx0AbNq0ib/97W88/fTT5OXlAXDw4EGeeOIJ/va3v5GamurKUEVERMTF3CaJsdlsJCQkEBoaSnV1NatXr+aFF17g9ttvZ8WKFQAsW7aMRx55hLi4OD799FMXRywiIiKu5DZJzMaNGxk+fDgeHh4YjUYiIiLw9vamV69eHDhwAIDCwkI6dOhAQEAAQUFBFBcXuzhqERERcRW3SGKsViu//PILV1xxBQBlZWUEBAQ49ttsNgDsdrtjW0BAACUlJbXOYzKZ2L59O9u3byctLY3y8vJGiF5ERERcwS2SmA0bNnDZZZfh4XEinMDAQMxms2N/zXaDweDYVlZWRlBQUK3zxMfHExMTQ0xMDKNHj1YSIyIi0oy5xQKQhw4dYu/evWzYsAGj0ci3337LoUOHqKqqIjMzk65duwIQEhKC0WikVatWlJaWEhwcXOs8sbGxjB07FoC8vDw2bdrU2JciIiIijcQtkph77rnH8XzWrFncd999/Pzzzzz11FP4+Pgwc+ZMAO68807eeOMNbDYbkydPPuU84eHhhIeHA2A0GklKSmqU+EVERKTxuUUSc7JXX30VgBEjRjBixIha+zp37szChQtdEZaIiIi4GbfoEyMiIiLiLCUxIiIi0iQpiREREZEmSUmMiIiINElKYkRERKRJUhIjIiIiTZKSGBEREWmSlMSIiIhIk6QkRkRERJokt5uxtz6YTCbS0tLw9fXFy6tZXqKIiMgFr1l+w8fHxxMXF8fcuXMJCQlxdTgiIiLSAJplEhMbG8uwYcNIS0ujsLDQ1eGIiIhIA2iWSUx4eDh2u52kpCSqq6tdHY6IiIg0AHXsFRERkSZJSYyIiIg0SUpiREREpElSEiMiIiJNkpIYERERaZKUxDQBxcXFHD9+3NVhiIiIuJVmOcS6OSkoKOC1117DarUyc+ZM2rVr5+qQRERE3IJbJDFZWVm8++67GAwGWrVqxezZs/n111/58ssv8fHxYebMmYSFhXHw4EHefvttbDYbt99+OwMGDHB16A3ObDZTWlqKzWbDbDa7OhwRERG34RZJTJs2bYiLi8PX15d//etfJCYmsnr1al588UUyMzNZsWIFDz/8MMuWLeORRx6hVatWPPPMMxdEEtOpUyceeOABbDYbXbt2dXU4IiIibsMt+sSEhITg6+sLgJeXF0ajkYiICLy9venVqxcHDhwAoLCwkA4dOhAQEEBQUBDFxcWuDLtRGAwGoqKi6NmzJwaDwdXhiIiIuA23aImpkZeXR2pqKnfddVetjqw2mw0Au93u2BYQEEBJSQnBwcGObSaTCZPJ5DhXeXl5I0Uu0vzYbDbKysoICgpydSgiIqflFi0xcKLvx6uvvsojjzxCy5Yta/X/8PA4EebJLRGn+3CNj48nJiaGmJgYRo8erSRG5DwsX76cefPmsWXLFleHIiJyWm7REmO1WnnllVeYOHEiHTt2pLq6mkOHDlFVVUVmZqajL0hISAhGo5FWrVpRWlpaqxUGTqxePXbsWOBES8ymTZsa+1JEmo2DBw9y5MgRjEajq0MRETktt0hiNm/ezO+//055eTkrVqzg+uuvZ+zYsTz11FOO0UkAd955J2+88QY2m43Jkyefcp7w8HDCw8MBMBqNJCUlNep11DCbzVgsFlq1auWS+kXqw1133cXevXsviA70ItI0uUUSM3LkSEaOHHnK9hEjRtR63blzZxYuXNhYYZ2TsrIyXnvtNYqLi3nwwQc1okiarI4dO9KxY0dXhyEickZukcQ0J5WVlRQVFVFWVkZJSYmrwxEREWm2lMTUs9atWzN9+nTKysro3bu3q8MRERFptpTENIBOnTphtVodo6pE5NxVV1djtVodc0mJiNTQt2w9M5vNvPbaa8yfP59Dhw65Opx6VVRUxI8//sj+/ftdHYpcIMrLy3njjTd4/vnnycnJcXU4IuJmlMTUM7PZTF5eHgUFBRQWFro6nHr1008/8c477/DJJ5+4OhRpJDUTTbpKaWkphw4dIicnh6NHj7o0FhFxP7qdVM9CQ0OZNm0aJSUlza5PTOfOnencuTM9evRwdSjSCFavXk1iYiKTJk2iX79+LokhNDSUKVOmUFpaSp8+fVwSg4i4LyUxDeCSSy5xdQgN4tJLL6VPnz7qm3CB2LlzJ9nZ2WRmZrosiTEYDPTv398ldYuI+1MSI07x8/NzdQjSSCZNmkR0dDRDhw51dSgiIqfVLJMYk8lEWloavr6+eHk1y0sUqXc2m40dO3bg7+/PJZdc4niIiLirZvkNHx8fT1xcHHPnziUkJMTV4TRrFRUV/Pzzz4SGhhIdHe3qcOQ87Nixg/fee4+AgACee+452rdv7+qQ2LlzJzk5OVxxxRUEBga6OhwRcTPNMomJjY1l2LBhpKWlceDAAQICAtQi00ASExN56623CA0NJS4ujpYtW7o6JDlHBoOBgIAAAgMDqaqqcvnouoqKCt58800OHDhAeXk5V111lUvjETmTkpISvL29dbvdBZrlN3t4eDh2u51Vq1Yxd+5coqKimDZtGgaDwWUxbd++nczMTK6++mpCQ0OdPr6goAAfHx+CgoIaILq6KyoqIjMzk4svvpiWLVvStm1bx8KbPj4+VFdXuzQ+OXfh4eE8+eSTeHl54efnd9r/y3379rFhwwYGDx7c4KPvPDw8iIyMxGAwEB4erveWuKV9+/axePFiWrduzSOPPIK/v7+rQ7qgNMskpsbhw4dJSUnBaDQyderURmuNycrKorS0lH79+uHh4YHVauXf//43WVlZBAUFccMNNzh1vr1797Jo0SKCgoKYPXu2S5vVv/jiCzZs2MBVV13FlClTsFgsVFdXY7FYXD6niJy/syXJGzduZM2aNeTl5TVKEnPvvfdSXV2Nt7c3lZWVeHl54enp2aD1ijgjMzOTX375hZYtW3LvvfcqiWlkzTqJ8fHxwcfHh8DAwEZrhSkoKGDJkiWUlpby0EMP0bdvXzw9PYmJiQHg4osvdvqcZrMZs9mMwWDAYrHUd8hOad26Na1ataJ169bY7XZycnJISUmhbdu2VFRUaPh1Mzdo0CDy8vK44oorGqU+g8GAt7c3hw4dYunSpYSGhjJ9+vRm/T47cOAAn3/+OX369OHaa691dThyFsHBwYSEhNCmTRsl2C7QrJMYLy8vxy/L77//nksvvfScbuU4w8/Pj5CQEDw9PQkODgbAbreTmZnJ4cOHMZlMdO/e/Q/PkZ2dzfr16xk6dCh9+vShd+/ePPTQQwQGBtK6desGjf9sbrrpJoYPH06LFi146623+PXXXzEajY5ES31imo+SkhIOHz5MRESEo/Wvd+/ejTaJY35+Pvv27aN3795kZGSwa9cu2rdvT1lZWbNOYnbt2sWvv/7K0aNHufrqq/XF6OZsNhs5OTmYzeZm/b50V806iQkJCaFnz54YjUbee+89CgoKuP322xu0zhYtWjBr1iwsFovjC91qtfLNN99gMpm4+OKLz/or9ueff+abb76hsLCQPn36YDAY3Gb2X09PT9q2bYvRaGTPnj0UFRXh6emJxWIhNTUVm81G+/bt9cHrxioqKoCzz/nz9ttvs2bNGjp37syzzz571uS7vpSUlODr68tHH33Ejh07uOqqq9i8eTMHDx6kZcuWeHt7N0ocrhITE0Nubi69e/fW31ET8Nlnn3H06FHy8/NJTk5m5MiRrg7pgtKskxiz2Uy3bt246KKLyMjIoGvXro1Sr7+/P/7+/hQUFODn54ePjw9FRUVUVlbWaf2XIUOGcOzYMccfQ1VVFb///jvBwcF06dKlocOvpby8nGXLllFVVcVdd91FUFAQNpuNNm3aEBISQosWLQAoLCzkscceo1evXtx3331cd911jRqnQHp6Or/++isjRow4Y8Jx7Ngx3nzzTTw8PHj44YcJCQnBbrfz448/cuTIEcaMGUNgYCAHDhzgm2++4eDBg5SXl5OTk0Pbtm3x9fVt0F+be/bs4Z133nG8v2w2G99++y1GoxGLxcKxY8dYsGABN954I8OHD2+wOFypoKCArKwsfH19GTJkiEsHJMjZ1XwG2my2Bm/pl1M16yRm3bp12O12unXrRocOHSgrK2uUerOysvj999/54YcfCA0NZebMmXh4eGC328/a6ctms+Hn50dsbCyBgYEcP36cp59+mu3bt9O9e3eioqK49tprGTRoUKNcS25uLtu3b6e6uppRo0bx9ddfs2LFCoYOHUp1dTXHjx/HarVSUVFBRUUFiYmJTJw4sVFia84qKys5dOgQERERdU4a3nnnHX7++WeysrJ49NFHCQsLO6XMsWPHOHLkCB4eHhQVFRESEkJRURFr1qwhPz+fbt26UV5ezr///W8OHjyI1WrFYDAQHx/PsWPHGDFiBLNnz26QRMZut7Nr1y62bdvGgQMH8PX1pUOHDuzfvx+73U5wcDCHDx9m9+7dpKSksHbt2nqPwR2kp6ezdetWjh8/zqRJk9Qa4+Z+/vlnx/OkpCS3aTW/UDTrJCY/Px+DwUBERAQlJSUcOXKkweqyWq14eHhQWFjIa6+9RnZ2Nvn5+bRt25bbb7+dvLw84ERi9dJLL53xPAkJCXzyySd0796dRx99lOzsbBISEsjLyyM3N5cNGzawdu1aPvroIw4fPszll1/eoKOuIiIiGD58OBaLhaCgID766COOHTvGl19+yQ033ED//v05duwYx48fB04kYa7ut9PU2Ww2li5dys6dO7nmmmu47bbb6nRczerp3377LYWFhTzwwAOnrHkUGRnJ1KlTsVgsmEwmPDw8iIiIICoqCl9fX4KDg/niiy8wGo2OIc0mk4n8/Hz8/PyoqKiga9euDB8+nE6dOtXrey87O5tvv/2WvLw8LBYLFouFffv2OTqzFxYW4u3tjcViobS0tN7qdTfp6elkZ2c7bvs5w263880335CZmcmECRPo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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 3.5 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_feature.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 281421 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/layer.py:452: PlotnineWarning: geom_point : Removed 281421 rows containing missing values.\n", + " self.data = self.geom.handle_na(self.data)\n" + ] + }, + { + "data": { + "image/png": "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y7Bhw9i9e3e9wbP/7he/+AV9+/Zl9uzZDBgwwH5ZSURERORqNbhw8fLyokOHDhQVFZ03wdzPrV69mk2bNvHcc88RHBzMHXfcwZAhQ+jXr59TEhYREZHrl0M9LkFBQfTo0YO777673lwrr732mv358OHDGT58OJWVlXz00Uekpqby+9//HqvV6rysRURE5LrkUOHSoUMHOnTocMmYuXPnsnHjRjIyMrj11lt54oknNMZFREREnMKhwiU1NfWyMaWlpbz44ovcdtttl12jSERERMQRDhUus2bNuuD26dOn258HBgYyaNCgevtnz57NtGnTriA9ERERkX9xaK0is9lsf5w6dYr333+frKysejGffPLJee+70DYRERERRznU4/LHP/6x3usZM2Ywbtw4ADZs2MD69espLCxkypQp9pizZ886IU0RERERB3tc/l14eDiHDx8Gzq1jFBwcjJeXF0FBQfZHfHy8elxERETEKRzqcXnrrbfsz61WK99//z0REREADBgwgAEDBnDvvffyy1/+0rlZioiIiOBg4bJjx45/vdHHh65du/Lmm2/Wi4mIiODee+/l2LFj7Ny5k927d/PNN9/w7LPPOidjERERuW45PMalroelzunTp+u9TklJYdSoUfbxMF27dmXMmDEqXEREROSqOVS43HnnnezateuS244fP87o0aOZN2/euQZ8fPDxcaiZK2YymcjMzCQmJoaoqCiXtCkiIiKu06CKora2lurqamw2GxaLBcMwgHN3DFVUVNQ/oI+PfT9ASUkJNpvNiSlfXFpaGjNnzmTatGn15pYREaljNpupra0lLCzM3amIyBVoUOEyZ84cZs6cab9jqE5oaCiTJ0+uFzty5EgmTJiA2Wxm6dKlvPXWWzz22GPOzfoiUlJS6NOnDzExMZSUlLikzX+3detWjhw5wtChQ8+7rCYi7nX27FnmzZtHRUUFkyZNom3btu5OSUQc1KDCJTU1ldTUVJ544gkWLVp0ydjJkyezcuVKzpw5w9q1a5k4cSKjR492SrKXEx0dbe/tqa2tddpxq6qq+Pjjj6mtreWBBx4gICDggnEWi4W///3v5OfnExkZyR133OG0HETk6pWVlXHmzBmqqqo4e/Ys0dHR7k5JRBzk0OCTuqKl7tJRncDAwHpxDz74IA8++KAT0mscfvrpJ/7xj39gtVrp1asXnTp1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3ixbtoz4+HgqKiro3bs3vXv3pmfPntfs3EXE9VS4iMhV+dvf/lbvUlFKSgrp6enMmzcPAIvFQvPmzQHIyMhgzpw5FBUV4ePjw4EDB6iurrbvd8Tdd99N69atAcjKymL//v2MGjXKvt9sNnPgwAEVLiJNjAoXEXEqwzBYvXo1N998c73t1dXV/PrXv+abb74hMTGR0tJSWrRocdHCxcfHB6vVan9dWVlZrzfm588NwyAiIoLdu3dfgzMSkcZEY1xExKmGDx/O3Llzqa2tBc5NMpWbm0tlZSU1NTW0bdsWgDfffLPe+0JCQjh79qz9dYcOHexjYIqKili7du1F24yLiyMwMJAPPvjAvi03N5fi4mKnnZeINA4qXETEqV5//XV8fHxISEige/fuDB48mCNHjhAaGsqsWbNITk6mf//++Pn51Xvf5MmTGTRokH1wbkpKCsePH6dbt2489thjl5xR08fHhzVr1vDRRx/RvXt3unTpwuOPP47FYrnWpysiLqbboUVERMRjqMdFREREPIYKFxEREfEYKlxERETEY6hwEREREY+hwkVEREQ8hgoXERER8RgqXERERMRjqHARERERj6HCRURERDyGChcRERHxGP8PeF0coXiBMT4AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 13;\n", + " var nbb_unformatted_code = \"for level in levels:\\n all_feature_results_subset_df = all_feature_results_df.query(\\n \\\"level == @level\\\"\\n ).reset_index(drop=True)\\n\\n output_dir = pathlib.Path(f\\\"{output_fig_dir}/{level}\\\")\\n output_dir.mkdir(exist_ok=True)\\n\\n # Figure 2 - Per feature plate differences\\n per_feature_gg = (\\n gg.ggplot(all_feature_results_subset_df, gg.aes(x=\\\"feature\\\", y=\\\"metric_value\\\"))\\n + gg.geom_point(size=0.1, alpha=0.5)\\n + gg.facet_wrap(\\\"~metric\\\", scales=\\\"free\\\", nrow=len(metrics))\\n + gg.xlab(\\\"Feature\\\")\\n + gg.ylab(\\\"Feature Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(f\\\"Feature Summary Across Plates\\\\n{level}\\\")\\n + theme_summary\\n )\\n\\n output_file = pathlib.Path(f\\\"{output_dir}/{level}_metrics_per_feature.png\\\")\\n per_feature_gg.save(output_file, dpi=dpi, height=height, width=width)\\n\\n print(per_feature_gg)\\n del per_feature_gg\";\n", + " var nbb_formatted_code = \"for level in levels:\\n all_feature_results_subset_df = all_feature_results_df.query(\\n \\\"level == @level\\\"\\n ).reset_index(drop=True)\\n\\n output_dir = pathlib.Path(f\\\"{output_fig_dir}/{level}\\\")\\n output_dir.mkdir(exist_ok=True)\\n\\n # Figure 2 - Per feature plate differences\\n per_feature_gg = (\\n gg.ggplot(all_feature_results_subset_df, gg.aes(x=\\\"feature\\\", y=\\\"metric_value\\\"))\\n + gg.geom_point(size=0.1, alpha=0.5)\\n + gg.facet_wrap(\\\"~metric\\\", scales=\\\"free\\\", nrow=len(metrics))\\n + gg.xlab(\\\"Feature\\\")\\n + gg.ylab(\\\"Feature Difference\\\\nBetween Tools\\\")\\n + gg.ggtitle(f\\\"Feature Summary Across Plates\\\\n{level}\\\")\\n + theme_summary\\n )\\n\\n output_file = pathlib.Path(f\\\"{output_dir}/{level}_metrics_per_feature.png\\\")\\n per_feature_gg.save(output_file, dpi=dpi, height=height, width=width)\\n\\n print(per_feature_gg)\\n del per_feature_gg\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for level in levels:\n", + " all_feature_results_subset_df = all_feature_results_df.query(\n", + " \"level == @level\"\n", + " ).reset_index(drop=True)\n", + "\n", + " output_dir = pathlib.Path(f\"{output_fig_dir}/{level}\")\n", + " output_dir.mkdir(exist_ok=True)\n", + "\n", + " # Figure 2 - Per feature plate differences\n", + " per_feature_gg = (\n", + " gg.ggplot(all_feature_results_subset_df, gg.aes(x=\"feature\", y=\"metric_value\"))\n", + " + gg.geom_point(size=0.1, alpha=0.5)\n", + " + gg.facet_wrap(\"~metric\", scales=\"free\", nrow=len(metrics))\n", + " + gg.xlab(\"Feature\")\n", + " + gg.ylab(\"Feature Difference\\nBetween Tools\")\n", + " + gg.ggtitle(f\"Feature Summary Across Plates\\n{level}\")\n", + " + theme_summary\n", + " )\n", + "\n", + " output_file = pathlib.Path(f\"{output_dir}/{level}_metrics_per_feature.png\")\n", + " per_feature_gg.save(output_file, dpi=dpi, height=height, width=width)\n", + "\n", + " print(per_feature_gg)\n", + " del per_feature_gg" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Selection Summary" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(224658, 3)\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", + "
featureplatestatus
0Nuclei_Texture_DifferenceEntropy_Mito_20_0SQ00015196only_cytominer
1Cytoplasm_Texture_InfoMeas1_Mito_10_0SQ00015196only_cytominer
2Nuclei_Correlation_Costes_RNA_DNASQ00015196missing
3Nuclei_Location_CenterMassIntensity_Y_RNASQ00015196missing
4Cytoplasm_Texture_InfoMeas1_RNA_10_0SQ00015196missing
\n", + "
" + ], + "text/plain": [ + " feature plate status\n", + "0 Nuclei_Texture_DifferenceEntropy_Mito_20_0 SQ00015196 only_cytominer\n", + "1 Cytoplasm_Texture_InfoMeas1_Mito_10_0 SQ00015196 only_cytominer\n", + "2 Nuclei_Correlation_Costes_RNA_DNA SQ00015196 missing\n", + "3 Nuclei_Location_CenterMassIntensity_Y_RNA SQ00015196 missing\n", + "4 Cytoplasm_Texture_InfoMeas1_RNA_10_0 SQ00015196 missing" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 14;\n", + " var nbb_unformatted_code = \"# Load data\\nselect_file = pathlib.Path(f\\\"{input_dir}/comparison_result_4b_feature_select.tsv.gz\\\")\\nselect_df = (\\n pd.read_csv(select_file, sep=\\\"\\\\t\\\", index_col=0)\\n .reset_index()\\n .rename({\\\"index\\\": \\\"feature\\\"}, axis=\\\"columns\\\")\\n .melt(id_vars=\\\"feature\\\", var_name=\\\"plate\\\", value_name=\\\"status\\\")\\n .query(\\\"plate not in @nonuniform_plates\\\")\\n)\\n\\n# Reorder data\\nselect_df.plate = pd.Categorical(select_df.plate, categories=plate_order, ordered=True)\\nselect_df.feature = pd.Categorical(\\n select_df.feature, categories=feature_order, ordered=True\\n)\\n\\nprint(select_df.shape)\\nselect_df.head()\";\n", + " var nbb_formatted_code = \"# Load data\\nselect_file = pathlib.Path(f\\\"{input_dir}/comparison_result_4b_feature_select.tsv.gz\\\")\\nselect_df = (\\n pd.read_csv(select_file, sep=\\\"\\\\t\\\", index_col=0)\\n .reset_index()\\n .rename({\\\"index\\\": \\\"feature\\\"}, axis=\\\"columns\\\")\\n .melt(id_vars=\\\"feature\\\", var_name=\\\"plate\\\", value_name=\\\"status\\\")\\n .query(\\\"plate not in @nonuniform_plates\\\")\\n)\\n\\n# Reorder data\\nselect_df.plate = pd.Categorical(select_df.plate, categories=plate_order, ordered=True)\\nselect_df.feature = pd.Categorical(\\n select_df.feature, categories=feature_order, ordered=True\\n)\\n\\nprint(select_df.shape)\\nselect_df.head()\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load data\n", + "select_file = pathlib.Path(f\"{input_dir}/comparison_result_4b_feature_select.tsv.gz\")\n", + "select_df = (\n", + " pd.read_csv(select_file, sep=\"\\t\", index_col=0)\n", + " .reset_index()\n", + " .rename({\"index\": \"feature\"}, axis=\"columns\")\n", + " .melt(id_vars=\"feature\", var_name=\"plate\", value_name=\"status\")\n", + " .query(\"plate not in @nonuniform_plates\")\n", + ")\n", + "\n", + "# Reorder data\n", + "select_df.plate = pd.Categorical(select_df.plate, categories=plate_order, ordered=True)\n", + "select_df.feature = pd.Categorical(\n", + " select_df.feature, categories=feature_order, ordered=True\n", + ")\n", + "\n", + "print(select_df.shape)\n", + "select_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:729: PlotnineWarning: Saving 6 x 4 in image.\n", + " from_inches(height, units), units), PlotnineWarning)\n", + "/Users/gway/miniconda3/envs/lincs/lib/python3.7/site-packages/plotnine/ggplot.py:730: PlotnineWarning: Filename: figures/2016_04_01_a549_48hr_batch1/feature_select_summary.png\n", + " warn('Filename: {}'.format(filename), PlotnineWarning)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAscAAAGwCAYAAABFOcjKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXgUVfo24KcJCQnEJEAIBCQEWQJ8sgzIDooIgyAgDGhAUcIaHBYdRWVMhESjMILjgo6AIiAgKPozI4uAyqCiIgiiA4MKOGEHE0jAyE7q+4Ounurq2pfuDjz3dXGZdFedOnWqqlP2+9Z7PIIgCCAiIiIiIlQIdQeIiIiIiMIFb46JiIiIiLx4c0xERERE5MWbYyIiIiIiL94cExERERF58eaYiIiIiMiLN8dERERERF68OSYiIiIi8uLNMRERERGRF2+Oia4hly5dgsfjwejRo0PdFSIiorDEm2Ny3caNG+HxeFT/LVmyxPU+bN++HTk5OThw4IDr23JCWVkZli1bhptvvhnJycmIjo5GnTp10KVLFzz++OM4ceJEqLuoa8OGDcjJycHp06dNrVdQUIAHHngATZs2RZUqVZCQkIC0tDQMHToU+fn5LvWWiIjoioqh7gBdOwYPHow777wz4PXOnTu7vu3t27cjNzcXPXr0QEpKiuvbs+vee+/F8uXL0bp1a0yaNAlJSUk4fPgwvvvuO7z00ksYOnQoqlevHupuatqwYQOeeeYZjB49GnFxcYbW2bZtG2655RYIgoBhw4ahZcuWKCsrw969e7F69WqcPXsWAwYMcLnnRER0LePNMQVNy5YtMWzYsFB3wxXnzp1DZGQkIiIibLe1detWLF++HJ06dcLnn38e0GZJSQkiIyNtbyccTZ06Fb///jvWrFmD3r17+7334osv4tChQyHqWfi5ePEiysrKUKlSpVB3hYjoqsK0Cgo7n376KW6//XZUrVoVlSpVQrNmzTBz5kxcvnzZb7nNmzdjxIgRaNy4MapUqYIqVaqgXbt2eOutt/yWGzZsGMaMGQMA6Nq1qy+dQ8y7feONN+DxeLBp06aAvgwbNgwVK/r/P2SXLl3QsGFD/Pe//0V6ejoSExMRExODo0eP+pZZsWIFbr75ZsTFxSEmJgatW7fGm2++aWj/f/rpJ19flW62ExISUKVKFb/XLly4gBkzZqB58+aIiYlBXFwc/vjHPyrukxqj4w4Av/zyC0aPHo2UlBRERUWhVq1a6NWrFzZs2OAbo2eeeQYAULduXd+Y5+XlGdr3W2+9VfH966+/3vezVv70J598EpCyIx7njRs34umnn0b9+vURExODP/zhD1i3bh0AYOfOnejTpw/i4+MRHx+PjIwMlJaW+rUtnhNFRUUYOXIkatSogdjYWNx+++3Yt28fACA/Px833XQTYmJiUKdOHcyYMSOgj2vXrsWQIUNwww03ICYmBvHx8ejWrRtWr14dsKy4zcLCQowZMwbJycmoVKkStm7diqZNmyIlJQVlZWUB63355ZfweDzIyclRHE8iIgrEb44paM6cOYOioiK/1yIjIxEfH+/7fd68eRg3bhzatGmDKVOmID4+Hps2bcLjjz+O77//3u9m5/3338dPP/2EIUOGoG7duigpKcHy5csxfPhwFBUV4eGHHwYA/PnPf0Z0dDTmz5+PJ598Eo0bNwYANGzY0PK+nD59Gl27dkWHDh2Qm5uL06dPo3LlygCArKwsPPvss7jtttswbdo0REdHY+3atRg1ahR++eUX3RvEG264AQCwcuVKPPjgg0hOTtZc/uLFi+jVqxc2bdqEe+65Bw888ADOnDmDt956C7feeitWrlyJ22+/XbMNM+O+detW9OzZE+fOncPIkSPRokULnDp1Cps3b8Ynn3yC7t27Y+rUqfjHP/6Bf/7zn3j55ZdRtWpVAECrVq10933fvn14/fXXMWHCBHg8Hs3lrXj00Udx6dIljB8/Hh6PBy+99BL69euH999/HyNGjMCQIUPQv39/fPXVV1i0aBFiYmLw2muv+bUhCAJ69eqF66+/Hjk5OTh8+DBeeOEF9OrVC1OnTsVjjz2GcePGYeTIkXj77bfx17/+FfXr10d6erqvjTfffBOnTp1CRkYGateujePHj2PRokXo27cv3nvvPQwaNChgmz169EBSUhKmTJmCsrIy1KxZE2PHjsXDDz+MtWvXok+fPn7rvPHGG6hQoQJGjhzp+DgSEV21BCKX/etf/xIAKP5r3769b7lDhw4JlSpVEgYNGhTQxowZMwQAwqZNm3yvlZaWBix36dIloVOnTkLVqlWFS5cu+V5//fXXBQDCF198EbCO1nv33nuvEBER4fda586dBQBCVlZWwPJbt24VAAgPP/xwwHvjxo0TIiIihIKCgoD3pMrKyoTevXsLAISoqCjh5ptvFh599FHh/fffF4qLiwOWnzlzpgBA+PDDD/1eP3/+vNCiRQuhUaNGvtcuXrwoABBGjRrle83MuF++fFlo2rSpEBUVJWzfvj1g+cuXL/t+zsrKEgAIBw8e1Nxfqc8//1yIjIwUAAgpKSnCPffcI7z44ouK21LaF9HHH38sABAWL17se008zq1btxbOnz/ve33btm0CAMHj8Qjvv/++Xzt33HGHEBUVJZw5c8b32r333isAEMaPH++37PPPPy8AEK677jph//79vtfPnDkjJCYmCl26dPFbXun8/e2334QGDRoILVq08Htd3OawYcMC1jl58qQQHR0tDBw40O/1U6dOCZUrVxZ69+4dsA4REaljWgUFTUZGBj7++GO/f7Nnz/a9v2LFCpw/fx6jR49GUVGR37++ffsCgC/8DcAvteDs2bM4ceIEiouL0atXLxQXF2PPnj2u7YvH48Fjjz0W8Lr4DevIkSMD9qF///64fPkyPv30U9228/Pz8fLLL6NVq1b48ssvMXPmTAwaNAjJycl44okn/ELoS5YsQcOGDdGxY0e/7Z0+fRr9+vXDnj178Msvv6huz8y4b9++Hbt378b999+PP/zhDwFtVahg7yOla9eu+PbbbzF8+HCcO3cOb7/9Nh566CG0bt0arVq1wo4dO2y1DwATJkxAVFSU7/fWrVujcuXKqFu3Lv70pz/5LXvLLbfgwoUL2L9/f0A7jzzySEDfAWDgwIF+D33GxMSgXbt2Aeej9Pz9/fffceLECZw7dw633nor/v3vf+PMmTMB23z88ccDXqtatSruvvturFy5EsePH/e9vnTpUpw5cwZjx45VHAciIlLGtAoKmgYNGqBHjx6q7+/evRsAAh7EkpL+8S8sLMTUqVORn5+PY8eOBSx78uRJG73VVqtWLcUKDOI+3HjjjarrSvdBTVRUFCZOnIiJEyfi7Nmz2LlzJ9auXYsXX3wR06dPR9WqVfHoo4/6tnnhwgXUqFFDc5tiuoZan42M+88//wwAijfGTmnRogUWLlwIADh48CA2b96MBQsW4KOPPsIdd9yBXbt2ISEhwXL7SuNQtWpV1dcBBJTOq1ChAurVq6e4rFo78jb++9//Ijs7G2vXrlU8V0tKSnypOqJGjRop7RLGjRuHt956CwsXLvTdQL/++utITk72/Q8OEREZw5tjChvit6ELFizwe/BKqk6dOr5le/TogR9//BGTJk1CmzZtULVqVURERGDlypV4+eWXFR9QUqKV13rp0iXF1+U3LfJ9WLNmjWpFCbO5zjExMWjbti3atm2LgQMHonnz5pg/f77v5lgQBDRr1gwvvfSSahvNmjVTfc/MuAuCYKrvdtWtWxd169bFXXfdhbvuugvvvfee70E2K8cNgGpFEa1KI/L99ng8qt+Sq7UjbeP06dPo0qULfv/9dzz44INo3rw54uLiUKFCBbzxxht45513As7fiIgI1coUHTt2RMuWLTF//nw8/vjj2LZtG7777js88cQTAQ+UEhGRNn5qUtgQH5SrVq2a5jfMALBjxw788MMPyM3NxdSpU/3e++ijjwKW17qRqlatGgDlb5q10hGUNG7cGJ988gnq1KmDFi1amFrXiBtvvBFxcXE4fPiw77VGjRrh119/xa233mqplJyZcU9LSwMAfPfdd7rtOv0wXadOnfDee+/59j0iIgLx8fGOHLdg++STT3DkyBEsWrQI999/v9978of/jMrMzMSf//xnbNy4EcuXL4fH48GoUaOc6C4R0TWFOccUNtLT0xEVFYVp06bh999/D3j/zJkz+O233wD879s5+Td6Bw8eVCyZFhsbC0D5Bli84fvkk0/8Xt+4cSO2bt1qah/EG50pU6bg4sWLAe+XlJTgwoULmm3s2bMHe/fuVXxvw4YNOH36tN83wWJ1DqVyYYB+GoeZcW/dujWaNm2KRYsWKd4gS7/t1BpzNevXr1f81vfy5ctYuXIlAP9vwRs3bowvv/wS586d87129uxZvPLKK4a3GQpq5+93333n20+zhg0bhtjYWLz00ktYtmwZevTooZpKQ0RE6vjNMYWNlJQUvPbaaxg7dizS0tIwfPhw1K9fHydOnMDu3bvxwQcfYPXq1ejSpQv+3//7f2jatCmmT5+OU6dOoVmzZti3bx/mzZuHRo0aBdzUtmvXDh6PB08//TQKCwtRpUoVNGjQAG3btkWzZs1w22234dVXX8XFixfxhz/8Af/5z3/w1ltvoUWLFti1a5fhfWjfvj1ycnKQk5ODFi1aYMiQIahTpw6OHz+OH374AR9++CH27Nmjmr4AAN9//z3S09PRtWtXdOvWDSkpKTh79iy+++47vP3226hUqRKm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bN68WX7zm99o93PdddfJgQMH5MKFC3L48GG555575K9//atce+218vnPf16eeOKJoPZNTEx4bV93Pu9973sv+db31KlT8rnPfS7oOOMu64S8anjGNCvY9N62130vuYQfQ8JRuv3mOudU4bO6/VZfN22jnn9IONK16L6pLeWxc4UZc4/1psfTLaDgchzf0L/6npjbVrfPsdBPdUGVWM+LOj6LTuTi8mxQ6c45Zrvr+ilkbOv4/C3zPa8upAaOmkcffVRef/11eeutt6TX68n27dtl6dKll2z32c9+Vk6dOiXf/e535e2335a5uTl5+eWX5YUXXhARkcFgILOzs7JkyRK5/PLLZTgcyrJly+QLX/iC/OIXv5Cnn35a5ubm5Pz58/L8888vyDk2Wbt2rbz66quNz+eee+6RZ555Rp555hmZm5uT733ve3L69Gn5zGc+E3SccceEPAAAsCjde++9Mjk5Kddcc40sXbpUvv3tb2u3W7Fihfzyl7+Uw4cPy/ve9z656qqr5P7775d//vOfIvLO5L0NGzbIihUr5IEHHpADBw7IypUr5ZprrpEjR47Iww8/LGvXrpV169bJ7t275e2333Zq3+7du+XBBx+UVatWyde+9rXg8/ngBz8oTz31lExPT8vq1avlsccekyNHjsiVV14pIu9MKDx8+LBcccUVsnPnTqe2jTPSKgAAwKL0kY98RHbv3r3gtSuvvFKGw+El21533XVy6NAh7X6qFR5UmzZtkl//+tfa36npFh/60IcWHHvr1q2ydevW2n1XnTp1SkTkkvMpbdmyRbZs2aL93Uc/+lF55ZVXtPsr7dq1S3bt2uXUllGXNa2iGg7ThX9cFqbQvS8kpNY0VO+SAtJ28XTfcwoN0dqOY5rtbVvgpY00E5eqKiFGLeTp217XKhO2Wf8iccPkodcrpFKO77FyPiPaGn8+93foszN1P1bTX6qvVZn6V63EobsPbO8rme6zGM9Gl/sTGHekVQAAAHTc8ePHZcWKFdr//eUvf2m7eWOFtAoAALDoqGkDXXfHHXcsmlJqbevU8tF1IXaXdIsuKdsaEhqOsQhIeXxTiE13HN/2lmkRrqE83XbltTVd35SLgOQMNbv2U1fSL+raG+NerJ5jyKIvKZ8H6v0bkhagey2kzTmqMPioXhuXxSNW9frOC3q4nmuMZ1edurEXsnhG3Rgv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "application/javascript": [ + "\n", + " setTimeout(function() {\n", + " var nbb_cell_id = 15;\n", + " var nbb_unformatted_code = \"feature_select_gg = (\\n gg.ggplot(select_df, gg.aes(x=\\\"feature\\\", y=\\\"plate\\\", fill=\\\"status\\\"))\\n + gg.geom_tile(size=0.5)\\n + gg.ggtitle(\\\"Feature Select Summary\\\")\\n + theme_summary\\n + gg.theme(axis_text_y=gg.element_blank())\\n)\\n\\noutput_file = pathlib.Path(f\\\"{output_fig_dir}/feature_select_summary.png\\\")\\nfeature_select_gg.save(output_file, dpi=dpi, height=4, width=6)\\n\\nfeature_select_gg\";\n", + " var nbb_formatted_code = \"feature_select_gg = (\\n gg.ggplot(select_df, gg.aes(x=\\\"feature\\\", y=\\\"plate\\\", fill=\\\"status\\\"))\\n + gg.geom_tile(size=0.5)\\n + gg.ggtitle(\\\"Feature Select Summary\\\")\\n + theme_summary\\n + gg.theme(axis_text_y=gg.element_blank())\\n)\\n\\noutput_file = pathlib.Path(f\\\"{output_fig_dir}/feature_select_summary.png\\\")\\nfeature_select_gg.save(output_file, dpi=dpi, height=4, width=6)\\n\\nfeature_select_gg\";\n", + " var nbb_cells = Jupyter.notebook.get_cells();\n", + " for (var i = 0; i < nbb_cells.length; ++i) {\n", + " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", + " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", + " nbb_cells[i].set_text(nbb_formatted_code);\n", + " }\n", + " break;\n", + " }\n", + " }\n", + " }, 500);\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "feature_select_gg = (\n", + " gg.ggplot(select_df, gg.aes(x=\"feature\", y=\"plate\", fill=\"status\"))\n", + " + gg.geom_tile(size=0.5)\n", + " + gg.ggtitle(\"Feature Select Summary\")\n", + " + theme_summary\n", + " + gg.theme(axis_text_y=gg.element_blank())\n", + ")\n", + "\n", + "output_file = pathlib.Path(f\"{output_fig_dir}/feature_select_summary.png\")\n", + "feature_select_gg.save(output_file, dpi=dpi, height=4, width=6)\n", + "\n", + "feature_select_gg" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/feature_select_summary.png b/comparison/figures/2016_04_01_a549_48hr_batch1/feature_select_summary.png new file mode 100644 index 0000000..6423df4 Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/feature_select_summary.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_feature.png b/comparison/figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_feature.png new file mode 100644 index 0000000..9dc82ee Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_feature.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_plate.png b/comparison/figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_plate.png new file mode 100644 index 0000000..42aff61 Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/level_3/level_3_metrics_per_plate.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_feature.png b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_feature.png new file mode 100644 index 0000000..cdd1b1b Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_feature.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_plate.png b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_plate.png new file mode 100644 index 0000000..5080b20 Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4a/level_4a_metrics_per_plate.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_feature.png b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_feature.png new file mode 100644 index 0000000..f8ccdfc Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_feature.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_plate.png b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_plate.png new file mode 100644 index 0000000..b3b4742 Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/level_4b/level_4b_metrics_per_plate.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_feature.png b/comparison/figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_feature.png new file mode 100644 index 0000000..9626701 Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_feature.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_plate.png b/comparison/figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_plate.png new file mode 100644 index 0000000..9b490ef Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/pycytominer_select/pycytominer_select_metrics_per_plate.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/summary_metrics_full.png b/comparison/figures/2016_04_01_a549_48hr_batch1/summary_metrics_full.png new file mode 100644 index 0000000..66b3c37 Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/summary_metrics_full.png differ diff --git a/comparison/figures/2016_04_01_a549_48hr_batch1/summary_metrics_zoom.png b/comparison/figures/2016_04_01_a549_48hr_batch1/summary_metrics_zoom.png new file mode 100644 index 0000000..725159a Binary files /dev/null and b/comparison/figures/2016_04_01_a549_48hr_batch1/summary_metrics_zoom.png differ diff --git a/comparison/figures/pycytominer_select/pycytominer_select_metrics_per_feature.png b/comparison/figures/pycytominer_select/pycytominer_select_metrics_per_feature.png new file mode 100644 index 0000000..285ce3e Binary files /dev/null and b/comparison/figures/pycytominer_select/pycytominer_select_metrics_per_feature.png differ diff --git a/comparison/figures/pycytominer_select/pycytominer_select_metrics_per_plate.png b/comparison/figures/pycytominer_select/pycytominer_select_metrics_per_plate.png new file mode 100644 index 0000000..9b490ef Binary files /dev/null and b/comparison/figures/pycytominer_select/pycytominer_select_metrics_per_plate.png differ diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_4b_feature_select.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_4b_feature_select.tsv.gz new file mode 100644 index 0000000..9be6f65 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_4b_feature_select.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4306cc8fa2e238ec58edc5d19ad9b8117f7b16c9e2761c77b8f95f84e9497ad4 +size 56675 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_mean.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_mean.tsv.gz new file mode 100644 index 0000000..c4fb796 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_mean.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:526f48169994fbf5dc4eb08f357ae003647a26551a30b457edcfc5d19cb80d49 +size 925105 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_median.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_median.tsv.gz new file mode 100644 index 0000000..6b4ccf3 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_median.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b733b72feaec0e643a154e9b3292547dcee1b33e8607f7e3eae1d19f8ce4cf7f +size 225130 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_sum.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_sum.tsv.gz new file mode 100644 index 0000000..dac2a66 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_3_sum.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6981484ed39811ab33748c556ea89be13cc9d3b67ecaa9f8bdaca8a677496c6e +size 865492 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_mean.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_mean.tsv.gz new file mode 100644 index 0000000..f621671 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_mean.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:663973acb7213beeb938e05eb39845b633262d29bf123590225213e9fd5a3f57 +size 1411273 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_median.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_median.tsv.gz new file mode 100644 index 0000000..feaab3b --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_median.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56609f29caa853d8fbf515977e5bdba41383e0c116a5847073b25ebedb53f4aa +size 849176 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_sum.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_sum.tsv.gz new file mode 100644 index 0000000..3809c08 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4a_sum.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd727d0fa0c9a7058df44e9e3cb73d2c4bb32f13da146ba4f286584f4c5c8592 +size 1296786 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_mean.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_mean.tsv.gz new file mode 100644 index 0000000..383b35a --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_mean.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f9cbb39263dbf999b7f8fe5b92284e66dc55681d7afeaa7242e9f1e7ed6119 +size 283105 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_median.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_median.tsv.gz new file mode 100644 index 0000000..e8c37c4 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_median.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8e7e66733860fbd7308bfe951df3831b86c37eec5be2d2799ca40cdc8aea16c +size 188771 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_sum.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_sum.tsv.gz new file mode 100644 index 0000000..fd7cd8a --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_level_4b_sum.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fde194e4bb1b572d07f59cba435e8e83521bba33b74f4d49e146583456aeea08 +size 266179 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_metric_summary.tsv b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_metric_summary.tsv new file mode 100644 index 0000000..8057cbf --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_metric_summary.tsv @@ -0,0 +1,137 @@ + level_3_complete_mean_diff level_3_complete_median_diff level_3_complete_sum_diff level_4a_complete_mean_diff level_4a_complete_median_diff level_4a_complete_sum_diff level_4b_complete_mean_diff level_4b_complete_median_diff level_4b_complete_sum_diff +SQ00015196 0.0012715260007711505 0.0005133090297250861 870.5782499999849 0.004735695889471056 0.0009896796407185637 3036.9070599999986 0.002063713877688172 0.0012530205278592414 270.23095 +SQ00014820 0.0015456117235698255 0.000513864273696316 1058.2370699999994 0.02159712140021407 0.0013957676224611612 13882.975190000008 0.003080432657163741 0.0016866959064327453 404.5470599999998 +SQ00015058 0.0010691277867358458 0.0004912703309033278 732.0018600000051 0.006276179248805251 0.0010587694145758647 4034.428439999998 0.001824102845149254 0.0010069701492537249 234.65259 +SQ00015046 0.001878213451112343 0.0004995485137409911 1285.9601599999899 0.015458084643214697 0.0015091347305385464 9912.960520000717 0.0022832660651408445 0.0013278169014084512 311.25482999999997 +SQ00015210 0.0021961265248177267 0.0005296831183403665 1503.6263400000025 0.0037687650660721407 0.0014192865707434077 2413.9392499999994 0.003181075543879056 0.0017185103244837785 414.09968999999995 +SQ00015148 0.0012766176943120073 0.0005123836231071168 874.0643899999908 1.9937898328237538 0.0031669837935174062 1275515.0828099998 0.004930478866185897 0.0026645384615384625 492.25900999999993 +SQ00015096 0.0013758801294634596 0.0005254038137966483 942.0266000000058 0.2397033184523809 0.0012601547619047581 154637.4048 0.0027854626178644244 0.0017839143730886769 349.76497000000006 +SQ00015099 0.001231310306248834 0.0005453617498599097 843.0436900000017 0.034495125031001994 0.0014895714285714278 22253.49506 0.004205929474043716 0.0025538688524590148 492.5984600000001 +SQ00015202 0.001625063417227535 0.0005040521592820982 1112.635420000011 0.0035424318261347734 0.0011884823035392888 2267.6098 0.0027356653959588347 0.0013503162650602388 348.7645099999999 +SQ00015048 0.0012326824523275633 0.0005029444756031391 843.9831600000175 0.0035911094061876203 0.000887898203592816 2302.9066399999965 0.0012913803619714842 0.000818982300884953 168.1067299999999 +SQ00015045 0.0013851848768461192 0.00048674144699965887 948.3972999999862 0.026052929741980483 0.0017166019127316248 16737.235760000003 0.0039760329112787365 0.00214785919540231 531.32523 +SQ00015194 0.0027148423624742918 0.0005041306786317691 1858.7765499999982 0.009132377120758482 0.002363119760479046 5856.410799999999 0.004482179357177973 0.002363171091445435 583.4721799999998 +SQ00015198 0.0017585285801084269 0.0005101486259110853 1204.015279999997 0.0025213971315065082 0.001002555555555556 1612.0804700000012 0.0023001535007331378 0.00124348973607038 301.19129999999996 +SQ00015143 0.0009969500724434643 0.0005217975322489799 682.5838000000115 0.00655177165293448 0.0010268497624703074 4236.742449999999 0.0020215320312499995 0.0012809833333333352 232.8804899999999 +SQ00015229 0.0014634628552066006 0.0004394279304543887 1001.9920400000137 0.019640607349881094 0.001550246730083232 12685.6326 0.0020165580627327755 0.0011092039106145213 277.2202700000001 +SQ00015230 0.001483528828402524 0.00044415872125645826 1015.7306500000127 0.00402085056018243 0.0009043783462224886 2595.475119999999 0.0017466154112475913 0.0009593930635838204 232.06231 +SQ00015118 2.398947613423607 1.9175372696050366 1609329.2085700002 1210053342540069.5 591997962747380.9 7.982867107137944e+20 0.481616140333851 0.24354905279503103 59550.872520000004 +SQ00015201 0.0013195445118246477 0.0005256113292206437 903.4551800000054 0.0053405285459132675 0.002087520983213424 3420.6726199999994 0.0032105715854632596 0.002049009584664539 385.88502000000017 +SQ00014812 0.0015590461710132803 0.0004856533931577827 1067.4352600000045 0.004378956496563059 0.001439949193066351 2813.181779999999 0.003089578918223181 0.001475459770114947 412.86661000000015 +SQ00015165 0.003378916503084679 0.0005208524957936498 2313.449519999993 0.12715468519211573 0.0023551497005987964 81541.75652 0.004315989661772089 0.002254472891566269 550.2368899999999 +SQ00015232 0.0015237435735651057 0.0004378631519907539 1043.264559999968 0.007766265037710186 0.000921427299703264 5025.084129999999 0.0015751502347417835 0.0009106338028169033 214.72447999999991 +SQ00015222 0.001568692848546453 0.00046895120583254584 1074.040069999997 0.003960547124351688 0.0008435248354278912 2541.3405100000014 0.0013896062011718741 0.0007257656250000136 170.7548099999999 +SQ00015122 2.5005898373849216 1.9483173440183177 1677515.6912299995 1563074851068513.5 580403452553685.6 1.0341803398621628e+21 0.586990959844393 0.27940189814814814 73031.06726000001 +SQ00015145 0.0010780034381426208 0.000490443073471765 738.0787699999844 0.014670394445065594 0.0018607841383422759 9447.26457 0.0031521975295608117 0.0020453885135135134 358.2913800000001 +SQ00015216 0.0016188657926715134 0.0004596382501406791 1108.3920799999905 0.004057166510728543 0.001880428143712576 2601.77974 0.0025650261210619914 0.0014876524390243864 323.0701699999999 +SQ00014813 0.0015143716845438303 0.00048162927650024633 1036.8478899999932 0.011523371390634349 0.0019310682226211793 7394.1325799999995 0.0040584862351190475 0.002028542857142858 545.4605500000001 +SQ00015112 0.0017960292957795798 0.0004609842961300159 1229.6909699999965 0.0017665521395046934 0.0008360724985020961 1132.1762 0.0017071874999999993 0.000986264880952383 220.26815999999988 +SQ00015131 0.0033534998802346332 0.0005234913067865792 2296.047470000007 0.011151607519336327 0.001530904191616764 7151.302870000001 0.0031806552844101128 0.0016398174157303447 434.8083000000001 +SQ00015123 2.6436054097053283 2.1628749427590157 1773457.40189 1829231614208508.0 622330594405594.5 1.205361196793011e+21 0.5365898652102624 0.2709666975308642 66760.36467 +SQ00015121 2.6068795934995705 2.1299559101316548 1748819.9615399996 843970041847627.8 53590512223515.96 5.567771642473821e+20 0.5200223475150603 0.25115445783132534 66296.60904000001 +SQ00015200 0.0018350055208917776 0.0005217694896240401 1256.3769000000152 0.004052840352717821 0.0016554106714628146 2595.8928799999967 0.003471873229461757 0.001877974504249294 470.6193600000001 +SQ00015059 0.0011658226712937154 0.0005085109366236412 798.2061400000107 0.005514113818778652 0.0011983612941881669 3533.973489999962 0.0017195065362370161 0.0010520821529745076 233.08255000000005 +SQ00015168 0.003961003078846499 0.0005327397644421696 2711.98789999999 0.13260106373904165 0.0015009742976688615 85187.16658 0.004061326022256729 0.002042515527950318 502.17484000000013 +SQ00015171 0.0037599092996354385 0.0005033146382503167 2574.3046199999953 0.005247999033183635 0.0014515449101796375 3365.4368200000017 0.002955577000123274 0.0013176035502958556 383.61024999999995 +SQ00015128 0.0021530754288184967 0.0005379949523275134 1474.1504600000178 0.007899329384123178 0.0017950419916016864 5056.581920000002 0.004192098117795388 0.002170590778097993 558.5886899999998 +SQ00015146 0.001272477638927824 0.0004967947279866301 871.229809999991 0.007464244063986345 0.001054417360285374 4821.065670000013 0.0022508387524084773 0.001328656069364162 299.0554399999999 +SQ00015043 0.001518031802089158 0.0005001486259114169 1039.353869999988 0.004689921470045849 0.0013997398325358821 3011.154699999997 0.0028728125763685243 0.001722492668621703 376.17757000000006 +SQ00015197 0.001459006794494282 0.0005061637689286465 998.9410999999891 0.005913510992588142 0.001971799879807697 3778.5916000000007 0.0032403194905358903 0.001783480825958706 421.8118300000001 +SQ00015219 0.0018001934356889114 0.0004802131239478832 1232.5420399999985 0.0018063489738805968 0.00085632537313433 1161.84366 0.0013478653583829368 0.0007869791666666679 173.90698000000003 +SQ00015050 0.0014747626892877145 0.0005139652271454746 1009.728719999998 0.0025075977537697236 0.0010625763930497299 1607.1093700000006 0.0021960081417624518 0.0012747126436781614 293.4569599999999 +SQ00015097 0.001101104309800886 0.0005330734716767967 753.8952899999922 3.624757053595731 0.0010657749406175767 2343970.89725 0.0021973783879449846 0.0013788834951456311 260.7321300000001 +SQ00015130 0.002783009733127694 0.0005339399887829803 1905.4488400000043 0.008791401010479044 0.0023566796407185667 5637.74964 0.004944763713685015 0.0022378899082568793 620.90409 +SQ00015195 0.0015552645792437838 0.0005031772293887227 1064.84611 0.005439578071917464 0.0016095863309352528 3484.115029999999 0.004029225439602447 0.001952110091743117 505.94177999999994 +SQ00015056 0.0014980155023134936 0.0004961581604037941 1025.6492699999842 0.01420044450966507 0.0012436612999403404 9144.631849999996 0.0022007160285285295 0.0013373573573573553 281.4099600000001 +SQ00015136 0.00144296384254068 0.0005204122265842067 987.9569400000127 0.009722022590026674 0.0019557557794902185 6298.004009999999 0.004350136561872489 0.0023984638554216866 554.5902099999998 +SQ00015108 0.0016475509879182884 0.00044819125070122244 1128.0320299999903 0.003853042024253731 0.001415259701492537 2478.27663 0.0033805112901138723 0.001527111801242236 417.99346000000014 +SQ00015110 0.001500341156057225 0.0004757851934941774 1027.2415800000122 0.0022361142057369687 0.0011469952067106085 1433.1166500000004 0.0023431316853233827 0.001353537313432838 301.42046000000005 +SQ00015215 0.001267448617732298 0.00046117779024099336 867.7865800000079 0.0030345339912280695 0.0011338636363636351 1948.3164799999995 0.002201454249876725 0.0013010207100591679 285.7311499999999 +SQ00015163 0.002257328793933472 0.0005134632641615177 1545.5298200000182 0.03973857446391212 0.001280848774656306 25529.331869999998 0.0024537940517912775 0.0012729439252336448 302.46447000000006 +SQ00015221 0.0014929993339876694 0.0004898850252386068 1022.2148400000057 0.03823876844814965 0.0021783908045979747 24272.13474999989 0.007809417801155109 0.004900693069306933 908.6413799999991 +SQ00015135 0.0014567635451720115 0.0005173527762200906 997.4052100000114 0.039326581961412414 0.00151376638855781 25340.16174000001 0.004450625159764826 0.0021038803680981637 557.14706 +SQ00015217 0.0026816040965601104 0.0004742624789679706 1836.0192400000046 0.0031118239932843997 0.0014355452366686607 1994.3555499999984 0.0026385358621987946 0.0015173493975903613 336.3816599999999 +SQ00015102 0.00110734141311461 0.0005392652832301836 758.165660000006 0.004193471302737877 0.0012757989228007224 2690.799569999997 0.0025585075604838718 0.0014655967741935456 304.56474000000014 +SQ00015153 0.0010207391568517598 0.0005263965227145501 698.8715200000081 0.011038114660379681 0.0011019497041420102 7163.294889999997 0.0028345270899893505 0.0017268370607028706 340.68748000000005 +SQ00015220 0.0028510666129182966 0.000490165451486403 1952.045479999996 0.0029273324465427654 0.0010922092326139065 1874.99156 0.0024824090520516704 0.000989027355623095 313.61762999999985 +SQ00015166 0.002885473219293326 0.0005193606281545238 1975.6027200000005 0.011274285160916966 0.002086648745519716 7247.290890000001 0.004463005863273455 0.002357544910179641 572.4072800000001 +SQ00015119 2.437633192526474 2.006445062965083 1635281.35194 1076604850525401.6 14230232558139.793 7.110759716750173e+20 0.4839949738779578 0.25194032407407413 60216.718669999995 +SQ00015167 0.0032140036396990325 0.0005331716208633228 2200.5383000000156 0.009274891480052928 0.00135021869382864 5944.240850000002 0.002847876222534835 0.001291141479099679 340.10477000000003 +SQ00015147 0.0011403493789727056 0.000518572630398382 780.7652900000003 0.0036169857200950978 0.0010708828828828844 2312.5559900000017 0.0024356020169183446 0.0013699999999999943 278.71081000000004 +SQ00015152 0.0013831859927089171 0.000522164890633879 947.0287199999998 167.96349512677853 0.10827676400476757 108227614.01193 0.002880868432971014 0.0016953344481605349 330.76978999999994 +SQ00015120 2.641704199788924 2.092401196336577 1772181.97902 1388963039039770.2 598236046511628.0 9.173823080249875e+20 0.5215406433546687 0.26287709337349396 66490.17353999999 +SQ00015125 2.3277523351191327 1.888570134516313 1561567.9985099998 983166032800412.1 37483965014577.62 6.474738225610394e+20 0.6762319092987804 0.3375472628726287 95819.35662 +SQ00015129 0.001448758368970826 0.0005277537857544162 991.9242899999933 0.007901062578203203 0.0025366156156156152 5051.623369999999 0.003478485768312103 0.0020404936305732455 419.4219000000001 +SQ00015205 0.0016645285333707336 0.0005358749298934318 1139.656080000007 0.0051615183682013595 0.0016787912417516517 3304.032429999999 0.003068947995580808 0.0016980454545454564 388.89708999999993 +SQ00015169 0.0035124586517339693 0.0005405468311830972 2404.88209 0.008559542334882094 0.0021155065947242213 5482.489580000001 0.004889929498792272 0.0022507536231884035 647.8178600000001 +SQ00015141 0.0010623487450925554 0.0005345709478407484 727.3604400000102 0.004561661369012361 0.001424807806031933 2962.087439999963 0.0031013221656217326 0.0017042319749216329 379.89955999999984 +SQ00015109 0.0011704018420499109 0.0005040185081324302 801.3413699999967 0.0019452300062189056 0.0009275134328358228 1251.1719400000002 0.0019171119979016784 0.0011676258992805773 204.65553999999992 +SQ00015127 0.0014254499818891543 0.0005135109366236741 975.9656900000111 0.15044360826070213 0.0017755482717520844 96938.63986999993 0.0022315830633892284 0.001278948170731706 281.0723500000001 +SQ00015158 0.0026730761298841012 0.0005268255748739234 1830.1803800000075 0.009146585528452243 0.0022719154676259005 5858.497790000002 0.001817192740091463 0.0011081097560975616 228.87905999999995 +SQ00015218 0.0013095449207795842 0.0004857515423444846 896.6087399999994 0.0038157806757796986 0.001666087604290824 2458.70591 0.0021736852153629873 0.0012732361963190188 272.1106100000002 +SQ00015054 0.0013537376145073784 0.0004797195737523778 926.8662399999957 0.002595699062313209 0.0011539509862522439 1667.5601399999998 0.002937032214506173 0.0015565586419753119 365.41380000000004 +SQ00015173 0.0026779107660310393 0.0005071031968591827 1833.490520000004 0.003425079357649291 0.001496524865188733 2195.11966 0.002847108936588103 0.001690218855218858 324.70708 +SQ00015144 0.0012452823833894084 0.0005188137969719874 852.6099799999929 0.01136386016320475 0.0010201543026706235 7352.872080000003 0.0016550467704849496 0.0011054682274247486 190.02584999999996 +SQ00015106 0.001614619774139997 0.00047754346606792186 1105.48494999998 0.0020761682438160778 0.0008177528426092202 1332.2024199999996 0.0018372743055555553 0.0008033333333333372 222.23669999999998 +SQ00015133 0.0014856385977519255 0.0005089007291083136 1017.1751500000063 0.0040281383571071075 0.0016175285285285293 2575.4305400000003 0.0029962470371756485 0.0016036377245508987 384.28666 +SQ00015100 0.00117471841991496 0.0005248429613008422 804.2968100000155 0.01685362152154398 0.001223629563135848 10814.3622 0.002435004742155351 0.0014470679012345729 302.9535500000001 +SQ00015111 0.0035977555822349987 0.0004580931015143787 2463.282510000001 0.0036118867195292243 0.0012196918013165795 2317.6176800000003 0.002475937649235913 0.001368911174785108 331.8152600000001 +SQ00015057 0.0016461962954524175 0.000509265283230684 1127.1045099999976 0.003829396817854304 0.0010174627310673833 2466.0090099999998 0.001920125417284867 0.0011356379821958408 248.4795900000001 +SQ00014814 0.0012748639640586922 0.0004984660684236244 872.863659999993 0.07705515379059577 0.0017451583980872649 49502.69656000001 0.0035970209628222835 0.0019139640883978 500.0146899999999 +SQ00015211 0.0013482934456206753 0.0005323079080202021 923.1387699999988 0.003277471818136373 0.001396262747450508 2098.00148 0.0029812822745901657 0.001574278688524584 349.16778000000016 +SQ00015160 0.0019215868182137009 0.000513968031408031 1315.656690000011 0.00359516435289269 0.0011403657074340536 2302.745910000003 0.0036440520669032603 0.0014315141955835954 443.58317000000005 +SQ00015151 0.0016066023292905167 0.0005236707795849616 1099.9956299999965 0.013994706251235665 0.0017956257413997607 9060.508699999997 0.0033311084036709536 0.0020227331189710536 397.8142899999999 +SQ00015051 0.0011007548578005095 0.0004871312394836116 753.6560299999906 0.01673125311061928 0.001289768907563025 10703.718790000017 0.0022253427174441206 0.0013314431486880403 293.10434 +SQ00014818 0.0017215515750607484 0.000508112731351718 1178.6981599999926 0.0051141783432122915 0.0018494537815125977 3271.7649100000044 0.002638382161458335 0.0015333720930232647 348.5197300000002 +SQ00014816 0.0017365925873995137 0.0005004879416714097 1188.99632 0.008944409649320131 0.0015205878824235458 5725.567059999998 0.0026745082859848486 0.0016826060606060591 338.91369 +SQ00015138 0.0011351337428724855 0.0005228435221537655 777.1942899999904 0.014507487705982638 0.0012649435866983355 9381.35396999991 0.00445756593714927 0.0019899831649831602 508.3764799999998 +SQ00015047 0.0021002543115535765 0.0005109394279302222 1437.9853200000102 0.013559790964103719 0.0013403567146282995 8685.208830000001 0.002538194545675413 0.0013996938775510286 334.31067999999993 +SQ00015116 2.346389514882657 1.9643360446479676 1574070.7132800003 711905596553877.4 0.23538751015670342 4.710195236591349e+20 0.4534518356861326 0.24468752895752896 45098.50577 +SQ00014815 0.001422231389628901 0.00048772293886709014 973.7620099999988 0.009192985918787429 0.002450032934131713 5895.278010000002 0.0026897377285137695 0.0015214814814814785 362.53360999999995 +SQ00015103 0.0015887245279491526 0.0005380987100394179 1087.755200000002 0.004255153760147325 0.0015772760072158766 2717.3071499999996 0.003469495801978818 0.002029163879598666 398.35362999999995 +SQ00015105 0.001961583619601804 0.0004809702748176708 1343.0413800000063 0.0030830915089517263 0.0012741681627767806 1978.3088300000006 0.0023574186724649423 0.0010665210355987039 279.7218700000002 +SQ00015117 2.47319027119407 2.0127919061247854 1659134.7470499994 863825262899835.6 0.2438287724898433 5.71534436342944e+20 0.5015747441123188 0.2506429347826087 62018.71396 +SQ00015162 0.0035121779771920014 0.0005223079080204567 2404.6899200000016 0.004630910442301921 0.0012406362545018025 2962.59717 0.0028161748263888908 0.001507250000000006 324.4233400000002 +SQ00015154 0.0030301723452981753 0.0005211076836792292 2074.6741599999923 0.30682793633775834 0.0014360173031026265 197469.55057999986 0.0032476573964884702 0.0017155974842767345 396.57794 +SQ00015150 0.0010593213246634801 0.0005287212563095863 725.2876499999943 0.052850303009190525 0.0013959155766943882 34135.376510000046 0.0020263856051260967 0.0012379111842105344 236.55215000000007 +SQ00015214 0.0014018609056599442 0.0004497728547392149 959.8149100000053 0.0016401315338073852 0.0007819640718562909 1051.78355 0.0013522139350453162 0.0008527341389728135 171.8717999999999 +SQ00015204 0.0015124849270891753 0.0005173387549078808 1035.5560799999998 0.0037254595119297716 0.0014583823529411755 2383.34037 0.002758042095200422 0.0014889240506329082 334.6718599999999 +SQ00015231 0.0018274190269209273 0.0004436427369604036 1251.182640000005 0.013505998042629917 0.0013816716064018958 8749.293580000003 0.0017160481579912026 0.001065733137829916 224.70621000000006 +SQ00015164 0.0037527434304309468 0.0005248990465506714 2569.3983500000168 0.058852832662799406 0.0016368023952095826 37741.14453000001 0.003927352321708464 0.0019082601880877827 481.08495 +SQ00015134 0.0012829915200271052 0.0005134856982613849 878.4283699999982 0.023073039328483785 0.0011873337292161502 14920.31932000001 0.0035605967881944447 0.0017636265432098813 442.99521 +SQ00015156 0.0027464566244858797 0.00053410544026913 1880.4219499999963 0.006377245207208561 0.0016651859628074382 4082.2532200000014 0.002528601969130676 0.001575531561461793 292.26593 +SQ00015137 0.0014676495022434121 0.0005212535053279436 1004.8585200000016 0.14085424738806002 0.0017701552238805973 90597.45192000021 0.004249442113554526 0.00213538580246914 528.6985899999999 +SQ00014819 0.0012304693342213764 0.0005065367358386254 842.4679000000183 0.010358177442636462 0.0016847360527894397 6630.5594099999935 0.002170544387437812 0.0012221044776119453 279.2188300000001 +SQ00015140 0.0012867888419564276 0.0005218760515986525 881.0282899999912 0.006280597318157093 0.0010685739750445646 4058.974190000021 0.0026679234118852464 0.001509704918032785 312.46719 +SQ00015101 0.001242639117708896 0.0005344643858665314 850.8002099999851 0.006342757940216308 0.0011577362440191412 4072.355050000002 0.002692820197851152 0.001447908805031444 328.82565999999986 +SQ00015124 0.0034689000572536884 0.0005248625911384448 2375.0587399999977 0.0124536076181592 0.0017361402985074652 8010.160419999998 0.0033247237695115802 0.0016620543806646492 422.5856899999999 +SQ00015052 0.001741693599270896 0.0004930846887268809 1192.488840000003 0.003980645845815857 0.0015305212702216894 2551.18 0.0033824296171171176 0.002038153153153156 432.51804 +SQ00015157 0.003609694130912305 0.0005225098149188747 2471.4564999999893 0.004362785755770386 0.001248294364508391 2794.4166300000006 0.0026427296046046054 0.001142522522522524 337.9311200000001 +SQ00015207 0.0016005347413018236 0.000532745372966518 1092.3033499999817 0.01553947491466423 0.004449240240240244 9909.12873 0.004158558273636136 0.00202200000000001 549.43412 +SQ00015044 0.001652223122896783 0.000498968031407988 1131.2309099999861 0.017922200684274758 0.001097513448894209 11513.795230000003 0.0018001348346466095 0.0010560888252149003 241.24687000000003 +SQ00015208 0.0020344489478173575 0.0005233286595621695 1392.9302300000056 0.011538706550802138 0.0027720291146761757 7457.142959999997 0.0076128583111026394 0.004522042682926835 958.8547299999998 +SQ00015212 0.0021668955207749044 0.0005326219854172978 1483.6126899999954 0.002845571183678057 0.0012404226618704997 1822.6224899999997 0.003147217844848054 0.0018111680911680912 424.19461 +SQ00015049 0.0015794952327537939 0.0005077257431295036 1081.4361600000054 0.020372382031874504 0.0013022571942446044 13048.755160000004 0.0024774849519710583 0.0014413173652694595 317.7523100000001 +SQ00015055 0.001270071494087694 0.0004980257992149535 869.5823900000096 0.001862087227123206 0.0008604904306220085 1195.5493800000004 0.0014906431125621881 0.0008530895522388042 191.75632999999988 +SQ00014817 0.0014512084910731178 0.0005113292204154049 993.6018200000136 0.015037030516212042 0.0010792236211030896 9631.39849000001 0.0021400397711167814 0.0012214795918367312 241.60193000000015 +SQ00015159 0.0027104542467049795 0.0005211609646664438 1855.7721299999912 0.2640404470408189 0.0014446169958108935 169425.24941000002 0.0024782552942794276 0.001321353135313532 288.34996 +SQ00015223 0.0013446226368246383 0.00046854458777331005 920.6254699999988 0.001308722398952096 0.0006629371257484939 839.2575000000002 0.0012656274338006229 0.0007359190031152652 156.00629999999998 +SQ00015149 0.0013004168419331026 0.0005122462142454247 890.3590000000213 0.03662006987742889 0.0015438070913461486 23399.345770000004 0.0027469119706284135 0.001671672131147538 321.71832999999987 +SQ00015053 0.001105937295522528 0.0004917694896243731 757.2043000000003 0.003744108290968896 0.001138014354066988 2403.8972399999975 0.002491194632132133 0.0014096096096096128 318.5540400000002 +SQ00015098 0.0011599304338427814 0.0005389568143577642 794.1718900000049 0.011680774092801905 0.0023094229625223077 7539.986400000001 0.0036726038338658136 0.002319536741214053 441.4175999999999 +SQ00015132 0.002812145377640673 0.0005259927089178141 1925.3971999999944 0.004747950955904448 0.0010372055288461548 3033.8267100000003 0.0034445148070245736 0.001303413461538464 412.6804300000001 +SQ00015142 0.0013087688995606628 0.0005316124509258565 896.077419999998 0.01879798339941154 0.0017082764811490116 12061.989220000005 0.002721863524011298 0.0018090677966101684 308.3326999999999 +SQ00015170 0.0021869534609273078 0.0004888726864836227 1497.3458000000219 0.004554862480087614 0.0015164038231780187 2927.9384800000003 0.0029770607542705446 0.0017186426592797738 412.69207000000006 +SQ00015199 0.0034452033528463545 0.0005086960179474365 2358.8342700000194 0.019226880658513412 0.0022668487394957955 12300.281540000002 0.005622170978096677 0.002709743202416907 714.60042 +SQ00015209 0.001653205286618985 0.0005368143578241129 1131.903369999994 0.004198471534034034 0.0016233033033033048 2684.3347599999997 0.004484837096497253 0.001990412087912093 626.8725900000001 +SQ00015041 0.0015327240050710563 0.0005183567021875849 1049.4132100000102 0.011819244528775722 0.0016276514251781485 7642.985389999994 0.003224037160054892 0.0018605838323353303 413.5021100000002 +SQ00015139 0.0011615148713544532 0.000526859226023487 795.256709999996 0.005325602709444768 0.0013164374629519857 3449.968039999996 0.0034878832904799576 0.001996534810126585 423.23371 +SQ00015107 0.0023498405513881168 0.000475600112170632 1608.8700300000046 0.004298348156331137 0.001579919113241462 2754.79414 0.0039882011023462775 0.0017435436893203844 473.2239899999999 +SQ00015224 0.0014715406501215175 0.0004583538979251874 1007.5226799999996 0.0024740140969737624 0.0009615205724508038 1593.1859100000001 0.0016026353704388554 0.0009807692307692302 208.00924999999995 +SQ00015233 0.0012596775098149245 0.0004603449242845452 862.4659200000038 0.005138198291567519 0.00186714753123141 3316.72755 0.0034017211455242345 0.0021461869436201777 440.2099300000001 +SQ00015203 0.0015521687464946903 0.0005106001121701252 1062.7264800000125 182244772909.16693 0.002816005402160867 1.165900000000021e+17 0.004503454071969698 0.0026144428152492685 589.7002900000002 +SQ00015206 0.0016914169412507185 0.0005142596747053426 1158.0658200000116 0.004321284586832633 0.0016917216556688649 2766.17526 0.004533673662935322 0.002042641791044786 583.2117799999997 +SQ00015126 2.3243257579213172 1.8769944504865483 1559269.2860499998 1194124834090480.0 1005418863503.5334 7.827344992483006e+20 0.5886261098182624 0.29836882978723406 74364.66821 +SQ00015155 0.003447889091418985 0.0005162114413911033 2360.673120000019 0.005395299728369217 0.0012569736842105287 3464.041399999999 0.002399451632165605 0.0014051114649681513 289.31628 +SQ00015042 0.0016137514897644326 0.0005278210880536908 1104.8904599999937 0.01366085719708284 0.0016702688172043026 8781.417580000001 0.0025367201791158533 0.0014488871951219527 319.50498 +SQ00015172 0.0032461697864086952 0.0004919040942231787 2222.561560000014 0.0037742537532474032 0.0011115407673860948 2417.454820000001 0.0030656856377180245 0.0015265552325581496 404.9648100000001 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_mean.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_mean.tsv.gz new file mode 100644 index 0000000..becb155 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_mean.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9edb6c6bb3149f1e1dd51e59b9f9ea7b008981e1e4b5c73ee250c5690be2c140 +size 404772 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_median.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_median.tsv.gz new file mode 100644 index 0000000..7197e64 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_median.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33c978c26e06a19b3fe16fa48811fbb7da91c7b24bf3931377378205048903b0 +size 274165 diff --git a/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_sum.tsv.gz b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_sum.tsv.gz new file mode 100644 index 0000000..97f5fd0 --- /dev/null +++ b/comparison/results/2016_04_01_a549_48hr_batch1/comparison_result_pycytominer_select_sum.tsv.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccdf8b9c403525c1ebc17c16756e4ff0a905f80a97ba20f2e89b7444ad2d98bf +size 384922 diff --git a/comparison/scripts/nbconverted/0.get-cytominer-tool-differences.py b/comparison/scripts/nbconverted/0.get-cytominer-tool-differences.py new file mode 100644 index 0000000..4b85e21 --- /dev/null +++ b/comparison/scripts/nbconverted/0.get-cytominer-tool-differences.py @@ -0,0 +1,554 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Comparing Pycytominer and Cytominer Processing +# +# We have previously processed all of the Drug Repurposing Hub Cell Painting Data using [cytominer](https://github.com/cytomining/cytominer). +# Cytominer is an R based image-based profiling tool. +# In this repo, we reprocess the data with [pycytominer](https://github.com/cytomining/pycytominer). +# As the name connotes, pycytominer is a python based image-based profiling tool. +# +# We include all processing scripts and present the pycytominer profiles in this open source repository. +# The repository represents a unified bioinformatics pipeline applied to all Cell Painting Drug Repurposing Profiles. In this notebook, we compare the resulting output data between the processing pipelines for the two tools: Cytominer and pycytominer. +# We output several metrics comparing the two approaches +# +# ## Metrics +# +# In all cases, we calculate the element-wise absolute value difference between pycytominer and cytominer profiles. +# +# 1. Mean, median, and sum of element-wise differencs +# 2. Per feature mean, median, and sum of element-wise differences +# 3. Feature selection procedure differences per feature (level 4b only) +# +# In addition, we confirm alignment of the following metadata columns: +# +# * Well +# * Broad Sample Name +# * Plate +# +# Other metadata columns are not expected to be aligned. +# For example, we have [updated MOA and Target information](https://github.com/broadinstitute/lincs-cell-painting/issues/11) in the pycytominer version. +# +# ## Data Levels +# +# Image-based profiling results in the following output data levels. +# We do not compare all data levels in this notebook. +# +# | Data | Level | Comparison | +# | :---- | :---- | :-------- | +# | Images | Level 1 | NA | +# | SQLite File (single cell profiles ) | Level 2 | NA | +# | Aggregated Profiles with Well Information (metadata) | Level 3 | Yes | +# | Normalized Aggregated Profiles with Metadata | Level 4a | Yes | +# | Normalized and Feature Selected Aggregated Profiles with Metadata | Level 4b | Yes | +# | Perturbation Profiles created Summarizing Replicates | Level 5 | No | + +# In[1]: + + +get_ipython().run_line_magic('load_ext', 'nb_black') + + +# In[2]: + + +import os +import pathlib +import numpy as np +import pandas as pd + +from util import build_file_dictionary, load_data, build_filenames + + +# In[3]: + + +def get_metrics(pycyto_df, cyto_df, features): + # Align features + pycyto_df = pycyto_df.reindex(features, axis="columns") + cyto_df = cyto_df.reindex(features, axis="columns") + + # Assess difference + abs_diff = pycyto_df.subtract(cyto_df).abs() + mean_diff = abs_diff.mean() + median_diff = abs_diff.median() + sum_diff = abs_diff.sum() + + complete_mean_diff = mean_diff.replace([np.inf, -np.inf], np.nan).dropna().mean() + complete_median_diff = ( + median_diff.replace([np.inf, -np.inf], np.nan).dropna().mean() + ) + complete_sum_diff = sum_diff.replace([np.inf, -np.inf], np.nan).dropna().sum() + + return ( + mean_diff, + complete_mean_diff, + median_diff, + complete_median_diff, + sum_diff, + complete_sum_diff, + ) + + +def find_feature_diff(pycyto_df, cyto_df, plate, all_features): + all_features_df = pd.DataFrame( + ["missing"] * len(all_features), index=all_features, columns=[plate] + ) + pycyto_features = set(pycyto_df.columns.tolist()) + cyto_features = set(cyto_df.columns.tolist()) + present_both = pycyto_features.intersection(cyto_features) + + all_features_df.loc[ + all_features_df.index.isin(pycyto_features), plate + ] = "only_pycytominer" + all_features_df.loc[ + all_features_df.index.isin(cyto_features), plate + ] = "only_cytominer" + all_features_df.loc[ + all_features_df.index.isin(present_both), plate + ] = "present_both" + + return all_features_df + + +# In[4]: + + +# Set batch name +project = "2015_10_05_DrugRepurposing_AravindSubramanian_GolubLab_Broad" +batch = "2016_04_01_a549_48hr_batch1" + +# Pycytominer plates are saved with 5 floating point decimals +round_decimals = 5 + +# Create the output directory +output_dir = pathlib.Path("results", batch) +output_dir.mkdir(parents=True, exist_ok=True) + + +# In[5]: + + +# Set input directories +# Note, pycytominer profiles are processed and exist in this repository +pycytominer_dir = pathlib.Path("../profiles/backend/", batch) + +# Note, cytominer profiles were processed separately and exist in many different locations. +# This location represents the exact files that were previously profiled using cytominer. +# The files were deposited on the Imaging Platform AWS S3 Bucket and downloaded locally. +# To reproduce the analysis, update the appropriate cytominer path. +home_dir = pycytominer_dir.home() +cytominer_dir = pathlib.Path( + f"{home_dir}/work/projects/{project}/workspace/backend/{batch}/" +) + + +# In[6]: + + +pycytominer_plate_files = build_file_dictionary(pycytominer_dir, tool="pycytominer") +cytominer_plate_files = build_file_dictionary(cytominer_dir, tool="cytominer") + + +# In[7]: + + +pycytominer_plates = set(sorted(pycytominer_plate_files.keys())) +cytominer_plates = set(sorted(cytominer_plate_files.keys())) + +assert ( + cytominer_plates == pycytominer_plates +), "Stop, not every plate is measured using both tools" + +print(len(pycytominer_plates)) + + +# In[8]: + + +level_3_mean_diff = [] +level_3_completemean_diff = {} +level_3_median_diff = [] +level_3_completemedian_diff = {} +level_3_sum_diff = [] +level_3_completesum_diff = {} + +level_4a_mean_diff = [] +level_4a_completemean_diff = {} +level_4a_median_diff = [] +level_4a_completemedian_diff = {} +level_4a_sum_diff = [] +level_4a_completesum_diff = {} + +level_4b_mean_diff = [] +level_4b_completemean_diff = {} +level_4b_sum_diff = [] +level_4b_median_diff = [] +level_4b_completemedian_diff = {} +level_4b_completesum_diff = {} +level_4b_feature_select = [] + +test_pycytominer_select_mean_diff = [] +test_pycytominer_select_completemean_diff = {} +test_pycytominer_select_sum_diff = [] +test_pycytominer_select_median_diff = [] +test_pycytominer_select_completemedian_diff = {} +test_pycytominer_select_completesum_diff = {} +test_pycytominer_select_feature_select = [] + +# Calculate metrics per plate +for plate in list(cytominer_plates): + # Calculate level 3 metrics + pycyto_df, cyto_df = load_data( + plate, + pycytominer_plate_files, + cytominer_plate_files, + level="level_3", + round_decimals=round_decimals, + ) + # Define features (note that the features were checked and aligned in load_data) + features = pycyto_df.columns.tolist() + # Get differences + ( + mean_diff, + complete_mean_diff, + median_diff, + complete_median_diff, + sum_diff, + complete_sum_diff, + ) = get_metrics(pycyto_df, cyto_df, features) + # Store results + level_3_mean_diff.append(mean_diff) + level_3_completemean_diff[plate] = complete_mean_diff + level_3_median_diff.append(median_diff) + level_3_completemedian_diff[plate] = complete_median_diff + level_3_sum_diff.append(sum_diff) + level_3_completesum_diff[plate] = complete_sum_diff + + # Calculate level 4a metrics + pycyto_df, cyto_df = load_data( + plate, + pycytominer_plate_files, + cytominer_plate_files, + level="level_4a", + round_decimals=round_decimals, + ) + # Get differences + ( + mean_diff, + complete_mean_diff, + median_diff, + complete_median_diff, + sum_diff, + complete_sum_diff, + ) = get_metrics(pycyto_df, cyto_df, features) + # Store results + level_4a_mean_diff.append(mean_diff) + level_4a_completemean_diff[plate] = complete_mean_diff + level_4a_median_diff.append(median_diff) + level_4a_completemedian_diff[plate] = complete_median_diff + level_4a_sum_diff.append(sum_diff) + level_4a_completesum_diff[plate] = complete_sum_diff + + # Calculate level 4b metrics + pycyto_df, cyto_df = load_data( + plate, + pycytominer_plate_files, + cytominer_plate_files, + level="level_4b", + round_decimals=round_decimals, + ) + # Determine feature selection differences + feature_select_df = find_feature_diff(pycyto_df, cyto_df, plate, features) + features_present_in_both = feature_select_df.loc[ + feature_select_df.loc[:, plate] == "present_both", plate + ].index.tolist() + # Get differences + ( + mean_diff, + complete_mean_diff, + median_diff, + complete_median_diff, + sum_diff, + complete_sum_diff, + ) = get_metrics(pycyto_df, cyto_df, features_present_in_both) + # Store results + level_4b_mean_diff.append(mean_diff) + level_4b_completemean_diff[plate] = complete_mean_diff + level_4b_median_diff.append(median_diff) + level_4b_completemedian_diff[plate] = complete_median_diff + level_4b_sum_diff.append(sum_diff) + level_4b_completesum_diff[plate] = complete_sum_diff + level_4b_feature_select.append(feature_select_df) + + # Test pycytominer feature selection + pycyto_df, cyto_df = load_data( + plate, + pycytominer_plate_files, + cytominer_plate_files, + level="pycytominer_select", + round_decimals=round_decimals, + ) + # Define features (note that the features were checked and aligned in load_data) + features = pycyto_df.columns.tolist() + # Get differences + ( + mean_diff, + complete_mean_diff, + median_diff, + complete_median_diff, + sum_diff, + complete_sum_diff, + ) = get_metrics(pycyto_df, cyto_df, features) + # Store results + test_pycytominer_select_mean_diff.append(mean_diff) + test_pycytominer_select_completemean_diff[plate] = complete_mean_diff + test_pycytominer_select_median_diff.append(median_diff) + test_pycytominer_select_completemedian_diff[plate] = complete_median_diff + test_pycytominer_select_sum_diff.append(sum_diff) + test_pycytominer_select_completesum_diff[plate] = complete_sum_diff + + +# ## Compile Results + +# In[9]: + + +level_3_mean_diff_df = pd.concat(level_3_mean_diff, axis="columns", sort=True) +level_3_mean_diff_df.columns = list(cytominer_plates) +level_3_completemean_diff_df = pd.DataFrame( + level_3_completemean_diff, index=["complete_mean_diff"] +).transpose() + +level_3_median_diff_df = pd.concat(level_3_median_diff, axis="columns", sort=True) +level_3_median_diff_df.columns = list(cytominer_plates) +level_3_completemedian_diff_df = pd.DataFrame( + level_3_completemedian_diff, index=["complete_median_diff"] +).transpose() + +level_3_sum_diff_df = pd.concat(level_3_sum_diff, axis="columns", sort=True) +level_3_sum_diff_df.columns = list(cytominer_plates) +level_3_completesum_diff_df = pd.DataFrame( + level_3_completesum_diff, index=["complete_sum_diff"] +).transpose() + + +# In[10]: + + +level_4a_mean_diff_df = pd.concat(level_4a_mean_diff, axis="columns") +level_4a_mean_diff_df.columns = list(cytominer_plates) +level_4a_completemean_diff_df = pd.DataFrame( + level_4a_completemean_diff, index=["complete_mean_diff"] +).transpose() + +level_4a_median_diff_df = pd.concat(level_4a_median_diff, axis="columns", sort=True) +level_4a_median_diff_df.columns = list(cytominer_plates) +level_4a_completemedian_diff_df = pd.DataFrame( + level_4a_completemedian_diff, index=["complete_median_diff"] +).transpose() + +level_4a_sum_diff_df = pd.concat(level_4a_sum_diff, axis="columns", sort=True) +level_4a_sum_diff_df.columns = list(cytominer_plates) +level_4a_completesum_diff_df = pd.DataFrame( + level_4a_completesum_diff, index=["complete_sum_diff"] +).transpose() + + +# In[11]: + + +level_4b_mean_diff_df = pd.concat(level_4b_mean_diff, axis="columns") +level_4b_mean_diff_df.columns = list(cytominer_plates) +level_4b_completemean_diff_df = pd.DataFrame( + level_4b_completemean_diff, index=["complete_mean_diff"] +).transpose() + +level_4b_median_diff_df = pd.concat(level_4b_median_diff, axis="columns", sort=True) +level_4b_median_diff_df.columns = list(cytominer_plates) +level_4b_completemedian_diff_df = pd.DataFrame( + level_4b_completemedian_diff, index=["complete_median_diff"] +).transpose() + +level_4b_sum_diff_df = pd.concat(level_4b_sum_diff, axis="columns", sort=True) +level_4b_sum_diff_df.columns = list(cytominer_plates) +level_4b_completesum_diff_df = pd.DataFrame( + level_4b_completesum_diff, index=["complete_sum_diff"] +).transpose() + +level_4b_feature_select_df = pd.concat(level_4b_feature_select, axis="columns") + + +# In[12]: + + +test_pycytominer_select_mean_diff_df = pd.concat( + test_pycytominer_select_mean_diff, axis="columns", sort=True +) +test_pycytominer_select_mean_diff_df.columns = list(cytominer_plates) +test_pycytominer_select_completemean_diff_df = pd.DataFrame( + test_pycytominer_select_completemean_diff, index=["complete_mean_diff"] +).transpose() + +test_pycytominer_select_median_diff_df = pd.concat( + test_pycytominer_select_median_diff, axis="columns", sort=True +) +test_pycytominer_select_median_diff_df.columns = list(cytominer_plates) +test_pycytominer_select_completemedian_diff_df = pd.DataFrame( + test_pycytominer_select_completemedian_diff, index=["complete_median_diff"] +).transpose() + +test_pycytominer_select_sum_diff_df = pd.concat( + test_pycytominer_select_sum_diff, axis="columns", sort=True +) +test_pycytominer_select_sum_diff_df.columns = list(cytominer_plates) +test_pycytominer_select_completesum_diff_df = pd.DataFrame( + test_pycytominer_select_completesum_diff, index=["complete_sum_diff"] +).transpose() + + +# ## Output Results + +# In[13]: + + +level = "level_3" +level_3_files = build_filenames(output_dir, level) + +# Output mean +level_3_mean_diff_df.to_csv( + level_3_files["mean"], sep="\t", index=True, compression="gzip" +) + +# Output median +level_3_median_diff_df.to_csv( + level_3_files["median"], sep="\t", index=True, compression="gzip" +) + +# Output sum +level_3_sum_diff_df.to_csv( + level_3_files["sum"], sep="\t", index=True, compression="gzip" +) + + +# In[14]: + + +level = "level_4a" +level_4a_files = build_filenames(output_dir, level) + +# Output mean +level_4a_mean_diff_df.to_csv( + level_4a_files["mean"], sep="\t", index=True, compression="gzip" +) + +# Output median +level_4a_median_diff_df.to_csv( + level_4a_files["median"], sep="\t", index=True, compression="gzip" +) + +# Output sum +level_4a_sum_diff_df.to_csv( + level_4a_files["sum"], sep="\t", index=True, compression="gzip" +) + + +# In[15]: + + +level = "level_4b" +level_4b_files = build_filenames(output_dir, level) + +# Output mean +level_4b_mean_diff_df.to_csv( + level_4b_files["mean"], sep="\t", index=True, compression="gzip" +) + +# Output median +level_4b_median_diff_df.to_csv( + level_4b_files["median"], sep="\t", index=True, compression="gzip" +) + +# Output sum +level_4b_sum_diff_df.to_csv( + level_4b_files["sum"], sep="\t", index=True, compression="gzip" +) + +# Output feature select summary file +output_file = f"{output_dir}/comparison_result_4b_feature_select.tsv.gz" +level_4b_feature_select_df.to_csv(output_file, sep="\t", index=True, compression="gzip") + + +# In[16]: + + +level = "pycytominer_select" +pycytominer_select_files = build_filenames(output_dir, level) + +# Output mean +test_pycytominer_select_mean_diff_df.to_csv( + pycytominer_select_files["mean"], sep="\t", index=True, compression="gzip" +) + +# Output median +test_pycytominer_select_median_diff_df.to_csv( + pycytominer_select_files["median"], sep="\t", index=True, compression="gzip" +) + +# Output sum +test_pycytominer_select_sum_diff_df.to_csv( + pycytominer_select_files["sum"], sep="\t", index=True, compression="gzip" +) + + +# In[17]: + + +# Concatenate level 3 results +level_3_complete_df = pd.concat( + [ + level_3_completemean_diff_df, + level_3_completemedian_diff_df, + level_3_completesum_diff_df, + ], + axis="columns", +) + +level_3_complete_df.columns = [f"level_3_{x}" for x in level_3_complete_df.columns] + +# Concatenate level 4a results +level_4a_complete_df = pd.concat( + [ + level_4a_completemean_diff_df, + level_4a_completemedian_diff_df, + level_4a_completesum_diff_df, + ], + axis="columns", +) + +level_4a_complete_df.columns = [f"level_4a_{x}" for x in level_4a_complete_df.columns] + +# Concatenate level 4b results +level_4b_complete_df = pd.concat( + [ + level_4b_completemean_diff_df, + level_4b_completemedian_diff_df, + level_4b_completesum_diff_df, + ], + axis="columns", +) + +level_4b_complete_df.columns = [f"level_4b_{x}" for x in level_4b_complete_df.columns] + +# Combine all results +complete_df = pd.concat( + [level_3_complete_df, level_4a_complete_df, level_4b_complete_df,], axis="columns", +) + +# Output file +output_file = f"{output_dir}/comparison_result_metric_summary.tsv" +complete_df.to_csv(output_file, sep="\t", index=True) + +print(complete_df.shape) +complete_df.head() + diff --git a/comparison/scripts/nbconverted/1.summarize-cytominer-tool-differences.py b/comparison/scripts/nbconverted/1.summarize-cytominer-tool-differences.py new file mode 100644 index 0000000..4a4a66e --- /dev/null +++ b/comparison/scripts/nbconverted/1.summarize-cytominer-tool-differences.py @@ -0,0 +1,321 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Summarize Tool Differences +# +# In the following notebook, we summarize the differences we calculated in `0.get-cytominer-tool-differences`. +# We summarize the results in a series of visualizations and descriptive statistics. + +# In[1]: + + +get_ipython().run_line_magic('load_ext', 'nb_black') + + +# In[2]: + + +import os +import pathlib +import numpy as np +import pandas as pd +import plotnine as gg + +from util import build_filenames + + +# In[3]: + + +# Set constants +batch = "2016_04_01_a549_48hr_batch1" +input_dir = pathlib.Path("results", batch) +levels = ["level_3", "level_4a", "level_4b", "pycytominer_select"] +metrics = ["mean", "median", "sum"] + +# Set output directory +output_fig_dir = pathlib.Path("figures", batch) +output_fig_dir.mkdir(parents=True, exist_ok=True) + +# Set plotting defaults +dpi = 500 +height = 3.5 +width = 6 + +# Set common plotnine theme +theme_summary = gg.theme_bw() + gg.theme( + axis_text_x=gg.element_blank(), + axis_text_y=gg.element_text(size=6), + axis_title=gg.element_text(size=8), + strip_background=gg.element_rect(colour="black", fill="#fdfff4"), +) + + +# In[4]: + + +# Load Data +results_files = {} +for level in levels: + file_names = build_filenames(input_dir, level=level) + metric_df = {} + for metric in file_names: + df = pd.read_csv(file_names[metric], sep="\t", index_col=0) + metric_df[metric] = df + + results_files[level] = metric_df + +summary_file = pathlib.Path(f"{input_dir}/comparison_result_metric_summary.tsv") +summary_df = ( + pd.read_csv(summary_file, sep="\t", index_col=0) + .sort_index() + .reset_index() + .rename({"index": "plate"}, axis="columns") +) + +print(summary_df.shape) +summary_df.head() + + +# In[5]: + + +# Isolate the outlier plates that were processed by Cytominer in a different way +# See https://github.com/broadinstitute/lincs-cell-painting/issues/3#issuecomment-591994451 +nonuniform_plates = summary_df.query("level_3_complete_median_diff > 1").plate.tolist() +nonuniform_plates + + +# In[6]: + + +# Since we know that these were processed differently, remove from the comparison +summary_df = summary_df.query("plate not in @nonuniform_plates").reset_index(drop=True) + + +# In[7]: + + +# Ensure the plates are in order in each plot +plate_order = summary_df.plate.tolist() +summary_df.plate = pd.Categorical( + summary_df.plate, categories=plate_order, ordered=True +) + + +# In[8]: + + +# Process summary dataframe +summary_melted_df = [] +for level in levels: + # Summary for pycytominer select not shown to reduce comparison size + if level == "pycytominer_select": + continue + for metric in metrics: + col_name = f"{level}_complete_{metric}_diff" + subset_df = ( + summary_df.loc[:, ["plate", col_name]] + .assign(metric=metric, level=level) + .rename({col_name: "metric_value"}, axis="columns") + ) + summary_melted_df.append(subset_df) + +summary_melted_df = pd.concat(summary_melted_df).reset_index(drop=True) +summary_melted_df = summary_melted_df.assign(uniform=True) +summary_melted_df.loc[ + summary_melted_df.plate.isin(nonuniform_plates), "uniform" +] = False + +print(summary_melted_df.shape) +summary_melted_df.head() + + +# In[9]: + + +summary_metric_full_gg = ( + gg.ggplot(summary_melted_df, gg.aes(x="plate", y="metric_value")) + + gg.geom_point(size=0.5) + + gg.facet_grid("metric~level", scales="free") + + gg.xlab("Plate") + + gg.ylab("Absolute Difference\nBetween Tools") + + gg.ggtitle("Per Plate Summary (Full)") + + theme_summary +) + +output_file = pathlib.Path(f"{output_fig_dir}/summary_metrics_full.png") +summary_metric_full_gg.save(output_file, dpi=500, height=4, width=6) + +print(summary_metric_full_gg) + +summary_metric_zoom_gg = ( + gg.ggplot( + summary_melted_df.query("metric_value < 10"), + gg.aes(x="plate", y="metric_value"), + ) + + gg.geom_point(size=0.5) + + gg.facet_grid("metric~level", scales="free") + + gg.xlab("Plate") + + gg.ylab("Absolute Difference\nBetween Tools") + + gg.ggtitle("Per Plate Summary (Zoom)") + + theme_summary +) + +output_file = pathlib.Path(f"{output_fig_dir}/summary_metrics_zoom.png") +summary_metric_zoom_gg.save(output_file, dpi=500, height=3.5, width=6) + +print(summary_metric_zoom_gg) + + +# In[10]: + + +# Wrangle output metric data to be plot ready +all_feature_results_df = [] +for level in levels: + for metric in metrics: + plot_ready_df = ( + results_files[level][metric] + .reset_index() + .rename({"index": "feature"}, axis="columns") + .melt(id_vars="feature", var_name="plate", value_name="metric_value") + .assign(metric=metric, level=level) + ) + all_feature_results_df.append(plot_ready_df) + +all_feature_results_df = pd.concat(all_feature_results_df).reset_index(drop=True) + +# Predetermine feature order +feature_order = sorted(list(set(all_feature_results_df.feature))) + +all_feature_results_df = all_feature_results_df.assign(uniform=True) +all_feature_results_df.loc[ + all_feature_results_df.plate.isin(nonuniform_plates), "uniform" +] = False + +all_feature_results_df.plate = pd.Categorical( + all_feature_results_df.plate, categories=plate_order, ordered=True +) +all_feature_results_df.feature = pd.Categorical( + all_feature_results_df.feature, categories=feature_order, ordered=True +) + +# Select only the uniform plates +all_feature_results_df = all_feature_results_df.query("uniform") + +print(all_feature_results_df.shape) +all_feature_results_df.head() + + +# ## All Feature and Plate Summary + +# In[11]: + + +all_feature_results_df.groupby(["metric", "level"])["metric_value"].describe() + + +# ## Generate Two Figures Per Data Level +# +# Split into different cells to prevent kernel death. + +# In[12]: + + +for level in levels: + all_feature_results_subset_df = all_feature_results_df.query( + "level == @level" + ).reset_index(drop=True) + + output_dir = pathlib.Path(f"{output_fig_dir}/{level}") + output_dir.mkdir(exist_ok=True) + + # Figure 1 - Per plate feature differences + per_plate_feature_gg = ( + gg.ggplot(all_feature_results_subset_df, gg.aes(x="plate", y="metric_value")) + + gg.geom_point(size=0.1, alpha=0.5) + + gg.facet_wrap("~metric", scales="free", nrow=len(metrics)) + + gg.xlab("Plate") + + gg.ylab("Feature Difference\nBetween Tools") + + gg.ggtitle(f"Plate Summary\n{level}") + + theme_summary + ) + + output_file = pathlib.Path(f"{output_dir}/{level}_metrics_per_plate.png") + per_plate_feature_gg.save(output_file, dpi=dpi, height=height, width=width) + + print(per_plate_feature_gg) + del per_plate_feature_gg + + +# In[13]: + + +for level in levels: + all_feature_results_subset_df = all_feature_results_df.query( + "level == @level" + ).reset_index(drop=True) + + output_dir = pathlib.Path(f"{output_fig_dir}/{level}") + output_dir.mkdir(exist_ok=True) + + # Figure 2 - Per feature plate differences + per_feature_gg = ( + gg.ggplot(all_feature_results_subset_df, gg.aes(x="feature", y="metric_value")) + + gg.geom_point(size=0.1, alpha=0.5) + + gg.facet_wrap("~metric", scales="free", nrow=len(metrics)) + + gg.xlab("Feature") + + gg.ylab("Feature Difference\nBetween Tools") + + gg.ggtitle(f"Feature Summary Across Plates\n{level}") + + theme_summary + ) + + output_file = pathlib.Path(f"{output_dir}/{level}_metrics_per_feature.png") + per_feature_gg.save(output_file, dpi=dpi, height=height, width=width) + + print(per_feature_gg) + del per_feature_gg + + +# ## Feature Selection Summary + +# In[14]: + + +# Load data +select_file = pathlib.Path(f"{input_dir}/comparison_result_4b_feature_select.tsv.gz") +select_df = ( + pd.read_csv(select_file, sep="\t", index_col=0) + .reset_index() + .rename({"index": "feature"}, axis="columns") + .melt(id_vars="feature", var_name="plate", value_name="status") + .query("plate not in @nonuniform_plates") +) + +# Reorder data +select_df.plate = pd.Categorical(select_df.plate, categories=plate_order, ordered=True) +select_df.feature = pd.Categorical( + select_df.feature, categories=feature_order, ordered=True +) + +print(select_df.shape) +select_df.head() + + +# In[15]: + + +feature_select_gg = ( + gg.ggplot(select_df, gg.aes(x="feature", y="plate", fill="status")) + + gg.geom_tile(size=0.5) + + gg.ggtitle("Feature Select Summary") + + theme_summary + + gg.theme(axis_text_y=gg.element_blank()) +) + +output_file = pathlib.Path(f"{output_fig_dir}/feature_select_summary.png") +feature_select_gg.save(output_file, dpi=dpi, height=4, width=6) + +feature_select_gg + diff --git a/comparison/util.py b/comparison/util.py new file mode 100644 index 0000000..3261116 --- /dev/null +++ b/comparison/util.py @@ -0,0 +1,99 @@ +import pathlib +import numpy as np +import pandas as pd + +from pycytominer.cyto_utils import infer_cp_features + + +def build_file_dictionary(base_dir, tool="pycytominer"): + file_match = {} + if tool == "pycytominer": + file_match["level_3"] = "augmented.csv.gz" + file_match["level_4a"] = "normalized_dmso.csv.gz" + file_match["level_4b"] = "normalized_feature_select_dmso.csv.gz" + file_match["pycytominer_select"] = "normalized_feature_select_dmso.csv.gz" + + elif tool == "cytominer": + file_match["level_3"] = "augmented.csv" + file_match["level_4a"] = "normalized.csv" + file_match["level_4b"] = "normalized_variable_selected.csv" + file_match["pycytominer_select"] = "normalized.csv" + + file_dict = {} + for plate in base_dir.iterdir(): + plate_name = plate.name + if plate_name == ".DS_Store": + continue + file_dict[plate_name] = {} + for plate_file in plate.iterdir(): + plate_file_name = plate_file.name + if file_match["level_3"] in plate_file_name: + file_dict[plate_name]["level_3"] = plate_file + if file_match["level_4a"] in plate_file_name: + file_dict[plate_name]["level_4a"] = plate_file + if file_match["level_4b"] in plate_file_name: + file_dict[plate_name]["level_4b"] = plate_file + if file_match["pycytominer_select"] in plate_file_name: + file_dict[plate_name]["pycytominer_select"] = plate_file + + return file_dict + + +def load_data( + plate, + pycyto_dict, + cyto_dict, + level, + round_decimals, + well_col="Metadata_Well", + plate_col="Metadata_Plate", + sample_col="Metadata_broad_sample", +): + # Extract file from file dictionary + pycyto_file = pycyto_dict[plate][level] + cyto_file = cyto_dict[plate][level] + + # Load data + pycyto_df = pd.read_csv(pycyto_file) + cyto_df = pd.read_csv(cyto_file) + + # Confirm metadata are aligned + pd.testing.assert_series_equal(pycyto_df.loc[:, well_col], cyto_df.loc[:, well_col]) + pd.testing.assert_series_equal( + pycyto_df.loc[:, plate_col], cyto_df.loc[:, plate_col] + ) + pd.testing.assert_series_equal( + pycyto_df.loc[:, sample_col], cyto_df.loc[:, sample_col] + ) + + # Align to CP Features only + pycyto_features = infer_cp_features(pycyto_df) + cyto_features = infer_cp_features(cyto_df) + + # Features must be the same before feature selection + if level in ["level_3", "level_4a"]: + assert set(pycyto_features) == set(cyto_features), "features should be aligned!" + + # Reindex and round data + pycyto_df = pycyto_df.reindex(set(pycyto_features), axis="columns").round( + round_decimals + ) + cyto_df = cyto_df.reindex(set(cyto_features), axis="columns").round(round_decimals) + + # If we're testing pycytominer feature selection procedure, + # align cyto data with pycyto features + if level == "pycytominer_select": + cyto_df = cyto_df.reindex(set(pycyto_features), axis="columns") + + # Return a tuple of (pycyto data, cyto data) with aligned feature indices + return (pycyto_df, cyto_df) + + +def build_filenames(output_dir, level, metrics=["median", "mean", "sum"]): + output_files = {} + for metric in metrics: + output_files[metric] = pathlib.Path( + f"{output_dir}/comparison_result_{level}_{metric}.tsv.gz" + ) + + return output_files diff --git a/environment.yml b/environment.yml index 694b7c8..430f5df 100644 --- a/environment.yml +++ b/environment.yml @@ -10,6 +10,7 @@ dependencies: - conda-forge::widgetsnbextension=3.5.1 - conda-forge::jupyter_contrib_nbextensions=0.5.1 - conda-forge::matplotlib=3.1.3 +- conda-forge::plotnine=0.6.0 - conda-forge::rdkit=2019.09.3 - conda-forge::nb_black=1.0.7 - pip: